Cara terbaik untuk memasang folder jarak jauh

40

Saya memiliki dua RasberryPi yang menjalankan debian wheezy dan saya ingin memasang folder dari komputer A di komputer B.

Apa cara terbaik (seperti yang paling efisien) untuk melakukan ini?

Saya bisa melakukannya melalui SMB, tapi itu untuk windows, saya pikir pasti ada cara yang lebih baik untuk berbagi di linux.

cjburkha
sumber
Kemungkinan salinan Unduh salinan file yang pembaruannya berubah
dchirikov

Jawaban:

31

Anda dapat menggunakan banyak hal, di antaranya, opsi populer adalah:

  • NFS
  • Samba / CIFS
  • SSHFS

Dengan kemudahan pengaturan saya pikir mereka harus dimasukkan dalam urutan ini (atas: termudah)

SSHFS

Melalui FUSE, Anda dapat memasang sistem file jarak jauh melalui ssh. Saya tidak akan membahas bagaimana, seperti yang sudah dijelaskan Cristopher dengan sangat baik. Catat saja, untuk me-mount file secara otomatis itu akan membutuhkan sedikit lebih banyak pekerjaan .

Samba

Ini akan memungkinkan Anda untuk menggunakan mesin Windows dan Unix untuk mengakses folder jarak jauh. Jika itu bukan masalah besar bagi Anda, maka Anda mungkin tidak akan mendapat manfaat dari itu. Namun, mudah untuk mengotomasinya di init (cukup masukkan nilai yang sesuai di /etc/fstab, termasuk username=<your-samba-username>,password=<your-samba-password>di kolom opsi.

NFS

Ini akan membiarkan Anda mengautentikasi hanya melalui IP (tidak ada nama pengguna hal = lebih cepat, hanya digunakan di dalam LAN non-bermusuhan Anda ) atau melalui Tiket Kerberos (terlalu menyakitkan untuk hanya dua Raspberry, tetapi berguna dalam lingkungan perusahaan).

Karena memiliki dukungan mode kernel, itu akan berjalan lebih cepat daripada sshfs. Selain itu, karena tidak ada enkripsi yang dilakukan maka akan memiliki throughput yang lebih baik, dan dalam kasus Raspberry ARM yang kecil, itu mungkin membuat perbedaan.

Selain itu, tidak begitu sulit untuk melakukan setup hanya karena Anda mempercayai jaringan Anda. Anda juga memiliki dukunganount otomatis /etc/fstab, dan Anda tidak harus memasukkan data sensitif (seperti nama pengguna atau kata sandi), dan jika nama pengguna Anda disinkronkan (sama /etc/passwddan /etc/groupfile), Anda dapat menggunakan toolset izin POSIX biasa ( chown, chgrpdan chmod).

ssice
sumber
Saya menggunakan Pi saya sebagai server NFS dengan disk dengan sebagian besar film saya dan media lainnya (yaitu bukan hal-hal yang kritis terhadap sistem, bukan '/ home /' atau yang serupa). NFS memungkinkan saya untuk menonton film tanpa terlebih dahulu harus menyalinnya ke drive lokal, tetapi ketika menulis file ke disk NFS saya lebih suka menggunakan rsync. Karena itu saya telah memasang disk NFS saya hanya baca, dan menulis hal-hal melalui SSH (dengan rsync). Ini juga menghentikan saya dari rsyncing tidak sengaja ke disk yang dipasang NFS (yang sangat tidak efisien).
zrajm
@ zrajm bagaimana Anda memasang disk Anda di pi?
FutuToad
arisu:/mnt/ytra /mnt/ytra nfs soft,ro,intr 0 2
zrajm
Samba dapat membingungkan beberapa aplikasi unix, terutama seputar izin atau stat()pengembalian apa , misalnya hal-hal yang bergantung pada nlinkjumlah yang tidak dimiliki oleh CIFS. SSHFS Saya sudah tidak terlalu terkesan dengan, karena menjalankan konteks mengaktifkan fileserver tinggi, dan tidak mendukung penguncian yang diperlukan yang diperlukan oleh program in-house. Jadi, NFS ...
thrig
38

SSHFS luar biasa. Ia dapat memasang direktori jarak jauh di direktori lokal dengan FUSE . Perintah di bawah ini digunakan #untuk menunjukkan bahwa suatu perintah dieksekusi sebagai root, sementara $menunjukkan eksekusi sebagai pengguna biasa. Karena perangkat lunak FUSE diperlukan, pertama-tama pastikan itu tersedia dan berjalan.

Salah satu lsmoddan grep perintah, di bawah, dapat mengungkapkan jika perangkat lunak dimuat dan siap digunakan. Hasil dari salah satu perintah menunjukkan bahwa fusetersedia.

# lsmod | grep fuse
$ grep -i fuse /lib/modules/$(uname -r)/modules.builtin

Jika tidak ada hasil dari salah satu perintah, coba muat modul kernel tanpa reboot menggunakan modprobedan periksa lagi.

# modprobe fuse
# lsmod fuse

Jika memuat modul gagal, instal perangkat lunak dengan apt-get.

# apt-get install fuse

Periksa lagi setelah instalasi.

# modprobe fuse
# lsmod fuse

FUSE harus diinstal dan dijalankan sebelum melanjutkan.


Periksa izin dari /dev/fuse. Izin harus memberikan akses baca dan tulis ke akun pengguna reguler Anda. Lewati bagian ini jika Anda telah menentukan bahwa akun pengguna reguler Anda sudah memiliki izin baca dan tulis /dev/fuse.

# ls -l /dev/fuse

Outputnya mungkin seperti salah satu dari berikut ini.

crw-rw-rw- 1 root root (all users can read/write)
crw------- 1 root fuse (only root can read/write)
crw-rw---- 1 root fuse (root and members of fuse group can read/write)

Pada 2013, Debian saya dibuat /dev/fusedengan 0600izin, pemilik root, pemilik grup fuse. Saya perlu membiarkan grup sekering menggunakan perangkat dan menambahkan akun pengguna reguler saya ke grup, seperti yang ditunjukkan di bawah ini.

# usermod -aG fuse $your_regular_user_account
# chmod 0660 /dev/fuse

Jika keanggotaan grup baru diperlukan, logout dan masuk lagi untuk menjadi anggota grup.


Selanjutnya, instal sshdi kedua sisi sebagai berikut.

# apt-get install ssh

Jawaban ini ditulis untuk Debian, tetapi pada Ubuntu 18.x setidaknya, openssh-client, fuse, dan beberapa paket lainnya adalah bagian dari Ubuntu sshfspaket. Perangkat sshfslunak diperlukan di sisi klien, tetapi dapat diinstal di kedua sisi jika diinginkan. Salah satu dependensi paket adalah fuse, tetapi penginstal melompati perangkat lunak yang telah diinstal.

# Ubuntu 18.x: 
# apt-get install sshfs

Dengan fusedan sshtersedia, dan dengan izin untuk menggunakan perangkat /dev/fuse,, buat titik mount untuk sistem file jarak jauh; dan, pasang sistem file jarak jauh secara lokal sebagai berikut.

# mkdir /mnt/$directory_name
# chown $your_user:$group /mnt/$directory_name/
$ sshfs $remote_username@$remote_server_name: /mnt/$directory_name/

Untuk memasang direktori selain rumah, tentukan setelah tanda titik dua.

$ sshfs $remote_username@$remote_server_name:/remote/directory /mnt/$directory_name

Untuk melepas, gunakan fusermount.

fusermount -u /mnt/$directory_name

Jika Anda memiliki mesin Windows, itu juga dapat menggunakan SSHFS dengan win-sshfs . Perangkat lunak ini akan "memetakan drive" dengan SSHFS, sehingga Anda dapat memiliki huruf drive Windows yang berisi direktori jarak jauh.

Christopher
sumber
1
Anda dapat secara signifikan meningkatkan kecepatan kinerja SSHFS dengan menggunakan opsi tambahan. Lihat artikel ini untuk informasi lebih lanjut dan perbandingan kecepatan dengan NFS: admin-magazine.com/HPC/Articles/Sharing-Data-with-SSHFS
blendenzo
Hei - Saya mencoba menggunakan instruksi Anda (menyesuaikan ke yum install fuse-sshfs.x86_64) tetapi ketika saya modprobe fusemelakukannya tidak membuat grup sekering untuk saya. Jadi ketika saya melakukannya usermod -a -G fuse [your-user], saya mendapatkannya usermod: group 'fuse' does not exist. dapatkah kamu membantu terima kasih sebelumnya
amfibi
lsmod | grep fusetidak mengembalikan hasil dan saya punya /dev/fuse, m yang dimiliki oleh root. jadi maksudmu aku baik-baik saja tanpa grup?
amfibi
ya, saya dapatcrw-rw-rw-. 1 root root 10, 229 Nov 21 15:32 /dev/fuse
amfibi
Setelah # apt-get instal fuse-utils sshfs saya mendapatkan "Tidak dapat menemukan paket fuse-utils". Ada yang tahu kenapa? (Ubuntu 18.04.01)
Kvothe
7

Di linux, Anda akan memilih untuk NFS (lihat juga artikel di archwiki tentangnya yang mungkin memiliki informasi yang berlaku untuk distribusi Anda juga). Ini memiliki fitur lebih maju daripada samba. Jika Anda perlu mengunci (yaitu akses bersamaan) file Anda harus melihat ke lockd juga karena nfs adalah stateless. Namun lebih sulit untuk dikonfigurasi daripada seseorang. Saya sarankan mencoba samba dan nfs untuk melihat mana yang sesuai dengan kebutuhan Anda.

Pedagang perak
sumber
1

Saya telah menggunakan kedua net drive SFTP dan ExpanDrive di masa lalu dan saya dapat memberitahu Anda sshfs mengungguli keduanya tanpa pertanyaan.

sublim
sumber