-
Bug
-
Resolution: Done-Errata
-
Major
-
rhel-8.6.0
-
lvm2-2.03.14-14.el8
-
None
-
Important
-
rhel-sst-logical-storage
-
ssg_filesystems_storage_and_HA
-
22
-
24
-
1
-
QE ack, Dev ack
-
False
-
-
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.
This is a rhel8.6 version of https://bugzilla.redhat.com/show_bug.cgi?id=2133978
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 command fails or the in sync rimage is used.
Additional info:
If I run lvconvert against a resyncing raid1 volume it fails, The same should happen in this case or the in-sync rimage used.
The out-of-sync rimage being used caused a customer to lose 2 hours of prod data. If the command failed they could have recovered raid1 before converting!
- blocks
-
RHEL-8335 lvconvert -m 0 will always take rimage_0 even if it is out-of-sync
-
- Release Pending
-
-
RHEL-8297 lvconvert -m 0 will always take rimage_0 even if it is out-of-sync
-
- Closed
-
- external trackers
- links to
-
RHBA-2024:128184 lvm2 update
- mentioned on