远程linux服务器到远程linux服务器大型稀疏文件复制 - 如何?
我有两台装有VMware Server的双胞胎CentOS 5.4服务器。远程linux服务器到远程linux服务器大型稀疏文件复制 - 如何?
假设我总是对我的VMware虚拟机使用稀疏文件,将虚拟机文件从一台服务器复制到另一台服务器的最可靠和最快速的方法是什么?
由于vm的文件非常大(50 GB),因此它们很难复制,但由于它们是稀疏文件,我认为可以采取一些措施来提高复制速度。
您是否试过rsync与选项--sparse
(可能通过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.
如果你想快速复制大量数据,rsync
通过SSH是不适合你。由于运行一个rsync
守护进程以进行快速一次性复制也是一种矫枉过正的行为,因此您可以按照以下步骤操作谜题:tar
和nc
。
创建,这将有助于在网络文件的过程:
tar cSf - /path/to/files | nc -l 5000
注意,它可能需要tar
很长的时间来检查稀疏文件,所以这是正常的,看到一段时间内没有进展。
并在另一端的下面接收文件:如果你想获得的所有花哨,使用pv
显示进度
nc hostname_or_ip 5000 | tar xSf -
另外,:
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 -
感谢您的代码片段 - 非常有用,scp是愚蠢的慢:) – pahoughton 2014-04-29 21:19:33
@pahoughton,没问题,很高兴成为帮助:) – mrts 2014-06-23 13:13:21
由于rsync
是在复制稀疏文件非常慢,我通常会诉诸使用tar
超过ssh
:
tar Scjf - my-src-files | ssh [email protected] tar Sxjf - -C /the/target/directory
注意:海报问及CentOS机器,因此可能不需要Solaris破解位。 – 2009-12-11 08:49:36
真(删除那一点),好点。 – ChristopheD 2009-12-11 08:51:10
请注意,在复制稀疏文件时,rsync非常慢。 – 2013-07-16 19:29:33