[SOLVED] fstrim "übersieht" teile des freien Speichers

Ingo S

Renowned Member
Oct 16, 2016
348
42
93
41
Hallo zusammen

Auf einem unserer Server ist uns aufgefallen, das trotz funktionierendem FSTRIM nicht der ganze Speicher freigegeben wird.

Beispiel:
Ich habe ein Test-Laufwerk in eine Maschine gehängt, auf das Laufwerk mit fio eine Datei mit zufälligen Daten geschrieben und anschließend wieder gelöscht.

Die Startgröße des RBD Images war
Code:
root@vm-1:~# rbd du SSD_Storage/vm-601-disk-0
NAME          PROVISIONED USED   
vm-601-disk-0      32 GiB 0B
Nach dem Schreiben:
Code:
root@vm-1:~# rbd du SSD_Storage/vm-601-disk-0
NAME          PROVISIONED USED   
vm-601-disk-0      32 GiB 32 GiB
Nach dem Löschen der Datei:
Code:
root@vm-1:~# rbd du SSD_Storage/vm-601-disk-0
NAME          PROVISIONED USED   
vm-601-disk-0      32 GiB 1.7 GiB

Die Discard option ist gesetzt:
Code:
[root@mail fstrim]# mount |grep /dev/sdd
/dev/sdd1 on /tmp/fstrim type ext4 (rw,noatime,discard,data=ordered)
Maschinenconfig (Storage):
Code:
root@vm-3:~# qm config 601 |grep scsi
bootdisk: scsi0
scsi0: HDD_Storage-VM:vm-601-disk-2,discard=on,size=16G
scsi1: HDD_Storage-VM:vm-601-disk-1,discard=on,size=2T
scsi2: HDD_Storage-VM:vm-601-disk-0,discard=on,size=2T,ssd=1
scsi3: SSD_Storage:vm-601-disk-0,discard=on,size=32G,ssd=1
scsihw: virtio-scsi-pci

Proxmox Version: 6.2.11
Ceph Version: 14.2.10 nautilus

Das Problem was wir damit haben ist, das sich auf unserem Mailserver etwa 750G an Daten befinden, das RBD Image aber trotzdem 1,2T groß ist.
Code:
[root@mail fstrim]# df -h |grep /dev/sdb1
Dateisystem         Größe Benutzt Verf. Verw% Eingehängt auf
/dev/sdb1           2,0T    749G  1,2T   40% /opt
Code:
root@vm-1:~# rbd du HDD_Storage/vm-601-disk-1
NAME          PROVISIONED USED   
vm-601-disk-1       2 TiB 1.2 TiB

Hat jemand eine Erklärung dafür? Kann man dagegen etwas tun? Wir sichern jeden Tag 500GB an Daten, die wir aus meiner Sicht nicht sichern müssten. Ich habe auch bereits das Laufwerk einmal komplett vollgeschrieben und die Datei anschließend gelöscht, der belegte Speicherplatz wurde wieder freigegeben, mit Ausnahme der 500G die zu viel belegt sind, es bliebt bei dem 1,2TB großen Image.
FSTRIM funktioniert definitiv, denn ich bekomme beim manuellen Ausführen von fstrim folgendes:
Code:
root@zimbra fstrim]# fstrim -v /opt
/opt: 0 B (0 bytes) trimmed

Ich hoffe da kann mir jemand helfen.
 
Ich wünsche allen hier ein frohes neues Jahr.

Konnte schon jemand dieses Problem nachvollziehen? Ich bekomme es nicht hin, das das RBD Image wieder auf die Größe schrumpft, die auf dem Laufwerk tatsächlich belegt ist.

Es wäre klasse, wenn das jemand bestätigen könnte. Dann könnte es sich vll noch um einen Bug o.ä. handeln.
Oder wenn andere dieses Problem nicht nachvollziehen können ist es vielleicht ein Konfigurationsfehler...

Ich muss das Problem echt gelöst bekommen, es behindert unsere tägliche Datensicherung ziemlich.
 
Falls in Zukunft jemand über das gleiche Phänomen stolpert möchte ich hier noch das Ergebnis unserer Analyse aus dem Proxmox Support teilen, das war sehr Hilfreich, vielen Dank dafür!

Nach eingehender Analyse der Objektgrößen und einigen Tests hat sich herausgestellt, dass die Größe eines Images die man mithilfe von
rbd du angezeigt bekommt, durch die Anzahl aller von diesem Image belegten Objekte, ohne Beachtung des tatsächlichen "Füllstandes" dieses Objektes, berechnet wird.
Das bedeutet, selbst wenn ein Objekt nur ein einziges Byte enthält, zählt rbd du dieses als 4MB belegter Speicherplatz. Auch Einträge in der Dateisystemtabelle, die Partitionsstrukturen und das Log/Journal z.B. bei ext4 belegen natürlich Speicherplatz und erzeugen teilbelegte Objekte.
Nichtsdestotrotz kann natürlich der volle Speicherplatz des Images genutzt werden. Der Overhead nimmt mit zunehmender Belegung des Images wieder ab, da die Objektgröße zunehmend besser ausgelastet wird.
 
  • Like
Reactions: aaron

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!