Lepas mount nfs di tempat server nfs telah menghilang

32

Server A dulunya adalah server NFS. Server B sedang memasang ekspor itu. Semuanya baik-baik saja. Kemudian A meninggal. Baru dimatikan. Hilang. Menghilang.

Namun folder itu masih terpasang pada B. Saya jelas tidak bisa cdke dalamnya atau apa pun. Namun umount /mnt/myfolderhanya hang dan tidak akan melakukan umount. Apakah ada cara untuk melakukan umount tanpa memulai ulang B?

Baik klien dan server adalah mesin Linux.

Rory
sumber

Jawaban:

45

Dengan asumsi Linux:

umount -f -l /mnt/myfolder

Akan mengurutkan masalah:

-f Unmount paksa (jika sistem NFS tidak dapat dijangkau). (Membutuhkan kernel 2.1.116 atau lebih baru.)

-l Malas lepas. Lepaskan filesystem dari hirarki filesystem sekarang, dan bersihkan semua referensi ke filesystem segera setelah tidak lagi sibuk. (Membutuhkan kernel 2.4.11 atau yang lebih baru.)

-f juga ada di Solaris dan AIX.

Douglas Leeder
sumber
1
Saya memiliki masalah yang sama, googled dan datang ke sini. Ya - bendera malas benar-benar membantu saya di sini ...
-dengan
ya, harus memiliki opsi "-l" "-f" WAKTU YANG SAMA.
liuyang1
2
Juga, kadang-kadang saya lebih sukses dengan menetapkan alamat jarak jauh daripada jalur lokal untuk umount, misalnya. umount -f -l nfsserver:/export/thefolder.
oliver
18

Menguraikan petunjuk yang diberikan oleh David Pashley ,

kecuali "umount-l" menyelesaikan masalah Anda, Anda dapat mengatur server palsu dengan alamat yang sama dengan yang telah hilang - tetapi Anda tidak benar-benar harus mengatur server baru atau apa pun. Cara termudah keluar dari situasi pemblokiran / hung umount adalah mengatur antarmuka IP lokal , sebagai berikut:

ifconfig eth0:nfstmp 11.22.33.44 netmask 255.255.255.255
umount -l /mnt/deadnfsmount    # -l or -f or whichever that gets the job done
ifconfig eth0:nfstmp down

(jelas 11.22.33.44 menjadi (sebelumnya) alamat IP dari server NFS (sekarang sudah mati)

conny
sumber
Ini bekerja untuk saya kecuali saya harus menjalankan server nfs lokal.
gak
6

Mungkin bijaksana untuk menambahkan intropsi ke /etc/fstabentri mana pun yang mungkin berakhir menggantung atau macet. Jika Anda tidak menggunakan opsi softatau intr, maka ketika server yang menyimpan file NFS turun, server tempat file tersebut dipasang (klien) mungkin hang ketika boot up.

Menurut man 5 nfs:

soft / hard
Menentukan perilaku pemulihan klien NFS setelah permintaan NFS habis. Jika tidak ada opsi yang ditentukan (atau jika opsi keras ditentukan), permintaan NFS akan diulang kembali tanpa batas. Jika opsi lunak ditentukan, maka klien NFS gagal permintaan NFS setelah transmisi ulang pengiriman ulang telah dikirim, menyebabkan klien NFS mengembalikan kesalahan ke aplikasi panggilan.

... dan selanjutnya dikatakan intrlebih disukai soft, tetapi memiliki efek yang sama mencegah gantung.

sg
sumber
3
Perhatikan bahwa dengan versi nfs yang lebih baru, intr sudah usang atau tidak beroperasi - dalam hal ini soft harus digunakan.
Paul
3

umount -f /mnt/myfolderharus menyelesaikan ini. Lihat halaman manual umount.

pauska
sumber
2
Ini tidak cukup dengan NFS dan server yang mati. Anda memerlukan bendera malas juga (atau trik dengan menambahkan IfAlias). lsof dan fuser semua hang dan umount -f mengatakan "perangkat sibuk".
wawawawa
1

Selain itu, menggunakan automount akan menangani unmount saham NFS ketika mereka menjadi tidak dapat dihindari, yang menghindari terjebak dalam situasi ini di masa depan.

Koperasi
sumber
2
Belum tentu. automount mounts juga dapat hang dalam kondisi ini, jika Anda mencoba mengakses direktori dengan cara apa pun prosesnya akan hang.
Kamil Kisiel
Ya, automounter menyebabkan banyak masalah saat diselesaikan.
pjc50
1

Saya tidak pernah berhasil umount -fbekerja. Trik yang berguna adalah mengatur server lain yang memasang ekspor yang sama, berikan alamat IP yang sama dengan server lama. Klien NFS Anda harus berpikir semuanya kembali seperti biasa dan proses akan membuka blokir. Anda kemudian dapat meng-unmount mount point secara normal dan menghapus alamat IP dari server NFS sementara.

David Pashley
sumber
2
-l (malas) adalah kuncinya, seperti yang disebutkan di atas
Matt Simmons
1

Untuk Solaris, memulai kembali klien NFS akan menyelesaikan "hard mount spiral of death". Perintah untuk Solaris 10 adalah "svcadm restart network / nfs / client" Belum mencoba ini pada kotak Linux akhir-akhir ini (karena mereka semua mount dengan flag "intr" sehingga mereka jarang memiliki masalah ini), tetapi mungkin juga akan memperbaiki masalah.

John Grant
sumber
0

Saya hanya memperhatikan bahwa pemaksaan unmount pada kernel 3.2.0 hang dengan NFSv4 mounts. NFSv3 unmount berfungsi dengan baik.

$ mount [...] -o nfsvers=3
Kuu Tirronen
sumber
0

hanya tindak lanjut khusus OS X, karena perintah mount sebagian besar * nix agnostic: flag -l (lazy) tidak ada di OS X, namun, flag -f (force) melakukannya, dan terbukti mencukupi . Juga, poin pemasangan yang dihasilkan sistem ada di / Volume (/ Volume / myserversexport)

niels
sumber
0

Saya sudah menemui masalah yang sama. Karena server NFS dihapus, saya tidak dapat melakukan umount nfs dari klien. Saya mencoba trik berikut, lihat apakah itu bisa membantu. Karena server NFS asli hilang, saya membuat server baru dengan IP dan ekspor yang sama. Kemudian saya mencoba umount -f / mnt / nfs_part. Saya akhirnya bisa menghitung nfs sekarang.

Lan
sumber