LVM2逻辑卷的备份

LVM2逻辑卷的备份

我想以这种dd方式在 LVM2 逻辑卷的外部驱动器上进行备份。

我考虑的方法是

  • 在外部驱动器上制作具有相同大小的 lv
  • 复制与dd

(如果您发现这种方法确实有问题,请告诉我。我需要可靠且快速的东西。)

我想使整个过程自动化;这就是我所拥有的:

# Sanity check that lv is not used
lvuses="$( lvdisplay -c /dev/mapper/vgA-AA | cut -d ':' -f 6 )"
if [ $lvuses -gt 0 ]; then exit 1 ; fi
#obtain lv size (in sectors)
lvsize="$( lvdisplay -c /dev/mapper/vgA-AA | cut -d ':' -f 7 )"
#create destination
lvcreate -L "${lvsize}s" vgB -n BB || exit 1
# copy
dd if=/dev/mapper/vgA-AA of=/dev/mapper/vgB-BB

没关系?我错过了什么吗?

(在我的例子中,vgA-AA是LVM快照,我想将其备份到外部驱动器并将该驱动器带到其他地理位置)

答案1

您的脚本看起来不错,但我会使用不同的方法:创建一个镜像,然后破坏它。据我所知,您可以在线完成此操作。未经测试:

lvconvert -m /dev/mapper/vgA-AA /dev/sdz98 /dev/sdz99
lvconvert --splitmirrors 1 --name BB /dev/mapper/vgA-AA

如果您想将新的逻辑卷移动到不同的卷组,我认为您必须确保要发送的 LV 位于其自己的物理卷上,并将 PV 从一个 VG 转移到另一个与vgsplit.

答案2

不要使用dd.它是一种愚蠢的动物,会复制卷中的所有内容,包括可用空间,并产生与原始文件系统具有相同 UUID 的文件系统,这可能会混淆系统。相反,请使用像partcloneGhost4linux 这样的工具,或者fsarchiver可以将系统复制到压缩映像文件并跳过空闲块的工具。

答案3

  • 挂载外部磁盘
  • 停止应用程序
  • 检查文件系统是否未使用($ sudo fusion -M /path/to/filesystem/mountpoint)
  • 创建快照($ sudo lvcreate -s ......)
  • 开始申请
  • 使用 rsync 进行备份(检查 man rsync 的 --update 和 --link-dest)
  • 或检查http://dirvish.org或者http://backuppc.sourceforge.net/用于实施
  • 卸载外部磁盘
  • 删除快照 LV 此过程会在每个备份的外部磁盘上创建一个目录。它仅从源磁盘复制已更改/新文件,并通过在备份之间硬链接重复文件来节省空间。

答案4

可靠且快速。我会推荐 LVM 快照。

它的速度非常快,您可以保证备份在备份过程中不会发生任何文件更改。另外,如果您的卷上有数据库,则无需将其脱机。

这也是测试音量变化的好方法。对其进行快照,进行更改,但您无法将快照合并回来。如果成功,您将删除快照。

编辑:代码

lvcreate -L 10G -s -n snapshot /dev/VG/LV

然后将快照卷备份到您想要的任何位置。

对于文件系统测试,您可以快照并合并回来。

lvconvert --merge /dev/VG/snapshot

此合并将自动删除快照卷。

笔记:快照需要kernel version 2.6.33 or newerLVM tools 2.02.58 or newer

编辑。链接:

TLDP:使用快照进行备份

HowtoForge:使用 LVM 快照备份和恢复分区

Cyber​​citi:使用 LVM 快照进行一致备份

相关内容