Veraltete NFS-Dateihandles nach der Umbenennung eines Datasets bedeuten normalerweise, dass der Client weiterhin Referenzen auf Objekte oder Export-Identitäten hält, die auf dem Server geändert wurden.
Am sichersten ist es, zunächst festzustellen, ob nur ein Client veraltet ist oder sich die Export-Identität selbst geändert hat. Stoppen Sie anschließend Anwendungen, die den Mount aktiv verwenden, prüfen Sie, ob das umbenannte Dataset über den vorgesehenen Pfad exportiert wird, und hängen Sie die Clients in kontrollierter Reihenfolge erneut ein. Starten Sie nicht jede Maschine neu und erstellen Sie das Dataset nicht neu, bevor Sie wissen, ob das veraltete Handle nur einem zwischengespeicherten Client-Mount folgt oder bei jedem Client auftritt, der den umbenannten Export erreicht.
Bestätigen, dass der Fehler mit der Dataset-Umbenennung begann
Notieren Sie den alten Dataset-Namen und Mountpoint, den neuen Dataset-Namen und Mountpoint, den exportierten Pfad sowie den ersten Client-Vorgang, der ESTALE zurückgegeben hat. Vergleichen Sie einen betroffenen Client mit einem Client, der die Freigabe erst nach der Umbenennung eingebunden hat.
Ein aktueller Artikel zur NFS-Fehlerbehebung erklärt, dass „veraltet“ bedeutet, dass sich das Handle geändert hat, und nicht einfach, dass der Netzwerkpfad ausgefallen ist.
Wenn ein frischer Client-Mount funktioniert, während ein alter Client fehlschlägt, ist der umbenannte Export wahrscheinlich erreichbar und das unmittelbare Problem liegt im zwischengespeicherten Zustand des alten Clients. Wenn auch neue Mounts fehlschlagen, konzentrieren Sie die Untersuchung weiterhin auf den Server-Export und die Dataset-Identität.
Prüfen, ob der Export jetzt auf das vorgesehene Dataset verweist
Prüfen Sie nach der Umbenennung die aktive Exportliste des Servers und die Mount-Tabelle des Dateisystems. Ein Pfad kann weiterhin existieren, während er nun auf ein anderes Dataset, einen leeren Mountpoint oder ein Verzeichnis unterhalb des falschen Dateisystems verweist.
OneUptime weist darauf hin, dass Export-Änderungen Handles ungültig machen können, wenn sich Objekte, Exporte, Dateisystem-IDs oder wiederhergestellte Daten unter einer bestehenden Client-Referenz ändern.
Korrigieren Sie das Exportziel, bevor Sie die Clients bearbeiten. Ein erneuter Mount am falschen serverseitigen Pfad kann ESTALE scheinbar beseitigen, während Anwendungen unbemerkt auf eine andere Verzeichnisstruktur zeigen.
Prozesse stoppen, die den alten Mount weiterhin verwenden
Verwenden Sie die Mount- und Prozesswerkzeuge des Clients, um Shells, Medienserver, Backup-Aufträge, Container oder Datenbankprozesse zu ermitteln, die den alten NFS-Mount weiterhin geöffnet haben. Stoppen Sie den kleinstmöglichen betroffenen Dienst, bevor Sie das Aushängen erzwingen.
Ein fokussierter Linux-Leitfaden zur Wiederherstellung empfiehlt, Prozesse vor dem erneuten Mount zu suchen, damit ein Wiederherstellungsschritt keinen Prozess in einer halb abgetrennten Dateisystemansicht zurücklässt.
Wenn nur ein Container den veralteten Pfad verwendet, stoppen Sie zuerst diesen Container. Wird der Mount von vielen Diensten gemeinsam genutzt, planen Sie statt einer sofortigen Eskalation zu Lazy-Unmounts in einem laufenden Anwendungs-Stack ein kurzes Wartungsfenster ein.
Den Client erneut mounten, nachdem der Serverpfad stabil ist
Sobald der Server-Export korrekt ist und abhängige Dienste gestoppt wurden, hängen Sie die NFS-Freigabe auf einem Testclient aus und wieder ein. Verwenden Sie dieselbe Serveradresse, denselben Exportpfad, dieselbe NFS-Version und dieselben Mount-Optionen, die später auch in der Produktion verwendet werden.
Ein Fallbeispiel zu einer NFS-Migration zeigt, dass Clients nach Speicherumzügen einen neuen Mount benötigen, selbst wenn Berechtigungen und kopierte Daten ansonsten korrekt sind.
Testen Sie vor dem erneuten Mount auf allen anderen Clients die Verzeichnisauflistung, einen Lesevorgang, einen reversiblen Schreibvorgang und den tatsächlichen Anwendungspfad. Wird derselbe Client sofort wieder veraltet, untersuchen Sie erneut die Server-Identität, statt den Mount wiederholt einzurichten.
Prüfen, ob die Umbenennung die Identität des Dateihandles geändert hat
NFS-Dateihandles sind keine gewöhnlichen Pfadzeichenfolgen. Sie enthalten eine vom Server definierte Identität, die Informationen zum Dateisystem und zu Inodes umfassen kann. Daher können das Ersetzen, Wiederherstellen oder Verschieben des zugrunde liegenden Dateisystems Auswirkungen haben, selbst wenn der sichtbare Exportpfad ähnlich aussieht.
Eine ausführliche Analyse von Dateihandles zeigt, dass Dateihandles die Server-Identität abbilden, statt wie Lesezeichen auf einen Textpfad zu funktionieren.
Wenn die Umbenennung tatsächlich Teil des Löschens und Neuerstellens, Empfangens, Klonens oder Wiederherstellens eines Datasets war, dokumentieren Sie diese umfassendere Identitätsänderung. Die richtige Lösung kann darin bestehen, alle Clients koordiniert erneut zu mounten, statt alte Handles dauerhaft zu erhalten.
Prüfen, ob jeder Client nach einem Neustart den neuen Export verwendet
Nachdem der erste Client erfolgreich getestet wurde, mounten Sie die übrigen Clients nacheinander erneut, starten Sie die abhängigen Dienste wieder und überprüfen Sie, ob die konfigurierten Mount-Units oder Container-Bind-Pfade auf den vorgesehenen Export verweisen. Starten Sie anschließend einen unkritischen Client neu, um die Persistenz zu testen.
Ein Artikel zur Fehlerbehebung bei Speichersystemen erklärt, dass veraltete Mounts Anwendungen überdauern, bis die verwendenden Prozesse und der Mount-Zustand tatsächlich aktualisiert wurden.
Die Reparatur ist abgeschlossen, wenn neue und neu gestartete Clients das umbenannte Dataset ohne ESTALE mounten und Anwendungen die erwarteten Dateien lesen. Der zugehörige ZimaSpace-Leitfaden zu stabilen Mount-Pfaden für Home-Server behandelt den angrenzenden Fall, dass Dataset-Umbenennungen auch lokale Bind- oder Anwendungspfade geändert haben.
Häufig gestellte Fragen
Kann ein veraltetes NFS-Dateihandle bedeuten, dass die Festplatte ausfällt?
Nicht allein. ESTALE bedeutet, dass das zwischengespeicherte Handle des Clients das erwartete serverseitige Objekt nicht mehr identifiziert. Prüfen Sie den Zustand des Speichers separat, wenn der Server zusätzlich I/O- oder Dateisystemfehler meldet.
Behebt ein Neustart des NFS-Dienstes das Problem immer?
Nein. Wenn der Export jetzt auf eine andere Dataset-Identität verweist, bleiben die alten Client-Handles falsch. Überprüfen Sie zuerst den Export und aktualisieren Sie anschließend die Client-Mounts bewusst.
Sollten nach der Umbenennung eines Datasets alle Clients neu gestartet werden?
Normalerweise nicht. Ein kontrolliertes Stoppen der Dienste und ein erneuter Mount reichen aus, wenn der Server-Export korrekt ist. Starten Sie einen Client nur neu, wenn er den veralteten Mount nicht sauber freigeben kann oder als abschließenden Persistenztest.
Support & Tipps
Mehr zum Lesen

Kann Plex eine GPU mit einem anderen Docker-Container gemeinsam nutzen?
Plex und ein weiterer Container können häufig auf dieselbe GPU zugreifen, aber du musst die Treiberunterstützung, die Gerätezuordnung, die Auslastung der Video-Engine, den Speicher...

So erkennst du, ob ein Plex-Fehler vom Client oder vom Server verursacht wird
Reproduziere dasselbe Element auf einem anderen Client, vergleiche den Sitzungspfad und sammle Serverbelege erst, nachdem der Geltungsbereich dir gezeigt hat, wo der Fehler tatsächlich...

So konfigurierst du den Plex-Cache und den temporären Transcodierungs-Speicher
Schütze den persistenten Plex-Zustand, indem du temporäre Transcodierungsdateien auf geeignetem lokalem Speicher ablegst, und überprüfe anschließend die Bereinigung, den freien Speicherplatz und das Verhalten...

