LVM卷必须备份metadata
这是个反面教材。在京东数科的时候用的是kvm的虚机系统,同事追求更快,文件镜像用的是raw分区,里面装了lvm。 grub的启动文件如下: kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_root-lvroot rd_NO_LUKS rd_LVM_LV=vg_root/lvroot LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 console=ttyS0,115200n8 rd_LVM_LV=vg_root/lvswap KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet rd_NO_DM 看上面,root也被建立在lvroot的lvm卷上了。 然后就遇到了断电,导致kvm挂掉了,悲催的是lvm卷被破坏了,用尽办法也弄不出来卷信息。因为lvm的metadata没有备份。 数据全丢,无法恢复,杯具了。 综上LVM的metadata必须备份,方法如下: vgcfgbackup /etc/lvm/backup/VolGroup是当前lvm配置的一个备份,而/etc/lvm/archive是归档。 看看归档: ls -l /etc/lvm/archive/* -rw-------. 1 root root 1820 Jun 12 2015 /etc/lvm/archive/VolGroup_00000-444365108.vg 恢复方法: vgcfgrestore 具体恢复的步骤: 首先查看blkid,看看硬盘分区的UUID blkid /dev/mapper/VolGroup-LogVol01: UUID="d6d24cc3-5e4a-4f4d-a0b1-2524e727b0fe" TYPE="ext4" /dev/sda1: UUID="3d0103ac-1b18-4da5-bc20-4b7a980a55c0" TYPE="ext4" /dev/sda2: UUID="i5Cd6V-IVHN-e694-o9CQ-OZJe-zvt0-AhUBLq" TYPE="LVM2_member" /dev/mapper/VolGroup-LogVol00: UUID="06fe7af0-dee5-494a-9b5b-11bf95244acd" TYPE="swap" 查看lvm信息,找出里面所有物理卷的UUID: less /etc/lvm/archive/VolGroup_00000-444365108.vg ... physical_volumes { pv0 { id = "i5Cd6V-IVHN-e694-o9CQ-OZJe-zvt0-AhUBLq" device = "/dev/sda2" # Hint only ... 首先恢复所有的pv,物理卷,这里我们就一个物理卷,所以执行一次,如果有多个物理卷,一个一个来即可 pvcreate --uuid "i5Cd6V-IVHN-e694-o9CQ-OZJe-zvt0-AhUBLq" \ --restorefile /etc/lvm/archive/VolGroup_00000-444365108.vg 物理卷恢复完了,再恢复lv,逻辑卷: vgcfgrestore -f /etc/lvm/archive/VolGroup_00000-444365108.vg VolGroup 弄完后vgdisplay查看一下: vgdisplay --- Volume group --- VG Name VolGroup System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 9 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 1.64 TiB PE Size 4.00 MiB Total PE 428705 Alloc PE / Size 428705 / 1.64 TiB Free PE / Size 0 / 0 VG UUID 3h3yik-kmqP-Q8sC-5bn0-cwtw-SXpo-orMlKn 就恢复成功了。 ...