C.3. Glocks


Für das Verständnis von GFS2 ist es notwendig, das wichtigste Konzept zu verstehen, das es von anderen Dateisystemen unterscheidet: Das Konzept der Glocks. In Quellcode-Begriffen ist ein Glock eine Datenstruktur, die DLM und Caching in einem Single-State-Rechner vereinigt. Jedes Glock hat eine 1:1-Beziehung mit einer einzigen DLM-Sperre und bietet Caching für diesen Sperrstatus, sodass wiederholt durchgeführte Operationen von einem einzelnen Knoten des Dateisystems nicht immer wieder den DLM aufrufen müssen, was unnötigen Netzwerkverkehr vermeidet. Es gibt zwei wesentliche Kategorien von Glocks: Solche, die Metadaten cachen, und solche, die dies nicht tun. Die Inode-Glocks und die Ressourcengruppen-Glocks cachen beide Metadaten, andere Arten von Glocks cachen Metadaten nicht. Der Inode-Glock cacht darüberhinaus auch Daten und hat von allen Glocks die aufwendigste Logik.
Tabelle C.1. Glock-Modus und DLM-Sperrmodus
Glock-ModusDLM-SperrmodusAnmerkungen
UNIV/NLNicht gesperrt (keine DLM-Sperre zu Glock oder NL-Sperre zugewiesen, abhängig vom I-Flag)
SHPRGemeinsame Sperre (geschütztes Lesen)
EXEXExklusive Sperre
DFCWZeitversetzt (gleichzeitiges Schreiben), verwendet für Direct I/O und Dateisystem-Freeze
Glocks bleiben im Speicher, bis sie entsperrt werden (auf Anforderung eines anderen Knotens oder auf Anforderung der VM) und es keine lokalen Benutzer gibt. Zu diesem Zeitpunkt werden sie aus der Glock-Hash-Tabelle entfernt und freigegeben. Beim Erstellen eines Glocks wird die DLM-Sperre nicht sofort mit dem Glock verknüpft. Die DLM-Sperre wird bei der ersten Anforderung an den DLM mit dem Glock verknüpft und wenn diese Anforderung erfolgreich ist, dann wird das Flag „I“ (Initial) auf dem Glock gesetzt. Tabelle C.4, »Glock-Flags« zeigt die Bedeutungen der verschiedenen Glock-Flags. Sobald der DLM mit dem Glock verknüpft wurde, verbleibt die DLM-Sperre immer zumindest im Sperrmodus NL (Null), bis das Glock freigegeben wird. Eine Herabstufung der DLM-Sperre von NL auf entsperrt ist immer die letzte Operation im Leben eines Glocks.

Anmerkung

Dieser besondere Aspekt des DLM-Sperrverhaltens hat sich seit Red Hat Enterprise Linux 5 verändert, in dem manchmal die mit Glocks verknüpften DLM-Sperren völlig entsperrt werden. Daher hat Red Hat Enterprise Linux 5 einen anderen Mechanismus, um sicherzustellen, dass LVbs (Lock Value Blocks) bewahrt werden, wo erforderlich. Die neue Regelung, die in Red Hat Enterprise Linux 6 verwendet wird, wurde erst durch die Integration des lock_dlm-Sperrmoduls (nicht mit dem DLM selbst zu verwechseln) in GFS2 ermöglicht.
Jedem Glock kann eine Reihe von „Haltern“ zugeordnet sein, von denen jeder eine Sperranforderung von den höheren Schichten darstellt. Die Systemaufrufe für GFS2 fügen Halter in die Warteschlange für dieses Glock ein oder entfernen sie daraus, um den kritischen Abschnitt des Codes zu schützen.
Die Glock State Machine basiert auf einer Arbeitswarteschlange. Aus Effizienzgründen wären Tasklets vorzuziehen, aber in der aktuellen Implementierung muss I/O aus diesem Kontext gesendet werden, was deren Verwendung verhindert.

Anmerkung

Arbeitswarteschlangen haben ihre eigenen Tracepoints, die bei Bedarf in Kombination mit den GFS2-Tracepoints verwendet werden können.
Tabelle C.2, »Glock-Modi und Datentypen« zeigt, welcher ​​Status bei jedem Glock-Modus gecacht werden kann und ob dieser gecachte Status verändert („dirty“) sein darf. Dies gilt sowohl für Inode- als auch für Ressourcengruppen-Sperren, obwohl es keine Datenkomponente für die Ressourcengruppen-Sperren gibt, nur Metadaten.
Tabelle C.2. Glock-Modi und Datentypen
Glock-ModusCache-DatenCache-MetadatenVeränderte DatenVeränderte Metadaten
UNNeinNeinNeinNein
SHJaJaNeinNein
DFNeinJaNeinNein
EXJaJaJaJa
Red Hat logoGithubRedditYoutubeTwitter

Lernen

Testen, kaufen und verkaufen

Communitys

Über Red Hat Dokumentation

Wir helfen Red Hat Benutzern, mit unseren Produkten und Diensten innovativ zu sein und ihre Ziele zu erreichen – mit Inhalten, denen sie vertrauen können.

Mehr Inklusion in Open Source

Red Hat hat sich verpflichtet, problematische Sprache in unserem Code, unserer Dokumentation und unseren Web-Eigenschaften zu ersetzen. Weitere Einzelheiten finden Sie in Red Hat Blog.

Über Red Hat

Wir liefern gehärtete Lösungen, die es Unternehmen leichter machen, plattform- und umgebungsübergreifend zu arbeiten, vom zentralen Rechenzentrum bis zum Netzwerkrand.

© 2024 Red Hat, Inc.