Protokol transfer file mana yang mendukung penyalinan sisi-server?

9

Saya bertanya-tanya protokol transfer file mana yang tersedia di Linux mendukung penyalinan sisi server (dan tidak mengunduh dan mengunggah ulang file secara internal). Kasus penggunaan paling sederhana yang saya miliki adalah untuk menyalin file besar (seperti VM) dari satu direktori ke direktori yang lain di bagian yang sama.

Saya tahu Samba 4.1.0 baru-baru ini mengimplementasikan dukungan untuk FSCTL_SRV_COPYCHUNK dalam protokol SMB2, tetapi sejauh yang saya tahu, belum ada alat / manajer file sisi klien yang mendukung ini ( tautan ). Saya juga telah melihat AFP, tapi hanya dua alat Linux untuk pemasangan saham AFP yang gvfs-afpdan afpfs-ngdan tidak terlalu besar. afpfs-ng tidak terawat dan tidak bekerja sama dengan baik dengan netatalk (segfaults), sementara gvfs-afp memiliki throughput yang sangat rendah dibandingkan dengan afpfs-ng ketika ia bekerja. Pembaruan: sepertinya versi NFS berikutnya mungkin mendukung ini juga.

Apakah ada protokol lain yang mendukung penyalinan sisi server?

Terima kasih sebelumnya!

Andrew Gunnerson
sumber
1
Apakah Anda membutuhkan ini jarang atau sering? Digunakan oleh pengguna operator? Jika jarang atau operator, saya hanya ssh ke mesin
miniBill

Jawaban:

5

Seperti yang Anda catat, AFP mendukung salinan sisi server. Versi terbaru gvfs yang belum dirilis berisi sejumlah perbaikan untuk gvfsd-afp agar lebih andal dan lebih cepat. Dalam pengujian saya, bisa mendapatkan sekitar 70MB / s untuk transfer besar pada 1GBE dan mampu menduplikasi direktori 10.000 file dalam 11 detik yang tidak terlalu buruk. Jika salinan sisi server penting dan Anda tidak ingin masuk ke terminal, inilah yang saya rekomendasikan untuk digunakan.

Kami juga berencana untuk menambahkan dukungan salinan sisi server untuk gvfsd-smb segera, tetapi siapa yang tahu kapan "segera" mungkin ...

(Penafian, saya membantu menjaga gvfs.)

Ross Lagerwall
sumber
Terimakasih banyak! Saya akan mengkompilasi gvfs dari git dan mencobanya. Omong-omong, apakah Anda tahu apakah Samba 4 mendukung salinan sisi server atau apakah itu memerlukan server Windows?
Andrew Gunnerson
Saya baru saja mengkompilasi gvf dari git master ( 232d6d76029dc1cbc0c76c2459f9db26b7717d28) dan AFP bekerja dengan baik sekarang. Salinan sisi server berfungsi dan throughputnya setara dengan gvfs-smb dan sftp (lebih dari 802.11ac). Terima kasih lagi!
Andrew Gunnerson
Keren :-) Ya, server Samba 4.1 mendukung salinan sisi server afaik. Alat klien Samba tidak. Saya pikir dukungan telah ditambahkan ke modul kernel cifs untuk melakukan salinan sisi server tetapi ioctl khusus perlu digunakan untuk memanfaatkannya yang sebagian besar program tidak memanfaatkannya.
Ross Lagerwall
6

Seperti disebutkan oleh Ross Lagerwall, Samba 4.1+ dukungan penyalinan sisi server SMB2 dapat digunakan oleh klien kernel Linux CIFS (cifs.ko) melalui CIFS_IOC_COPYCHUNK_FILE ioctl.

The Cloner utilitas dikirimkan dengan fstests dapat digunakan untuk mengeluarkan ioctl pada cifs.ko SMB2 mount point. Bekerja dengan dukungan smbclient juga sedang berlangsung.

Salah satu manfaat dari implementasi salinan sisi server Samba adalah dapat digunakan di atas sistem file Btrfs untuk melakukan penyalinan / deduplikasi data file yang hampir seketika, seperti yang ditunjukkan dalam perbandingan kinerja ini .

David Disseldorp
sumber