ZFS - Speicherplatz voll

scaa

Renowned Member
Nov 20, 2015
147
4
83
Hallo
also ZFS ist irgendwo noch ein Rätzel. Ich teste damit nebenbei und habe auch einen Backupserver zum Test damit laufen, aber so ganz blicke ich nicht durch.
Es geht um einen Host Proxmox V5, auf dem zwei VMs installiert sind (vm101 und vm241). Eine ist inaktiv und die andere ist ein Debian mit einem BackupPC-Script drauf. Nur vm241 ist aktiv.

Code:
root@host16:~# zpool status
  pool: rpool
 state: ONLINE
  scan: scrub repaired 0 in 19h29m with 0 errors on Sun Aug 13 19:53:41 2017
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            sda2    ONLINE       0     0     0
            sdb2    ONLINE       0     0     0
            sdc2    ONLINE       0     0     0

errors: No known data errors

root@host16:~# zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
rpool                     7.02T      0   128K  /rpool
rpool/ROOT                3.52G      0   128K  /rpool/ROOT
rpool/ROOT/pve-1          3.52G      0  3.52G  /
rpool/data                7.00T      0   128K  /rpool/data
rpool/data/vm-101-disk-1  73.8G      0  73.8G  -
rpool/data/vm-241-disk-1  6.93T      0  6.93T  -
rpool/swap                8.50G  7.48G  1.03G  -

Jetzt ist vm241 "voll", so das ich wede die Konsole aufrufen kann noch die vm ordnungsgemäß herunterfahren kann. Auf der vm selbst kann ich aber nicht erkennen, wie so viel Plattenspeicher verbraucht wird.
Wo finde ich auf dem Hostsystem die vms?
/rpool/data scheint ja voll zu sein, aber welche Pfad ist das? Wenn ich mit SSH nachsehe steht dort nichts drin?

Ich komme hier gerade nicht weiter.
 
Ich habe den Host rebootet und nun geht gar nichts mehr. SSH geht noch, aber es startet keine Proxmox-Gui mehr und einige andere Dienste wie Postfix sind auch nicht gestartet

Auf dem Host:
Code:
root@host16:~# df -h
Filesystem        Size  Used Avail Use% Mounted on
udev               16G     0   16G   0% /dev
tmpfs             3.2G  9.3M  3.2G   1% /run
rpool/ROOT/pve-1  3.6G  3.6G     0 100% /
tmpfs              16G     0   16G   0% /dev/shm
tmpfs             5.0M     0  5.0M   0% /run/lock
tmpfs              16G     0   16G   0% /sys/fs/cgroup
/dev/sdd1         3.6T  3.0T  484G  87% /mnt/sdd1
tmpfs             3.2G     0  3.2G   0% /run/user/0

/dev/sdd1 ist übrigens noch eine Solo-Platte im System, die aber nicht via ZFS eingebnunden ist, sondern einfach nur gemountet wurde.
 
Hey scaa,

Ich hab zwar noch ein pve 4.4 und das rootfs auch nicht auf ZFS, aber es sieht so aus als wäre das root Filesystem voll.
Ist für rpool/boot/pve-1 eine quota gesetzt?

Grüße
FK
 
Ich habe nun unter /boot alle alten Kernels gelöscht und auch /var/log einmal bereinigt.
Dazu noch diesen Eintrag in /etc/sysctl.conf gesetzt:
vm.swappiness = 0

Der Server hat übirgens nur 32 GB RAM und der vm sind 8 GB zugeordnet. Verbleiben also 24 GB für das Hostsystem mit seinem ZFS (ca- 7 TB groß).

Code:
root@host16:~# zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
rpool                     6.94T  74.1G   128K  /rpool
rpool/ROOT                3.24G  74.1G   128K  /rpool/ROOT
rpool/ROOT/pve-1          3.24G  74.1G  3.24G  /
rpool/data                6.93T  74.1G   128K  /rpool/data
rpool/data/vm-241-disk-1  6.93T  74.1G  6.93T  -
rpool/swap                8.50G  81.5G  1.03G  -


root@host16:~# df -h
Filesystem        Size  Used Avail Use% Mounted on
udev               16G     0   16G   0% /dev
tmpfs             3.2G  9.3M  3.2G   1% /run
rpool/ROOT/pve-1   78G  3.3G   75G   5% /
tmpfs              16G   43M   16G   1% /dev/shm
tmpfs             5.0M     0  5.0M   0% /run/lock
tmpfs              16G     0   16G   0% /sys/fs/cgroup
rpool              75G  128K   75G   1% /rpool
rpool/ROOT         75G  128K   75G   1% /rpool/ROOT
rpool/data         75G  128K   75G   1% /rpool/data
/dev/sdd1         3.6T  2.8T  679G  81% /mnt/sdd1
/dev/fuse          30M   16K   30M   1% /etc/pve
tmpfs             3.2G     0  3.2G   0% /run/user/0
 

Attachments

  • p1.png
    p1.png
    13.3 KB · Views: 3
  • p2.png
    p2.png
    34.9 KB · Views: 3
Wie kann ich die VM verkleinern? Über die Reszise-Funktion kann ich ja nur vergrößern.
Die Config der vm:
Code:
boot: cdn
bootdisk: virtio0
cores: 4
ide2: backup:iso/gparted-live-0.27.0-1-amd64.iso,media=cdrom,size=268M
memory: 8192
name: vmxxx.mydomain.de
net0: xxx,bridge=vmbr0
net1: xxx,bridge=vmbr1
numa: 0
ostype: l26
scsihw: virtio-scsi-pci
smbios1: uuid=xxx
sockets: 1
virtio0: local-zfs:vm-241-disk-1,size=7000G
 
Wie kann ich die VM verkleinern? Über die Reszise-Funktion kann ich ja nur vergrößern.
Die Config der vm:
Code:
boot: cdn
bootdisk: virtio0
cores: 4
ide2: backup:iso/gparted-live-0.27.0-1-amd64.iso,media=cdrom,size=268M
memory: 8192
name: vmxxx.mydomain.de
net0: xxx,bridge=vmbr0
net1: xxx,bridge=vmbr1
numa: 0
ostype: l26
scsihw: virtio-scsi-pci
smbios1: uuid=xxx
sockets: 1
virtio0: local-zfs:vm-241-disk-1,size=7000G

VMs lassen sich normalerweise nicht so einfach verkleinern.
Das Filesystem innerhalb der VM müsste vorher verkleinert werden.
Das ist ein Kapitel für sich.
 
Das die VM voll ist und Proxmox bei einem Host Reboot nicht mehr läuft sind wohl eher 2 getrennte paar Schuhe. Deine VM hat 7TB Speicherplatz, was du damit in der VM machst kann der Host schlecht wissen. Boote ne Rescue CD in der VM und prüfe einfach was da los ist.
 
Hi,
sehe ich genauso! Sind zwei unterschiedliche Paar Schuhe.

Du kannst dein /root entweder per Rescue-Disk booten oder ein paar Files löschen unter /mnt einen Ordner anlegen und dein /root unter /mnt/dein_ordner read-only mounten. Dann kannst du einfach unter /mnt/dein_ordner ein
Code:
du -sh *
eintragen und siehst wo es unter dem aktuell read-only root klemmt. Problem fixen und /mnt/dein_ordner unmounten.

rpool/ROOT/pve-1 3.52G 0 3.52G /
 
ich glaube ich weiss was passiert ist. Ich hatte die vm vor ein paar Wochen vergrößert auf insgesamt 7000G. Ich habe die vm einfach zu groß definiert und als dann der Platz auf der vm beansprucht wurde ist auch das root-Filesystem des Hosts Out of Memory gegangen.
Ich habe gesten Nacht die vm gelöscht und aus einem Backup eine ältere Version zurückgespielt. Es hat dann einige Stunden gedauert in welcher die "used"-Angabe bei "zfs list" verringert hat und nun ist das Bild so:
Code:
root@host16:~# zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
rpool                     3.72T  3.29T   128K  /rpool
rpool/ROOT                3.24G  3.29T   128K  /rpool/ROOT
rpool/ROOT/pve-1          3.24G  3.29T  3.24G  /
rpool/data                3.71T  3.29T   128K  /rpool/data
rpool/data/vm-241-disk-1  3.71T  3.29T  3.71T  -
rpool/swap                8.50G  3.30T  1.03G  -
Als gestern das Problem auftrat sah es ja so aus:
Code:
root@host16:~# zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
rpool                     7.02T      0   128K  /rpool
rpool/ROOT                3.52G      0   128K  /rpool/ROOT
rpool/ROOT/pve-1          3.52G      0  3.52G  /
rpool/data                7.00T      0   128K  /rpool/data
rpool/data/vm-101-disk-1  73.8G      0  73.8G  -
rpool/data/vm-241-disk-1  6.93T      0  6.93T  -
rpool/swap                8.50G  7.48G  1.03G  -

Nun habe ich die vm noch mal vergrößert auf insgsamt 6000G (also 1000G weniger). Weil der Platz noch nciht genutzt wird, hat sich an der "zfs list" Angabe offenbar noch nichts geändert.

Wie gesagt bin ich ZFS-Anfänger, aber was mit stutzig macht ist die "Avail"-Angabe, die (aßer bei swap überall identisch sind).
"rpool" ist ja offenbar der zfs-"Container" oder wie es heisst und "rpool/ROOT" und "rpool/data" offenbar die "Partitionen" für den Host und die Daten (hier also die vm). Also wie Festplatte und Partitionen.
Als die Daten unter rpool/data immer mehr wurden, wurde auch der verfügbare Platz für rpool/ROOT weniger und ging auf null.
Das ist allerdings sehr merkwürdig, denn das würde bedeuten, das die "Partionen" sich gegenseitig den noch frein gerade ungenutzten Platz wegnehmen können.
Wie kann ich denn erreichen, das "rpool/ROOT" eine feste Größe hat die nicht von den anderen Partitionen benutzt wrerden kann?
 
habe nun eine Reservation + Quoata gesetzt für das Dataset rpool/ROOT
Damit sollte das Hostsystem nun sicher sein:

Code:
root@host16:~# zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
rpool                     3.94T  3.07T   128K  /rpool
rpool/ROOT                3.24G  3.07T   128K  /rpool/ROOT
rpool/ROOT/pve-1          3.24G  3.07T  3.24G  /
rpool/data                3.93T  3.07T   128K  /rpool/data
rpool/data/vm-241-disk-1  3.93T  3.07T  3.93T  -
rpool/swap                8.50G  3.08T  1.03G  -
root@host16:~# zfs set reservation=50G rpool/ROOT
root@host16:~# zfs set quota=50G rpool/ROOT
root@host16:~# zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
rpool                     3.99T  3.03T   128K  /rpool
rpool/ROOT                3.24G  46.8G   128K  /rpool/ROOT
rpool/ROOT/pve-1          3.24G  46.8G  3.24G  /
rpool/data                3.93T  3.03T   128K  /rpool/data
rpool/data/vm-241-disk-1  3.93T  3.03T  3.93T  -
rpool/swap                8.50G  3.03T  1.03G  -
 
Bei mir war mal das /boot voll mit alten Kernel versionen - dies verhinderte auch einen sauberen Boot vorgang
mit (wobei nur die alten löschen ;-) )
You can list those packages with:
# dpkg -l |grep pve-kernel

And you can remove them with:
# dpkg --remove <pgname>
 

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!