Disk Quotas: Unterschied zwischen den Versionen
| Zeile 3: | Zeile 3: | ||
*Disk Quotas (Festplattenkontingente) sind ein Mechanismus, der in Betriebssystemen verwendet wird, um die Nutzung des Speicherplatzes auf einem Dateisystem durch Benutzer oder Benutzergruppen zu überwachen und zu begrenzen. | *Disk Quotas (Festplattenkontingente) sind ein Mechanismus, der in Betriebssystemen verwendet wird, um die Nutzung des Speicherplatzes auf einem Dateisystem durch Benutzer oder Benutzergruppen zu überwachen und zu begrenzen. | ||
*Das Ziel von Disk Quotas besteht darin, sicherzustellen, dass kein Benutzer den verfügbaren Speicherplatz übermäßig beansprucht, um eine gerechte Verteilung des Speicherplatzes zu gewährleisten. | *Das Ziel von Disk Quotas besteht darin, sicherzustellen, dass kein Benutzer den verfügbaren Speicherplatz übermäßig beansprucht, um eine gerechte Verteilung des Speicherplatzes zu gewährleisten. | ||
| + | *Quotas gelten immer für ein einzelnes Dateisystem, nicht systemweit. Ein Benutzer kann auf <code>/heimat</code> begrenzt sein und auf <code>/tmp</code> trotzdem schreiben. | ||
==Einige grundlegende Konzepte und Funktionen von Disk Quotas== | ==Einige grundlegende Konzepte und Funktionen von Disk Quotas== | ||
===Benutzerquotas=== | ===Benutzerquotas=== | ||
| Zeile 10: | Zeile 11: | ||
*Ähnlich wie bei Benutzerquotas können Gruppenquotas verwendet werden, um den Speicherplatzverbrauch für bestimmte Benutzergruppen zu überwachen und zu begrenzen. | *Ähnlich wie bei Benutzerquotas können Gruppenquotas verwendet werden, um den Speicherplatzverbrauch für bestimmte Benutzergruppen zu überwachen und zu begrenzen. | ||
*Dies ermöglicht eine feinere Kontrolle über die Nutzung des Speicherplatzes durch Gruppen von Benutzern. | *Dies ermöglicht eine feinere Kontrolle über die Nutzung des Speicherplatzes durch Gruppen von Benutzern. | ||
| + | *Maßgeblich ist die Gruppe, der die Datei gehört – nicht die Gruppen, in denen der schreibende Benutzer Mitglied ist. | ||
| + | ===Blöcke und Inodes=== | ||
| + | *Begrenzt wird nicht nur der belegte Platz, sondern auch die '''Anzahl''' der Dateien. | ||
| + | *Die Blockgrenze wird in KiB angegeben, die Inode-Grenze als Stückzahl. Beide lassen sich unabhängig voneinander setzen, beide können einzeln auch offen bleiben (Wert 0). | ||
| + | *Ohne Inode-Grenze kann ein Benutzer ein Dateisystem mit Millionen leerer Dateien lahmlegen, ohne je die Blockgrenze zu berühren. | ||
===Soft Quotas und Hard Quotas=== | ===Soft Quotas und Hard Quotas=== | ||
*Disk Quotas können in zwei Modi konfiguriert werden: Soft Quotas und Hard Quotas. | *Disk Quotas können in zwei Modi konfiguriert werden: Soft Quotas und Hard Quotas. | ||
| − | *Bei Soft Quotas erhalten Benutzer oder Gruppen eine Warnung, wenn sie ihr Kontingent erreichen oder überschreiten, | + | *Bei Soft Quotas erhalten Benutzer oder Gruppen eine Warnung, wenn sie ihr Kontingent erreichen oder überschreiten, dürfen aber zunächst weiterschreiben. |
| − | *Bei Hard Quotas wird das Schreiben neuer Dateien sofort verhindert, sobald das Kontingent erreicht oder überschritten wird. | + | *Dieses Weiterschreiben ist zeitlich begrenzt: Nach Ablauf der '''Grace Period''' (Standard 7 Tage) wirkt die Soft Quota wie eine Hard Quota. Sinkt der Verbrauch vorher wieder unter den Softwert, läuft die Frist zurück. |
| + | *Bei Hard Quotas wird das Schreiben neuer Dateien sofort verhindert, sobald das Kontingent erreicht oder überschritten wird. Die Hard Quota ist eine echte Obergrenze und kann nicht überschritten werden. | ||
===Quota-Verwaltungstools=== | ===Quota-Verwaltungstools=== | ||
*Betriebssysteme bieten in der Regel spezielle Tools zur Verwaltung von Disk Quotas an. | *Betriebssysteme bieten in der Regel spezielle Tools zur Verwaltung von Disk Quotas an. | ||
*Diese Tools ermöglichen die Konfiguration von Quota-Einstellungen, Überwachung des Speicherplatzverbrauchs, Berichterstattung und Verwaltung von Warnmeldungen und Benachrichtigungen. | *Diese Tools ermöglichen die Konfiguration von Quota-Einstellungen, Überwachung des Speicherplatzverbrauchs, Berichterstattung und Verwaltung von Warnmeldungen und Benachrichtigungen. | ||
| − | + | {| class="wikitable" | |
| + | ! Werkzeug !! Aufgabe | ||
| + | |- | ||
| + | | <code>quotacheck</code> || Quotadatenbank anlegen und mit dem Ist-Zustand abgleichen | ||
| + | |- | ||
| + | | <code>quotaon</code> / <code>quotaoff</code> || Quotas ein- und ausschalten | ||
| + | |- | ||
| + | | <code>edquota</code> || Grenzwerte und Grace Period im Editor bearbeiten | ||
| + | |- | ||
| + | | <code>setquota</code> || Grenzwerte ohne Editor setzen, für Skripte | ||
| + | |- | ||
| + | | <code>repquota</code> || Übersicht über alle Benutzer bzw. Gruppen | ||
| + | |- | ||
| + | | <code>quota</code> || Auskunft für einen einzelnen Benutzer | ||
| + | |} | ||
=Disk Quotas Installation= | =Disk Quotas Installation= | ||
;Debian | ;Debian | ||
| − | * | + | *apt install -y quota |
;Rocky | ;Rocky | ||
| − | * | + | *dnf install -y quota |
| − | |||
=Aktivieren von Disk Quotas= | =Aktivieren von Disk Quotas= | ||
==Erstellen eines Verzeichnis== | ==Erstellen eines Verzeichnis== | ||
*mkdir /heimat | *mkdir /heimat | ||
==Formatieren von /dev/sdd== | ==Formatieren von /dev/sdd== | ||
| − | *mkfs.ext4 /dev/sdd | + | *mkfs.ext4 -L heimat /dev/sdd |
==Eintrag mit den neuen Optionen in die fstab== | ==Eintrag mit den neuen Optionen in die fstab== | ||
| − | *echo /dev/sdd /heimat ext4 defaults,usrquota,grpquota 0 | + | Die Optionen <code>usrquota</code> und <code>grpquota</code> schalten die Quota-Unterstützung für dieses Dateisystem frei. Ohne sie greift später kein einziges Quota-Kommando. |
| + | *echo "/dev/sdd /heimat ext4 defaults,usrquota,grpquota 0 2" >> /etc/fstab | ||
==Bei systemd System eventuell notwendig== | ==Bei systemd System eventuell notwendig== | ||
*systemctl daemon-reload | *systemctl daemon-reload | ||
| Zeile 36: | Zeile 57: | ||
*mount -a | *mount -a | ||
==Kontrolle== | ==Kontrolle== | ||
| − | * | + | Die beiden Optionen müssen in der Ausgabe auftauchen: |
| + | *findmnt /heimat | ||
==Erstellen von Quotadatenbanken== | ==Erstellen von Quotadatenbanken== | ||
| + | Legt <code>aquota.user</code> und <code>aquota.group</code> im Wurzelverzeichnis des Dateisystems an. Die Warnung, das Dateisystem sei gemountet, ist auf einem frisch angelegten und noch leeren Dateisystem unkritisch. | ||
*quotacheck -cug /heimat | *quotacheck -cug /heimat | ||
| + | *ls -l /heimat | ||
==Aktivieren von Quotas== | ==Aktivieren von Quotas== | ||
*quotaon /heimat/ | *quotaon /heimat/ | ||
| + | *quotaon -p /heimat | ||
==User Gruppen Vorbereitungen== | ==User Gruppen Vorbereitungen== | ||
*groupadd mediauser | *groupadd mediauser | ||
| − | *usermod - | + | *usermod -aG mediauser kit |
*mkdir /heimat/media | *mkdir /heimat/media | ||
*chgrp mediauser /heimat/media/ | *chgrp mediauser /heimat/media/ | ||
*chmod -v g+w /heimat/media/ | *chmod -v g+w /heimat/media/ | ||
==Quota-Einstellungen festlegen== | ==Quota-Einstellungen festlegen== | ||
| + | Der Editor zeigt je Dateisystem eine Zeile mit sechs Werten: belegte Blöcke, Soft- und Hardgrenze für Blöcke, belegte Inodes, Soft- und Hardgrenze für Inodes. Die beiden Ist-Werte sind nur Anzeige und werden nicht übernommen. Der Wert 0 bedeutet „keine Grenze". | ||
===User=== | ===User=== | ||
| − | *edquota -u | + | *edquota -u kit |
===Gruppen=== | ===Gruppen=== | ||
| − | *edquota -g | + | *edquota -g mediauser |
| + | ===Ohne Editor=== | ||
| + | Dieselbe Einstellung für Skripte – hier 100 MiB weich, 120 MiB hart, keine Inode-Grenze: | ||
| + | *setquota -u kit 100000 120000 0 0 /heimat | ||
| + | ===Grace Period=== | ||
| + | *edquota -t | ||
==Überprüfen== | ==Überprüfen== | ||
===User=== | ===User=== | ||
| Zeile 57: | Zeile 88: | ||
===Groups=== | ===Groups=== | ||
*repquota -g /heimat | *repquota -g /heimat | ||
| + | ===Ein einzelner Benutzer=== | ||
| + | *quota -u kit | ||
| + | ==Die Quota in Aktion== | ||
| + | Als Benutzer anmelden und über die Grenze schreiben: | ||
| + | *su - kit | ||
| + | *dd if=/dev/zero of=/heimat/gross.img bs=1M count=200 | ||
| + | |||
| + | Der Schreibvorgang bricht mit <code>Disk quota exceeded</code> ab, die Datei bleibt genau an der Hardgrenze stehen. Danach als root nachsehen: | ||
| + | *exit | ||
| + | *repquota -u /heimat | ||
| + | |||
| + | In der Spalte <code>grace</code> steht die Restlaufzeit, wenn nur die Soft-, nicht aber die Hardgrenze überschritten wurde. | ||
==Deaktivieren von Benutzer- und Gruppenquoten== | ==Deaktivieren von Benutzer- und Gruppenquoten== | ||
*quotaoff /heimat | *quotaoff /heimat | ||
| + | *quotaon -p /heimat | ||
==Aufgaben== | ==Aufgaben== | ||
*[[Aufgaben zu Quotas]] | *[[Aufgaben zu Quotas]] | ||
Version vom 26. August 2026, 10:39 Uhr
Disk Quotas Grundlagen
Was sind Disk Quotas?
- Disk Quotas (Festplattenkontingente) sind ein Mechanismus, der in Betriebssystemen verwendet wird, um die Nutzung des Speicherplatzes auf einem Dateisystem durch Benutzer oder Benutzergruppen zu überwachen und zu begrenzen.
- Das Ziel von Disk Quotas besteht darin, sicherzustellen, dass kein Benutzer den verfügbaren Speicherplatz übermäßig beansprucht, um eine gerechte Verteilung des Speicherplatzes zu gewährleisten.
- Quotas gelten immer für ein einzelnes Dateisystem, nicht systemweit. Ein Benutzer kann auf
/heimatbegrenzt sein und auf/tmptrotzdem schreiben.
Einige grundlegende Konzepte und Funktionen von Disk Quotas
Benutzerquotas
- Bei Benutzerquotas wird jedem Benutzer ein bestimmtes Kontingent an Speicherplatz zugewiesen.
- Dieses Kontingent kann aus einer festen Größe oder einem variablen Betrag bestehen, der mit der Zeit wachsen kann. Wenn ein Benutzer sein zugewiesenes Kontingent erreicht oder überschreitet, wird ihm in der Regel das Schreiben neuer Dateien verweigert.
Gruppenquotas
- Ähnlich wie bei Benutzerquotas können Gruppenquotas verwendet werden, um den Speicherplatzverbrauch für bestimmte Benutzergruppen zu überwachen und zu begrenzen.
- Dies ermöglicht eine feinere Kontrolle über die Nutzung des Speicherplatzes durch Gruppen von Benutzern.
- Maßgeblich ist die Gruppe, der die Datei gehört – nicht die Gruppen, in denen der schreibende Benutzer Mitglied ist.
Blöcke und Inodes
- Begrenzt wird nicht nur der belegte Platz, sondern auch die Anzahl der Dateien.
- Die Blockgrenze wird in KiB angegeben, die Inode-Grenze als Stückzahl. Beide lassen sich unabhängig voneinander setzen, beide können einzeln auch offen bleiben (Wert 0).
- Ohne Inode-Grenze kann ein Benutzer ein Dateisystem mit Millionen leerer Dateien lahmlegen, ohne je die Blockgrenze zu berühren.
Soft Quotas und Hard Quotas
- Disk Quotas können in zwei Modi konfiguriert werden: Soft Quotas und Hard Quotas.
- Bei Soft Quotas erhalten Benutzer oder Gruppen eine Warnung, wenn sie ihr Kontingent erreichen oder überschreiten, dürfen aber zunächst weiterschreiben.
- Dieses Weiterschreiben ist zeitlich begrenzt: Nach Ablauf der Grace Period (Standard 7 Tage) wirkt die Soft Quota wie eine Hard Quota. Sinkt der Verbrauch vorher wieder unter den Softwert, läuft die Frist zurück.
- Bei Hard Quotas wird das Schreiben neuer Dateien sofort verhindert, sobald das Kontingent erreicht oder überschritten wird. Die Hard Quota ist eine echte Obergrenze und kann nicht überschritten werden.
Quota-Verwaltungstools
- Betriebssysteme bieten in der Regel spezielle Tools zur Verwaltung von Disk Quotas an.
- Diese Tools ermöglichen die Konfiguration von Quota-Einstellungen, Überwachung des Speicherplatzverbrauchs, Berichterstattung und Verwaltung von Warnmeldungen und Benachrichtigungen.
| Werkzeug | Aufgabe |
|---|---|
quotacheck |
Quotadatenbank anlegen und mit dem Ist-Zustand abgleichen |
quotaon / quotaoff |
Quotas ein- und ausschalten |
edquota |
Grenzwerte und Grace Period im Editor bearbeiten |
setquota |
Grenzwerte ohne Editor setzen, für Skripte |
repquota |
Übersicht über alle Benutzer bzw. Gruppen |
quota |
Auskunft für einen einzelnen Benutzer |
Disk Quotas Installation
- Debian
- apt install -y quota
- Rocky
- dnf install -y quota
Aktivieren von Disk Quotas
Erstellen eines Verzeichnis
- mkdir /heimat
Formatieren von /dev/sdd
- mkfs.ext4 -L heimat /dev/sdd
Eintrag mit den neuen Optionen in die fstab
Die Optionen usrquota und grpquota schalten die Quota-Unterstützung für dieses Dateisystem frei. Ohne sie greift später kein einziges Quota-Kommando.
- echo "/dev/sdd /heimat ext4 defaults,usrquota,grpquota 0 2" >> /etc/fstab
Bei systemd System eventuell notwendig
- systemctl daemon-reload
Mounten
- mount -a
Kontrolle
Die beiden Optionen müssen in der Ausgabe auftauchen:
- findmnt /heimat
Erstellen von Quotadatenbanken
Legt aquota.user und aquota.group im Wurzelverzeichnis des Dateisystems an. Die Warnung, das Dateisystem sei gemountet, ist auf einem frisch angelegten und noch leeren Dateisystem unkritisch.
- quotacheck -cug /heimat
- ls -l /heimat
Aktivieren von Quotas
- quotaon /heimat/
- quotaon -p /heimat
User Gruppen Vorbereitungen
- groupadd mediauser
- usermod -aG mediauser kit
- mkdir /heimat/media
- chgrp mediauser /heimat/media/
- chmod -v g+w /heimat/media/
Quota-Einstellungen festlegen
Der Editor zeigt je Dateisystem eine Zeile mit sechs Werten: belegte Blöcke, Soft- und Hardgrenze für Blöcke, belegte Inodes, Soft- und Hardgrenze für Inodes. Die beiden Ist-Werte sind nur Anzeige und werden nicht übernommen. Der Wert 0 bedeutet „keine Grenze".
User
- edquota -u kit
Gruppen
- edquota -g mediauser
Ohne Editor
Dieselbe Einstellung für Skripte – hier 100 MiB weich, 120 MiB hart, keine Inode-Grenze:
- setquota -u kit 100000 120000 0 0 /heimat
Grace Period
- edquota -t
Überprüfen
User
- repquota -u /heimat
Groups
- repquota -g /heimat
Ein einzelner Benutzer
- quota -u kit
Die Quota in Aktion
Als Benutzer anmelden und über die Grenze schreiben:
- su - kit
- dd if=/dev/zero of=/heimat/gross.img bs=1M count=200
Der Schreibvorgang bricht mit Disk quota exceeded ab, die Datei bleibt genau an der Hardgrenze stehen. Danach als root nachsehen:
- exit
- repquota -u /heimat
In der Spalte grace steht die Restlaufzeit, wenn nur die Soft-, nicht aber die Hardgrenze überschritten wurde.
Deaktivieren von Benutzer- und Gruppenquoten
- quotaoff /heimat
- quotaon -p /heimat