远程linux服务器到远程linux服务器大型稀疏文件复制 – 如何?

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

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

由于文件非常大(50 GB),vm的文件很难复制,但是由于它们是稀疏文件,我认为可以通过某些方法来提高复制的速度。

Solutions Collecting From Web of "远程linux服务器到远程linux服务器大型稀疏文件复制 – 如何?"

如果你想快速复制大量数据,通过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 - 

你有没有尝试rsync选项--sparse (可能通过SSH)?

man rsync

    尝试有效地处理稀疏文件,使其占用较少
    目的地上的空间。 与 - 因为它的冲突
    不可能以稀疏的方式覆盖数据。

你可以看看http://www.barricane.com/virtsync

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

由于rsync在复制稀疏文件时速度非常慢,所以我通常使用tar通过ssh

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