-
Bug
-
Resolution: Done
-
Major
-
rhel-7.9.z
-
None
-
Important
-
rhel-sst-logical-storage
-
ssg_filesystems_storage_and_HA
-
4
-
False
-
-
None
-
None
-
None
-
None
-
If docs needed, set a value
-
-
Unspecified
-
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.