在上一篇文章中,我提到了我买了一台新的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 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注