PowerScale: OneFS verliert NFSv4-Sperren beim Node-Neustart
Summary: NFSv4-Clients verlieren möglicherweise Sperren oder können Sperren nach einem Node-Neustart nicht ordnungsgemäß freigeben.
Symptoms
Dieses Problem tritt in allen OneFS-Versionen vor, bevor die Entwicklung behoben wird.
Sie kann sich auf jede Anwendung auswirken, die NFSv4 und Sperrvorgänge verwendet.
Dieses Problem wurde am häufigsten bei "Message Queue"-Anwendungen wie ActiveMQ oder OpenMQ beobachtet, da sie nfsv4-Sperrmechanismen umfassend nutzen.
Für MQ-Anwendungen; wird oft als sekundärer MQ-Server angezeigt, der für den primären Server übernimmt, wenn dies nicht dere sein sollte.
Dies führt zu Ausfällen oder Dateninkonsistenzen, für die eine manuelle Intervention auf der Anwendungsseite erforderlich ist.
Wenn in Paketerfassungen beobachtet, sperrt der Client eine Datei erfolgreich, während ein zweiter Client versucht, darauf zuzugreifen.
Wenn der Node, mit dem der Sperrclient verbunden ist, neu gestartet wird, erhält der zweite Client die Sperre.
Der erste Client erhält einen Fehler, wenn seine Sperre endet, da er nicht mehr über die Sperre verfügt.
Das Problem kann wie folgt reproduziert werden:
- Mounten Sie auf dem ersten Client einen Export mitHILFE von NFSv4.0.
- Mounten Sie auf dem zweiten Client denselben Export mithilfe von NFSv4.0.
- Sperren Sie auf dem ersten Client eine Datei 5 Minuten lang.
- Starten Sie auf dem zweiten Client eine Schleife, in der versucht wird, dieselbe Datei zu sperren.
- Starten Sie den OneFS-Node neu, mit dem der erste Client verbunden ist.
- Wenn das Problem auftritt, wird dem zweiten Client eine Sperre gewährt, bevor die erste Clientsperre endet.
Cause
In unserer Logik für das Verschieben von NFSv4-Verbindungen auf andere Nodes ist ein Fehler aufgetreten, der dazu führte, dass die Sperren beim Node-Neustart freigegeben wurden.
Resolution
Lösung:
Führen Sie ein Upgrade oder patchen Sie auf eine der folgenden Versionen von OneFS.
- 9.1.0.19+
- 9.2.1.12+
- 9.4.0.3+
- 9.5.0.0+
Problemumgehung:
Es gibt keine Workarounds für dieses Problem.