5

LVM卷必须备份metadata

 7 months ago
source link: https://bajie.dev/posts/20240116-lvm_metadata/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

LVM卷必须备份metadata

2024-01-16 2 分钟阅读

这是个反面教材。在京东数科的时候用的是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

就恢复成功了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK