Storage zu 99% belegt nach Replikation

nhh

New Member
Sep 25, 2025
9
3
3
Moin,

wir replizieren aktuell eine Windows VM mit einer Platte (880G) auf eine zweite Node. Ohne Replikation zeigt der Storage ~60% an, nach der Replikation scheint die gesamte Festplatte nochmal auf dem ZFS01/Node1 aufgerechnet zu werden. Aus 880G werden ~1760G

Nach meiner Auffassung sollte eine Replikation inkrementell stattfinden und nicht die Platte für die Replikation kopieren - Kann es sein dass es sich hier um einen Anzeigefehler handelt?

Beide Cluster Member haben einen Storage (ZFS01) Und wir hatten in der Vergangenheit schon komische Konstellationen wo wir auf einem Rechner ein ZFS gelöscht haben (per CLI) und dann diese auf ALLEN Nodes im Cluster fehlten. (Glücklicherweise war nur die Anzeige falsch)

zfpool list

Code:
NAME    SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
ZFS01  3.62T  1.22T  2.41T        -         -     1%    33%  1.00x    ONLINE  -

Übersicht nach UI Summary:

1772013279756.png
Das ist die angefangene Replikation:
1772013304255.png


Kann da jemand etwas Licht ins dunkle bringen?

Gruß
Niklas
 
  • Like
Reactions: HBruckert
Ich würde mal folgendes auf beiden Nodes ansehen
Code:
zpool status
zfs list -rt all -ospace,refreservation
 
Last edited:
  • Like
Reactions: HBruckert and nhh
Hallo @nhh,

zpool list zeigt die Wahrheit: 33% belegt, 2.41T frei. Es gibt kein tatsächliches Platzproblem.

Was du in der UI siehst, ist ein bekanntes Anzeigeverhalten: Proxmox summiert in der Summary-Ansicht den belegten Speicher beider Nodes für den gleichnamigen Storage ZFS01, zeigt aber nur die Kapazität eines einzelnen Pools als Total. Daher die scheinbaren ~1760G Belegung bei 1800G Anzeige.

Zur Klarstellung: Die initiale Replikation sendet einmalig den gesamten Datensatz an die Ziel-Node — dort wird also tatsächlich Platz belegt (das ist der Sinn der Replikation). Danach läuft alles inkrementell. Der Quell-Pool selbst verdoppelt sich dadurch aber nicht.

Prüfe mal die Anzeige direkt auf Node-Ebene (nicht Datacenter-Summary) — dort sollte der Storage pro Node korrekt mit ~33% angezeigt werden. Alternativ:

Code:
zpool list
zfs list -o name,used,avail,refer

auf beiden Nodes — damit siehst du exakt, wo wie viel Platz tatsächlich belegt ist.
 
  • Like
Reactions: HBruckert and nhh
Hallo @Impact, @Bu66as,
Was du in der UI siehst, ist ein bekanntes Anzeigeverhalten: Proxmox summiert in der Summary-Ansicht den belegten Speicher beider Nodes für den gleichnamigen Storage ZFS01, zeigt aber nur die Kapazität eines einzelnen Pools als Total. Daher die scheinbaren ~1760G Belegung bei 1800G Anzeige.
Können wir das durch unterschiedliche Namen lösen?
Der Quell-Pool selbst verdoppelt sich dadurch aber nicht.
Puh, das ist die wichtige Information, danke!

Code:
NAME                  USED  AVAIL  REFER
ZFS01                2.90T   631G    96K
ZFS01/vm-100-disk-0  30.5G   653G  8.42G
ZFS01/vm-101-disk-0  30.5G   648G  12.8G
ZFS01/vm-103-disk-0     3M   631G    76K
ZFS01/vm-103-disk-1  56.1G   645G  41.8G
ZFS01/vm-103-disk-2  6.36M   631G    68K
ZFS01/vm-104-disk-0  32.5G   652G  11.3G
ZFS01/vm-105-disk-0   102G   699G  33.0G
ZFS01/vm-105-disk-1   102G   691G  41.5G
ZFS01/vm-106-disk-0   457G   900G   187G
ZFS01/vm-107-disk-0  30.5G   648G  13.6G
ZFS01/vm-108-disk-0  81.3G   701G  10.6G
ZFS01/vm-109-disk-0  30.5G   652G  9.56G
ZFS01/vm-110-disk-0     3M   631G   168K
ZFS01/vm-110-disk-1   203G   702G   131G
ZFS01/vm-110-disk-2  6.36M   631G    68K
ZFS01/vm-111-disk-0  50.8G   676G  5.00G
ZFS01/vm-112-disk-0     3M   631G   160K
ZFS01/vm-112-disk-1  6.36M   631G    64K
ZFS01/vm-112-disk-2   152G   757G  25.9G
ZFS01/vm-114-disk-0  3.09M   631G    96K
ZFS01/vm-114-disk-1  1.57T  1.49T   714G
ZFS01/vm-114-disk-2  6.07M   631G    68K

Das ist so ungefähr die erwartete Wahrheit die wir uns auch ausgerechnet haben.
 
  • Like
Reactions: HBruckert
@nhh,

nein, unterschiedliche Storage-Namen sind hier keine Option — die Replikation erfordert den gleichen Storage-Namen auf beiden Nodes, sonst funktioniert sie nicht.

Die Anzeige im Datacenter-Summary ist einfach so. Schau dir den Storage-Status immer pro Node an, dann passt es.

Was mir an deinem zfs list aber auffällt: Der Pool hat nur noch 631G frei bei 3.62T Gesamtkapazität — das sind ~82% belegt. Das ist kein Anzeigefehler mehr, sondern echt. Allein vm-114-disk-1 belegt 1.57T (USED), davon 714G REFER — die Differenz (~856G) steckt in Replikations-Snapshots.

ZFS wird ab ~80% Belegung spürbar langsamer (Fragmentierung, COW-Overhead). Ich würde prüfen:

Code:
zfs list -t snapshot -o name,used -s used | tail -20

Damit siehst du, welche Snapshots wie viel Platz fressen. Falls alte Replikations-Snapshots sich stapeln, liegt da evtl. ein Aufräum-Problem vor.
 
  • Like
Reactions: UdoB and HBruckert
@Bu66as,

Hmmm, das ist aber sehr komisch, denn die Liste zeigt keine riesigen snapshots:

Code:
NAME                                                 USED
ZFS01/vm-114-disk-0@__replicate_114-0_1772015402__     0B
ZFS01/vm-114-disk-2@__replicate_114-0_1772015402__     0B
ZFS01/vm-114-disk-1@__replicate_114-0_1772015402__   458M

(Das ist die Liste an replizier-snapshots die am Ende über die Leitung gehen, richtig?)

Sieht für mich noch nicht so richtig plausibel aus.

Falls alte Replikations-Snapshots sich stapeln, liegt da evtl. ein Aufräum-Problem vor.
Wie würde man das erkennen? Die Replikation ist frisch von heute.
 
  • Like
Reactions: HBruckert
Die Snapshots sind nicht das Problem — die Differenz zwischen USED (1.57T) und REFER (714G) kommt von der refreservation. ZFS setzt bei Zvols standardmäßig eine Refreservation in Höhe der Volsize, um dem Volume Platz zu garantieren.

Prüf mal:

Code:
zfs get volsize,refreservation ZFS01/vm-114-disk-1

Da wirst du sehen, dass die Refreservation vermutlich ~880G beträgt — das ist der "fehlende" Platz.

Das erklärt auch, warum zpool list 2.41T frei zeigt, zfs list aber nur 631G AVAIL: Die Differenz (~1.78T) ist durch Refreservations aller Zvols reserviert. Der Pool ist also nicht wirklich zu 82% voll — der tatsächlich belegte Platz entspricht dem, was zpool list ALLOC zeigt (1.22T = 33%).

@Impact hatte genau das bereits mit zfs list -rt all -ospace,refreservation abgefragt — die Ausgabe davon wäre hier noch aufschlussreich.
 
  • Like
Reactions: HBruckert and nhh
@Bu66as Moin, ich bin der Kollege von @nhh

Hier die Ausgabe:
Code:
NAME                                                AVAIL   USED  USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD  REFRESERV
ZFS01                                                631G  2.90T        0B     96K             0B      2.90T       none
ZFS01/vm-100-disk-0                                  653G  30.5G        0B   8.42G          22.1G         0B      30.5G
ZFS01/vm-101-disk-0                                  648G  30.5G        0B   12.8G          17.7G         0B      30.5G
ZFS01/vm-103-disk-0                                  631G     3M        0B     76K          2.93M         0B         3M
ZFS01/vm-103-disk-1                                  645G  56.1G        0B   41.8G          14.3G         0B      56.1G
ZFS01/vm-103-disk-2                                  631G  6.36M        0B     68K          6.30M         0B      6.36M
ZFS01/vm-104-disk-0                                  652G  32.5G        0B   11.3G          21.2G         0B      32.5G
ZFS01/vm-105-disk-0                                  699G   102G        0B   33.0G          68.5G         0B       102G
ZFS01/vm-105-disk-1                                  691G   102G        0B   41.5G          60.1G         0B       102G
ZFS01/vm-106-disk-0                                  900G   457G        0B    187G           270G         0B       457G
ZFS01/vm-107-disk-0                                  648G  30.5G        0B   13.6G          16.9G         0B      30.5G
ZFS01/vm-108-disk-0                                  701G  81.3G        0B   10.6G          70.6G         0B      81.3G
ZFS01/vm-109-disk-0                                  652G  30.5G        0B   9.56G          20.9G         0B      30.5G
ZFS01/vm-110-disk-0                                  631G     3M        0B    168K          2.84M         0B         3M
ZFS01/vm-110-disk-1                                  702G   203G        0B    131G          71.7G         0B       203G
ZFS01/vm-110-disk-2                                  631G  6.36M        0B     68K          6.30M         0B      6.36M
ZFS01/vm-111-disk-0                                  676G  50.8G        0B   5.00G          45.8G         0B      50.8G
ZFS01/vm-112-disk-0                                  631G     3M        0B    160K          2.84M         0B         3M
ZFS01/vm-112-disk-1                                  631G  6.36M        0B     64K          6.30M         0B      6.36M
ZFS01/vm-112-disk-2                                  757G   152G        0B   25.9G           126G         0B       152G
ZFS01/vm-114-disk-0                                  631G  3.09M        0B     96K             3M         0B         3M
ZFS01/vm-114-disk-0@__replicate_114-0_1772017202__      -     0B         -       -              -          -          -
ZFS01/vm-114-disk-1                                 1.49T  1.57T      452M    714G           893G         0B       894G
ZFS01/vm-114-disk-1@__replicate_114-0_1772017202__      -   452M         -       -              -          -          -
ZFS01/vm-114-disk-2                                  631G  6.07M        0B     68K             6M         0B         6M
ZFS01/vm-114-disk-2@__replicate_114-0_1772017202__      -     0B         -       -              -          -          -
 
  • Like
Reactions: nhh
Passt exakt zu dem, was ich vermutet hatte. Hier die Aufschlüsselung für vm-114-disk-1:

  • USEDDS (tatsächliche Daten): 714G
  • USEDREFRESERV (reservierter, aber unbeschriebener Platz): 893G
  • REFRESERV (Volsize-Garantie): 894G
  • USED gesamt: 714G + 893G + 452M Snapshot ≈ 1.57T

Das Zvol ist 894G groß (Volsize), ZFS reserviert diesen Platz komplett — unabhängig davon, wie viel Windows davon tatsächlich beschrieben hat. Die 893G USEDREFRESERV sind also "gebuchter aber leerer" Platz.

Euer Pool ist real zu 33% belegt (1.22T ALLOC laut zpool list). Die 631G AVAIL pro Dataset sind das, was nach Abzug aller Refreservations als freier, nicht-reservierter Platz übrig bleibt. Der Rest ist nicht weg, sondern für die jeweiligen Zvols "vorgemerkt".

Kurz: Kein Platzproblem, kein Anzeigefehler auf Pool-Ebene — ZFS arbeitet wie designed. Die Datacenter-Summary addiert wie gesagt noch die Belegung beider Nodes zusammen, was den irreführenden 99%-Wert ergibt.
 
  • Like
Reactions: Impact and nhh
Man kann die refreservation (Thin provision/sparse) übrigens recht leicht in Datacenter > Storage deaktivieren indem man Thin provision aktiviert
1772050038275.png
Und so für die bereits bestehenden datasets. PVE macht das Standardgemäß für local-zfs aber nicht für via node > Disks > ZFS erstellte Speicher.
Ob das etwas ist dass ihr wollt kann ich nicht entscheiden, ich finde es aber sinnvoll und weniger konfus.
 
Last edited:
  • Like
Reactions: HBruckert and nhh
Man kann die refreservation (Thin provision/sparse) übrigens recht leicht in Datacenter > Storage deaktivieren indem man Thin provision aktiviert
View attachment 96094
Und so für die bereits bestehenden datasets. PVE macht das Standardgemäß für local-zfs aber nicht für via node > Disks > ZFS erstellte Speicher.
Ob das etwas ist dass ihr wollt kann ich nicht entscheiden, ich finde es aber sinnvoll und weniger konfus.
Das ist der entscheidende Hinweis! Wir sind davon ausgegangen dass standardmäßig aktiviert ist. Ja das fixt doch sicherlich unser Problem... we will see.

EDIT: Wir haben das nicht über den Datacenter View gemacht und übersehen, weil wir auf einer Node das RAID von Z1 auf RAID10 umgestellt haben und danach die VM's rübermigriert und danach das gleiche für den verbleibenden.
 
Last edited: