远程linux服务器到远程linux服务器大型稀疏文件拷贝 - 如何?

时间:2009-12-11 08:24:36

标签: linux copy large-files virtual-machine sparse-matrix

我有两个双胞胎CentOS 5.4服务器,每个服务器都安装了VMware Server。

假设我总是将稀疏文件用于我的vmware虚拟机,那么将虚拟机文件从一台服务器复制到另一台服务器的最可靠,最快速的方法是什么?

vm的文件很难复制,因为它们非常大(50 GB),但由于它们是稀疏文件,我认为可以采取一些措施来提高复制速度。

4 个答案:

答案 0 :(得分:5)

如果您想快速复制大数据,通过SSH rsync不适合您。由于运行rsync守护进程进行快速一次性复制也是一种过度杀伤,你可以按照以下方式执行tarnc

创建将通过网络提供文件的流程:

tar cSf - /path/to/files | nc -l 5000

请注意,检查稀疏文件可能需要tar很长时间,因此暂时看不到任何进展是正常的。

并在另一端接收以下文件:

nc hostname_or_ip 5000 | tar xSf -

或者,如果您想获得所有想象力,请使用pv显示进度:

tar cSf - /path/to/files \
   | pv -s `du -sb /path/to/files  | awk '{ print $1 }'` \
   | nc -l 5000

稍等片刻,直到看到pv报告某些字节已经过去,然后在另一端启动接收器:

nc hostname_or_ip 5000 | pv -btr | tar xSf -

答案 1 :(得分:2)

您是否尝试使用--sparse选项rsync(可能超过ssh)?

来自man rsync

    Try  to  handle  sparse  files  efficiently so they take up less
    space on the destination.  Conflicts with --inplace because it’s
    not possible to overwrite data in a sparse fashion.

答案 2 :(得分:0)

您可以查看http://www.barricane.com/virtsync

(免责声明:我是作者。)

答案 3 :(得分:0)

由于rsync在复制稀疏文件方面非常慢,我通常使用tar而不是ssh

tar Scjf - my-src-files | ssh sylvain@my.dest.host tar Sxjf - -C /the/target/directory