Copie arquivos remotos em nfs sem ida e volta

10

Eu tenho uma grande quantidade de dados (vários GB) em uma unidade remota, montada de forma transparente via nfs. Eu gostaria de copiar esses arquivos em um subdiretório de onde eles já estão residindo, para que tudo permaneça no mesmo disco físico. Por esse motivo, gostaria de evitar uma viagem de ida e volta desnecessária pela rede.

Parece que cp files* subdirfaz a coisa ingênua e lê todos os dados na memória e depois os grava de volta. Isso é verdade? Existe um comando especial que faz a cópia real inteiramente no servidor ao qual o disco está fisicamente conectado?

jdm
fonte
Você quer dizer copiar (como em cp) ou mover (como em mv)? Se você mover os arquivos, não vejo por que deve haver qualquer round-trip.
precisa saber é o seguinte
Quero dizer uma cópia adequada (cp).
JDM

Respostas:

13

Parece que os arquivos cp * subdir fazem a coisa ingênua e lê todos os dados na memória e depois os gravam novamente. Isso é verdade?

Sim.

Existe um comando especial que faz a cópia real inteiramente no servidor ao qual o disco está fisicamente conectado?

Não, a menos que você possa fazer login na máquina remota com ssh e fazer a cópia lá.

EDIT: Há algum trabalho em andamento para adicionar "cópia do lado do servidor" à versão 4.2 do protocolo NFS (atual é 4.1). Veja, por exemplo, http://www.usenix.org/events/fast11/posters_files/Lentini.pdf . Observe que o uso desse recurso exigiria a) clientes e servidores NFS que o suportam b) um novo syscall para o SO do cliente (talvez reflink ou copyfile ()?) C) suporte para o uso do novo syscall nos utilitários usuais (cp, rsync etc.). Meu palpite será que levará pelo menos vários anos até que tudo isso veja a luz do dia.

janneb
fonte
Que pena. Eu acho que o AFS suporta isso, e parece que alguém implementou um patch no NFS para incluí-lo: lsub.org/who/nemo/nfscp.html
jdm
1
@ jdm: Há algum trabalho nesta área, veja minha edição. Talvez no futuro ..
20/10/11