如何提高增量备份性能?

我正在使用传统的rsync + cp -al方法来创build我们的服务器树的增量/快照备份。 备份将通过四个eSATA连接(每个连接四个磁盘)连接到一对连接备份机器(一台配备16 GB RAM的Sandy Bridge机器,运行CentOS 5.5)的八个磁盘塔上。 每个磁盘是一个普通的2TB磁盘,所以我们有32TB的磁盘空间连接到备份机器。 我们用这个备份了大约20TB的数据。

问题是每个日常备份需要24小时以上,真正的时间杀手不是实际的rsync,而是在备份机器上本地执行树的cp -al所需的时间。 为了制作树的影子副本需要花费超过12个小时,并且据我所知,性能积压是在磁盘上(顶部显示的是使用大量RAM但不是很多CPU的cp,而且大部分是不可中断的睡眠状态)

我们将服务器数据分成四个主要卷(和一些小的卷),并且每个备份都并行运行(在cron中有一些偏移量以便首先完成某些磁盘的cp)。 备份驱动器上有两个卷,每个都有16 TB的条带化LVM卷。

所以显然我需要提高性能,因为它是不可用的。

第一个问题是:当CentOS 6发布时,支持btrfs,将会使用btrfs创build子卷的快照大大提高了性能?

第二个是:有没有办法在CentOS 5或6中支持ext3或其他东西来“鼓励”它将目录/ inode放在一个卷的一部分中(这可能是SSD上的一部分,通过LVM)和在另一个文件? 这大概会解决问题,但我不知道如何提示ext3。

您可以尝试使用--link-dest和相关选项,而不是使用cp -al跟踪rsync 。 有关详细信息,请参阅此手册页和教程 。

你可以通过closuresext3的日志来获得一些额外的速度,但我不build议这样做,因为如果更新过程中出现问题,它会增加备份损坏的可能性。

如果你的备份包含有很多文件的目录,那么你可能会发现重新格式化为ext4,或者使用ext3的dir_index选项可能会改善 – 但是在这两种情况下,你都可能需要重新格式化才能看到全部好处,只需用新选项重新装入文件系统将不会转换任何现有的结构。

考虑使用rdiff-backup而不是rsync + cp。 它自动处理旧的文件副本,所以你不需要cp。

从rdiff-backup页面:

“目标目录结束了源目录的副本,但额外的反向差异存储在目标目录的特殊子目录中,因此您仍然可以恢复前一段时间丢失的文件。”