Recovering PV of Mirrored LVM
Author:Jaylin Zhou
Now there are three PVs:
# pvs PV VG Fmt Attr PSize PFree /dev/sdb5 lvm2 -- 196.08M 196.08M /dev/sdb6 lvm2 -- 196.08M 196.08M /dev/sdb7 lvm2 -- 196.08M 196.08M
|
Create a VG with this three PVs:
# vgcreate /dev/myvg /dev/sdb[567] Volume group "myvg" successfully created
|
Check the status of VG:
# vgs VG #PV #LV #SN Attr VSize VFree myvg 3 0 0 wz--n- 576.00M 576.00M
|
Create a one-mirrored LV by putting the two mirror legs in /dev/sdb5 and /dev/sdb6, putting log in /dev/sdb7 :
# lvcreate -l 20 -n mylv -m1 /dev/myvg /dev/sdb5 /dev/sdb6 /dev/sdb7 Logical volume "mylv" created
|
Check the status of LV and find the mirrored LV is available:
# lvs -a -o +devices LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices mylv myvg mwi-a- 80.00M mylv_mlog 100.00 mylv_mimage_0(0),mylv_mimage_1(0) [mylv_mimage_0] myvg iwi-ao 80.00M /dev/sdb5(0) [mylv_mimage_1] myvg iwi-ao 80.00M /dev/sdb6(0) [mylv_mlog] myvg lwi-ao 4.00M /dev/sdb7(0)
|
Make a file system on LV:
# mkfs.ext3 /dev/myvg/mylv
|
Mount LV then add some data on it:
# mount /dev/myvg/mylv /mnt/ # umount /mnt/
|
Destroy one mirror leg, in the example i.e. /dev/sdb5 :
# dd if=/dev/zero of=/dev/sdb5 count=10
|
Check the status of LV and find a device is unavailable:
# lvs Couldn't find device with uuid 'XTXw2z-p4LH-MBGd-AeG2-JNGx-r3nz-xz2lEH'. Couldn't find device with uuid 'XTXw2z-p4LH-MBGd-AeG2-JNGx-r3nz-xz2lEH'. LV VG Attr LSize Origin Snap% Move Log Copy% Convert mylv myvg mwi-a- 80.00M mylv_mlog 100.00
|
Mount LV and it is still available:
# mount /dev/myvg/mylv /mnt/
|
Check the status of PVS and find an unknown device:
# pvs Couldn't find device with uuid 'XTXw2z-p4LH-MBGd-AeG2-JNGx-r3nz-xz2lEH
|
Make VG unavailable:
# vgchange -an /dev/myvg Couldn't find device with uuid 'XTXw2z-p4LH-MBGd-AeG2-JNGx-r3nz-xz2lEH'. Couldn't find device with uuid 'XTXw2z-p4LH-MBGd-AeG2-JNGx-r3nz-xz2lEH'. Couldn't find device with uuid 'XTXw2z-p4LH-MBGd-AeG2-JNGx-r3nz-xz2lEH'. /dev/mapper/myvg-mylv_mlog: stat failed: No such file or directory Path /dev/mapper/myvg-mylv_mlog no longer valid for device(253,0) /dev/mapper/myvg-mylv_mimage_0: stat failed: No such file or directory Path /dev/mapper/myvg-mylv_mimage_0 no longer valid for device(253,1) /dev/mapper/myvg-mylv_mimage_1: stat failed: No such file or directory Path /dev/mapper/myvg-mylv_mimage_1 no longer valid for device(253,2) /dev/myvg/mylv: stat failed: No such file or directory Path /dev/myvg/mylv no longer valid for device(253,3) /dev/mapper/myvg-mylv: stat failed: No such file or directory Path /dev/mapper/myvg-mylv no longer valid for device(253,3) Couldn't find device with uuid 'XTXw2z-p4LH-MBGd-AeG2-JNGx-r3nz-xz2lEH'. 0 logical volume(s) in volume group "myvg" now active
|
Recover the destroyed PV:
# pvcreate --uuid 'XTXw2z-p4LH-MBGd-AeG2-JNGx-r3nz-xz2lEH' --restorefile /etc/lvm/archive/myvg_00070.vg /dev/sdb5 Couldn't find device with uuid 'XTXw2z-p4LH-MBGd-AeG2-JNGx-r3nz-xz2lEH
|
Restore the VG's metadata:
# vgcfgrestore /dev/myvg Restored volume group myvg
|
Check the status of LV and find the destroyed mirror is normal, but the LV is unavailable:
# lvs -a -o +devices LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices mylv myvg mwi--- 80.00M mylv_mlog mylv_mimage_0(0),mylv_mimage_1(0) [mylv_mimage_0] myvg Iwi--- 80.00M /dev/sdb5(0) [mylv_mimage_1] myvg Iwi--- 80.00M /dev/sdb6(0) [mylv_mlog] myvg lwi--- 4.00M /dev/sdb7(0)
|
Make the LV available:
# lvchange -ay /dev/myvg/mylv
|
Check the status of LV again and find the LV is available:
# lvs -a -o +devices LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices mylv myvg mwi-a- 80.00M mylv_mlog 100.00 mylv_mimage_0(0),mylv_mimage_1(0) [mylv_mimage_0] myvg iwi-ao 80.00M /dev/sdb5(0) [mylv_mimage_1] myvg iwi-ao 80.00M /dev/sdb6(0) [mylv_mlog] myvg lwi-ao 4.00M /dev/sdb7(0)
|
Mount LV and find it is available:
# mount /dev/myvg/mylv /mnt/ # umount /mnt
|
阅读(1660) | 评论(0) | 转发(0) |