镜像包含数百万个小文件的目录的最快方法

镜像包含数百万个小文件的目录的最快方法

我需要将一个 700G ISCSI 挂载文件夹复制到本地硬盘上的文件夹中,同时保持现有的权限和所有权。文件夹中的数据由大约一百万个文件组成,其中大部分是小文件,新目录需要与原始目录的权限和所有权完全匹配。

使用 rsync -az /original_folder/ /new_folder 可以获得所有正确的权限,但“扫描文件”已经花了一个多小时,甚至还没有开始复制。数据是 openvz 磁盘共享,过去使用“cp”复制时出现过权限问题。

有没有一种更快的方法来复制大量小文件,同时准确保留权限和所有权?也许一些 rsync 标志可以避免初始扫描?理想情况下,如果进程中断,可以使用一种可以从上次中断的地方继续的工具。

答案1

您是否考虑过使用 tar? 类似tar -cpOC <sourcedir> . | tar -xpC <targetdir> -f -“可能”的命令对您有用。

答案2

你使用的 rsync 是什么版本?版本 3 处理小文件的效果好得多。你还可以使用 -P 来了解进度。

至于从部分恢复.. hrm。您可以进入根目录并运行类似...的命令。

对于 i in * ; 执行 rsync -azP $i /newfolder ; 完成

然后跳过所有已经复制的子目录

答案3

在这种情况下,您可能应该尝试复制卷而不是尝试复制单个文件。

您的 iSCSI 目标是否有办法克隆卷?

答案4

cp -aux(作为 root)应该可以解决问题。

相关内容