Copie archivos remotos en nfs sin ida y vuelta

10

Tengo una gran cantidad de datos (varios GB) en una unidad remota, que se monta de forma transparente a través de nfs. Me gustaría copiar estos archivos en un subdirectorio de donde ya residen, para que todo permanezca en el mismo disco físico. Por esa razón, me gustaría evitar un viaje de ida y vuelta innecesario a través de la red.

Parece que cp files* subdirhace lo ingenuo y lee todos los datos en la memoria y luego los vuelve a escribir. ¿Es eso cierto? ¿Existe un comando especial que realice la copia real por completo en el servidor al que está conectado físicamente el disco?

jdm
fuente
¿Te refieres a copiar (como en cp) o mover (como en mv)? Si mueve los archivos, no veo por qué debería haber algún viaje de ida y vuelta.
Kusalananda
Me refiero a una copia adecuada (cp).
jdm

Respuestas:

13

Parece que cp files * subdir hace lo ingenuo y lee todos los datos en la memoria y luego los vuelve a escribir. ¿Es eso cierto?

Si.

¿Existe un comando especial que realice la copia real por completo en el servidor al que está conectado físicamente el disco?

No, a menos que pueda iniciar sesión en la máquina remota con ssh y copiar allí.

EDITAR Se está trabajando para agregar "copia del lado del servidor" al protocolo NFS versión 4.2 (la actual es 4.1). Ver, por ejemplo, http://www.usenix.org/events/fast11/posters_files/Lentini.pdf . Tenga en cuenta que usar esta función requeriría a) clientes y servidores NFS que lo admitan b) una nueva llamada al sistema para el sistema operativo del cliente (¿tal vez reflink o copyfile ()?) C) soporte para usar la nueva llamada al sistema en las utilidades habituales (cp, rsync , etc.) Supongo que pasarán al menos varios años antes de que todo esto salga a la luz.

janneb
fuente
Demasiado. Creo que AFS admite esto, y parece que alguien implementó un parche para NFS para incluirlo: lsub.org/who/nemo/nfscp.html
jdm
1
@jdm: Hay algo de trabajo en esta área, vea mi edición. Quizás en el futuro ..
Janneb