Apakah layak untuk memiliki folder rumah di-host dengan NFS?

30

Saya berencana untuk menyebarkan beberapa komputer kios dan ingin meninggalkan mereka dengan pendrive kecil sebagai disk boot, menjaga sisanya dengan mudah untuk membuat cadangan server, ala LTSP .

Saat ini saya sedang memikirkan dua opsi. NFSed / home /, atau salinan lokal ~ / disalin saat login, rsynced on logout.

Ketakutan saya adalah bahwa bekerja dengan file mungkin terlalu lambat, atau jaringan saya mungkin tersumbat .

voyager
sumber
Bisakah Anda mengganti "aman" dengan kata lain yang kurang terkait dengan keamanan? Mungkin layak merriam-webster.com/dictionary/feasible ?
Cristian Ciupitu
1
Sedikit rasa deja vu. Itu bukan hal yang persis sama, tetapi ini adalah utas menarik yang telah mereka dapatkan di sana. hardware.slashdot.org/story/09/06/23/1823201/…
voyager

Jawaban:

30

Saya menggunakan NFS untuk direktori rumah saya di lingkungan produksi kami. Ada beberapa trik.

  1. Jangan NFS mount ke /home- dengan cara itu Anda dapat memiliki pengguna lokal yang memungkinkan Anda masuk jika server NFS turun. Kami mount ke/mnt/nfs/home

  2. Gunakan soft mount dan waktu tunggu yang sangat singkat - ini akan mencegah proses pemblokiran selamanya.

  3. Gunakan automounter . Ini akan membuat penggunaan sumber daya tetap rendah dan juga berarti Anda tidak perlu khawatir tentang memulai kembali layanan ketika server NFS muncul jika turun karena suatu alasan.

    auto.master:
      +auto.master
      /mnt/nfs /etc/auto.home --timeout=300
    
    auto.home
       home -rw,soft,timeo=5,intr      home.bzzprod.lan:/home
    
  4. Gunakan sistem masuk tunggal sehingga Anda tidak mengalami masalah terkait izin. Saya memiliki server OpenLDAP.

Aaron Brown
sumber
Saya selalu menemukan automounter sangat tidak dapat diandalkan dan cenderung terkunci, terutama jika server NFS turun. Jika Anda me-mount ke / mnt / nfs / home, apakah di situlah Anda menetapkan home user di / etc / passwd?
pjc50
2
Nah, menggunakan / etc / passwd dan NFS pemasangan dir home adalah ide yang buruk, karena Anda harus menjaga UID dan GID tetap sinkron - gunakan sesuatu seperti OpenLDAP, tapi ya, home dir pengguna diatur ke / mnt / nfs / home /nama pengguna.
Aaron Brown
@AaronBrown Saya setuju bahwa jika Anda akan meletakkan $ HOME di jaringan, Anda juga harus meletakkan identitas pengguna dan otentikasi pada jaringan. Terlepas dari bagaimana Anda melakukan itu, $ HOME harus didefinisikan di suatu tempat dan Anda telah menunjukkan bahwa Anda lebih suka untuk mengaturnya /mnt/nfs/hometetapi bagaimana kemudian Anda memanfaatkan lokal Anda /homeselama pemadaman? Secara khusus, silakan lihat unix.stackexchange.com/questions/189404/…
JFlo
8

http://www.howtoforge.com baru-baru ini memposting sebuah artikel tentang penggunaan GlusterFS sebagai pengganti / alternatif NFS, Anda mungkin ingin memeriksanya.

http://www.howtoforge.com/creating-an-nfs-like-standalone-storage-server-with-glusterfs-on-debian-lenny

Berikut ini adalah deskripsi singkat mengapa ini merupakan alternatif yang 'layak' untuk NFS, dari halaman proyek GlusterFS http://www.gluster.org/ :

"GlusterFS menyembuhkan dirinya sendiri dengan cepat. Tidak ada fsck. Backend penyimpanan dapat diakses secara langsung sebagai file dan folder biasa (gaya NFS). Dengan replikasi diaktifkan, GlusterFS dapat menahan kegagalan perangkat keras."

Informasi lebih lanjut dapat ditemukan dalam dokumentasi proyek.

Selain itu, hal lain yang menyenangkan tentang penggunaan GlusterFS adalah jika Anda membutuhkan lebih banyak ruang di SAN Anda, Anda hanya perlu menambah bata penyimpanan (server node) dan Anda dapat meningkatkan / menumbuhkan penyimpanan Anda secara paralel ketika ada kebutuhan.

Semoga ini bisa membantu atau setidaknya membantu mengarahkan Anda ke arah yang benar!

pembuat kesalahan
sumber
7

Hati-hati dengan soft mount! Soft mounting sistem file NFS berarti IO akan gagal setelah terjadi timeout. Pastikan itu yang Anda inginkan di direktori home pengguna! Dugaan saya adalah Anda tidak. Menggunakan hard mount pada direktori home dalam kombinasi dengan opsi intr terasa jauh lebih aman di sini.

Sulit tidak akan kehabisan waktu: Operasi IO akan dicoba kembali tanpa batas. Opsi intr memungkinkan untuk menghentikan proses pemasangan. Jadi jika Anda me-mount ekspor dan mengalami kegagalan, hard-mount akan mengunci sesi Anda. Opsi intr akan memungkinkan untuk menghentikan pemasangan, sehingga kombinasinya cukup aman dan memastikan Anda tidak akan mudah kehilangan data pengguna.

Pokoknya, autofs membuat ini semua lebih mudah.

wzzrd
sumber
1
perhatikan bahwa intropsi mount telah ditinggalkan di linux setelah kernel 2.6.2, lihat misal access.redhat.com/solutions/157873
myrdd
4

Satu hal yang perlu diperhatikan adalah bahwa ketika server NFS keluar - tunggangan Anda akan membeku - melakukan soft mount tidak akan diblokir sehingga "beku" itu sendiri dapat dihindari, namun itu tidak akan memperbaiki masalah direktori home karena tanpa rumah direktori, pengguna tetap kacau.

Bahkan ketika server NFS pulih, kecuali jika Anda melakukan sesuatu, masalah pembekuan akan tetap ada - Anda harus mematikan proses pada mesin pemasangan, dan melakukan remount. Alasan untuk ini adalah bahwa ketika server NFS kembali, itu ditetapkan berbeda fsid- sehingga Anda setidaknya dapat memperbaiki masalah ini dengan hard-coding fsiddi server NFS, misalnya ...

#. Home Directories
/usr/users \
  192.168.16.0/22(rw,sync,no_root_squash,fsid=1) \
  192.168.80.0/22(rw,sync,no_root_squash,fsid=1)

#. Scratch Space
/var/ftp/scratch \
  192.168.16.0/22(rw,async,no_root_squash,fsid=3) \
  192.168.80.0/22(rw,async,no_root_squash,fsid=3) \
  172.28.24.151(rw,async,root_squash,fsid=3)

The exports(5)man page menyatakan ...

fsid=num
          This option forces the filesystem identification portion of the file handle
          and  file attributes used on the wire to be num instead of a number derived
          from the major and minor number of the block device on which the filesystem
          is  mounted.   Any 32 bit number can be used, but it must be unique amongst
          all the exported filesystems.

          This can be useful for NFS failover, to ensure that  both  servers  of  the
          failover  pair use the same NFS file handles for the shared filesystem thus
          avoiding stale file handles after failover.

... Sementara itu menunjukkan bahwa selama angka utama / minor tidak berubah (yang biasanya tidak, kecuali ketika Anda mengekspor volume SAN / multipath, di mana mungkin berubah), saya telah menemukan bahwa kami Sudah sepenuhnya menghapus masalah - yaitu, jika server NFS kembali - koneksi telah dipulihkan dengan cepat - Saya masih benar-benar tidak tahu mengapa ini membuat perbedaan untuk perangkat seperti /dev/sdaXmisalnya.

Saya sekarang harus menunjukkan bahwa argumen saya sebagian besar anekdotal - itu sebenarnya tidak masuk akal mengapa ia telah memperbaiki masalah, tetapi "tampaknya" telah memperbaikinya - entah bagaimana - mungkin ada variabel lain yang berperan di sini bahwa saya telah belum ditemukan. =)

Xerxes
sumber
Apakah Anda yakin tentang fsid "acak" yang digunakan oleh server ini?
Cristian Ciupitu
Hai Cristian - Saya sudah mencoba menjelaskan di atas - tetapi saya tidak dapat sepenuhnya menjelaskan perilaku sehubungan dengan deskripsi halaman manual dari bendera. Sudahkah Anda mencobanya dan melihatnya sebaliknya?
Xerxes
4

Beberapa saran umum yang akan berlaku tidak peduli sistem file jaringan mana yang Anda adopsi: banyak program menyimpan data dalam direktori home pengguna, yang biasanya lebih berbahaya daripada manfaatnya ketika direktori home diakses melalui jaringan.

Saat ini, Anda dapat memberitahu banyak program untuk menyimpan cache mereka di tempat lain (misalnya, pada disk lokal) dengan mengatur XDG_CACHE_HOMEvariabel lingkungan dalam skrip login. Namun, banyak program (misalnya, Firefox) masih memerlukan konfigurasi manual, jadi Anda mungkin harus melakukan beberapa pekerjaan tambahan untuk mengidentifikasi dan mengkonfigurasinya secara seragam untuk semua pengguna Anda.

Sam Morris
sumber
+1 Saya mengalami masalah kinerja dengan Google Chrome dan NFS home dirs. memperbaikinya dengan memindahkan direktori kerja Chrome kembali ke sistem lokal, lalu menempatkan symlink dari dir home NFS (tempat Chrome berharap untuk menemukan dir), kembali ke direktori lokal. Mungkin ada cara yang lebih baik untuk melakukan apa yang telah saya lakukan, tetapi itu memecahkan masalah bagi saya.
Bryan
Bryan (9 Maret) meninggalkan jawaban parsial yang baik, namun, saya ingin menguraikan masalah ini. Tolong lakukan ... Terima kasih .. Bagaimana Anda memindahkan direktori kerja ke mesin lokal, dan menempatkan symlink.
Jason
Lihat juga XDG_RUNTIME_DIRlokasi database Dconf yang dijelaskan di: developer.gnome.org/dconf/unstable/dconf-overview.html
JKnight
3

Saya banyak tempat saya telah bekerja menggunakan direktori home yang dipasang NFS. Biasanya tidak ada perbedaan besar dalam kinerja (dan pengguna kios mungkin sedikit kurang menuntut daripada pengembang yang tahu bagaimana menghubungi orang IT lokal mereka). Satu masalah yang saya lihat adalah apa yang terjadi ketika saya masuk ke desktop Gnome dan server NFS hilang karena alasan apa pun. Banyak hal menjadi tidak responsif.

kbyrd
sumber
2

Saya menggunakan rumah NFSed dan berfungsi dengan baik. tetapi Anda harus memastikan jaringannya cukup cepat dan tidak akan pernah turun.

cd1
sumber
2

Secara praktis, NFS berkinerja baik untuk direktori home jika ada 100mbit switched network atau lebih baik. Untuk lebih dari 10-20 kios, server harus memiliki konektivitas gigabit. Anda tidak akan memenangkan kontes kinerja, tetapi hal-hal seperti Firefox dan Open Office akan berfungsi dengan baik.

Menyalin di direktori home akan menjadi masalah besar dalam hal keterlambatan saat login (pada jaringan 100mbit yang maks 12MB / s. Direktori home 100MB hampir 10 detik.) Rsync akan mengubah Anda menyinkronkan cache browser web ... 10 menit dan 500 file terluka.

Alexandre Carmel-Veilleux
sumber
1

Lihatlah cachefilesd . Saya belum menggunakannya sendiri, tetapi terlihat menjanjikan.

Daemon cachefilesd mengelola file caching dan direktori yang digunakan oleh sistem file jaringan seperti AFS dan NFS untuk melakukan caching persisten ke disk lokal.

Juga, jangan lupa untuk menyetel parameter ukuran dan ukuran dan gunakan ukuran Jumbo jika memungkinkan.

Cristian Ciupitu
sumber
Saya sudah mencoba cachefilesd selama beberapa tahun tetapi menyerah karena semua ketidakstabilan yang dibawanya. YMMV
JFlo