Odmontuj mount nfs w miejscu, gdzie zniknął serwer nfs


32

Serwer A był kiedyś serwerem NFS. Serwer B dokonywał eksportu tego. Wszystko było w porządku. Potem A zmarł. Właśnie się wyłączyłem. Odszedł. Zniknął

Jednak ten folder jest nadal zamontowany na B. Oczywiście nie mogę się cdw nim znaleźć ani w żadnym innym. Jednak umount /mnt/myfolderpo prostu zawiesza się i nie odmontowuje. Czy można go umontować bez ponownego uruchomienia B?

Zarówno klient, jak i serwer to maszyny z systemem Linux.


Odpowiedzi:


45

Zakładając Linux:

umount -f -l /mnt/myfolder

Rozwiązuje problem:

-f Wymuś odmontowanie (w przypadku nieosiągalnego systemu NFS). (Wymaga jądra 2.1.116 lub nowszego.)

-l Leniwy odmontować. Odłącz teraz system plików od hierarchii systemu plików i wyczyść wszystkie odniesienia do systemu plików, gdy tylko nie będzie już zajęty. (Wymaga jądra 2.4.11 lub nowszego.)

-f istnieje również w systemach Solaris i AIX.


1
Miałem ten sam problem, wygooglowałem i przyjechałem tutaj. Tak - leniwa flaga naprawdę mi tutaj pomogła ... - jeśli sama tego nie robiła ...
wawawawa

tak, musi mieć opcję „-l” „-f” SAMY CZAS.
liuyang1

2
Czasami też odniosłem większy sukces, określając adres zdalny zamiast lokalnej ścieżki dla umount, np. umount -f -l nfsserver:/export/thefolder.
oliver

18

Opracowując wskazówki podane przez Davida Pashleya ,

chyba że „umount -l” rozwiąże twój problem, możesz skonfigurować fałszywy serwer z tym samym adresem co ten, który zniknął - ale tak naprawdę nie musisz konfigurować nowego serwera ani nic takiego. Najłatwiejszym wyjściem z sytuacji blokowania / zawieszania umount jest skonfigurowanie lokalnego interfejsu IP aliasu w następujący sposób:

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

(oczywiście 11.22.33.44 jest (byłym) adresem IP (obecnie nieżywego) serwera NFS)


To działało dla mnie, tyle że musiałem uruchomić lokalny serwer NFS.
gak

6

Rozsądnie byłoby dodać intropcję do wszystkich /etc/fstabwpisów, które mogą się zawiesić lub zawiesić. Jeśli nie użyjesz opcji softlub intr, wtedy gdy serwer hostujący pliki NFS ulegnie awarii, serwer, na którym pliki są zamontowane (klient) może zawiesić się podczas uruchamiania.

Według man 5 nfs:

miękki / twardy
Określa zachowanie odzyskiwania klienta NFS po przekroczeniu limitu czasu żądania NFS. Jeśli żadna opcja nie zostanie określona (lub jeśli podano opcję twardą), żądania NFS są ponawiane bez końca. Jeśli wybrana jest opcja miękka, klient NFS nie powiedzie się żądanie NFS po wysłaniu retransmisji, powodując, że klient NFS zwróci błąd do aplikacji wywołującej.

... a potem mówi się, że intrjest lepszy niż soft, ale ma podobny efekt, że zapobiega zawieszeniu.


3
Zauważ, że w nowszych wersjach nfs, intr jest przestarzałe lub nie działa - w takim przypadku należy użyć soft.
Paul

3

umount -f /mnt/myfolderpowinien rozwiązać ten problem. Zobacz stronę umount.


2
Nie robi to do końca z NFS i martwym serwerem. Potrzebujesz też leniwej flagi (lub sztuczki z dodaniem IfAlias). Polecenie lsof i utrwalacz zawiesza się i umount -f mówi „urządzenie zajęte”.
wawawawa

1

Tak na marginesie, użycie automount poradzi sobie z odmontowaniem udziałów NFS, gdy staną się one niedostępne, co pozwala uniknąć utknięcia w takiej sytuacji w przyszłości.


2
Niekoniecznie. instalacje automount mogą również zawiesić się w tym stanie, jeśli spróbujesz uzyskać dostęp do katalogu w jakikolwiek sposób, proces się zawiesi.
Kamil Kisiel,

Tak, automounter powoduje tyle problemów, ile rozwiązuje.
pjc50,

1

Nigdy nie udało mi się dostać umount -fdo pracy. Przydatną sztuczką jest skonfigurowanie innego serwera montującego ten sam eksport, nadając mu ten sam adres IP, co stary serwer. Twój klient NFS powinien myśleć, że wszystko wróciło do normy, a procesy zostaną odblokowane. Następnie możesz normalnie odmontować punkt montowania i usunąć adres IP z tymczasowego serwera NFS.


2
-l (leniwy) jest kluczem, jak wspomniano powyżej
Matt Simmons,

1

W przypadku systemu Solaris ponowne uruchomienie klienta NFS rozwiąże problem „spirali śmierci”. Komenda dla Solaris 10 brzmi: „svcadm restart network / nfs / client” Ostatnio nie próbowałem tego na Linux-ie (ponieważ wszyscy montują z flagą „intr”, więc rzadko mają ten problem), ale prawdopodobnie to również naprawi problem.


0

Właśnie zauważyłem, że wymuszanie odmontowania w jądrze 3.2.0 zawiesza się przy montowaniu NFSv4. Odmontowane NFSv3 działają poprawnie.

$ mount [...] -o nfsvers=3

0

po prostu kontynuacja specyficzna dla OS X, ponieważ polecenia montowania są w większości * nix agnostyczne: flaga -l (leniwa) nie istnieje w OS X, jednak flaga -f (force) ma i okazała się wystarczająca . Ponadto generowane przez system punkty montowania znajdują się w / Volumes (/ Volumes / myserversexport)


0

Spotkałem ten sam problem. Ponieważ serwer NFS został usunięty, nie mogę odmontować systemu plików NFS od klienta. Wypróbowałem następującą sztuczkę, sprawdź, czy może być pomocna. Ponieważ oryginalny serwer NFS zniknął, tworzę nowy serwer z tym samym adresem IP i eksportami. Następnie próbuję umount -f / mnt / nfs_part. W końcu mogłem umountować nfs teraz.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.