快速进行大型文件系统备份

快速进行大型文件系统备份

/home 上挂载了一个文件系统,有 2.6PB 的存储空间。目前,/home目录下散布着300TB+的数据。我打算备份整个 300TB+ 数据以日常的方式到/home/fs_backup,但我发现以下命令tar非常慢:

cd /home/fs_backup && tar -cpf backup.tar.gz  --exclude="/home/fs_backup" --one-file-system "/home"

我估计它只能产生10GB/min,这意味着24小时内无法备份整个300TB+的数据。知道如何在 /home 下“复制”当前数据,无论它是否压缩良好 - 或者甚至根本没有压缩 - 或者不是在短时间内。多谢。

答案1

由于您已经确定无法在规定的 24 小时内备份全部 300GB 量,因此您需要检查您的要求。

star在文件级别,诸如、duplicity、甚至rsync/之类的增量工具rsnapshot可能仍需要一天以上的时间来创建基本备份,但之后它应该会快得多。显然,这取决于每个 24 小时备份周期内更改的文件的数量和大小。

在文件系统级别,快照可能足以满足您的需求(尽管这并不是真正的备份),特别是您可以随意从快照中进行真正的备份,而不必过多考虑完成备份所需的时间。和以前一样,一旦建立了基本备份,您的增量备份可能需要相当少的时间来生成。

您尚未指定如何存储备份,但对于许多小型文件来说,类似的内容rsnapshot可能很合适。 (我将它用于许多内部文件服务器的基于文件的备份,因为它允许我们轻松访问单个文件以进行恢复。)

顺便说一句,备份到同一主机上的另一个磁盘实际上不应被视为安全备份。完全备份到不同的主机会好得多。 (如果/home/fs_backup是从不同服务器进行远程安装,请认真考虑使用duplicityrsync/rsnapshot直接与远程主机通信,而不是通过远程安装的文件系统。)

答案2

我所知道的最快的备份方法是使用star(请参阅 参考资料中该程序的最新版本schilytools),因为该程序实现了一个任意大小的环形缓冲区,该缓冲区位于文件系统进程和执行归档 I/O 的另一个进程之间。如果以正确的方式选择了 FIFO 大小,则几乎所有文件都可以使用单个read()系统调用来读取,这使得它(连同其优化的代码)非常快。

该环形缓冲区被调用FIFO并默认使用8MB,但可以被告知使用任何大小。最大有用值为RAM机内用量的一半。

star还支持工作增量转储,我建议先进行完整转储,然后再进行增量转储,以在最后阶段需要很少时间的方式保存文件系统的内容。

您可能想查看手册页:http://schilytools.sourceforge.net/man/man1/star.1.html

请注意,本手册页建议不要从实时文件系统进行备份,而是从snapshot文件系统级别进行备份。

相关内容