ZFS auf Linux/ Platzverbrauch ermitteln
Platzverbrauch ermitteln
BearbeitenIm folgenden werden die Befehle aufgeführt, um den Platzverbrauch im ZFS für bestimmte Situationen, Datenarten zu bestimmen.
Wie groß ist ein Pool ?
BearbeitenFolgende 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 ?
BearbeitenFolgende 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?
BearbeitenFolgende 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