lvm官方支持的元数据级备份恢复机制是vgcfgbackup和vgcfgrestore,不依赖文件系统、不中断服务,只要物理卷未被覆盖即可精准还原卷组结构。

直接用 vgcfgbackup 备份,用 vgcfgrestore 恢复——这是 LVM 官方支持的元数据级备份恢复机制,不依赖文件系统、不中断服务,只要物理卷没被覆盖,就能精准还原卷组结构。
备份卷组配置信息
运行
vgcfgbackup vg_name即可完成在线备份,比如:vgcfgbackup centos或vgcfgbackup vg_data
默认保存到/etc/lvm/backup/vg_name,权限为600(仅 root 可读)若需备份所有卷组,加
-a参数:vgcfgbackup -aLVM 还会自动存档历史版本:每次 VG 变更(如 lvcreate、vgreduce)都会在
/etc/lvm/archive/下生成带时间戳的.vg文件,例如vg_data_00001-123456789.vg
验证备份是否有效
检查文件存在且非空:
ls -l /etc/lvm/backup/vg_name→ 确保大小 > 0,修改时间匹配操作时刻确认是文本格式:
file /etc/lvm/backup/vg_name→ 应显示ASCII text查看头部标识:
head -n 3 /etc/lvm/backup/vg_name→ 首行应含contents = "Text Format Volume Group"
恢复误删或损坏的卷组
先确认物理卷仍可识别:
pvscan应列出对应 PV(如/dev/sdb2),说明底层设备完好列出可用备份(尤其历史版本):
vgcfgrestore --list vg_name
输出中会显示每个备份的描述和时间,例如:Description: Created *before* executing 'lvremove'优先用
--test验证再执行:vgcfgrestore --test -f /etc/lvm/archive/vg_name_00001-xxx.vg vg_name
无报错才继续下一步执行恢复(指定文件则从 archive 恢复;不指定
-f则默认用/etc/lvm/backup/下最新版):vgcfgrestore -f /etc/lvm/archive/vg_name_00001-xxx.vg vg_name激活卷组并重建设备节点:
vgchange -ay vg_name
此时lvs应重新列出逻辑卷挂载前建议只读验证(特别是 XFS):
mount -o ro /dev/vg_name/lv_name /mnt/test
检查关键文件是否存在、内容是否正常,确认后再以读写方式挂载
提升备份可靠性的小动作
把
/etc/lvm/backup/和/etc/lvm/archive/加入日常备份(如 rsync 到远程主机或 tar.gz 归档)在执行
vgreduce、lvremove、lvresize等高危操作前,强制再运行一次vgcfgbackup vg_name不要手动编辑
/etc/lvm/cache或.cache文件——它们是运行时缓存,无法用于恢复
不复杂但容易忽略











