4.5. Verwalten von GFS2-Festplattenkontingenten
Dateisystemkontingente werden dazu verwendet, um die Menge des Dateisystemspeichers zu begrenzen, den ein Benutzer oder eine Gruppe verbrauchen darf. Ein Benutzer oder eine Gruppe hat standardmäßig kein begrenztes Kontingent, bevor nicht eines gesetzt wird. Wenn ein GFS2-Dateisystem mit der Option
quota=on
oder der quota=account
eingehängt wird, verfolgt GFS2 den Speicherverbrauch von jedem Benutzer und jeder Gruppe nach, selbst wenn keine Grenzen gesetzt wurden. GFS2 aktualisiert die Kontingentinformationen auf transaktionale Weise, sodass nach einem Systemabsturz der Kontingentverbrauch nicht rekonstruiert werden muss.
Um nachteilige Auswirkungen auf die Leistung zu vermeiden, synchronisiert ein GFS2-Knoten die Aktualisierungen an der Kontingentdatei nur periodisch. Die demzufolge etwas ungenaue Nachverfolgung der Kontingente ermöglicht es Benutzern oder Gruppen unter Umständen, ihre gesetzten Grenzen leicht zu überschreiten. Um diesen Effekt zu minimieren, verkleinert GFS2 die zeitlichen Abstände der Synchronisation dynamisch, wenn sich die „harte“ Kontingentgrenze nähert.
Anmerkung
Ab der Red Hat Enterprise Linux 6.1 Release unterstützt GFS2 die standardmäßigen Linux-Funktionen für Festplattenkontingente. Um diese nutzen zu können, müssen Sie das quota-RPM installieren. Dies ist die bevorzugte Methode zur Verwaltung von Festplattenkontingenten auf GFS2 und sollte für alle neuen GFS2-Bereitstellungen, die Kontingente nutzen, verwendet werden. Dieser Abschnitt dokumentiert die GFS2-Kontingentverwaltung mithilfe dieser Funktionen.
In früheren Releases von Red Hat Enterprise Linux erforderte GFS2 den
gfs2_quota
-Befehl zur Verwaltung von Festplattenkontingenten. Informationen über die Verwendung des gfs2_quota
-Befehls finden Sie in Anhang A, GFS2-Kontingentverwaltung mit dem Befehl gfs2_quota
.
4.5.1. Konfigurieren von Festplattenkontingenten
Um Festplattenkontingente zu implementieren, führen Sie die folgenden Schritte aus:
- Richten Sie Kontingente im Erzwingen- oder Berechnen-Modus ein.
- Initialisieren Sie die Kontingentdatenbankdatei mit den aktuellen Informationen zum Blockverbrauch.
- Weisen Sie Kontingentrichtlinien zu. (Wurde lediglich der Berechnen-Modus eingestellt, werden diese Richtlinien jedoch nicht erzwungen.)
Jeder dieser Schritte wird in den nachfolgenden Abschnitten detailliert behandelt.
4.5.1.1. Einrichten von Kontingenten im Erzwingen- oder Berechnen-Modus
In GFS2-Dateisystemen sind Kontingente standardmäßig deaktiviert. Um Kontingente für ein Dateisystem zu aktivieren, hängen Sie das Dateisystem mit der Option
quota=on
ein.
Es ist möglich, den Festplattenverbrauch nachzuverfolgen und Kontingente für alle Benutzer und Gruppen zu berechnen, ohne die Grenz- oder Warnwerte zu erzwingen. Hängen Sie dazu das Dateisystem mit der Option
quota=account
ein.
4.5.1.1.1. Verwendung
Um ein Dateisystem mit aktivierten Kontingenten einzuhängen, hängen Sie das Dateisystem mit der Option
quota=on
ein.
mount -o quota=on BlockDevice MountPoint
Um ein Dateisystem mit aktivierter Kontingentberechnung einzuhängen, wobei die Kontingentgrenzen jedoch nicht erzwungen werden, hängen Sie das Dateisystem mit der Option
quota=account
ein.
mount -o quota=account BlockDevice MountPoint
Um ein Dateisystem mit deaktivierten Kontingenten einzuhängen, hängen Sie das Dateisystem mit der Option
quota=off
ein. Dies ist die Standardeinstellung.
mount -o quota=off BlockDevice MountPoint
quota={on|off|account}
on
– Gibt an, dass Kontingente aktiviert sind, wenn das Dateisystem eingehängt wird.off
– Gibt an, dass Kontingente deaktiviert sind, wenn das Dateisystem eingehängt wird.account
– Gibt an, dass die Benutzer- und Gruppenverbrauchsstatistik im Dateisystem gepflegt werden soll, selbst wenn die Kontingentgrenzen nicht erzwungen werden.BlockDevice
- Gibt das Blockgerät an, auf dem sich das GFS2-Dateisystem befindet.
MountPoint
- Gibt das Verzeichnis an, in dem das GFS2-Dateisystem eingehängt werden soll.
4.5.1.1.2. Beispiele
In diesem Beispiel wird das GFS2-Dateisystem
/dev/vg01/lvol0
mit aktivierten Kontingenten im /mygfs2
-Verzeichnis eingehängt.
mount -o quota=on /dev/vg01/lvol0 /mygfs2
In diesem Beispiel wird das GFS2-Dateisystem
/dev/vg01/lvol0
mit Kontingentberechnung, jedoch ohne Erzwingen von Kontingentgrenzen, im /mygfs2
Verzeichnis eingehängt.
mount -o quota=account /dev/vg01/lvol0 /mygfs2
4.5.1.2. Erstellen der Kontingent-Datenbankdateien
Nachdem jedes Dateisystem mit aktivierten Kontingenten eingehängt wurde, kann das System nun mit Kontingenten arbeiten. Allerdings ist das System selbst noch nicht dazu eingerichtet, Kontingente zu unterstützen. Der nächste Schritt ist daher das Ausführen des
quotacheck
-Befehls.
Der
quotacheck
-Befehl untersucht die Dateisysteme mit aktivierten Kontingenten und erzeugt eine Tabelle des aktuellen Festplattenverbrauchs pro Dateisystem. Diese Tabelle wird dann verwendet, um für das Betriebssystem eine laufend aktualisierte Kopie des Verbrauchs zu pflegen. Zudem werden die Kontingentdateien des Dateisystems aktualisiert.
Um die Kontingentdateien auf dem Dateisystem zu erstellen, verwenden Sie die Optionen
-u
und -g
des quotacheck
-Befehls; beide Optionen müssen angegeben werden, damit sowohl Benutzer- als auch Gruppenkontingente initialisiert werden. Wenn Kontingente beispielsweise auf dem /home
-Dateisystem aktiviert sind, erstellen Sie die Dateien im /home
-Verzeichnis:
quotacheck -ug /home
4.5.1.3. Kontingente pro Benutzer zuweisen
Weisen Sie abschließend die Festplattenkontingente mit dem
edquota
-Befehl zu. Beachten Sie, dass Kontingente nicht erzwungen werden, wenn Sie Ihr Dateisystem nur im Berechnen-Modus eingehängt haben (durch Angabe der Option quota=account
).
Um ein Festplattenkontingent für einen Benutzer zu konfigurieren, führen Sie als Root in einer Shell den folgenden Befehl aus:
edquota username
Führen Sie diesen Schritt für jeden Benutzer durch, dem ein Kontingent zugewiesen werden soll. Wenn beispielsweise in der
/etc/fstab
-Datei Kontingente für die /home
-Partition (/dev/VolGroup00/LogVol02
im nachfolgenden Beispiel) aktiviert sind und Sie den Befehl edquota testuser
ausführen, sehen Sie Folgendes im Standard-Editor des Systems:
Disk quotas for user testuser (uid 501): Filesystem blocks soft hard inodes soft hard /dev/VolGroup00/LogVol02 440436 0 0
Anmerkung
Der
edquota
-Befehl nutzt den Texteditor, der durch die EDITOR
-Umgebungsvariable definiert wurde. Um den Editor zu ändern, setzen Sie die EDITOR
-Umgebungsvariable in Ihrer ~/.bash_profile
-Datei auf den vollständigen Pfad zum Editor Ihrer Wahl.
Die erste Spalte zeigt den Namen des Dateisystems, auf dem Kontingente aktiviert wurden. Die zweite Spalte zeigt, wie viele Blöcke der Benutzer derzeit verbraucht. Die nächsten zwei Spalten legen die weichen und harten Blockgrenzen für den Benutzer auf dem Dateisystem fest.
Die weiche Blockgrenze definiert den maximalen Speicherplatz, der verbraucht werden kann.
Die harte Blockgrenze definiert den absolut maximalen Speicherplatz, den ein Benutzer oder eine Gruppe verbrauchen kann. Sobald diese Grenze erreicht wurde, kann kein weiterer Festplattenplatz verbraucht werden.
Das GFS2-Dateisystem pflegt keine Kontingente für Inodes, diese Spalten sind für GFS2-Dateisysteme demnach irrelevant und bleiben leer.
Falls einer der Werte auf 0 gesetzt ist, wurde diese Grenze nicht gesetzt. Ändern Sie im Texteditor die Grenzen auf die gewünschten Werte. Zum Beispiel:
Disk quotas for user testuser (uid 501): Filesystem blocks soft hard inodes soft hard /dev/VolGroup00/LogVol02 440436 500000 550000
Um zu überprüfen, ob das Kontingent wie gewünscht für den Benutzer festgelegt wurde, führen Sie den folgenden Befehl aus:
quota testuser
4.5.1.4. Kontingente pro Gruppe zuweisen
Kontingente können auch pro Gruppe zugewiesen werden. Beachten Sie, dass Kontingente nicht erzwungen werden, wenn Sie Ihr Dateisystem nur im Berechnen-Modus eingehängt haben (durch Angabe der Option
account=on
).
Um ein Gruppenkontingent für die
devel
-Gruppe festzulegen (die Gruppe muss bereits existieren, ehe das Gruppenkontingent festgelegt werden kann), verwenden Sie den folgenden Befehl:
edquota -g devel
Dieser Befehl zeigt die vorhandenen Kontingente für die Gruppe im Texteditor:
Disk quotas for group devel (gid 505): Filesystem blocks soft hard inodes soft hard /dev/VolGroup00/LogVol02 440400 0 0
Das GFS2-Dateisystem pflegt keine Kontingente für Inodes, diese Spalten sind für GFS2-Dateisysteme demnach irrelevant und bleiben leer. Verändern Sie die Grenzen wie gewünscht und speichern Sie die Datei.
Um zu überprüfen, ob das Kontingent wie gewünscht für die Gruppe festgelegt wurde, führen Sie den folgenden Befehl aus:
quota -g devel