ZFS auf Linux/ Platzverbrauch ermitteln

Platzverbrauch ermitteln

Bearbeiten

Im folgenden werden die Befehle aufgeführt, um den Platzverbrauch im ZFS für bestimmte Situationen, Datenarten zu bestimmen.

Wie groß ist ein Pool ?

Bearbeiten

Folgende Werte können mit zpool get all <Pool> abgefragt werden:

Wert Beschreibung
size Gesamtgröße des Pools
free Verfügbarer Speicher im Pool
capacity Prozentuale Belegung des Pools

Achtung: Overheads für RAID-Zs und Spiegelungen werden in allen Werten berücksichtigt (d.h. size = physische Gesamtgröße aller Festplatten)

Wie groß ist ein Filesystem ?

Bearbeiten

Folgende Werte können mittels zfs get all <Dataset> abgefragt werden:

Wert Beschreibung
used Auf den Datenträgern genutzter Speicher inklusive der Kinder und Snapshots des Datasets. Berücksichtigt Komprimierung
available Verfügbarer Speicher. Beeinflusst durch physischem Speicherlimit und Quotas
referenced Belegter Speicher. Berücksichtigt Komprimierung. Zählt Kinder und Snapshots nicht mit.
quota Obergrenze für den Wert "used"
written "referenced" Speicher, der seit letztem Snapshot geschrieben wurde
logicalused Logische Größe der abgelegten Daten. Ignoriert Komprimierung und Anzahl der Kopien. Metadaten, Snapshots und Kinder werden allerdings mitgezählt.
logicalreferenced Logische Größe der abgelegten Daten. Ignoriert Komprimierung und Anzahl der Kopien. Metadaten werden allerdings mitgezählt.

Wieviele reine Nutzdaten liegen in einem Pool/Filesystem ?

Bearbeiten
  • ZFS selbst bietet keine Möglichkeit, um die reine Größe der Nutzdaten anzeigen zu lassen
  • ist jedoch mit du möglich: du -sh --apparent-size <Pfad>

Wieviele Platz nehmen Snapshots ein ?

Bearbeiten
  • kann nur pro Dataset und dessen "Kinder" ermittelt werden

zfs get usedbysnapshots <Dataset>

Wieviel % der Quota eines Datasets sind verbraucht ?

Bearbeiten
  • kann mit df abgefragt werden
  • berücksichtigt ebenfalls Komprimierung und Overhead durch Metadaten
  • für die Quota wird immer der belegte Speicher auf den Datenträgern herangezogen (Wert used)
  • eine Quota für die logisch genutzte Größe (unkomprimierte Größe der Dateien) existiert nicht

Was kann mit du ermittelt werden?

Bearbeiten
  • alle du Kommandos können sowohl direkt auf dem Server oder per NFS auf dem Client ausgeführt werden

du -sh <Pfad>

  • zeigt die Größe, die ein Verzeichnis bzw. eine Datei auf dem Datenträger tatsächlich einnimmt
  • entspricht dem ZFS-internen Wert used
  • diese Größe ist für die Quota relevant

du -sh --apparent-size <Pfad>

  • zeigt logische Größe der Datei (entspricht der Größe, die über das Netzwerk übertragen werden muss)
  • Komprimierung und Overheads von ZFS werden dabei nicht berücksichtigt

Was kann mit df ermittelt werden?

Bearbeiten

Folgende Werte können mit df -h ermittelt werden:

Wert Bedeutung
Size Größe des Pools minus von anderen Datasets belegter Speicher bzw. gesetzte Quota
Used tatsächlich belegter Speicher (unter Berücksichtigung von Overheads und Komprimierung)
Avail noch verfügbarer Platz (Komprimierung und Overheads werden nicht berücksichtigt)
Use% % der Quota
  • liefert serverseitig und auf dem Client per NFS die selben Werte


Verwendung von filelight

Bearbeiten
  • zeigt nur den physisch auf den Festplatten belegten Speicher an
  • entspricht dem ZFS-internen Wert used
  • die logische Größe der Dateien kann mit diesem Tool nicht ermittelt werden