Kolejność restartów jest ważna. Ponowne uruchomienie serwera po tym, jak klienci mogą spowodować taką sytuację. Nieaktualny uchwyt NFS wskazuje, że klient ma otwarty plik, ale serwer nie rozpoznaje już uchwytu pliku. W niektórych przypadkach NFS wyczyści swoje struktury danych po upływie limitu czasu. W innych przypadkach konieczne będzie samodzielne wyczyszczenie struktur danych NFS, a następnie zrestartowanie NFS. Gdzie te struktury się znajdują, są nieco zależne od O / S.
Spróbuj ponownie uruchomić NFS najpierw na serwerze, a następnie na klientach. Może to wyczyścić uchwyty plików.
Ponowne uruchomienie serwerów NFS z plikami otwartymi z innych serwerów nie jest zalecane. Jest to szczególnie problematyczne, jeśli otwarty plik został usunięty z serwera. Serwer może utrzymywać plik otwarty, dopóki nie zostanie ponownie uruchomiony, ale ponowne uruchomienie usunie uchwyt pliku w pamięci po stronie serwera. Wówczas klient nie będzie już mógł otworzyć pliku.
Określenie, które wierzchowce zostały użyte z serwera, jest trudne i zawodne. showmount -a
Opcja może pokazać kilka aktywnych wierzchowce, ale nie mogą zgłaszać wszyscy. Zablokowane pliki są łatwiejsze do zidentyfikowania, ale wymagają włączenia blokady i zależy od oprogramowania klienckiego do zablokowania plików.
Możesz użyć lsof
na klientach, aby zidentyfikować procesy, które otwierają pliki na wierzchowcach.
Korzystam z opcji hard
i intr
mount na moich mountach NFS. Ta hard
opcja powoduje, że IO jest ponawiane bez końca. Ta intr
opcja pozwala zabić procesy, które czekają na IFS NFS na zakończenie.
hard, intr
jest dobrą radą. Należy jednak pamiętać, że NFS podwaja limity czasu przy każdej próbie. Więc najlepiej ustawićtimeo=1
iretrans=5
tak dalej. Pamiętaj, że spowoduje to duże obciążenie serwera NFS po ponownym uruchomieniu NFS. Staraj się nie restartować tak często usługi NFS;)