在nfs上复制远程文件而无需往返


10

我在通过nfs透明安装的远程驱动器上有大量数据(几个GB)。我想将这些文件复制到它们已经驻留的子目录中,以便所有内容都保留在同一物理磁盘上。因此,我想避免不必要的网络往返。

看起来这很cp files* subdir幼稚,然后将所有数据读入内存,然后将其写回。真的吗?是否有一个特殊命令可以完全在磁盘物理连接到的服务器上进行实际复制?


您是指复制(如cp)还是移动(如mv)?如果您移动文件,我不知道为什么应该进行任何往返操作。
Kusalananda 2011年

我的意思是适当的副本(cp)。
2011年

Answers:


13

看来cp files * subdir做的是天真的事情,并将所有数据读入内存,然后将其写回。真的吗?

是。

是否有一个特殊命令可以完全在磁盘物理连接到的服务器上进行实际复制?

不可以,除非您可以使用ssh登录到远程计算机并在那里进行复制。

编辑正在进行一些工作以将“服务器端副本”添加到NFS协议版本4.2(当前为4.1)。参见例如http://www.usenix.org/events/fast11/posters_files/Lentini.pdf。请注意,然后使用此功能将需要a)支持它的NFS客户端和服务器b)客户端OS的新syscall(可能是reflink或copyfile()?)c)支持在常规实用程序(cp,rsync)中使用新的syscall等)。我猜这至少要等到几年后才能看到。


太糟糕了。我认为AFS支持此功能,并且好像有人实施了NFS的补丁程序来包含它:lsub.org/who/nemo/nfscp.html
jdm 2011年

1
@jdm:这方面有一些工作,请看我的编辑。也许在将来..
janneb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.