Disk Quotas

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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 /heimat begrenzt sein und auf /tmp trotzdem 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
tune2fs Quota-Feature im Dateisystem ein- und ausschalten
quotaon -p Status abfragen
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

Quota-Feature setzen

Das Dateisystem führt die Buchhaltung selbst, in versteckten Inodes und mit dem Journal.

  • tune2fs -O quota /dev/sdd

Eintrag in die fstab

  • echo "LABEL=heimat /heimat ext4 defaults 0 2" >> /etc/fstab

Bei systemd System eventuell notwendig

  • systemctl daemon-reload

Mounten

  • mount -a

Kontrolle

Im Feature-Eintrag steht quota, und die Quotas sind ohne weiteres Zutun aktiv:

  • tune2fs -l /dev/sdd | grep -i features
  • 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 102400 122880 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

  • quotaoff /heimat
  • quotaon -p /heimat

Aufgaben