linux-suse-opensuse storage quotas monitoring yast sles

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.

  1. Wählen Sie die Partition aus (z.B. /home).
  2. Klicken Sie auf Edit.
  3. Wählen Sie Fstab Options.
  4. Aktivieren Sie Enable Quota Support.
  5. YaST fügt automatisch usrquota und grpquota zur /etc/fstab hinzu 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