Salin file jarak jauh di nfs tanpa pulang pergi

10

Saya memiliki jumlah data yang besar (beberapa GB) pada drive jarak jauh, yang dipasang secara transparan melalui nfs. Saya ingin menyalin file-file ini ke subdirektori di mana mereka sudah berada, jadi semuanya tetap pada disk fisik yang sama. Untuk alasan itu, saya ingin mencegah perjalanan bolak-balik yang tidak perlu melalui jaringan.

Tampaknya cp files* subdirmelakukan hal yang naif dan membaca semua data ke dalam memori dan kemudian menulisnya kembali. Benarkah itu? Apakah ada perintah khusus yang melakukan penyalinan sepenuhnya pada server yang terhubung dengan disk secara fisik?

jdm
sumber
Apakah maksud Anda menyalin (seperti dalam cp), atau memindahkan (seperti dalam mv)? Jika Anda memindahkan file, saya tidak melihat mengapa harus ada yang bolak-balik.
Kusalananda
Maksud saya salinan yang tepat (cp).
jdm

Jawaban:

13

Tampaknya file cp * subdir melakukan hal yang naif dan membaca semua data ke dalam memori dan kemudian menulisnya kembali. Benarkah itu?

Iya.

Apakah ada perintah khusus yang melakukan penyalinan sepenuhnya pada server yang terhubung dengan disk secara fisik?

Tidak, kecuali Anda dapat masuk ke mesin jarak jauh dengan ssh dan melakukan penyalinan di sana.

EDIT Ada beberapa pekerjaan yang terjadi untuk menambahkan "salinan sisi server" ke protokol NFS versi 4.2 (saat ini 4.1). Lihat misalnya http://www.usenix.org/events/fast11/posters_files/Lentini.pdf . Perhatikan bahwa menggunakan fitur ini akan memerlukan a) NFS klien dan server yang mendukungnya b) syscall baru untuk OS klien (mungkin reflink atau copyfile ()?) C) dukungan untuk menggunakan syscall baru dalam utilitas biasa (cp, rsync , dll.). Dugaan saya, setidaknya beberapa tahun sebelum apa pun ini bisa dilihat.

janneb
sumber
Sangat buruk. Saya pikir AFS mendukung ini, dan ini terlihat seperti seseorang menerapkan patch ke NFS untuk memasukkannya: lsub.org/who/nemo/nfscp.html
jdm
1
@ jdm: Ada beberapa pekerjaan di area ini, lihat edit saya. Mungkin di masa depan ..
janneb