Zum Inhalt springen

Quota/Realisierungen

Aus Foxwiki

Externe Quotendateien

Vorteile von Quoten ohne tune2fs

  • Maximale Kompatibilität und Vorhersagbarkeit
  • Funktionieren auf alten Kerneln und Distributionen.
  • Gleiches Vorgehen für ext2/ext3/ext4 und eine Reihe anderer Dateisysteme.
  • Eine Partition mit solchen Quoten kann auf einem anderen Rechner eingehängt werden, auf dem es keine Unterstützung für ext4-native-Quoten gibt, und die Quoten funktionieren weiterhin, sofern dort derselbe Satz von quota-Werkzeugen vorhanden ist.
  • Keine Änderungen an der Struktur des Dateisystems
  • Kein Risiko, das Dateisystem durch eine falsche -O-Option oder fehlerhaftes Verhalten von tune2fs „kaputtzumachen“.
  • Anwendbar auf Partitionen, bei denen es nicht möglich ist, das Dateisystem sicher auszuhängen (oder kein Wartungsfenster für größere Eingriffe existiert).
  • Einfaches Datenmodell
  • Die Quoten werden in normalen Dateien (quota.* oder aquota.*) im Wurzelverzeichnis des Dateisystems gespeichert.
  • Diese Dateien lassen sich leicht anzeigen, kopieren, archivieren und löschen.
  • Für manche administrativen Aufgaben ist es praktisch, eine explizite Datei zu haben und keinen versteckten internen Inode.
  • Einfache Rücknahme und Deaktivierung. Um Quoten zu deaktivieren, genügt es:
  • die Optionen usrquota/grpquota (oder usrjquota/grpjquota) aus /etc/fstab zu entfernen
  • quotaoff auszuführen
  • bei Bedarf die Dateien quota.* / aquota.* zu löschen
  • Die Struktur des Dateisystems ändert sich dabei nicht; es muss nichts auf Ebene der ext4-Features zurückgesetzt werden.

Nachteile von Quoten ohne tune2fs

  • Risiko einer Desynchronisation der Quotendateien
  • Bei einem Systemabsturz, einem Hard-Reset oder Problemen mit der Platte können die Daten in quota.* / aquota.* nicht mehr dem tatsächlichen Zustand des Dateisystems entsprechen.
  • In der Regel erfordert das einen Lauf von quotacheck, was auf großen Partitionen viel Zeit in Anspruch nehmen kann.
  • Performance-Einbußen beim Lauf von quotacheck auf großen Datenmengen:
  • quotacheck muss das gesamte Dateisystem durchlaufen, um die Nutzung von Blöcken/Inodes neu zu zählen.
  • Auf Partitionen von mehreren TB kann das spürbar Zeit kosten und zusätzliche I/O-Last erzeugen.
  • Weniger enge Integration mit dem ext4-Journal:
  • Selbst wenn der journalisierte Modus verwendet wird (usrjquota=...,jqfmt=vfsv1), bleiben die Quoten externe Dateien und sind keine internen Strukturen des Dateisystems
  • Die eingebaute Quota-Funktion von ext4 ist enger mit dem Journal integriert und im Allgemeinen robuster bei Störungen.
  • In der Praxis ein veralteter Ansatz für ext4
  • Auf neuen Systemen und in aktueller Dokumentation werden externe Quoten für ext4 oft als veraltete Methode bezeichnet; bevorzugt werden die eingebauten (native) Quoten.


Schema

Vereinfacht sieht das Schema folgendermaßen aus: 1. Kennzeichnung auf Mount-Ebene

In /etc/fstab werden für das Dateisystem Optionen der Form eingetragen:

usrquota,grpquota
oder
usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv1

Beim Einhängen erkennt der Kernel, dass auf diesem Dateisystem Benutzer-/Gruppenquoten aktiv sein sollen.

2. Quotendateien im Wurzelverzeichnis des Dateisystems

Im Wurzelverzeichnis des Dateisystems werden spezielle binäre Quotendateien angelegt

  • ältere Variante:
quota.user quota.group
  • neuere, verbreitete Variante:
aquota.user aquota.group.

Darin werden Einträge pro UID/GID gespeichert: belegte Blöcke, belegte Inodes, weiche und harte Limits, Dauer der Grace-Periode usw.

3. Kernel und Quotendateien

Der Kernel greift bei jeder Operation, die die Plattennutzung verändern kann (Anlegen/Löschen von Dateien, Vergrößern der Dateigröße usw.), auf die Quotadaten zu:

  • prüft, ob das Limit überschritten würde
  • verweigert oder erlaubt die Operation
  • aktualisiert die Zähler in den Quotendateien über einen Cache im Speicher mit periodischem Schreiben auf die Platte

In der journalisierten Variante (Optionen usrjquota=/grpjquota=) werden die Aktualisierungsvorgänge für aquota.* teilweise in das Journal des Dateisystems integriert

4. Werkzeuge aus dem Paket quota

  • quotacheck – scannt das Dateisystem, berechnet die Nutzung neu und erzeugt/repariert die Quotendateien.
  • quotaon / quotaoff – aktivieren/deaktivieren die Anwendung der Quoten im Kernel.
  • edquota – bearbeitet die Limits für einen bestimmten Benutzer/eine bestimmte Gruppe.
  • repquota – Bericht über die Quoten (wer wie viel nutzt, wo Überschreitungen vorliegen usw.).
  • quota – zeigt die Quoten eines bestimmten Benutzers an.

Eingebettete Quotendateien

Vorteile integrierter Quoten - über tune2fs

  • Zuverlässigeres Verhalten bei Ausfällen
  • Die Aktualisierung der Quoten ist in das Journal des Dateisystems integriert, daher sind die Quotendaten nach einem Systemabsturz wesentlich weniger anfällig für Desynchronisation als externe Dateien aquota.*.
  • ext4 erzeugt spezielle interne Inodes, die im Superblock eingetragen sind
  • Die Quoten werden in speziellen Inodes gespeichert und sind im Verzeichnis / nicht sichtbar
  • Kein „Müll“ im Wurzelverzeichnis des Dateisystems
  • Schnelle Wiederherstellung nach Serverabstürzen
  • Wenn die Quota-Feature vorhanden ist, wird die Quotenverwaltung beim Mounten automatisch eingeschaltet, ohne dass ein quotacheck über das gesamte Dateisystem ausgeführt werden muss
  • In der Regel muss man nicht stundenlang auf die Neuberechnung der Quoten auf einer Multi-Terabyte-Partition warten.
  • Moderner, von den Entwicklern unterstützter Ansatz
  • Die Dokumentation empfiehlt ausdrücklich die ext4-Quota-Feature
  • Externe Quotendateien auf ext4 gelten bereits offiziell als veraltet: der Kernel gibt eine Warnung der Form aus
`external quota files on ext4 are deprecated, please switch filesystem to use ext4 quota feature`
  • Unterstützung von Project-Quoten
  • Zusammen mit der Project-Feature können Projektquoten (prjquota) aktiviert werden, also Quoten auf Verzeichnisse (Projekte) und nicht nur auf UID/GID




Anhang

Siehe auch



Dokumentation

Links

Projekt

Weblinks