Grundlagen

Wofür ist sowas (LVM) gut?

Es handelt sich hierbei allgemein beschrieben um eine Abstraktionsschicht zwischen echten und virtuellen Speichergeräten. Diese Schicht wird über den Linux-Kernel zwischen Festplatte und Dateisystem erzeugt. Durch die Abstraktion kann eine Erhöhung des erforderlichen Festplattenspeichers im laufenden Betrieb ohne Neustart des Systems erfolgen.

Exkurs Partitionstabelle Linux mit GUID Partition Table (GPT)

Unter VMWare: virtuelle Maschine muss mit (U)EFI BIOS eingerichtet werden um GTP-Partitionsschema verwenden zu können


Ursprünglich erlaubte das klassische Partitionsschema mit Master-Boot-Record (MBR) nur vier Partitionen. Diese Limitierung wurde später aufgebrochen und mit der GUID Partition Table (GPT) komplett geändert.

Im GPT existiert nur noch ein Partitionstyp:

  • Primär (primary) - maximal 128 pro Disk

Exkurs Partitionstabelle Linux mit veraltetem Master Boot Record (MBR)

 Click here to expand...

Ursprünglich erlaubte der MBR nur vier Partitionen. Um diese Limitierung später zu umgehen, wurde die Option geschaffen zusätzlich erweiterte (extended) und logische (logical) Partitionen (partitions) zu verwenden.

Somit existieren grundsätzlich drei Partitionstypen:

  • Primär (primary) - maximal vier pro Disk
  • Erweiterte (extended) - zählt als eine primäre Partition auf der Disk
    • Logische (logical) - unbegrenzte Anzahl

Primärpartitionen können im Gegensatz zu Erweiterungs- und Logischenpartitionen bootfähig sein.


Bestandteile des Logical Volume Managers (LVM)

Physikalische Erweiterung (PE) (Physical Extent)

Damit ist die kleinstmöglichste Speichergröße in einem LVM-Konstrukt gemeint. Diese beträgt vier Megabyte. Es ist nicht möglich diese Zuweisung nachträglich wieder zu verändern.

Physikalisches Gerät (PV) (Physical Volume)

Hiermit sind prinzipiell die echten Speichermedien gemeint. In einer virtuellen Umgebung handelt es sich dabei beispielsweise um eine Partition oder Festplatte der virtuellen Maschine. Eine virtuelle Maschine kann eine Menge n davon verwenden. Limitierungen können durch die eingesetzte Basistechnologie (Virtualisierungstechnologie usw.) bestehen. In einem Linux-System kann die aktive Festplatte in eine oder mehrere Partitionen unterteilt sein.

Wichtig

Nicht alle Partitionen eines Linux Systems sollten oder müssen Bestandteil des LVM-Konstruktes sein. Ein Praxis-Ansatz hierbei ist eine Ausnahme für den "Boot"-Bereich des Systems. Weitere Ausnahmen sind je nach Anforderungen an ein Betriebssystem zu prüfen.

Struktur Beispiel:

  • virtuelle Festplatte (disk) 1: /dev/sda
    • Partition (PV) 1 auf Festplatte 1:  /dev/sda1
    • Partition (PV) 2 auf Festplatte 1:  /dev/sda2
    • Partition (PV) 3 auf Festplatte 1:  /dev/sda3
    • Partition (PV) 4 auf Festplatte 1:  /dev/sda4
  • virtuelle Festplatte (disk) 2: /dev/sdb
    • Partition (PV) 1 auf Festplatte 2:  /dev/sdb1
    • Partition (PV) 2 auf Festplatte 2:  /dev/sdb2

Gerätegruppe (VG) (Volume Group)

Die erste sichtbare Abstraktionsschicht des LVM-Konstrukts wird für ein System definiert. In der Regel wird die VG bei der Erstinstallation oder dem finalen Aufbau eines Systemtemplates definiert. Man kann diese als Container für mindestens eine PV verstehen. Nachträglich können bei Bedarf auch eine Menge n an Gerätegruppen  (VGs) erzeugt werden. Das essenzielle Merkmal einer VG ist die Fähigkeit im laufenden Betrieb um beliebig viele PVs erweitert werden zu können. Hierdurch können Ausfallzeiten von Serversystemen bei akutem oder absehbarem Speicherplatzmangel vermieden werden.

Struktur Beispiel:

Im Beispiel ist die Partition /boot nicht mit einem LVM unterlegt.


  • virtuelle Festplatte (disk) 1: /dev/sda
    • Partition (PV) 1 auf Festplatte 1 mit Boot-Partition:  /dev/sda1
    • Partition (PV) 2 auf Festplatte 1:  /dev/sda2 ist Teil einer Volume Group
    • Partition (PV) 3 auf Festplatte 1:  /dev/sda3 ist Teil einer Volume Group
    • Partition (PV) 4 auf Festplatte 1:  /dev/sda4 ist Teil einer Volume Group


Logisches Gerät (LV) (Logical Volume)

Ist unter dem Verständnis der zuvor genannten Volume Group (VG) eine Art Partition innerhalb des LVM-Konstrukts. Ein Logical Volume (LV) ist einer Volume Group (VG) zugewiesen.


Übersichten mittels Werkzeugen auf Betriebssystemebene

fdisk

Wichtig

Nur für MBR, nicht für (U)EFI-Partitionen


 Click here to expand...


Aufruf mit dem Befehl: fdisk -l

Ausgabebeispiel
 [root@localhost.localdomain:/root]# fdisk -l
Disk /dev/sda: 59.1 GB, 59055800320 bytes, 115343360 sectors
Units = Sektoren of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000c95d5
   
	Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sda1   *        2048      976895      487424   83  Linux
/dev/sda2          976896    62914559    30968832   8e  Linux LVM
/dev/sda3        62914560    83886079    10485760   8e  Linux LVM
/dev/sda4        83886080   115343359    15728640   8e  Linux LVM
 
# (..)
 
Disk /dev/sdb: 16.1 GB, 16106127360 bytes, 31457280 sectors
Units = Sektoren of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/centos-root: 23.1 GB, 23060283392 bytes, 45039616 sectors
Units = Sektoren of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/centos-swap: 4001 MB, 4001366016 bytes, 7815168 sectors
Units = Sektoren of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/centos-data: 10.4 GB, 10368319488 bytes, 20250624 sectors
Units = Sektoren of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/centos-var_log: 21.1 GB, 21101543424 bytes, 41213952 sectors
Units = Sektoren of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Im oben benannten Beispiel kennzeichnet die Spalte Id und System das Format, dass auf der Partition (PV) eingestellt ist. Bei dem Gerät /dev/sda1 weisen die Informationen auf ein nicht-LVM Dateisystem hin. Das zusätzliche Flag boot. kennzeichnet diesen Bereich als bootfähig. Es handelt sich um den Betriebsystembereich /boot . Die Geräte sda2-4 sind als LVM-Geräte konfiguriert.



blkid

Aufruf mit dem Befehl: blkid

Ausgabebeispiel
/dev/sda1: UUID="a70bfc00-add6-49f4-a810-e86c1511618c" TYPE="xfs"
/dev/sda2: UUID="gXu1bv-iNpz-alGb-Dn0a-TTVQ-rn16-V7kdNd" TYPE="LVM2_member"
/dev/sda3: UUID="FpmqBw-3cQO-9dsk-B5jX-rolZ-KFyk-JMiETE" TYPE="LVM2_member"
/dev/sda4: UUID="WA4WHr-OX6w-5eWK-Emxz-1sr9-2CSF-sM3Vjj" TYPE="LVM2_member"
/dev/sr0: UUID="2015-12-09-22-36-30-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/centos-root: UUID="3a3347f8-4c6d-44fe-a0b3-ab68eb2ab0ae" TYPE="xfs"
/dev/mapper/centos-swap: UUID="2f5a250a-e2e5-40de-a390-42f7637908d2" TYPE="swap"
/dev/mapper/centos-data: UUID="ae063877-26f1-4bd4-8ba9-172379cad1d5" TYPE="xfs"
/dev/mapper/centos-var_log: UUID="40bddb23-d70c-4e4c-8214-3786c53cc04d" TYPE="xfs"


gdisk

Wichtig

Nur für GPT, nicht für MBR-Partitionen


Ausgabebeispiel
gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.6Partition table scan:
 MBR: protective
 BSD: not present
 APM: not present
 GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): p
Disk /dev/sda: 146800640 sectors, 70.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): EFEF906A-4FCD-4329-99A2-AD55D727C44B
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 146800606
Partitions will be aligned on 2048-sector boundaries
Total free space is 2047 sectors (1023.5 KiB)Number Start (sector) End (sector) Size Code Name
 1 2048 1026047 500.0 MiB EF00 EFI System Partition
 2 1026048 2000895 476.0 MiB 0700
 3 2000896 62912511 29.0 GiB 8E00
 4 62912512 115343326 25.0 GiB 8E00
 5 115343360 146800606 15.0 GiB 8E00


parted

Eine weitere Übersichtsmöglichkeit über das das Partitionslayout aller blockorientierten Geräte gewährt: parted -l

Ausgabebeispiel
[root@localhost.localdomain:/root]# parted -l
Modell: VMware Virtual disk (scsi)
Festplatte  /dev/sda:  59,1GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos
Disk Flags:
Nummer  Anfang  Ende    Größe   Typ      Dateisystem  Flags
 1      1049kB  500MB   499MB   primary  xfs          boot
 2      500MB   32,2GB  31,7GB  primary               lvm
 3      32,2GB  42,9GB  10,7GB  primary               lvm
 4      42,9GB  59,1GB  16,1GB  primary               lvm
 
# (..)
 
Modell: Linux device-mapper (linear) (dm)
Festplatte  /dev/mapper/centos-var_log:  21,1GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: loop
Disk Flags:
Nummer  Anfang  Ende    Größe   Dateisystem  Flags
 1      0,00B   21,1GB  21,1GB  xfs

Modell: Linux device-mapper (linear) (dm)
Festplatte  /dev/mapper/centos-data:  10,4GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: loop
Disk Flags:
Nummer  Anfang  Ende    Größe   Dateisystem  Flags
 1      0,00B   10,4GB  10,4GB  xfs

Modell: Linux device-mapper (linear) (dm)
Festplatte  /dev/mapper/centos-swap:  4001MB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: loop
Disk Flags:
Nummer  Anfang  Ende    Größe   Dateisystem     Flags
 1      0,00B   4001MB  4001MB  linux-swap(v1)

Modell: Linux device-mapper (linear) (dm)
Festplatte  /dev/mapper/centos-root:  23,1GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: loop
Disk Flags:
Nummer  Anfang  Ende    Größe   Dateisystem  Flags
 1      0,00B   23,1GB  23,1GB  xfs
 
# (..)


gparted

Grafische Übersicht mittels des Werkzeugs gparted: