Disk Quotas & Storage Monitoring on SUSE (Artikel 156)
Verwaltung von Speicherplatzbeschränkungen unter SUSE. Erfahren Sie den Umgang mit klassischen Quotas für XFS und Ext4, die Einrichtung via YaST und proaktives Monitoring.
# SUSE Quotas: Speicherplatz-Governance für Multi-User Systeme
TL;DR / Management Summary Ein einzelner Benutzer oder ein Amok laufender Dienst darf niemals den gesamten Server lahmlegen. Während Btrfs seine eigenen qgroups nutzt (siehe Artikel 153), bietet SUSE für klassische Dateisysteme (XFS, Ext4) ein ausgereiftes Quota-System. Ein Senior Admin nutzt das YaST Quota Modul, um harte (
hard) und weiche (soft) Limits für Benutzer und Gruppen zu setzen und so die Systemstabilität zu garantieren.
# 1. Einführung & Konzepte
Harte vs. Weiche Grenzen.
- Soft Limit: Der User wird gewarnt, kann aber noch Daten schreiben (Grace Period).
- Hard Limit: Das System blockiert jeden weiteren Schreibvorgang sofort.
- Grace Period: Die Zeitspanne (Standard 7 Tage), in der das Soft-Limit überschritten werden darf.
graph TD
A[Write Operation] --> B{Check Quota}
B -->|Below Soft| C[Allow]
B -->|Between Soft & Hard| D[Allow & Warn User]
B -->|Above Hard| E[Block Operation: Disk Full]
D -->|Grace Period expired| E
# 2. Aktivierung via YaST
Der bequeme Weg.
Starten Sie den Partitioner: sudo yast2 disk.
- Wählen Sie die Partition aus (z.B.
/home). - Klicken Sie auf Edit.
- Wählen Sie Fstab Options.
- Aktivieren Sie Enable Quota Support.
- YaST fügt automatisch
usrquotaundgrpquotazur/etc/fstabhinzu und initialisiert die Quota-Files.
# 3. Limits setzen und verwalten
Den Spielraum definieren.
Nach der Aktivierung nutzen wir das dedizierte Modul:
sudo yast2 quota
Hier können Sie für jeden User einzeln oder für ganze Gruppen Limits in MB/GB festlegen.
# via CLI (Profi-Weg)
# Setze Limit für User 'johndoe'
# bsoft (Blocks Soft), bhard (Blocks Hard)
sudo setquota -u johndoe 800M 1000M 0 0 /home
# 4. Day-2 Operations: Monitoring & Reports
Wer verbraucht am meisten?
# Quota Report generieren
sudo repquota -aug
Achten Sie auf das + Zeichen neben dem Usernamen – es signalisiert eine Quota-Überschreitung.
# Monitoring-Integration
Integrieren Sie einen Check in Ihr Monitoring (Nagios/Checkmk), der den Output von repquota parst und bei “Grace Period” Warnungen schlägt.
# 5. Troubleshooting & “War Stories”
Wenn die Disk ‘voll’ ist, obwohl noch Platz ist.
# Story 1: “Der hängende Mail-Server”
Symptom: Der Mailserver meldet “Disk Full”, aber df -h zeigt 500GB freien Platz auf der Partition.
Ursache: Der User postfix oder vmail hat sein Quota erreicht.
Lösung: repquota -a prüfen. Oft sind es hängende Bounces oder riesige Logfiles, die das Limit sprengen.
# Story 2: “Inodes vergessen”
Symptom: Ein User kann keine kleinen Textdateien mehr erstellen, obwohl er erst 10% seines Speicherplatzes (Blocks) verbraucht hat.
Ursache: Das Quota für Inodes (Anzahl der Dateien) wurde erreicht.
Lösung: Setzen Sie bei setquota auch die letzten beiden Werte (isoft, ihard):
sudo setquota -u <user> 0 0 10000 11000 /data (Erlaubt max. 11.000 Dateien).
# 6. Fazit & Empfehlung
- Planung: Setzen Sie Quotas frühzeitig ein, bevor das System im Live-Betrieb voll läuft.
- Kommunikation: Informieren Sie die User über ihre Limits, damit diese nicht überrascht werden.
- Wahl: Nutzen Sie für moderne SLES-Systeme primär Btrfs qgroups (Artikel 153), da diese besser mit Subvolumes skalieren.
# Anhang: Cheatsheet
| Aufgabe | Befehl |
|---|---|
| Quota Übersicht | repquota -a |
| Eigenes Quota prüfen | quota |
| Grace Period ändern | setquota -t ... |
| Quota Datenbank fixen | quotacheck -avum |
| Quota ein/ausschalten | quotaon / path, quotaoff / path |
| User Limits kopieren | edquota -p user1 user2 |
| YaST Modul | yast2 quota |
| Inodes prüfen | df -i |