在上一篇文章中,我提到了我买了一台新的NAS服务器。那么,我就需要在当前NAS不停机的情况下,把里面的文件给复制出来。
为什么要复制出来?因为我要把新的硬盘换到老的NAS上,新的NAS插老的硬盘做冷存储。这就得把旧NAS运行的服务依赖的文件复制到新的硬盘里面,而这些文件里面有很多小文件,复制速度就非常非常感人。
方案1:NFS + CP
这个方案是最简单的方案,只需要把新的NAS启动,在老的NAS上挂载NFS盘,然后使用cp命令直接复制就好了。然而cp命令没有进度条,复制的又贼慢,所以就放弃了。
方案2: NFS + Rsync
使用Rsync代替cp,就有复制的进度条了。然而这个方案也很慢。不仅慢,而且有性能问题——速度一会快一会慢,有时候还会卡死。
方案3: 直接Rsync
直接使用rsync而使用nfs,就能减少一层封装,理论上能够更快。然而并不是这样,直接使用rsync是走ssh的,走ssh就意味着要加密,然后新的nas的cpu性能确实捉急,复制大文件最多也就10M每秒,还把CPU占满了。
方案4: Netcat + tar
直接在目标端输入:
nc -l -p 5000 | tar xvf -
然后在源端输入:
tar cf - . | nc [ip] 5000
就可以把文件夹下的文件复制到另一边去了。
这个方案的小文件性能还不错,能有差不多10M/s,而大文件也能达到40~50M/s,基本上满足我的要求了。
0 条评论