Mencegah koneksi NFS yang rusak membekukan sistem klien

21

Kami memiliki berbagi NFS 4, berbagi volume antara sejumlah server (server NFS, dan klien semua Debian 8). Kami memiliki beberapa masalah baru-baru ini di mana pemadaman jaringan akan membekukan sistem klien.

Pilihan NFS kami yang minim, hanya rw(dan default hard, fg, dll).

Saya sekarang bereksperimen dengan opsi-opsi ini, tetapi saya tidak mendapatkan perilaku yang saya harapkan: rw,soft,bg,retrans=6,timeo=150

(Saya telah meningkatkan retrans untuk mengimbangi beberapa risiko lunak)

Prosedur yang saya ikuti untuk diuji adalah:

  • Mesin boot
  • cd untuk /mnt/mountpoint
  • Verifikasi koneksi NFS ok
  • cd /
  • matikan jaringan ifdown eth0
  • cd untuk /mnt/mountpoint
  • ls

Pada titik ini baris perintah membeku, dan saya tidak bisa menghentikannya. Setelah beberapa waktu, pesan 'nfs: server [servername] tidak merespons, habis waktu`, yang tampaknya terulang sekali dalam satu menit (tanpa batas).

Apa yang saya inginkan / harapkan terjadi agar operasi gagal, dan kontrol kembali.

Tolong bisakah seseorang memberi tahu saya di mana saya salah dengan pengaturan ini?

(PS: Saya juga mencoba memasang dengan autofs, tetapi melihat perilaku serupa)

Terima kasih

UpTheCreek
sumber
3
Saya tidak akan merekomendasikan softdalam keadaan apa pun. Ini memungkinkan data untuk dibuang karena kesalahan . Sebaliknya saya sarankan hard,intr.
roaima
2
@roaima - Terima kasih. Pendapat itu tampaknya sangat lazim di web :) Masalahnya adalah situasi saat ini yang kita miliki hardsama buruknya bagi kita (sistem mati dan tetap mati sampai reboot). intrtidak didukung di NFS4 menurut man.
UpTheCreek
2
(Koreksi, tampaknya intrdidukung oleh NFS4, tetapi tidak oleh kernel> 2.6.25)
UpTheCreek
Saya pikir hal yang berbeda dari jawaban 'standar' adalah bahwa Anda mengubah direktori kerja saat ini ke titik mount. Apakah Anda mendapatkan perilaku yang sama tanpa cd, tetapi sebaliknya melakukannya ls /mnt/mountpoint? Mungkin setelah lsgagal, shell Anda mencoba operasi sistem file yang tergantung pada PWD. (Lebih buruk lagi, jika Anda cukup bodoh untuk menempatkan .di Anda $PATH)
Toby Speight

Jawaban:

4

intrharus memungkinkan Anda untuk mendapatkan kontrol lagi ketika Anda menekan ^C, tetapi biasanya tidak segera.

   intr           If an NFS file operation has a major timeout and it is hard mounted, then allow signals to interupt the
                  file  operation  and cause it to return EINTR to the calling program.  The default is to not allow file
                  operations to be interrupted.

Seperti yang Anda katakan, harapan adalah masalah di sini. Masalah jaringan bisa bersifat sementara, tetapi kegagalan operasi bersifat permanen. Jadi sebagian besar operasi default untuk hanya memblokir sampai operasi selesai.

Ini adalah jawaban standar, tetapi melihat halaman manual saat ini saya melihat ini:

                  The  intr / nointr mount option is deprecated after ker-
                  nel 2.6.25.  Only SIGKILL can interrupt  a  pending  NFS
                  operation on these kernels, and if specified, this mount
                  option is ignored  to  provide  backwards  compatibility
                  with older kernels.

Jadi bagi saya sepertinya bukan masalah NFS3 / NFS4, tetapi sebuah keputusan tentang cara intrkerjanya. Jadi Anda harus dapat KILLmemprosesnya, tetapi itu mungkin tidak memberi Anda banyak utilitas.

Saya tidak dapat menemukan diskusi tentang mengapa opsi itu dihapus. Bisakah Anda membunuh -MEMBUNUH proses Anda?

BowlOfRed
sumber
Terima kasih, tetapi menurut manusia intrdidukung oleh nfs 2/3 tetapi tidak 4.
UpTheCreek
@ UpTheCreek, saya tidak mengerti mengapa itu terjadi. Saya tidak memiliki sistem debian di sini tetapi secara eksplisit disebutkan tersedia. Sudahkah Anda mencobanya? "intr. Ini akan memungkinkan operasi NFS4 (pada hard mount) terganggu sementara menunggu respons dari server."
BowlOfRed
2
Ya, saya mencobanya, dan sepertinya tidak berpengaruh. Man mengatakan itu diabaikan dalam versi kernel terbaru.
UpTheCreek
Tidak mungkin MEMBUNUH proses karena seluruh sistem membeku. Tidak ada perintah yang bisa dikeluarkan dalam pengalaman saya. (Meskipun mungkin dalam beberapa kasus SSH dapat menjadi mesin beku.)
MountainX untuk Monica Cellio
3

Beberapa jawaban saya adalah opini, berdasarkan pengalaman. Di mana saya memiliki fakta, saya akan (mencoba mengingat-ingat) tautannya.

  1. NFS 4 dianggap sebagai perbaikan dari versi 2 dan 3. Namun, saya belum melihat kasus penggunaan yang kuat untuk membutuhkan perbaikan. Mungkin itu karena saya bertujuan untuk mengekspor filesystem ke klien Windows dengan Samba dan ke klien Unix / Linux dengan NFS.
  2. Saya tidak akan merekomendasikan softdalam hampir semua keadaan. Ini memungkinkan data untuk dibuang karena kesalahan . Sebaliknya saya sarankan hard,intr.
  3. Seperti yang Anda tunjukkan, intrini tidak valid untuk NFS 4, tetapi tampaknya ini adalah perubahan kernel dan bukan NFS.
  4. NFS Automounter ( autofs) berfungsi dengan baik untuk kasus penggunaan saya dengan NFS versi 2 dan 3, dan mengelola untuk membantu melindungi sistem klien saya dari kegagalan server dengan memasang sistem file NFS hanya saat diperlukan.

Saran saya kepada Anda adalah untuk mempertimbangkan pindah dari NFS 4 ke NFS 3 dan melihat apakah itu membantu kasus penggunaan khusus Anda. Jangan menganggapnya sebagai downgrade.

roaima
sumber
1
Terima kasih, tetapi saya tidak dapat beralih ke NFS3, dan bahkan jika saya, seperti yang Anda katakan, intrtidak didukung pada versi kernel terbaru.
UpTheCreek
2
Ah ya terlihat seperti intr ini didukung dalam NFS4 (itu tercantum dalam kedua 2/3 satunya pilihan dan 4-satunya pilihan dalam manusia, yang sedikit membingungkan), tetapi hanya tidak didukung dalam versi baru-baru kernel.
UpTheCreek
1
"Aku tidak akan merekomendasikan soft dalam keadaan apa pun" - benarkah? Dalam kasus saya, saya memiliki server web sibuk yang memasang direktori gambar. Jika host gambar turun dan kami gunakan hard, seluruh situs web turun. Jika kita menggunakan soft, kita mungkin mendapatkan beberapa gambar yang rusak (meskipun sistem caching kita meringankan ini hampir sepenuhnya). Risiko softmembiarkan korupsi file sebenarnya bukan masalah besar. Saya lebih suka memiliki satu file gambar yang rusak daripada situs di bawah!
Doug McLean
1
@ DougMcLean juga berada dalam situasi yang sama (web farm yang sibuk, server gambar, NFS ...) Saya akan mengatakan itu adalah kasus yang agak khusus. Jika server gambar saya tidak dapat diandalkan, saya kira saya mungkin telah softmenerima solusi yang dapat diterima. Jawaban diubah dari "tidak pernah" menjadi "hampir tidak pernah". Terima kasih!
roaima
1
Jika ingatan saya benar, masalah pembekuan sistem ini juga hadir di NFS v3.
MountainX untuk Monica Cellio