Storage Kapazität gerecht verteilen

Workshop - Disk Quotas in Windows und Linux sinnvoll einsetzen

07.11.2011 von Thomas Hümmler
Wer einen Windows-, Linux- oder Unix-Server betreibt, sollte deren Home-Verzeichnisse in der Speichergröße begrenzen, um Speicherengpässe zu vermeiden. Gewiefte Administrator nutzen zu diesem Zweck Disk Quotas. Wie diese unter Windows und Linux eingerichtet werden, zeigt der folgende Workshop.

Unter Unix sind Disk Quotas schon lange bekannt, in Windows erst seit der Version 2000. Dort heißen sie auch nicht "Festplattenanteile", sondern Datenträgerkontingent - gemeint ist aber dasselbe. Beispielsweise arbeiten Internet-Provider mit Quota für Mail-Verzeichnisse, damit die Benutzer nicht unbegrenzt ihre E-Mails auf dem Server belassen. Mithilfe dieser Quota-Funktion kann man unter anderem die Speichernutzung verfolgen und steuern.

Jeder User erhält ein bestimmtes Quantum an Festplattenplatz. Diese Menge kann üblicherweise nicht überschritten werden. Allerdings erhält der Benutzer eine Warnmeldung vom System, sobald sein Speicherplatz knapp wird. Wann diese erscheint, legt der Administrator fest.

Man kann Quotas auch dazu nutzen, lediglich die Speichernutzung zu protokollieren. In dem Fall kann die Speichergrenze folgenlos überschritten werden.

Datenträgerkontingente unter Windows 7 konfigurieren

Um Datenträgerkontingente festlegen zu können, müssen Sie auf dem lokalen Computer ein Mitglied der Gruppe "Administratoren" sein oder die entsprechende Berechtigung haben. Ist der Computer Mitglied einer Domäne, können diese Schritte möglicherweise nur von Mitgliedern der Gruppe "Domänen-Admins" ausgeführt werden.

Wichtig: Markieren Sie zunächst Kontingentverwaltung aktivieren, um Zugriff auf die Quota-Funktionen von Windows 7 zu erhalten.

Datenträgerkontingente legen Administratoren jeweils für ganze Laufwerke fest. Auf NTFS-Laufwerken unter Windows 7 geht das wie folgt: Im Explorer wählen Sie ein Laufwerk und betätigen die rechte Maustaste, um danach den Eigenschaften-Dialog zu öffnen. Dort klicken Sie auf dem Register Kontingent auf die Schaltfläche Kontingenteinstellungen anzeigen. Im folgenden Dialog markieren Sie zunächst "Kontingentverwaltung aktivieren". Nun haben Sie Zugriff auf die entsprechenden Funktionen:

Details: Um ein bestimmtes Kontingent für neue Benutzer zu aktivieren, schalten Sie "Speicherplatz beschränken auf" ein und legen einen Wert von Kilobyte bis Exabyte fest. Im Feld darunter definieren Sie die Warnstufe.

Haben Sie alles eingestellt, schalten Sie mit zweimal OK das Kontingentsystem ein.

Speicherkontingente unter Windows 7 per Befehlszeile konfigurieren

Es ist auch möglich, die Datenträgerkontingente unter Windows 7 für einzelne User anzupassen. Allerdings funktioniert das nur auf der Befehlszeile. Dort lautet der Befehl

fsutil quota modify [Volumepfadname] [Schwellenwert] [Grenzwert] [Benutzername]

Ersetzen Sie die Parameter in den eckigen Klammern durch die gewünschten Werte.

Was Windows-Benutzer wissen sollten: Dateikomprimierung spielt für das Kontingent keine Rolle, denn komprimierte Dateien werden immer anhand ihrer unkomprimierten Größe verfolgt. Windows zählt bei der Berechnung der Kontingentgrenze also die ursprüngliche Dateigröße.

Disk Quota unter Ubuntu

Disk Quota ist unter Linux wie etwa Ubuntu wesentlich mächtiger als in Windows. Mit Quota kann man den Festplattenspeicher sehr spezifisch einschränken. Das gilt für alle in der Dateisystemtabelle /etc/fstab gelisteten Partitionen, die mit einem gängigen Linux-Dateisystem ausgestattet sind. Im Gegensatz zu Windows kann der Plattenplatz nicht nur für einzelne Benutzer individuell geregelt werden; Unix erlaubt den Zwischenschritt über Gruppen.

Außerdem kann nicht nur der Speicherplatz begrenzt werden, sondern auch die Anzahl an Dateien und Ordner, die angelegt werden dürfen. Und schließlich kann man einen speicherhungrigen Benutzer zum Beispiel per Mail benachrichtigen lassen, wenn die Warnschwelle erreicht ist.

Damit Quota funktioniert, muss der Kernel entsprechend kompiliert sein. Das ist bei allen bekannteren Distributionen der Fall. Der Quota-Service wird beim Booten des Systems gestartet. Er arbeitet ein wenig anders als unter Windows. Gleich sind das sogenannte "Softlimit" - die Warnschwelle - und das sogenannte "Hardlimit" - die Speicherobergrenze. Mit dem "Softlimit" erreicht der Benutzer auch die Gnadenfrist (Grace Period). Die dauert standardmäßig sieben Tage.

Innerhalb dieser Zeit muss der Anwender oder die Gruppe Dateien verlagern, löschen oder komprimieren, um wieder den sogenannten "Under-Quota-Zustand" zu erreichen. Wird das versäumt, wechselt der Zustand zum "Hardlimit", und der User kann nicht mehr produktiv arbeiten. Spätestens dann muss er den Gang nach Canossa antreten und sich vom Administrator die Absolution erteilen lassen. Der verlängert dann entweder die Frist, erhöht das "Hardlimit" oder löscht selbst die Dateien.

Ubuntu-Disk-Quota einrichten

Um Disk Quota unter Ubuntu zu nutzen, ist das Paket quota erforderlich. Sinnvoll ist außerdem das Paket quotatool, das das Einstellen des Quotas sehr vereinfacht. Installieren Sie diese Pakete mit

sudo apt-get install quota quotatool

Anschließend müssen Sie zunächst in der Datei /etc/fstab festlegen, welche Partition(en) mit Benutzer- und/oder Gruppenquota versehen werden sollen. Öffnen Sie diese Datei mit root-Rechten in einem Editor. Ändern Sie beispielsweise die Partition mit den Home-Verzeichnissen von

/dev/sdc3 /home ext3 defaults 0 2

in

/dev/sdc3 /home ext3 defaults, usrquota,grpquota 0 2

um Benutzer- und Gruppen-Quota einzurichten. Dieses Verfahren erzeugt mit Linux-Kernel ab Version 2.6 automatisch sogenannte Journal-Quotas. Die haben gegenüber den früheren den Vorteil, dass der Befehl quotacheck nicht mehr nach jedem unsauberen Herunterfahren ausgeführt werden muss. Damit die Quotas funktionieren, müssen Sie die folgenden Befehle ausführen:

sudo mount -o remount /homesudo quotacheck -avugmc

Hilfreich: Der Befehl repquota zeigt für die Benutzer des Dateisystems den Speicherplatz und die Dateianzahl an.

Der erste Befehl mountet das Dateisystem noch einmal. Der quotacheck-Befehl überprüft die Quotas jedes Dateisystems, erzeugt eine Tabelle der gegenwärtigen Festplattennutzung und vergleicht diese mit der Plattenquotadatei des Dateisystems. Bei Unstimmigkeiten werden beide aktualisiert. Die Parameter "u" und "g" sorgen dafür, das User- und Gruppenquotas geprüft werden, und "c" erzeugt die Dateien aquota.user und aquota.group, falls sie nicht schon vorhanden sind.

Anschließend kann man sich mit dem Befehl repquota anzeigen lassen, wie viel Plattenplatz die Benutzer und Gruppen verwenden. Die korrekte Syntax in diesem Beispiel ist:

sudo repquota /home

Da noch keine Quotas gesetzt sind, zeigt die Ausgabe nur die Blöcke und die Inodes an. Die Blöcke stehen für den belegten Speicherplatz in Kilobyte, die Inodes für die Anzahl der Dateien. Mit sudo repquota -s /home wird die Ausgabe leichter lesbar.

Quotas editieren und festlegen

Im nächsten Schritt kann man nun die Quotas für Benutzer und Gruppen festlegen. Dabei hilft der edquota-Befehl. Mit

sudo edquota -u BENUTZER

oder

sudo edquota -g GRUPPE

wird der Editor gestartet mit den Quotas des entsprechenden Benutzers beziehungsweise der Gruppe. Darin stehen dann alle Dateisysteme mit den jeweiligen Quotas. Ändern Sie hier nur die Werte für "weich" und "hart", um das Soft- und Hardlimit festzulegen.

Nützlich: Mit dem Befehl edquota bearbeiten Sie die Quotas eines Benutzers oder einer Gruppe.

Die zuvor erwähnte Gnadenfrist ändern Sie mit sudo edquota -t. Hier stehen als Vorgabe "7days", bevor die weichen Limits Gültigkeit erlangen. Statt "days" können hier auch "hours", "minutes" oder "seconds" zusammen mit einer Zahlenangabe benutzt werden. Und wenn Sie anstelle des Parameters "-t" den Befehl mit einem großen "T" verwenden, können Sie die Frist für einzelne Benutzer ändern, etwa so:

sudo edquota -T thomas

lädt die Gnadenfristen für den Benutzer thomas in den Editor.

Toleranzen: Mit dem Befehl "sudo edquota -t" definieren Sie die Gnadenfrist für den Festplattenspeicher oder die Anzahl der Dateien.

Ist für den ersten Benutzer alles eingestellt, können Sie dessen Quota-Werte auf alle anderen Benutzer des Dateisystems übertragen. Der Befehl dazu lautet:

sudo edquota -p BENUTZER `awk -F: '$3 > 1000 {print $1}' /etc/passwd`

Starten des Quota-Services

Der Quota-Service startet beim Booten automatisch. Sie müssen nichts weiter tun. Ob er läuft, prüfen Sie mit dem Befehl

sudo quotaon -p -a

Falls die Quotas noch ausgeschaltet sind, schalten Sie sie mit

sudo quotaon -a

ein. Jetzt sollten Sie unbedingt noch in der Datei /etc/default/quota die Option "run_warnquota" auf "true" setzen. Damit wird das Programm warnquota täglich per Cronjob gestartet. Das schickt eine Mail an alle Benutzer mit dem Hinweis, dass ihre Verzeichnisse über dem "Softlimit" liegen. Den Inhalt der Mail legen Sie in den Dateien /etc/warnquota.conf und /etc/quotatab fest. Die Mail geht üblicherweise an die jeweiligen User.

Wurden allerdings Gruppenquotas festgelegt, können Sie in der Datei /etc/quotagrpadmins noch die Gruppenverantwortlichen benennen; diese erhalten dann die Warn-Mail. In die Datei /etc/quotatab schreiben Sie für die Geräte Klarnamen. Diese stehen dann anstelle kryptischer Gerätenamen in der Warnmeldung; so können die Benutzer die Nachricht besser verstehen. In der Datei /etc/warnquota.conf legen Sie weitere Parameter der Mail fest:

- MAIL_CMD: ist der Mail-Befehl

- FROM: der Absender

- SUBJECT: Betreff

- CC_TO: Kopie an

- SUPPORT: Mail-Adresse des Supports

- PHONE: Telefonnummer des Administrators

- CHARSET: zu benutzender Zeichensatz

Sind alle notwendigen Einstellungen vorgenommen worden, bietet Disk Quota eine komfortablen Service für die Administration des Storage-Systems. Dabei profitiert auch der Anwender, der rechtzeitig informiert wird, dass sein Verzeichnis "vollläuft". (hal