У нас произошел сбой диска (тайм-аут дисковых команд истек, и это заняло много секунд) в нашей установке LVM с зеркалированием. С некоторыми трудностями нам удалось pvremove неисправный диск, и мы использовали lvconvert --repair -y nova/$lv
для восстановления (восстановления избыточности) логических томов.
Однако с одним логическим томом все еще возникают проблемы. В lvs -o devices -a
он не показывает устройств для 2 своих подтомов:
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
lvname nova Rwi-aor--- 800.00g 100.00 lvname_rimage_0(0),lvname_rimage_1(0),lvname_rimage_2(0),lvname_rimage_3(0)
[lvname_rimage_0] nova iwi-aor--- 400.00g /dev/sdc1(19605)
[lvname_rimage_1] nova iwi-aor--- 400.00g /dev/sdi1(19605)
[lvname_rimage_2] nova vwi---r--- 400.00g
[lvname_rimage_3] nova iwi-aor--- 400.00g /dev/sdj1(19605)
[lvname_rmeta_0] nova ewi-aor--- 64.00m /dev/sdc1(19604)
[lvname_rmeta_1] nova ewi-aor--- 64.00m /dev/sdi1(19604)
[lvname_rmeta_2] nova ewi---r--- 64.00m
[lvname_rmeta_3] nova ewi-aor--- 64.00m /dev/sdj1(19604)
а также согласно lvdisplay -am
есть проблема с ..._rimage2
а также ..._rmeta2
:
--- Logical volume ---
Internal LV Name lvname_rimage_2
VG Name nova
LV UUID xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
LV Write Access read/write
LV Creation host, time xxxxxxxxx, 2021-07-09 16:45:21 +0000
LV Status NOT available
LV Size 400.00 GiB
Current LE 6400
Segments 1
Allocation inherit
Read ahead sectors auto
--- Segments ---
Virtual extents 0 to 6399:
Type error
--- Logical volume ---
Internal LV Name lvname_rmeta_2
VG Name nova
LV UUID xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
LV Write Access read/write
LV Creation host, time xxxxxxxxx, 2021-07-09 16:45:21 +0000
LV Status NOT available
LV Size 64.00 MiB
Current LE 1
Segments 1
Allocation inherit
Read ahead sectors auto
--- Segments ---
Virtual extents 0 to 0:
Type error
Мы пробовали различные комбинации lvconvert --repair -y nova/$lv
а также lvchange --syncaction repair
на нем без последствий.lvchange -ay
тоже не работает:
$ sudo lvchange -ay nova/lvname_rmeta_2
Operation not permitted on hidden LV nova/lvname_rmeta_2.
$ sudo lvchange -ay nova/lvname
$ # (no effect)
$ sudo lvconvert --repair nova/lvname_rimage_2
WARNING: Disabling lvmetad cache for repair command.
WARNING: Not using lvmetad because of repair.
Command on LV nova/lvname_rimage_2 does not accept LV type error.
Command not permitted on LV nova/lvname_rimage_2.
$ sudo lvchange --resync nova/lvname_rimage_2
WARNING: Not using lvmetad because a repair command was run.
Command on LV nova/lvname_rimage_2 does not accept LV type error.
Command not permitted on LV nova/lvname_rimage_2.
$ sudo lvchange --resync nova/lvname
WARNING: Not using lvmetad because a repair command was run.
Logical volume nova/lvname in use.
Can't resync open logical volume nova/lvname.
$ lvchange --rebuild /dev/sdf1 nova/lvname
WARNING: Not using lvmetad because a repair command was run.
Do you really want to rebuild 1 PVs of logical volume nova/lvname [y/n]: y
device-mapper: create ioctl on lvname_rmeta_2 LVM-blah failed: Device or resource busy
Failed to lock logical volume nova/lvname.
$ lvchange --raidsyncaction repair nova/lvname
# (took a long time to complete but didn't change anything)
$ sudo lvconvert --mirrors +1 nova/lvname
Using default stripesize 64.00 KiB.
--mirrors/-m cannot be changed with raid10.
Любая идея, как восстановить избыточность на этом логическом томе? Конечно, он постоянно используется… Кажется, что мы должны каким-то образом убедить LVM выделить для него некоторое пространство вместо использования сегмента ошибок (в группе томов их достаточно).
лвм рейд10
Олаф Зайберт