Ubuntu Server - Speicherplatz der Festplatte erweitern

In diesem Beitrag wird die Erweiterung bestehender LVM Volumes beschrieben.

Ubuntu Server - Speicherplatz der Festplatte erweitern
Photo by Patrick Lindenberg / Unsplash

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