ZFS Auslastung wird falsch angezeigt

dsp4711

New Member
Jan 4, 2022
10
2
3
55
Hallo,

auf einem lokalen NVM-Speicher habe ich einen ZFS-Share eingerichtet. In der Übersicht wird die Auslastung mit 98% angegeben.

1685735562216.png

Wenn ich dann auf dem Knoten unter Disks mir den ZFS-Speicher anzeigen lasse, sieht es folgendermaßen aus:

1685735840069.png

Woher kommt die falsche Anzeige?

Vielen Dank für die Hilfe.

Viele Grüße
Günter
 
Das sind zwei unterschiedliche Werte. Beim ersten wird der freie und belegte Speicher des Dateisystems angegeben und beim zweiten der Poolspeicher. Je nach Raidlevel sind die Anzeigen unterschiedlich. Welches Raidlevel verwendest du? Ich vermute mal irgend weine RaidZ Variante?
 
Bitte poste die Ausgaben von:
zpool status
zfs list
zfs list -t snapshot
 
Code:
zpool status
  pool: zfs-share
 state: ONLINE
config:

    NAME                          STATE     READ WRITE CKSUM
    zfs-share                     ONLINE       0     0     0
      nvme-JSD005_2BA0203-01A506  ONLINE       0     0     0

errors: No known data errors

Ich kürze mal die Ausgabe von zfs list. Da sind etwa 56 Einträge.

Code:
zfs list
NAME                        USED  AVAIL     REFER  MOUNTPOINT
zfs-share                   908G  14.5G       96K  /zfs-share
zfs-share/base-901-disk-0  45.6G  47.5G     12.6G  -
zfs-share/base-901-disk-1  3.12M  14.5G      124K  -

...

Interessanterweise zeigt die Ausgabe in der ersten Zeile, dass nur 14.5 G verfügbar sind.

Und hier die ganze Snapshot-Ausgabe:

Code:
zfs list -t snapshot
NAME                                 USED  AVAIL     REFER  MOUNTPOINT
zfs-share/base-901-disk-0@__base__     8K      -     12.6G  -
zfs-share/base-901-disk-1@__base__     8K      -      124K  -
zfs-share/base-901-disk-2@__base__     8K      -       68K  -
zfs-share/base-902-disk-0@__base__     8K      -     14.1G  -
zfs-share/base-902-disk-1@__base__     0B      -       56K  -
zfs-share/base-902-disk-2@__base__     8K      -      116K  -
zfs-share/base-902-disk-3@__base__     8K      -       68K  -
zfs-share/base-910-disk-0@__base__     8K      -     12.9G  -
zfs-share/base-910-disk-1@__base__     8K      -      116K  -
zfs-share/base-910-disk-2@__base__     8K      -       68K  -
zfs-share/base-920-disk-0@__base__     8K      -     3.97G  -
zfs-share/base-921-disk-0@__base__     8K      -     8.33G  -
zfs-share/base-922-disk-0@__base__     0B      -       56K  -
zfs-share/base-922-disk-1@__base__     8K      -       76K  -
zfs-share/base-922-disk-2@__base__     0B      -       56K  -
 
Code:
zpool list

NAME        SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
zfs-share   952G   216G   736G        -         -     0%    22%  1.00x    ONLINE  -



df -h

Filesystem            Size  Used Avail Use% Mounted on
udev                   15G     0   15G   0% /dev
tmpfs                 3.0G  1.6M  3.0G   1% /run
/dev/mapper/pve-root   59G   47G  9.0G  84% /
tmpfs                  15G   66M   15G   1% /dev/shm
tmpfs                 5.0M     0  5.0M   0% /run/lock
zfs-share              15G  128K   15G   1% /zfs-share
/dev/fuse             128M   44K  128M   1% /etc/pve
tmpfs                 3.0G     0  3.0G   0% /run/user/0
 
Also das ist ja strange...
Code:
zfs-share              15G  128K   15G   1% /zfs-share
Zfs list zeigt auf 15G frei, aber der Pool meint das noch 735G frei sind. Das macht jetzt keinen Sinn. Poste doch bitte mal noch:

Code:
mount
zfs get mounted
... die ganze Wahsinnsausgabe posten.
 
Code:
mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=15574940k,nr_inodes=3893735,mode=755,inode64)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=3121732k,mode=755,inode64)
/dev/mapper/pve-root on / type ext4 (rw,relatime,errors=remount-ro)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k,inode64)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=19574)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
tracefs on /sys/kernel/tracing type tracefs (rw,nosuid,nodev,noexec,relatime)
sunrpc on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
zfs-share on /zfs-share type zfs (rw,xattr,noacl)
lxcfs on /var/lib/lxcfs type fuse.lxcfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
/dev/fuse on /etc/pve type fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=3121728k,nr_inodes=780432,mode=700,inode64)



zfs get mounted

NAME                                PROPERTY  VALUE    SOURCE
zfs-share                           mounted   yes      -
zfs-share/base-901-disk-0           mounted   -        -
zfs-share/base-901-disk-0@__base__  mounted   -        -
zfs-share/base-901-disk-1           mounted   -        -
zfs-share/base-901-disk-1@__base__  mounted   -        -
zfs-share/base-901-disk-2           mounted   -        -
zfs-share/base-901-disk-2@__base__  mounted   -        -
zfs-share/base-902-disk-0           mounted   -        -
zfs-share/base-902-disk-0@__base__  mounted   -        -
zfs-share/base-902-disk-1           mounted   -        -
zfs-share/base-902-disk-1@__base__  mounted   -        -
zfs-share/base-902-disk-2           mounted   -        -
zfs-share/base-902-disk-2@__base__  mounted   -        -
zfs-share/base-902-disk-3           mounted   -        -
zfs-share/base-902-disk-3@__base__  mounted   -        -
zfs-share/base-910-disk-0           mounted   -        -
zfs-share/base-910-disk-0@__base__  mounted   -        -
zfs-share/base-910-disk-1           mounted   -        -
zfs-share/base-910-disk-1@__base__  mounted   -        -
zfs-share/base-910-disk-2           mounted   -        -
zfs-share/base-910-disk-2@__base__  mounted   -        -
zfs-share/base-920-disk-0           mounted   -        -
zfs-share/base-920-disk-0@__base__  mounted   -        -
zfs-share/base-921-disk-0           mounted   -        -
zfs-share/base-921-disk-0@__base__  mounted   -        -
zfs-share/base-922-disk-0           mounted   -        -
zfs-share/base-922-disk-0@__base__  mounted   -        -
zfs-share/base-922-disk-1           mounted   -        -
zfs-share/base-922-disk-1@__base__  mounted   -        -
zfs-share/base-922-disk-2           mounted   -        -
zfs-share/base-922-disk-2@__base__  mounted   -        -
zfs-share/vm-105-disk-0             mounted   -        -
zfs-share/vm-108-disk-0             mounted   -        -
zfs-share/vm-108-disk-1             mounted   -        -
zfs-share/vm-108-disk-2             mounted   -        -
zfs-share/vm-109-disk-0             mounted   -        -
zfs-share/vm-109-disk-1             mounted   -        -
zfs-share/vm-109-disk-2             mounted   -        -
zfs-share/vm-110-disk-0             mounted   -        -
zfs-share/vm-110-disk-1             mounted   -        -
zfs-share/vm-110-disk-2             mounted   -        -
zfs-share/vm-111-disk-0             mounted   -        -
zfs-share/vm-111-disk-1             mounted   -        -
zfs-share/vm-111-disk-2             mounted   -        -
zfs-share/vm-111-disk-3             mounted   -        -
zfs-share/vm-112-disk-0             mounted   -        -
zfs-share/vm-112-disk-1             mounted   -        -
zfs-share/vm-112-disk-2             mounted   -        -
zfs-share/vm-113-disk-0             mounted   -        -
zfs-share/vm-113-disk-1             mounted   -        -
zfs-share/vm-114-disk-0             mounted   -        -
zfs-share/vm-114-disk-1             mounted   -        -
zfs-share/vm-114-disk-2             mounted   -        -
zfs-share/vm-115-disk-0             mounted   -        -
zfs-share/vm-117-disk-0             mounted   -        -
zfs-share/vm-119-disk-0             mounted   -        -
zfs-share/vm-119-disk-1             mounted   -        -
zfs-share/vm-121-disk-0             mounted   -        -
zfs-share/vm-121-disk-1             mounted   -        -
zfs-share/vm-121-disk-2             mounted   -        -
zfs-share/vm-122-disk-0             mounted   -        -
zfs-share/vm-122-disk-1             mounted   -        -
zfs-share/vm-122-disk-2             mounted   -        -
zfs-share/vm-123-disk-0             mounted   -        -
zfs-share/vm-123-disk-1             mounted   -        -
zfs-share/vm-123-disk-2             mounted   -        -
zfs-share/vm-124-disk-0             mounted   -        -
zfs-share/vm-124-disk-1             mounted   -        -
zfs-share/vm-124-disk-2             mounted   -        -
zfs-share/vm-900-disk-0             mounted   -        -
zfs-share/vm-900-disk-1             mounted   -        -
 
Sieht für's erste normal aus. Poste bitte auch noch den ZFS-Teil aus der /etc/pve/storage.cfg

Danke.
 
Code:
zfspool: zfs-share
    pool zfs-share
    content rootdir,images
    mountpoint /zfs-share
    nodes gotland
 
Die Frage ist, ob es nicht einfacher ist, wenn ich den Storage nehme und das bestehende LVM erweitere?

Ich bin noch ein blutiger Anfänger mit dem System und dachte, mit dem zusätzlichen Storage einen Shared Storage einzurichten. Ich habe nachträglich aber gelernt, dass ein Shared Storage als externer Storage einzubinden ist.
 
Wenn du ein ZFS Volume anlegst kannst du Attrribute setzen, diese kannst du mit zfs get attributname auslesen

Mit zfs get all zfs-share bekommst du alle Attribute angezeigt.

Wenn du eine Disk mit 100G anlegst werden diese 100 G reserviert, sie stehen dem Pool nicht mehr zur Verfügung, auch wenn nur ein Teil von der VM belegt wird.

zfs get all zfs-share/base-901-disk-0 | grep reservation

Wenn du also 10 vm disk images mit 100 GB Größe anlegst ist deine 1TB platte "voll" auch wenn die images leer sind

reservation/refreservation: reservierter Speicher
quota/refquota: maximalgröße

Hier noch ein Beispiel von meine Notebook mit allen Attributen

ZFS kann komprimieren, wenn du also 100G auf zfs belegt hast mit einer compressratio von 2x braucht du 200G wenn du die Daten auf ein unkomprimiertes Filesystem kopieren willst.

ubu@t431:~$ zfs get all rpool/ROOT/ubuntu_fhh020/test NAME PROPERTY VALUE SOURCE rpool/ROOT/ubuntu_fhh020/test type filesystem - rpool/ROOT/ubuntu_fhh020/test creation Sa Jun 3 23:07 2023 - rpool/ROOT/ubuntu_fhh020/test used 2.50G - rpool/ROOT/ubuntu_fhh020/test available 659G - rpool/ROOT/ubuntu_fhh020/test referenced 2.50G - rpool/ROOT/ubuntu_fhh020/test compressratio 1.98x - rpool/ROOT/ubuntu_fhh020/test mounted yes - rpool/ROOT/ubuntu_fhh020/test quota none default rpool/ROOT/ubuntu_fhh020/test reservation 100G local rpool/ROOT/ubuntu_fhh020/test recordsize 128K default rpool/ROOT/ubuntu_fhh020/test mountpoint /test inherited from rpool/ROOT/ubuntu_fhh020 rpool/ROOT/ubuntu_fhh020/test sharenfs off default rpool/ROOT/ubuntu_fhh020/test checksum on default rpool/ROOT/ubuntu_fhh020/test compression lz4 inherited from rpool rpool/ROOT/ubuntu_fhh020/test atime on default rpool/ROOT/ubuntu_fhh020/test devices on default rpool/ROOT/ubuntu_fhh020/test exec on default rpool/ROOT/ubuntu_fhh020/test setuid on default rpool/ROOT/ubuntu_fhh020/test readonly off default rpool/ROOT/ubuntu_fhh020/test zoned off default rpool/ROOT/ubuntu_fhh020/test snapdir hidden default rpool/ROOT/ubuntu_fhh020/test aclmode discard default rpool/ROOT/ubuntu_fhh020/test aclinherit restricted default rpool/ROOT/ubuntu_fhh020/test createtxg 886645 - rpool/ROOT/ubuntu_fhh020/test canmount on default rpool/ROOT/ubuntu_fhh020/test xattr sa inherited from rpool rpool/ROOT/ubuntu_fhh020/test copies 1 default rpool/ROOT/ubuntu_fhh020/test version 5 - rpool/ROOT/ubuntu_fhh020/test utf8only on - rpool/ROOT/ubuntu_fhh020/test normalization formD - rpool/ROOT/ubuntu_fhh020/test casesensitivity sensitive - rpool/ROOT/ubuntu_fhh020/test vscan off default rpool/ROOT/ubuntu_fhh020/test nbmand off default rpool/ROOT/ubuntu_fhh020/test sharesmb off default rpool/ROOT/ubuntu_fhh020/test refquota none default rpool/ROOT/ubuntu_fhh020/test refreservation none default rpool/ROOT/ubuntu_fhh020/test guid 9488683314703910460 - rpool/ROOT/ubuntu_fhh020/test primarycache all default rpool/ROOT/ubuntu_fhh020/test secondarycache all default rpool/ROOT/ubuntu_fhh020/test usedbysnapshots 0B - rpool/ROOT/ubuntu_fhh020/test usedbydataset 2.50G - rpool/ROOT/ubuntu_fhh020/test usedbychildren 0B - rpool/ROOT/ubuntu_fhh020/test usedbyrefreservation 0B - rpool/ROOT/ubuntu_fhh020/test logbias latency default rpool/ROOT/ubuntu_fhh020/test objsetid 13901 - rpool/ROOT/ubuntu_fhh020/test dedup off default rpool/ROOT/ubuntu_fhh020/test mlslabel none default rpool/ROOT/ubuntu_fhh020/test sync standard inherited from rpool rpool/ROOT/ubuntu_fhh020/test dnodesize auto inherited from rpool rpool/ROOT/ubuntu_fhh020/test refcompressratio 1.98x - rpool/ROOT/ubuntu_fhh020/test written 2.50G - rpool/ROOT/ubuntu_fhh020/test logicalused 4.67G - rpool/ROOT/ubuntu_fhh020/test logicalreferenced 4.67G - rpool/ROOT/ubuntu_fhh020/test volmode default default rpool/ROOT/ubuntu_fhh020/test filesystem_limit none default rpool/ROOT/ubuntu_fhh020/test snapshot_limit none default rpool/ROOT/ubuntu_fhh020/test filesystem_count none default rpool/ROOT/ubuntu_fhh020/test snapshot_count none default rpool/ROOT/ubuntu_fhh020/test snapdev hidden default rpool/ROOT/ubuntu_fhh020/test acltype posix inherited from rpool rpool/ROOT/ubuntu_fhh020/test context none default rpool/ROOT/ubuntu_fhh020/test fscontext none default rpool/ROOT/ubuntu_fhh020/test defcontext none default rpool/ROOT/ubuntu_fhh020/test rootcontext none default rpool/ROOT/ubuntu_fhh020/test relatime on inherited from rpool rpool/ROOT/ubuntu_fhh020/test redundant_metadata all default rpool/ROOT/ubuntu_fhh020/test overlay on default rpool/ROOT/ubuntu_fhh020/test encryption aes-256-gcm - rpool/ROOT/ubuntu_fhh020/test keylocation none default rpool/ROOT/ubuntu_fhh020/test keyformat raw - rpool/ROOT/ubuntu_fhh020/test pbkdf2iters 0 default rpool/ROOT/ubuntu_fhh020/test encryptionroot rpool - rpool/ROOT/ubuntu_fhh020/test keystatus available - rpool/ROOT/ubuntu_fhh020/test special_small_blocks 0 default rpool/ROOT/ubuntu_fhh020/test com.ubuntu.zsys:last-used 1677768792 inherited from rpool/ROOT/ubuntu_fhh020 rpool/ROOT/ubuntu_fhh020/test com.ubuntu.zsys:bootfs yes inherited from rpool/ROOT/ubuntu_fhh020
 
Danke fireon und ubu für die Unterstützung.

Ich räume mal die VMs auf und lösche, was ich nicht mehr brauche. Dann werde ich mit euren Tipps die Belegung des zfs-share noch mal genauer analysieren.
 
zfs list -o space und zpool list -v sind auch immer ganz praktisch. Da kann man dann unter anderem sehen, was da durch Snapshots und Refreservation verbraucht wird.

Vermutlich hast du für den Pool wirklich einfach die Thin Provisioning Checkbox nicht aktiviert, dass da alles halt vollen Platz belegt. Und Quotas können auch beider Anzeige für Verwirrung sorgen.
 
Danke Dunuin und fireon.

Ich habe den Haken jetzt gesetzt.

In diesem älteren Thread habe ich gelesen, dass der gesetzte Haken nur für zukünftig angelegte disk gilt. Für bestehende kann die Reservierung nachträglich weggenommen werden. Ich habe mir jetzt mit zfs list -o space die Speicherbelegung angeschaut und mit zfs set refreservation=none zfs-share/... durch die VMs gehangelt und der Speicher wird entsprechend angezeigt.

Noch mal Danke für eure Zeit und die Hilfe.
 
  • Like
Reactions: fireon

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!