这是个很奇怪的例子。公司用的是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也被建立在某个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
comments powered by Disqus