<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2014-09-25 18:19 GMT+08:00 Heinz Mauelshagen <span dir="ltr"><<a href="mailto:heinzm@redhat.com" target="_blank">heinzm@redhat.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000"><span class="">
    On 09/25/2014 08:10 AM, Romu Hu wrote:<br>
    <blockquote type="cite">
      
      On 2014/9/24 12:10, Brassow Jonathan wrote:<br>
      <blockquote type="cite">On Sep 22, 2014, at 7:35 AM, Romu wrote:
        <div><br>
          <blockquote type="cite"><span style="border-collapse:separate;font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-size:medium">I tried the following command to
              set up my era target but the command immediately panics
              the system and the system reboots.
              <div><br>
              </div>
              <div># dmsetup create MyEra --table "0 41941903 era
                /dev/mapper/VG-CacheDataLV_cmeta /dev/mapper/VG-OriginLV
                4096"<br>
              </div>
              <div><br>
              </div>
              <div>The metadata dev and the origin dev are all part of a
                LVM cache LV.  VG-CacheDataLV_cmeta is the cache
                metadata LV on the smaller and faster device,
                VG-OriginLV is the origin LV on the faster and slower
                device, 41941903 is the total sector number of the
                device of OriginLV (the LV takes 100% space of the
                device), 4096 is the block size of OriginLV, I have run
                'mkfs.ext4 /dev/mapper/VG-OriginLV' before running the
                dmsetup command.<br>
              </div>
              <div><br>
              </div>
              <div>Below is the message in /var/log/messages after
                running the dmsetup comnmand:</div>
              <div><br>
              </div>
              <div>kernel: device-mapper: era: sb_check failed: magic
                1623043: wanted <a href="tel:2126579579" value="+12126579579" target="_blank">2126579579</a><br>
              </div>
              <div>
                <div>kernel: device-mapper: block manager: superblock
                  validator check failed for block 0</div>
                <div>kernel: device-mapper: era: couldn't read_lock
                  superblock</div>
              </div>
              <div><br>
              </div>
              <div><br>
              </div>
              <div>Any idea?</div>
            </span><br>
          </blockquote>
        </div>
        <br>
        <div>Sorry, I haven't used dm-era yet.  However, it does appear
          that you are perhaps specifying the wrong devices when
          creating the era device?  Looks like you might be allowing the
          era target and the cache target to use the same metadata area
          at the same time - causing them to corrupt each other's
          metadata area?</div>
        <div><br>
        </div>
        <div> brassow</div>
      </blockquote>
      <br>
      I think the dmsetup command to set up an era target should be
      something like this:<br>
      <br>
      <tt><span style="border-collapse:separate;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-size:medium"># dmsetup create MyEra --table "0 sector_number era
          metadeta_dev origin_dev block_size"</span></tt><br>
      <br>
      My questions:<br>
      <br>
      1) How to calculate sector_number?  According to <a href="https://www.kernel.org/doc/Documentation/device-mapper/era.txt" target="_blank">https://www.kernel.org/doc/Documentation/device-mapper/era.txt</a>,
      I guess it should be (4 * nr_blocks) bytes + buffers, but what is
      nr_blocks and what is buffers?<br>
    </blockquote>
    <br></span>
    No calculation: it's the size of your era target in sectors.
    Typically "blockdev --getsz origin_dev"<span class=""><br>
    <br>
    <blockquote type="cite"> 2)
      Any documentation for dmsetup tables?<br>
    </blockquote>
    <br></span>
    Look for examples in the kernel source trees
    Documentaion/device.mapper.<br>
    <br>
    table line syntax is: "start_sector length_in_sectors <target>
    <target_arguments{0,N}>"<span class=""><br>
    <br>
    <blockquote type="cite"> 3)
      Both my metadata_dev and origin_dev are 10G partitions, is this
      all right?<br>
    </blockquote>
    <br></span>
    Metadata device size is plenty but that depends on how many eras
    with how many updates you want to have.<span class=""><br>
    <br>
    <blockquote type="cite"> 4) My
      origin_dev is a ext4 filesystem with a block size of 4096, so the
      block_size in the command line should also be 4096?<br>
    </blockquote>
    <br></span>
    You may use 4096 = _8_ sectors, you used 4096 sectors = 2MB below.<br>
    It's the granularity the era target housekeeps blocks for.<span class=""><br>
    <br>
    <blockquote type="cite"> <br>
      I tried the following command:<br>
      <br>
      <tt># dmsetup create MyEra --table "0 160000 era
        /dev/mapper/mpathap1 /dev/mapper/mpathbp1 4096"</tt><br>
    </blockquote>
    <br></span>
    May not be  same physical device for data and metadata!<br>
    If it is, thta'd explain your oops.<br>
    <br>
    <tt># dmsetup create MyEra --table "0 $(blockdev --getsz </tt><tt><tt>/dev/mapper/mpathbp)</tt>
      era whatever_disctinct_metadata_device /dev/mapper/mpathbp1 8"</tt><br>
    <br>
    Would use 8 sector block size (which is tiny!) with disctinct
    metadata and data devices (presumabyl your ext4 sits on <tt>/dev/mapper/mpathbp1)</tt><span class=""><font color="#888888"><br>
    <br>
    Heinz<br></font></span></div></blockquote><div><br></div><div>Heinz, thank you for your help!</div><div><br></div><div>My origin dev is 10G so total sector number is 20971520.  /dev/mapper/mpathbp1 (/dev/dm-6) is the metadata dev, /dev/mapper/mpathap1 (/dev/dm-7) is the origin dev, they are on different LUNs.</div><div><br></div><div>I tried the following commands:</div><div><br></div><div># dmsetup create MyEra --table "0 20971520 /dev/mapper/mpathbp1 /dev/mapper/mpathap1 8"<br></div><div># Target type name /dev/mapper/mpathbp1 is too long.</div><div><div># Command failed</div></div><div><br></div><div># dmsetup create MyEra --table "0 20971520 /dev/dm-6 /dev/dm-7 8"<br></div><div># device-mapper: reload ioctl on MyEra failed: Invalid argument</div><div><div># Command failed</div></div><div><br></div><div>And when executing the second command I see the following in /var/log/messages:</div><div><br></div><div><div>Sep 25 06:37:48 localhost kernel: device-mapper: table: 253:8: /dev/dm-6: unknown target type</div><div>Sep 25 06:37:48 localhost kernel: device-mapper: ioctl: error adding target to table</div><div>Sep 25 06:37:48 localhost multipathd: dm-8: remove map (uevent)</div><div>Sep 25 06:37:48 localhost multipathd: dm-8: devmap not registered, can't remove</div><div>Sep 25 06:37:48 localhost multipathd: dm-8: remove map (uevent)</div><div>Sep 25 06:37:48 localhost multipathd: dm-8: devmap not registered, can't remove</div></div><div><br></div><div>Then I run 'mkfs.ext4 /dev/dm-6' and tried the second command again but got the same result.</div><div><br></div><div>Any idea?</div><div><br></div><div>Thanks</div><div>Romu</div></div></div></div>