Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-8297

lvconvert -m 0 will always take rimage_0 even if it is out-of-sync

    • None
    • Important
    • sst_logical_storage
    • ssg_filesystems_storage_and_HA
    • 4
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • If docs needed, set a value
    • None

      Description of problem: lvconvert -m 0 will always take rimage_0 even if it is out-of-sync.

      See below /dev/mapper/mpathb(1) is flagged as raid (I)mage out-of-sync but is still used to build the linear volume.

      [root@localhost ~]# lvs -ao +devices
      LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
      ..
      lvr1 tvg rwi-aor-r- 500.00m 100.00 lvr1_rimage_0(0),lvr1_rimage_1(0)
      [lvr1_rimage_0] tvg Iwi-aor-r- 500.00m /dev/mapper/mpathb(1)
      [lvr1_rimage_1] tvg iwi-aor--- 500.00m /dev/sdg(1)
      [lvr1_rmeta_0] tvg ewi-aor-r- 4.00m /dev/mapper/mpathb(0)
      [lvr1_rmeta_1] tvg ewi-aor--- 4.00m /dev/sdg(0)

      [root@localhost ~]# lvconvert -m 0 tvg/lvr1
      Are you sure you want to convert raid1 LV tvg/lvr1 to type linear losing all resilience? [y/n]: y
      Logical volume tvg/lvr1 successfully converted.

      [root@localhost ~]# lvs -ao +devices
      LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
      ..
      lvr1 tvg wi-ao--- 500.00m /dev/mapper/mpathb(1)

      Version-Release number of selected component (if applicable):
      Reported on lvm2-2.02.187-6.el7
      But happens in all releases.

      How reproducible:
      100%

      Steps to Reproduce:
      1. vgcreate tvg /dev/sdd /dev/sdg
      2. lvcreate --type raid1 --mirrors 1 --name lvr1 -l 100%FREE tvg
      3. mkfs.xfs /dev/tvg/lvr1
      4. mount /dev/tvg/lvr1 /mnt
      lvs -ao +devices
      LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
      lvr1 tvg rwi-aor--- 1016.00m 100.00 lvr1_rimage_0(0),lvr1_rimage_1(0)
      [lvr1_rimage_0] tvg iwi-aor--- 1016.00m /dev/sdd(1)
      [lvr1_rimage_1] tvg iwi-aor--- 1016.00m /dev/sdg(1)
      [lvr1_rmeta_0] tvg ewi-aor--- 4.00m /dev/sdd(0)
      [lvr1_rmeta_1] tvg ewi-aor--- 4.00m /dev/sdg(0)
      5. echo 1 > /sys/block/sdd/device/delete
      6. dd if=/dev/zero of=/mnt/tf1 bs=1M count=100 oflag=direct
      7. echo "0 0 2" > /sys/class/scsi_host/host0/scan

      lvr1 tvg rwi-aor-r- 1016.00m 100.00 lvr1_rimage_0(0),lvr1_rimage_1(0)
      [lvr1_rimage_0] tvg Iwi-aor-r- 1016.00m /dev/sda(1)
      [lvr1_rimage_1] tvg iwi-aor--- 1016.00m /dev/sdg(1)
      [lvr1_rmeta_0] tvg ewi-aor-r- 4.00m /dev/sda(0)
      [lvr1_rmeta_1] tvg ewi-aor--- 4.00m /dev/sdg(0)

      8. lvconvert -m 0 tvg/lvr1

      lvr1 tvg wi-ao--- 1016.00m /dev/sda(1)

      Actual results:

      The out-of_sync raid rimage is used to build a linear volume.

      Expected results:

      The in sync rimage is used.

      Additional info:

      While this is a logical bug, this may be not a bug as the raid1 volume was not stable. But engineering should make that call.

            rhn-engineering-heinzm Heinz Mauelshagen
            rhn-support-ldigby Lance Digby
            Heinz Mauelshagen Heinz Mauelshagen
            Cluster QE Cluster QE
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

              Created:
              Updated:
              Resolved: