btrfs本月在Oracle EL 14上发布产品(连同来自Linux 3.2的fsck和scarbing),我正在考虑重新devise我当前的备份解决scheme以利用它。 请注意,我正在考虑less量的数据,less于10TB,这是相当静态的(不到1%每天更改)。 总之一个SMB / SOHO备份解决scheme。
备份应该做什么:
rsync /将更改的数据传输到备份服务器上的btrfs 优点:
问题:
rsync解决scheme吗? 上周我做了一些类似的search。 我没有find解决办法来做所有4个步骤。 有许多家庭用户的博客尝试使用“ rsync到btrfs ”types的备份,所有主要的Btrfs维基都涵盖了如何执行Btrfs快照。
也有不less人试图用不同的方式来旋转Btrfs快照 。 不过,您是我见过的第一个想要根据磁盘空间旋转快照的人。 我正在玩btrfs-自拍 ,创build一组每小时,每周和每月的快照,而且很好,很简单。
Dirvish项目似乎满足您的许多要求。 有些开发人员正试图将Dirvish和Btrfs结合起来 。 然而, Dirvish项目似乎有点停滞 。
在这个时候,你在曲线之前。
根据Avi Miller(在LinuxConf.AU期间的演讲),btrfs发送/接收正在进行中。 这将比rsync更快,因为它不需要遍历目录来查找文件中的更改..我不知道是否有一个预期的发布date,但尽pipe如此。
但是,有一个内置在btrfs-progs中的实用工具,可以列出每个在快照/ etc之间更改的文件。btrfs subvolume find-new
我正在使用类似于BackupPC的操作系统备份系统。 我曾经想过这个。 什么阻止我实际执行,是你不能硬链接子卷。 您也只能创build子卷的快照 – >每个备份客户机一个子卷。 因此文件级重复数据删除function不能与这种方法共存。 而且这个文件级重复数据删除通常可以节省很多空间。 你想只备份一台服务器吗?
如果btrfs具有块级重复数据删除function,则可能可以避免此问题,但通常速度不够慢
那么这种方法当然需要与一个文件系统(btrfs)紧密集成,所以这应该是一个可选function。
我在问,因为我正在考虑添加这样的奶牛function,但不知道是否应该因为上面列出的缺点。
编辑: UrBackup支持备份在Linux内核> = 3.6(与交叉卷reflink支持)现在的问题中所描述的。 看看如何设置它。
btrfs wiki页面“ Use Cases ”列出了一些工具: SnapBtr ,Snapper,btrfs-time-machine,UrBackup。
有一个名为autosnap的内置工具的build议 :
使用autosnapfunction,您可以将btrfsconfiguration为定期或基于事件的快照,并进一步自动pipe理快照。
Autosnap不仅仅是拍摄快照,而且也是pipe理创build的快照,到目前为止,您可以configuration自动快照删除基于文件系统已用空间的快照。
不过,截至2013年10月,维基指出: “自动快照function目前不包含在上游版本的btrfs中。”
我有类似的挫折,所以我最终创造了一些我叫做snazzer的脚本。 他们一起提供快照,修剪,测量和通过ssh传输(但截至今天也可以发送/从本地文件系统接收)。 度量值只是快照path的sha512sum和PGP签名的报告。 目前尚未准备好发布,但如果有人有时间在早期阶段对其进行审核,我很乐意收到反馈意见。
仅在此时使用CLI,但是我花了一些时间在具有许多btrfs子卷的系统上使用它 – 通常我有单独的/var/cache , /home等子卷,可能需要从中排除快照或具有更多/更less的积极的修剪时间表。
恐怕修剪algorithm纯粹决定是否存在一组快照和它们的date,在满足磁盘使用限制之前,没有什么可以保持修剪的 – 首先删除哪个? 首先减less小时数还是夏季? 也许放弃最古老的,例如。 yearlies? 不同的部署将有不同的优先级; 而且我不知道这是否是唯一的备份层(在这种情况下,如果有法律/保险义务,您不应该丢弃最旧的备份),或者只是中间层(这种情况下,您可能会将这些年份归档到某个安全的地方别处)。
我将在某个时候添加ZFS支持和/或互操作性; 由于现在对“零”依赖的强烈渴望,它主要写在posix-ish shell和perl中,我希望在某个时候可以保持一个更清晰的Python替代实现。