Ubuntu Server - Speicherplatz der Festplatte erweitern
In diesem Beitrag wird die Erweiterung bestehender LVM Volumes beschrieben.
Vorwort
Auf meiner Proxmox-Instanz habe ich eine VM mit Ubuntu 20.04 LTS Server erstellt und dieser eine 50 GB große virtuelle Festplatte angeschlossen.
Der Speicherplatz soll nachträglich erweitert werden. Da bei der Installation »LVM« gewählt wurde, lässt sich die gesamte Vergrößerung ohne Downtime realisieren.
Vorbereitung am Hypervisor
Proxmox
Zuerst muss die gewählte Virtuelle Maschine innerhalb von Proxmox mit einer höheren Festplattenkapazität ausgestattet werden. Änderungen an der Hardware können nur durchgeführt werden, wenn das betroffene System heruntergefahren wurde. Anschließend wird in der jeweiligen Maschine zu
Hardware -> Hard Disk
navigiert und diese um den gewünschten Wert erweitert.
In meinem Beispiel soll die neue Kapazität bei 100 GB liegen, von ursprünglich 50 GB, die Erweiterung beträgt demnach 50 GB.

Im Anschluss daran wird die Virtuelle Maschine wieder gestartet.
Vergrößerung
Anschließend wird sich via SSH am Server angemeldet und die zu vergrößernde Partition ausgesucht:
fdisk -l
Disk /dev/loop0: 55.39 MiB, 58073088 bytes, 113424 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop1: 31.9 MiB, 32600064 bytes, 63672 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop2: 69.9 MiB, 73277440 bytes, 143120 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
GPT PMBR size mismatch (104857599 != 209715199) will be corrected by write.
The backup GPT table is not on the end of the device. This problem will be corrected by write.
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A4650A9E-B25C-4B3C-8EDD-430CE35A0DE5
Device Start End Sectors Size Type
/dev/sda1 2048 4095 2048 1M BIOS boot
/dev/sda2 4096 2101247 2097152 1G Linux filesystem
/dev/sda3 2101248 104855551 102754304 49G Linux filesystem
Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 24.51 GiB, 26306674688 bytes, 51380224 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Danach wird das Programm parted aufgerufen und der Dialog mit folgenden Inhalten versorgt:
Da wir eine Größenänderung vornehmen wollen, wird parted mit der Option ›resizepart‹ gestartet, anschließend die passende Partition - hier Nummer ›3‹ angegeben, sowie der zu vergrößernde Speicherplatz. Dieser kann entweder fix als Wert oder mit Platzhaltern in Prozent übergeben werden. Da ich von 50 GB auf 100 GB vergrößern möchte, übergebe ich den Faktor von ›100%‹.
Sind diese Schritte erledigt, kann parted mit ›quit‹ beendet werden.
[email protected]:~# parted
GNU Parted 3.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) resizepart
Warning: Not all of the space available to /dev/sda appears to be used, you can fix the GPT to use all of the space (an extra 104857600 blocks) or continue
with the current setting?
Fix/Ignore? Fix
Partition number? 3
End? [53.7GB]? 100%
(parted) quit
Information: You may need to update /etc/fstab.
Im nächsten Schritt wird die gewünschte Partition für das Filesystem vergrößert. Hierzu kommt das Tool ›pvresize‹ zum Einsatz.
Die passende Partition ergibt sich aus den vorherigen Schritten.
[email protected]:~# pvresize /dev/sda3
Physical volume "/dev/sda3" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
Danach wird das logische Volume mit Hilfe von ›lvextend‹ vergrößert:
[email protected]:~# lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from 24.50 GiB (6272 extents) to <99.00 GiB (25343 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
Zuletzt werden die Änderungen noch an das Filesystem übergeben. Da es sich um LVM-Volumes handelt, passiert diese Änderung Live und benötigt keinen Neustart des Systems.
[email protected]:~# resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 13
The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 25951232 (4k) blocks long.
Ob die Änderungen erfolgreich übernommen wurden, kann mit dem nachstehenden Befehl geprüft werden. Hier sollte sich die neu festgelegte Volumegröße auslesen lassen.
[email protected]:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 950M 0 950M 0% /dev
tmpfs 199M 996K 198M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 98G 4.2G 89G 5% /
tmpfs 994M 0 994M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 994M 0 994M 0% /sys/fs/cgroup
/dev/loop0 56M 56M 0 100% /snap/core18/1944
/dev/sda2 976M 107M 803M 12% /boot
/dev/loop1 32M 32M 0 100% /snap/snapd/10707
/dev/loop2 70M 70M 0 100% /snap/lxd/19188
tmpfs 199M 0 199M 0% /run/user/1000
Quellen
- https://manpages.ubuntu.com/manpages/xenial/man8/pvresize.8.html
- https://linux.die.net/man/8/lvextend