Vorheriger Abschnitt Inhaltsverzeichnis Nächster Abschnitt

6.11 Plattenplatzbegrenzung mit Quota

Wer den Server intensiv als Fileserver im Netz einsetzt und den Schülern die Freiheit lässt, diesen Speicherbereich für eine eigene Web-Seiten und ähnliches zu nutzen, der vermisst  schon bald eine Beschränkung des von den Schülern (und Lehrern) genutzten Plattenplatzes auf dem Kommunikationsserver. Hierfür ist Quota die Lösung!

a) Was ist Quota?

Das Quota-Paket erlaubt dem Systemverwalter unter zwei verschiedenen Aspekten den von den Benutzern genutzten Disk-Speicherbereich zu begrenzen: Einerseits kann die Anzahl der von den Nutzern oder einer Gruppe angelegten Dateieinträge (number of inodes), andererseits der Gesamtumfang des genutzten Speicherbereichs auf einer Partition (number of disk blocks) für einen Nutzer oder eine Gruppe begrenzt werden. Der Ansatz des Quota-Pakets zielt also darauf, die Benutzer zu zwingen, bei Verwendung des Speicherplatzes vorgebenene Grenzen einzuhalten.

Prinzipiell sind für jeden einzelnen Nutzer auf jeder Partition verschiedene Vorgaben einstellbar, die zudem in ein Soft- und ein Hardlimit unterteilt sind. Das Softlimit ist eine Grenze, bei der Quota bereits aktiv wird, die man für einen bestimmten Zeitraum überschreiten darf. Die Überschreitung des Softlimits wird dem Benutzer jede Nacht per E-Mail mitgeteilt. Eine Kopie dieser E-Mail erhält der Systemverwalter "root". Bei Unix-/Linux-Clients kann außerdem beim Anmelden eine Warnung erscheinen, dass die Begrenzung überschritten wurde. Das Hardlimit ist die absolute Obergrenze, kann keinesfalls überschritten werden. Das Softlimit muss also kleiner oder höchstens gleich dem Hardlimit gesetzt werden. Sind beide Grenzen gleich, brauchen Sie sich über die "grace period" und diese E-Mails keine Gedanken machen.

Die "grace period" legt fest, wie lange das Softlimit überschritten werden darf. Dieser Parameter ist nicht auf den einzelnen Nutzer bezogen, sondern auf die jeweilige Partition. Standardmäßig gilt bei der Einrichtung für alle Partitionen eine "Grace Period" von 7 Tagen.

b) Quota konfigurieren

Der ODS-Server ist für die Verwendung von Quotas schon größtenteils vorbereitet. Sie brauchen nur noch wenige Schritte selbst erledigen. Als erstes kontrollieren Sie die Datei /etc/fstab , ob die beiden fett markierten Ergänzungen vorhanden sind:


/dev/hda1    /       ext2        defaults                   1 1
/dev/hda2    swap    swap        defaults                   0 0
/dev/hda3    /var    ext2        defaults,usrquota          1 2
/dev/hda4    /home   ext2        defaults,usrquota          1 3
none         /proc   proc        defaults                   0 0
/dev/hdc     /cdrom  iso9660     defaults,ro,user,noauto    0 0
/dev/fd0     /a      vfat        defaults,rw,umask=000,user,noauto,noexec 0  0

Abbildung 6.11-1: Inhalt der /etc/fstab

Beim Systemstart wird das Quota-Paket automatisch gestartet.

c) Zuweisung von Quotas an die Nutzer

Die Zuweisung von Quotas geschieht über die sysadm Menü: "Anwender" - "Quota". Im dortigen Menüpunkt "Hilfe" ist auch das Verfahren zur Setzung unterschiedlicher Quotas für Lehrer und Schüler beschrieben. Die folgenden Ausführungen beschreiben die Einrichtung von Qouta "mit der Hand", sind aber auch geeignet, zum besseren Verständnis für das System der Quotas beizutragen.

Das Programm edquota dient zur Bearbeitung der Quotas. Normalerweise sollte vor dem Editieren  "quotacheck -avu" aufgerufen werden, um sicherzustellen, dass die aktuelle Plattenbelegung in den Quota-Dateien vorliegt. Das ist mit dem Neustart geschehen. Nur bei Problemen mit dem Dateisystem sollte das zusätzlich erfolgen.

Erstellen einer Vorlage für die Quotas:

Auf dem ODS-Server gibt es einen (nicht weiter benutzten) User games. Das Kommando "edquota -u games" startet den Editor für die Bearbeitung der Quotas dieses Beispielbenutzers:


Quotas for user games:
    /dev/hda3: blocks in use: 0, limits (soft = 1024, hard = 2048)
                   inodes in use: 0, limits (soft = 20, hard = 30)
    /dev/hda4: blocks in use: 0, limits (soft = 4096, hard = 6144)
                   inodes in use: 0, limits (soft = 400, hard = 500)

Abbildung 6.11-2: edquota für games

"blocks in use" ist die Gesamtzahl der Blöcke (in Kilobytes), die der Benutzer auf der Partition belegt hat.
"inodes in use" ist die Gesamtzahl der Dateieinträge, die der Benutzer auf der Partition angelegt hat.
Auf der Partition /dev/hda3 hat ein Benutzer eigentlich nur seine Mail-Datei (und ggf. temporäre Dateien beim Drucken), daher wurde in diesem Beispiel ein Softlimit von 1MB und ein Hardlimit von 2MB eingetragen, sowie die Anzahl der Dateieinträge auf 20 (max 30) festgesetzt. Auf der Partition /dev/hda4 liegt das Heimatverzeichnis, daher wurden hier größere Werte eingetragen. Wieviel Platz Sie jedem Nutzer im Heimatverzeichnis lassen, müssen Sie nach der Gesamtgröße der Festplatte entscheiden.

Kopieren von Quota-Einstellungen an die anderen Nutzer:

Das schnelle Zuweisen identischer Quota-Setzungen an alle User mit UID über 1999 (das sind auf dem c't-Server die Schüler) oder an alle User mit UID über 999 (das sind auf dem c't-Server die normalen User, Lehrer und Schüler) kann dann mit dem Skript /usr/sbin/copyquota vorgenommen werden, wobei der User games als Vorlage dient.
Außerdem wird bei aktiviertem Quota für alle neu angelegten Nutzer diese Begrenzung sofort übernommen. Sie können mit dem Befehle "edquota" aber für jeden einzelnen Nutzer die Beschränkungen wieder ändern.

Setzen der "grace period"

Mit dem Befehl "edquota -t", kann der Wert von "grace period" gesetzt werden. Benutzte Zeiteinheiten können sec(onds), min(utes), hour(s), day(s), week(s) und month(s) sein. Als root kann mit dem Befehl "edquota -t" mit dem Editor der Zeitraum festgelegt werden:


Time units may be: days, hours, minutes, or seconds
Grace period before enforcing soft limits for users:
/dev/hda3: block grace period: 7 days, file grace period: 7 days
/dev/hda4: block grace period: 21 days, file grace period: 21 days

Abbildung 6.11-3: edquota -t für Zeiteinstellung

In diesem Beispiel hat ein Nutzer 7 Tage Zeit, die Begrenzung in der Partition /dev/hda3 (also /var) wieder einzuhalten, jedoch 21 Tage für sein Heimatverzeichnis, das auf /dev/hda4 liegt. Diese Grenze muss für mindestens eine Nacht unterschritten bleiben, damit beim nächtlichen Cronjob die Einhaltung der Grenze erkannt und die "grace period" bei diesem Nutzer zurückgesetzt wird. Wenn er innerhalb der gesetzten "grace period" sein Softlimit nicht wieder unterschreitet, wird nach Ablauf dieser Zeit das Softlimit als Obergrenze aktiv und es können keine Daten mehr auf dem Netzlaufwerk geschrieben werden. Unter Linux führt das in Verbindung mit grafischen Oberflächen dazu, dass der Nutzer sich nicht mehr Anmelden kann.

d) Verschiedene Quota Kommandos

quotacheck

Mit Quotacheck werden die Dateien "quota.user"  auf den aktuellen Stand gebracht. Der Server führt dieses Kommando jede Nacht automatisch aus. Deshalb erhält root jede Nacht eine E-Mail als Rückmeldung von dieser Funktion.

repquota

Repquota gibt eine Zusammenfassung des von den Nutzern belegten Speicherplatzes aus:  Ein Aufruf mit "repquota -av" ergibt:

*** Report for user quotas on /dev/hda3 (/var)
                        Block limits               File limits
User            used    soft    hard  grace    used  soft  hard  grace
root      --    5615       0       0            563     0     0
bin       --       2       0       0              3     0     0
lp        --       1       0       0              1     0     0
news      --      23       0       0             28     0     0
uucp      --      18       0       0             17     0     0
nobody    --    5030       0       0           4160     0     0
www       --       2       0       0              2     0     0
kwerner   --       4    2048    4096              1    20    40

*** Report for user quotas on /dev/hda4 (/home)
                        Block limits               File limits
User            used    soft    hard  grace    used  soft  hard  grace
root      --   72231       0       0            236     0     0
adm       --    3342       0       0             20     0     0
nobody    --       5       0       0              1     0     0
ftp       --     670       0       0              6     0     0
www       --   17304       0       0           1898     0     0
kwerner   --     207    4096    6144             35   300   400
 

quota

Quota zeigt die aktuelle Platzbelegung für den Nutzer an. Dieser Befehl steht jedem Nutzer zur Verfügung, um seinen belegten Platz und die eingetragenen Begrenzungen anzuzeigen. Als root können Sie hinter dem Befehl eine Nutzerkennung angeben, um die Angaben für diesen Nutzer anzuzeigen.

quotaon and quotaoff

Quotaon wird benutzt um die Quota-Funktion beim Systemstart einzuschalten. Mit quotaoff wird beim Herunterfahren des Servers die Quota-Funktion wieder abzuschalten. Sie können quotaoff auch während des normalen Systemlaufs verwenden, um die Quota-Funktion abzuschalten. Damit Sie diese Funktion aber wieder einschalten können, darf auf der Partition keine Datei geöffnet sein. Das können Sie meist nicht während des normalen Systemlaufs realisieren.

warnquota

Warnquota versendet Warnungen an die Benutzer per E-Mail. Dieser Befehl wird jede Nacht als Cron-Job (siehe Kapitel 6.8) ausgeführt. Dadurch werden je Nacht Warnungen an die Nutzer versandt, die ihre Speicherplatzgrenzen überschritten haben. Eine solche per E-Mail zugestellte Warnung sieht dann z.B. so aus:


Message 1/11   From root                               Aug 5, 98 04:39:00 pm

Return-Path: <root>
Date: Wed, 5 Aug 98 16:39 MEST
Subject: Plattenplatzkontrolle: Grenzueberschreitung
To: maxie
Cc: root

Hallo,
Es wurde festgestellt, dass die Plattenplatzbegrenzung
auf diesem System ueberschritten wurden. Folgende Konflikte treten auf:


                        Block limits               Dateieintraege
Filesystem           used    soft    hard  grace    used  soft  hard  grace
/dev/hda4      +-   25384   25000   30000   none    2425  2500  3000


Bitte dafuer sorgen, dass die Ueberschreitung vor Ablauf der Frist beseitigt wir
Das bedeutet, das ein Teil der Dateien auf den angegebenen Partitionen geloescht
oder verkleinert werden muss. Wenn der Platz weiterhin nicht freigegeben wird,
kann es zu Problemen mit der Anmeldung oder anderer Software (Mail, Drucken,...)
kommen und es koennen keine Daten mehr gespeichert werden.

Fuer weitere Informationen bitte an den Systembetreuer wenden.

Abbildung 6.11-4: Quota-Warnung

Diese Beschreibung stellt nur eine Einführung in das Thema Quota dar. Wenn diese Beschreibung nicht ausreicht, sollten Sie weiterführende Literatur zu Rate ziehen.


Vorheriger Abschnitt Inhaltsverzeichnis Nächster Abschnitt
© Reiner Klaproth, 11.02.2002