备份 – 备份Xen域

前端之家收集整理的这篇文章主要介绍了备份 – 备份Xen域前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在开发Xen备份系统,但是我遇到了以下问题:

我有两种备份方法

>从LVM快照执行dd,并对其进行定位,并远程进行rsync
>将LVM快照和rsync安装到远程位置

现在第二个选项允许我使用rdiff-backup所以我可以节省增量备份并节省大量空间,而第一个选项实际上是存储量很大.

现在,我有两个问题:

>使用dd时有没有办法没有’空白’?假设我有一个50GB的LVM卷,只使用了3 GB,当使用dd时,它将创建一个50 GB的图像(因此浪费了47 GB). tar可以解决这个问题,但需要花费很多额外的时间(我基本上没有)
>这些由dd创建的img文件能以某种方式逐步保存吗?

解决方法

压缩空白区域

让我们从快照中回归基础.首先,我将要求您查看为什么要使用一个文件.停下来想想tar会做些什么以及你为什么这样做.

$dd if=/dev/zero of=zero bs=$((1024*1024)) count=2048
2048+0 records in
2048+0 records out
2147483648 bytes transferred in 46.748718 secs (45936739 bytes/sec)
$time gzip zero

real    1m0.333s
user    0m37.838s
sys     0m1.778s
$ls -l zero.gz
-rw-r--r--  1 user  group  2084110 Mar 11 16:18 zero.gz

鉴于此,我们可以看到压缩为我们提供了大约1000:1的空间空间优势.无论系统支持稀疏文件,压缩都有效.还有其他算法可以将其收紧,但对于原始整体性能,gzip获胜.

Unix实用程序和稀疏文件

鉴于系统支持稀疏文件,dd有时可以选择保存空间.奇怪的是,我的mac包含一个带有conv =稀疏标志的dd版本,但HFS文件系统不支持它.相反,我用于测试的新的Debian安装支持ext4中的稀疏文件,但是dd的安装没有标志.去搞清楚.

因此,另一个练习:

我将/ dev / zero复制到一个与上面相同的文件中.由du,df和ls确认,文件系统占用了2G的空间.然后我在它上面使用了cp,发现自己有2个文件,使用4GB的空间.所以,是时候尝试另一面旗帜了:

`cp --sparse=always sparse sparse2`

使用它强制cp采用常规文件,并在看到一长串零时使用稀疏分配.现在我有2个文件据报道,根据ls占用4GB,但根据du和df仅占2GB.

既然我有一个稀疏文件,cp会表现吗?是. cp sparse2稀疏导致ls显示每个文件占用2GB的空间,但du显示它们占用文件系统上的零块.结论:一些实用程序会尊重已经稀疏的文件,但大多数都会将整个文件写回来.即使cp也不知道将写入的文件转回稀疏,除非你强行尝试.

接下来,我创建了一个1MB的文件并将其作为稀疏条目,然后尝试在vim中编辑它.尽管只输入了几个字符,但我们又回到了使用整个事物.快速搜索发现类似的演示:https://unix.stackexchange.com/questions/17572/what-is-the-interaction-of-the-rsync-size-only-and-sparse-options

稀疏的结论

所以我的想法是这样的:

>使用LVM快照
>针对快照运行zerofree
>使用rsync -S复制稀疏文件
>如果您无法使用rsync,请在您通过网络传输时快照gzip快照,然后对未展开的图像运行cp –sparse = always以创建稀疏副本.

差异备份

在块设备上使用差异备份的问题是,事物可能会移动一些并产生大量难以处理的差异. StackOverflow上有一些讨论:https://stackoverflow.com/questions/4731035/binary-diff-and-patch-utility-for-a-virtual-machine-image得出结论,最好用的是xdelta.如果您要这样做,请再次尝试将空白空间清空.

原文链接:/linux/399334.html

猜你在找的Linux相关文章