KVM Speicherplatz freigeben

Oliver_T

Renowned Member
May 9, 2017
12
0
66
Guten Tag,

nachdem ich auch nach entsprechender Google-Recherche nicht fündig geworden bin, hoffe ich das Ihr mir helfen könnt. Ich nutze das aktuelle Proxmox 4.2 (Proxmox Virtual Environment 4.2-2) ausschließlich mit KVM Containern. Als Laufwerk wird virtio mit writeback-Cache genutzt.

Mein Problem ist die ansteigende Größe der Container, bzw. der nicht mehr freigegebene Speicherplatz, z.B. ein Container:

Auf dem Container mit df -h

Code:
Dateisystem              Größe Benutzt Verf. Verw% Eingehängt auf
rootfs                   239G    115G  112G   51% /

auf dem Hostsystem mit lvs
Code:
LV                 VG   Attr  LSize   Pool        Origin Data%  Meta%  Move Log Cpy%Sync Convert
vm-103-disk-1 pve  Vwi-aotz-- 250.00g data        96.80

Die einzigen Ansatzpunkte die ich gefunden habe:
1. Erstellung einer Datei die den vollen Speicherplatz belegt, Datei löschen und Container konvertigen
2. fstrim was aber laut 1-2 Beiträgen nur bei SCSI als BUS funktionieren soll

Gibt es hierzu eine Lösung die ich nur nicht gefunden habe ?

Vielen Dank für eure Zeit und einen schönen Pfingsmontag.
 
Ja das stimmt, das geht nur mit SCSI. Update bitte dein System und ändere dann einfach den Bus auf SCSI und mach ein Häckchen bei Discard. Bitte vorher ein Backup! Bevor du die Maschine runter fährst, vda auf sda ändern. Falls du Gentoo oder selbst gebackene Kernel verwendest Treiber reinkompilieren.

Wenn das Teil dann läuft, musst du bei Systemen wie Ubuntu nichts tun. Trim wird jede Woche einmal ausgeführt. Ansonsten kannst du natürlich auch manuell Trimmen. Z.B. so:
Code:
cat /etc/cron.weekly/fstrim             
#!/bin/sh
# trim all mounted file systems which support it
/sbin/fstrim --all || true
 
Hallo,

vielen Dank für deine Antwort inkl. Lösungsvorschlag.
Mit Virtio gibt es keine "bessere" Möglichkeit das zu lösen ? Durch die Umstellung auf SCSI verliere ich ja den IO Sheduler wenn ich das richtig sehe.

Wenn ich ein Backup der Container erstelle und das zurückspiele, müsste der Speicherplatz auch frei werden, oder ?
 
Wenn ich ein Backup der Container erstelle und das zurückspiele, müsste der Speicherplatz auch frei werden, oder ?
Gute Frage, hab ich noch nie probiert. Ich hab bis jetzt immer auf SCSI umgestellt, hat bis jetzt noch immer geklappt. Suse Enterprise hat sich mal ziemlich gesträubt, aber alle anderen... kein Problem.