Mamy udział NFS 4, dzielący wolumen między wieloma serwerami (serwer NFS i klienci wszyscy Debian 8). Mieliśmy ostatnio problemy z awariami sieci powodującymi zamrożenie systemów klienckich.
Nasze opcje NFS były minimalne, tylko rw
(a więc domyślne hard
, fg
itp).
Teraz eksperymentuję z tymi opcjami, ale nie otrzymuję oczekiwanego zachowania:
rw,soft,bg,retrans=6,timeo=150
(Zwiększyłem retrans, aby zrównoważyć część ryzyka miękkiego)
Procedura, którą testuję, to:
- Maszyna rozruchowa
cd
do/mnt/mountpoint
- Sprawdź poprawność połączenia NFS
cd /
- zabić sieć
ifdown eth0
cd
do/mnt/mountpoint
ls
W tym momencie linia poleceń zawiesza się i nie mogę jej przerwać. Po pewnym czasie komunikat „nfs: server [nazwa serwera] nie odpowiada, upłynął limit czasu”, który wydaje się powtarzać raz na minutę (w nieokreślony sposób).
Co chciałbym / mam się spodziewać, aby operacja zakończyła się niepowodzeniem i zwróci kontrolę.
Czy ktoś mógłby mi powiedzieć, co robię źle z tymi ustawieniami?
(PS: Próbowałem również montować przy użyciu autofs, ale widziałem podobne zachowanie)
Dziękuję Ci
soft
żadnym wypadku nie polecałbym . Pozwala to na odrzucenie danych w przypadku błędu . Zamiast tego sugerowałbymhard,intr
.hard
jest dla nas równie niekorzystna (systemy giną i pozostają martwe do momentu ponownego uruchomienia).intr
według man nie jest obsługiwany w NFS4.intr
to, że jest obsługiwana przez NFS4, ale nie przez jądra> 2.6.25)cd
, ale zamiast tegols /mnt/mountpoint
? Możliwe, że pols
awarii powłoka próbuje wykonać operacje systemu plików zależne od PWD. (Co gorsza, jeśli byłbyś na tyle głupi, by włożyć.
swoje$PATH
)Odpowiedzi:
intr
powinny pozwolić ci odzyskać kontrolę po trafieniu^C
, ale zwykle nie od razu.Jak mówisz, problemem są tutaj oczekiwania. Problemy z siecią mogą być tymczasowe, ale niepowodzenie operacji jest trwałe. Dlatego większość operacji domyślnie blokuje się, dopóki operacja się nie zakończy.
To standardowa odpowiedź, ale patrząc na bieżącą stronę podręcznika widzę to:
Więc nie wydaje mi się to problemem NFS3 / NFS4, ale decyzja o tym, jak
intr
działa. Powinieneś być w stanie wykonaćKILL
ten proces, ale to może nie dać ci wiele użyteczności.Nie udało mi się znaleźć dyskusji na temat przyczyny usunięcia tej opcji. Czy możesz zabić - ZABIJ swój proces?
źródło
intr
jest obsługiwany przez nfs 2/3, ale nie 4.Niektóre z moich odpowiedzi to opinia oparta na doświadczeniu. Tam, gdzie mam fakty, będę (staram się pamiętać) link do nich.
soft
w prawie żadnych okolicznościach. Pozwala to na odrzucenie danych w przypadku błędu . Zamiast tego sugerowałbymhard,intr
.intr
nie działa na NFS 4, ale wydaje się, że jest to zmiana jądra a nie NFS.autofs
) działa dobrze w moich przypadkach użycia z NFS w wersji 2 i 3, i pomaga chronić moje systemy klienckie przed awarią serwera poprzez montowanie systemów plików NFS tylko wtedy, gdy są one wymagane.Moją sugestią byłoby rozważenie przejścia z NFS 4 na NFS 3 i sprawdzenie, czy to pomoże w konkretnym przypadku użycia. Nie myśl o tym jako o obniżeniu wersji.
źródło
intr
nie był obsługiwany w najnowszych wersjach jądra.intr
to, że jest obsługiwany w NFS4 (jest wymieniony zarówno w opcjach tylko 2/3, jak i tylko 4 w man, co jest nieco mylące), ale po prostu nie jest obsługiwany w ostatnich wersjach jądra.hard
, cała strona internetowa ulegnie awarii. Jeśli użyjemysoft
, możemy uzyskać kilka uszkodzonych obrazów (chociaż nasz system buforowania łagodzi to prawie całkowicie). Ryzykosoft
dopuszczenia uszkodzenia plików nie jest tak naprawdę wielkim problemem. Wolałbym mieć jeden uszkodzony plik obrazu niż stronę w dół!soft
zaakceptować to jako akceptowalne rozwiązanie. Odpowiedź zmieniona z „nigdy” na „prawie nigdy”. Dzięki!