Erweitern eines LVM-Datenträgers (ohne Änderung seiner Struktur)

Hinweis

Der Logical Volume Manager (LVM) ist ein Subsystem der Betriebssysteme Linux und OS/2, das es ermöglicht, verschiedene Bereiche desselben Datenträgers und/oder Bereiche verschiedener Festplatten als ein einziges logisches Volume zu verwenden. Es wird mit Hilfe des Device-Mapper-Subsystems implementiert. LVM fügt eine Abstraktionsebene zwischen den physischen/logischen Datenträgern (herkömmliche Partitionen, die von fdisk und ähnlichen Programmen verwaltet werden) und dem Dateisystem ein. Dies wird dadurch erreicht, dass die ursprünglichen Partitionen in Blöcke zerlegt werden. Dabei werden entweder einzelne Partitionen oder Blockstrukturen (physisches Volume (pv)) verwendet und diese zu einem einzigen virtuellen Volume oder genauer gesagt einer Volume Group (vg) zusammengefasst, die wiederum in logische Volumes (lv) unterteilt wird. Für das Dateisystem erscheint das logische Volume als eine gewöhnliche Blockstruktur, obwohl die einzelnen pv des Volumes auf einer Reihe von physischen Strukturen liegen können (und sogar das pv selbst kann ähnlich wie bei RAID verteilt sein).

Source data

Operating system Linux (Ubuntu 16.04.6 LTS)
File system ext4
Method of allocation of hard disk space LVM
Initial size of volume 5ГБ
Size of volume after expansion 10ГБ

Mit dem Befehl fdisk kann man sehen, dass die Größe des Datenträgers auf der Seite des Betriebssystems (/dev/vda) 10 GB beträgt, die Größe der Partition auf der Seite des LVM (/dev/vda1) jedoch 5 GB.

fdisk -l /dev/vda

        Disk /dev/vda: 10 GiB, 10737418240 bytes, 20971520 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
        Disklabel type: dos
        Disk identifier: 0x71473ce9

        Device     Boot Start      End  Sectors Size Id Type
        /dev/vda1  *     2048 10483711 10481664   5G 8e Linux LVM

Die nächste Reihe von Aktionen wird dazu führen, dass die Root-Partition den gesamten verfügbaren Datenträger belegt.

1. Schauen Sie sich den aktuellen Zustand der Root-Partition an: Vor der Änderung ist sie 4,8 GB groß.

df -h /

        Filesystem                      Size   Used  Avail Use% Mounted on
        /dev/mapper/vg0-rootfs          4.8G  1.8G  2.8G  40% /
  1. Erweitern Sie die Partition vda1 mit der Software Parted auf 10 GB.
  • Öffnen (‘Open’) Sie den Datenträger mit dem Befehl ‘Parted’.
parted /dev/vda
  • Überprüfen des Zustands des Datenträgers insgesamt und der darauf befindlichen Partitionen
(parted) print

        Model: Virtio Block Device (virtblk)
        Disk /dev/vda: 10.7GB
        Sector size (logical/physical): 512B/512B
        Partition Table: msdos
        Disk Flags:

        Number  Start   End     Size    Type     File system  Flags
         1      1049kB  5368MB  5367MB  primary               boot, lvm
  • Ändern Sie die Größe der Partition Nr. 1 (aktuelle Größe 5367 MB) auf die maximal mögliche Größe. Die Zahl dafür entnehmen Sie der Beschreibung des Datenträgers im vorherigen Punkt (10,7 GB).
(parted) resizepart 1

        End?  [5368MB]? 10.7GB
  • Überprüfen Sie, ob die Partition vda1 nun den gesamten verfügbaren Speicherplatz (10 GB) belegt.
(parted) print

        Model: Virtio Block Device (virtblk)
        Disk /dev/vda: 10.7GB
        Sector size (logical/physical): 512B/512B
        Partition Table: msdos
        Disk Flags:

        Number  Start   End     Size    Type     File system  Flags
         1      1049kB  10.7GB  10.7GB  primary               boot, lvm
  • Beenden Sie die Software
(parted) quit
  1. Erweitern Sie den LVM, der die Root-Partition enthält
  • Erweitern Sie das physische Volume
pvresize /dev/vda1

        Physical volume "/dev/vda1" changed
        1 physical volume(s) resized / 0 physical volume(s) not resized
  • Erneutes Scannen der logischen Partitionen
lvscan

        ACTIVE            '/dev/vg0/rootfs' [5.00 GiB] inherit
  • Erweitern Sie das logische Volume auf die maximal verfügbare Größe. Nehmen Sie den Namen des Volumes aus dem vorherigen Punkt
lvextend /dev/vg0/rootfs -l +100%FREE

          Size of logical volume vg0/rootfs changed from 5.00 GiB (1279 extents) to 9.96 GiB (2550 extents).
          Logical volume rootfs successfully resized.

4. Erweitern Sie das Dateisystem auf die maximal verfügbare Größe (nehmen Sie den Namen des Datenträgers aus Punkt 1).

resize2fs /dev/mapper/vg0-rootfs

        resize2fs 1.42.13 (17-May-2015)
        Filesystem at /dev/mapper/vg0-rootfs is mounted on /; on-line resizing required
        old_desc_blocks = 1, new_desc_blocks = 1
        The filesystem on /dev/mapper/vg0-rootfs is now 2611200 (4k) blocks long.

5. Überprüfen Sie, ob die Änderungen erfolgreich durchgeführt wurden. Sehen Sie sich dazu die aktuelle Größe der Root-Partition an. Sie beträgt jetzt 9,7 GB.

df -h /

        Filesystem                      Size   Used  Avail Use% Mounted on
        /dev/mapper/vg0-rootfs          9.7G  1.9G  7.5G  20% /