公司某台AWS服务器采用LVM管理卷,然后运维不知道的情况下错误的按照了AWS官方的扩展教程,把LVM搞坏了,征兆是物理卷无法识别,卷组和逻辑卷信息也丢失。先试试pvscan扫描一下物理卷:
[root@ip-10-0-0-108 ~]# pvscan No matching physical volumes found
找不到任何物理卷,试试直接恢复卷组配置:
[root@ip-10-0-0-108 backup]# vgcfgrestore --file /etc/lvm/backup/vg vg Couldn't read volume group metadata. Restore failed.
cat看一下这个文件内容,里面给出了物理卷的UUID,然后试着在 /dev/disk/by-uuid/ 下找,根本没有这个物理卷。那么试试重建物理卷吧,希望运维的操作没把物理卷文件系统的信息给破坏掉,
[root@ip-10-0-0-108 ~]# cd /etc/lvm/archive[root@ip-10-0-0-108 archive]# pvcreate --uuid "o3fgcd-7VRd-1B70-CDRY-4Wye-0th8-Ea3FlI" --restorefile vg_00002-1761373269.vg /dev/xvdb Couldn't find device with uuid o3fgcd-7VRd-1B70-CDRY-4Wye-0th8-Ea3FlI. Physical volume "/dev/xvdb" successfully created
再试试pvscan,这下有结果了:
[root@ip-10-0-0-108 archive]# pvscan PV /dev/xvdb lvm2 [100.00 GiB] Total: 1 [100.00 GiB] / in use: 0 [0 ] / in no VG: 1 [100.00 GiB]
刚才重建物理卷的时候指定了卷组的配置信息,试试逻辑卷和卷组是否也跟着恢复过来了:
[root@ip-10-0-0-108 archive]# lvscan No volume groups found[root@ip-10-0-0-108 archive]# vgscan Reading all physical volumes. This may take a while... No volume groups found
唔,那看看物理卷的信息:
[root@ip-10-0-0-108 archive]# pvdisplay "/dev/xvdb" is a new physical volume of "100.00 GiB" --- NEW Physical volume --- PV Name /dev/xvdb VG Name PV Size 100.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID o3fgcd-7VRd-1B70-CDRY-4Wye-0th8-Ea3FlI
再试试从配置信息里恢复卷组:
[root@ip-10-0-0-108 archive]# cd ../backup[root@ip-10-0-0-108 backup]# vgcfgrestore vg Restored volume group vg
恢复成功了,再看看卷组和逻辑卷信息:
[root@ip-10-0-0-108 backup]# vgscan Reading all physical volumes. This may take a while... Found volume group "vg" using metadata type lvm2[root@ip-10-0-0-108 backup]# lvscan inactive '/dev/vg/lv_va' [49.99 GiB] inherit
都对了,挂载上去看看:
[root@ip-10-0-0-108 backup]# mount /dev/vg/lv_va /vol-meetingmount: you must specify the filesystem type
看来mount无法识别出卷的文件系统,这是卷没有被激活引起的,先看看卷的属性:
[root@ip-10-0-0-108 backup]# lvs -a -o +devices LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert Devices lv_va vg -wi------ 49.99g /dev/xvdb(0)[root@ip-10-0-0-108 backup]# lvchange -ay /dev/vg/lv_va[root@ip-10-0-0-108 backup]# lvs -a -o +devices LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert Devices lv_va vg -wi-a---- 49.99g /dev/xvdb(0)
激活了,再来挂载,成功了,文件也都还在。之后就进行了扩容操作,扩容操作网上一搜一大堆就不写了。
原文地址:使用LVM进行灾难恢复, 感谢原作者分享。 世界上那些最容易的事情中,拖延时间最不费力。