theHacker's Blog
– It's just a glitch in the Matrix –

Virtuelle Festplatte vergrößern

Auf meinem Zabbix läuft schon lange die Festplatte voll.

Zabbix läuft auf einer virtuellen Maschine mit VMware ESXi. In diesem Artikel zeige ich euch, wie einfach es ist, die Festplatte in diesem Fall zu vergrößern.

Ausgangssituation

In meinem Zabbix-Server ist nur eine lokale Festplatte verbaut. Auf der Festplatte befinden sich eine Boot-Partition mit GRUB und eine ext4-Partition mit dem Root-Dateisystem. Alles ist mit VMware ESXi virtualisiert.

Standardmäßig ist Zabbix derart konfiguriert, dass es für jedes Item die History und Trends nur für eine begrenze Zeit aufhebt. Für History sind das – je nach Item – nur ein bis zwei Wochen, für Trends ist meist 365 Tage, d. h. ein Jahr, eingestellt.

History bezeichnet hierbei alle Werte, während Trends eine aggregierte Sicht im Stundenintervall für Diagramme darstellt. Das Zabbix-Handbuch empfiehlt entsprechend die Zeitspanne für History möglichst klein zu wählen, während für Trends größere Aufbewahrungsfristen möglich sind.

Mir war ein Jahr zu wenig, ich wollte mehr Daten speichern. Um nicht alle Templates durchsehen zu müssen, für welche Items es Sinn macht, Daten länger aufzuheben, hab ich im Bereich "Administration / Housekeeping" den globalen Override aktiviert und für History und Trends die Aufbewahrungsfrist auf 3650d, d. h. 10 Jahre, gestellt. Das sollte genügen.

Die Datenbank hat sich danach ordentlich befüllt, bis die Festplatte auch an ihre Grenzen kam…

(Lektion hier: Auf das Handbuch hören und keine utopischen Settings eintragen. Bzw. wenn man es dennoch macht, ein Auge drauf haben 😉)

Die Löcher im nachfolgenden Diagramm kommen von Ausfällen von Zabbix auf Grund des Speichermangels.

Vergrößerung der Festplatte

Virtuelle Maschine ausschalten

Um die Festplatte zu größern, muss die virtuelle Maschine zuerst ausgeschaltet werden. Ein ordentlicher Shutdown mit poweroff war leider nicht mehr möglich. Der Zabbix-Agent hing eine Weile, konnte noch ordentlich beenden. Der Zabbix-Server hat es nach vielen Minuten nicht geschafft. Da der Dienst im systemd mit unbegrenzter Wartezeit eingetragen ist, hat am Ende nur geholfen, den virtuellen Ausschalter zu betätigen.

Festplatte vergrößern

Nachdem die Maschine ausgeschaltet ist, kann man in der "VMware ESXi"-Oberfläche die Festplatte bearbeiten und die Größe ändern. Ich habe in diesem Fall von 50 GB auf 250 GB vergrößert.

Partition vergrößern

Nachdem die Festplatte vergrößert wurde, müssen wir nun den zusätzlichen Speicher auch verfügbar machen. Hierzu vergrößere ich zuerst die Partition mittels parted.

Mit dem Befehl print kann ich mir die Partitionstabelle ansehen:

root@zabbix:~# parted
GNU Parted 3.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                            
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 268GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2097kB  1049kB                     bios_grub
 2      2097kB  53,7GB  53,7GB  ext4

Wir sehen die Festplatte als 268GB groß.

Anmerkung zu dieser Zahl:
Der Fehler liegt hierbei bei VMware. Die 50 GB bzw. 250 GB sind eigentlich keine Gigabyte, sondern Gibibyte, d. h. 50 GiB bzw. 250 GiB. In parted kann man mittels unit GiB die Einheit umstellen, danach werden 250GiB angezeigt.

Mit dem Befehl resizepart vergrößern wir nun die Partition. parted fragt uns nach der Nummer der Partition. Diese können wir oben in der Tabelle auslesen.

Es erscheint eine Warnung, dass die Partition in Verwendung ist. Da wir die Partition nur nach hinten vergrößern und an dieser Stelle sich nichts befindet, können wir das bedenkenlos machen.

Auf die Frage nach dem neuen Ende können wir einfach mit 100% antworten, um den restlichen brachliegenden Speicher zu verwenden.

Mit quit verlassen wir parted.

(parted) resizepart                                                       
Partition number? 2                                                       
Warning: Partition /dev/sda2 is being used. Are you sure you want to continue?
Yes/No? yes                                                               
End?  [53,7GB]? 100%                                                      
(parted) print                                                            
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 268GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2097kB  1049kB                     bios_grub
 2      2097kB  268GB   268GB   ext4

(parted) quit                                                             
Information: You may need to update /etc/fstab.

Dateisystem vergrößern

Zu diesem Zeitpunkt haben wir zwar die Partition vergrößert, können den neuen Speicher aber immer noch nicht im Dateisystem nutzen. Wir vergrößern deshalb abschließend noch das Dateisystem.

Das geht einfach mit Befehl resize2fs /dev/sda2.

Danach ist der Speicher verfügbar. Wir können das überprüfen, indem wir nochmal df -h machen. Die Partition wird mit 246G Größe und 20% Auslastung angezeigt.

root@zabbix:~# resize2fs /dev/sda2                                        
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/sda2 is mounted on /; on-line resizing required
old_desc_blocks = 7, new_desc_blocks = 32
The filesystem on /dev/sda2 is now 65535483 (4k) blocks long.

root@zabbix:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            445M     0  445M   0% /dev
tmpfs            98M  1,2M   97M   2% /run
/dev/sda2       246G   46G  190G  20% /
tmpfs           489M     0  489M   0% /dev/shm
tmpfs           5,0M     0  5,0M   0% /run/lock
tmpfs           489M     0  489M   0% /sys/fs/cgroup
/dev/loop1      100M  100M     0 100% /snap/core/11798
/dev/loop0      100M  100M     0 100% /snap/core/11993
/dev/loop3       56M   56M     0 100% /snap/core18/2284
/dev/loop2       56M   56M     0 100% /snap/core18/2253
/dev/loop5       62M   62M     0 100% /snap/core20/1270
/dev/loop4       62M   62M     0 100% /snap/core20/1242
/dev/loop7       68M   68M     0 100% /snap/lxd/21835
/dev/loop6       68M   68M     0 100% /snap/lxd/21803
tmpfs            98M     0   98M   0% /run/user/0

Kommentare zu diesem Artikel

Schreib einen Kommentar zum Artikel

CAPTCHA Das Internet ist leider voller Bots. 🙁 Bitte gib den obenstehenden Code ein.
Falls du den Code nicht lesen kannst oder dir unsicher bist, klick einfach hier, um einen neuen Code zu generieren.

Mit Abschicken des Formulars bestätigst du,
die Datenschutz-Infos gelesen zu haben.