备份 – 备份Xen域
我目前正在开发Xen备份系统,但是我遇到了以下问题:
我有两种备份方法: >从LVM快照执行dd,并对其进行定位,并远程进行rsync 现在第二个选项允许我使用rdiff-backup所以我可以节省增量备份并节省大量空间,而第一个选项实际上是存储量很大. 现在,我有两个问题: >使用dd时有没有办法没有’空白’?假设我有一个50GB的LVM卷,只使用了3 GB,当使用dd时,它将创建一个50 GB的图像(因此浪费了47 GB). tar可以解决这个问题,但需要花费很多额外的时间(我基本上没有) 解决方法
压缩空白区域
让我们从快照中回归基础.首先,我将要求您查看为什么要使用一个文件.停下来想想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快照 差异备份 在块设备上使用差异备份的问题是,事物可能会移动一些并产生大量难以处理的差异. StackOverflow上有一些讨论:https://stackoverflow.com/questions/4731035/binary-diff-and-patch-utility-for-a-virtual-machine-image得出结论,最好用的是xdelta.如果您要这样做,请再次尝试将空白空间清空. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |