Good to Know Database

CentOS 6: Logical Volume Manager (LVM)


Die Abkürzung LVM steht für Logical Volume Manager. Mit dem LVM können mehrere Physical Volumes (Festplatten) zu einer Volume Group zusammengefasst werden in welcher dann die Logical Volumes (Partitionen) erstellt werden.

Eine Volume Group kann jederzeit durch zusätzliche Physical Volumes erweitert und auch verkleinert werden. Auch die Größe der Logical Volumes kann dynamisch geändert werden (je nach verwendetem Dateisystem).

Physical Volume einrichten

Als ersten Schritt müssen Sie auf den Festplatten Partitionen erstellen welche die einzelnen Physical Volumes darstellen. Dazu starten Sie fdisk und geben die Festplatte an auf welcher Sie die Partition erstellen wollen.

Hinweis: Falls Sie einen Datenträger mit mehr als 2TB partitionieren wollen, müssen Sie parted anstelle von fdisk einsetzen. Lesen Sie dazu die Anleitung Datenträger mit mehr als 2TB für LVM partitionieren.

[root@centos6 ~]# fdisk /dev/sdb

Legen Sie wie folgt eine neue primäre Partition an und ändern die Partitions-ID auf Linux LVM.

Befehl (m für Hilfe): n
Befehl  Aktion
   e      Erweiterte
   p      Primäre Partition (1-4)
p
Partitionsnummer (1-4): 1
Erster Zylinder (1-130, Vorgabe: 1):
Benutze den Standardwert 1
Last Zylinder, +Zylinder or +size{K,M,G} (1-130, Vorgabe: 130):
Benutze den Standardwert 130

Befehl (m für Hilfe): t
Partition 1 ausgewählt
Hex code (L um eine Liste anzuzeigen): 8e
Der Dateisystemtyp der Partition 1 ist nun 8e (Linux LVM)

Befehl (m für Hilfe): p

Platte /dev/sdb: 1073 MByte, 1073741824 Byte
255 Köpfe, 63 Sektoren/Spur, 130 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4451f909

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdb1               1         130     1044193+  8e  Linux LVM

Befehl (m für Hilfe): w
Die Partitionstabelle wurde verändert!

Rufe ioctl() um Partitionstabelle neu einzulesen.
Synchronisiere Platten.

Sollten Sie mehrere Festplatten zusammenschließen wollen, dann wiederholen Sie diese Schritte für jede weitere HDD.

Aus den erstellten Partitionen werden nun mit pvcreate die Physical Volumes erstellt.

[root@centos6 ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created

Wenn Sie diesen Befehl nicht für jede Partition wiederholen wollen, können Sie auch alle gewünschten Partitionen auf einmal angeben.

[root@centos6 ~]# pvcreate /dev/sdb1 /dev/sdc1
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdc1" successfully created

Physical Volume anzeigen

Wenn Sie überprüfen wollen welche Physical Volumes in Ihrem System existieren, können Sie diese mit dem folgenden Befehl suchen und anzeigen lassen.

[root@centos6 ~]# pvscan
  PV /dev/sdb1                      lvm2 [1019,72 MiB]
  PV /dev/sdc1                      lvm2 [1019,72 MiB]
  Total: 2 [1,99 GiB] / in use: 0 [0   ] / in no VG: 2 [1,99 GiB]

Eine Statistik zu den Physical Volumes können Sie sich durch pvs anzeigen lassen.

[root@centos6 ~]# pvs
  PV         VG   Fmt  Attr PSize    PFree  
  /dev/sdb1       lvm2 a-   1019,72m 1019,72m
  /dev/sdc1       lvm2 a-   1019,72m 1019,72m

Nähere Details zu einem Physical Volume können Sie mit dem folgenden Befehl anzeigen lassen.

[root@centos6 ~]# pvdisplay /dev/sdb1
  "/dev/sdb1" is a new physical volume of "1019,72 MiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name              
  PV Size               1019,72 MiB
  Allocatable           NO
  PE Size               0  
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               TCS0xV-l6Ff-iZqP-6uBH-wiKb-WA5K-E0KZT1

Volume Group einrichten

Nachdem die Physical Volumes erstellt wurden, können Sie diese zu einer Volume Group zusammenfassen. Dazu wird der Befehl vgcreate verwendet welchem ein Name für die Volume Group und die einzelnen Physical Volumes übergeben werden.

[root@centos6 ~]# vgcreate VolGroup00 /dev/sdb1 /dev/sdc1
  Volume group "VolGroup00" successfully created

Mit dem Parameter -s können Sie die Physical Extent Size für die Volume Group angeben. Die Physical Extent Size bestimmt die maximale Größe eines Physical Blocks in der Volume Group. Um diese zum Beispiel auf 32MB festzulegen rufen Sie vgcreate wie folgt auf.

[root@centos6 ~]# vgcreate -s 32M VolGroup00 /dev/sdb1 /dev/sdc1
  Volume group "VolGroup00" successfully created

Volume Group anzeigen

Wie bei den Physical Volumes könne Sie auch hier überprüfen welche Volume Groups in Ihrem System existieren.

[root@centos6 ~]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "VolGroup00" using metadata type lvm2

Eine Statistik zu den Volume Groups können Sie sich durch vgs anzeigen lassen.

[root@centos6 ~]# vgs
  VG         #PV #LV #SN Attr   VSize VFree
  VolGroup00   2   0   0 wz--n- 1,98g 1,98g

Details zu einer Volume Group können Sie mit vgdisplay anzeigen.

[root@centos6 ~]# vgdisplay VolGroup00
  --- Volume group ---
  VG Name               VolGroup00
  System ID            
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               1,98 GiB
  PE Size               4,00 MiB
  Total PE              508
  Alloc PE / Size       0 / 0  
  Free  PE / Size       508 / 1,98 GiB
  VG UUID               ctebFO-9G4C-KGas-COvf-p4fQ-XlUF-o8PfJL

Logical Volume einrichten

In der soeben erstellten Volume Group können Sie jetzt ein oder mehrere Logical Volumes erstellen. Dem Befehl lvcreate müssen Sie dazu einen Namen für das Logical Volume, die gewünschte Größe und die Volume Group in welcher das Logical Volume erstellt werden soll angeben.

[root@centos6 ~]# lvcreate -n LogVol00 -L 1G VolGroup00
  Logical volume "LogVol00" created

Damit Sie Dateien auf dieses Logical Volume speichern können, müssen Sie noch ein Dateisystem anlegen. Wenn Sie die Größe des Logical Volumes nachträglich ändern wollen, sollten Sie ext2, ext3 oder ext4 als Dateisystem verwenden.

[root@centos6 ~]# mkfs -t ext3 /dev/VolGroup00/LogVol00
mke2fs 1.41.12 (17-May-2010)
Dateisystem-Label=
OS-Typ: Linux
Blockgröße=4096 (log=2)
Fragmentgröße=4096 (log=2)
Stride=0 Blöcke, Stripebreite=0 Blöcke
65536 Inodes, 262144 Blöcke
13107 Blöcke (5.00%) reserviert für den Superuser
Erster Datenblock=0
Maximale Dateisystem-Blöcke=268435456
8 Blockgruppen
32768 Blöcke pro Gruppe, 32768 Fragmente pro Gruppe
8192 Inodes pro Gruppe
Superblock-Sicherungskopien gespeichert in den Blöcken:
32768, 98304, 163840, 229376

Schreibe Inode-Tabellen: erledigt                        
Erstelle Journal (8192 Blöcke): erledigt
Schreibe Superblöcke und Dateisystem-Accountinginformationen: erledigt

Das Dateisystem wird automatisch nach jeweils 33 Einhäng-Vorgängen bzw.
alle 180 Tage überprüft, je nachdem, was zuerst eintritt. Dies kann durch
tune2fs -c oder -i geändert werden.

Sobald das Dateisystem angelegt wurde, können Sie das Logical Volume mounten.

[root@centos6 ~]# mount /dev/VolGroup00/LogVol00 /mnt

Logical Volume anzeigen

Die Logical Volumes in Ihrem System können Sie mit dem folgenden Befehl suchen und anzeigen lassen.

[root@centos6 ~]# lvscan
  ACTIVE            '/dev/VolGroup00/LogVol00' [1,00 GiB] inherit

Die Statistik zu den Logical Volumes können Sie sich durch lvs anzeigen lassen.

[root@centos6 ~]# lvs
  LV       VG         Attr   LSize Origin Snap%  Move Log Copy%  Convert
  LogVol00 VolGroup00 -wi-a- 1,00g

Weitere Details zu einem Logical Volume zeigt Ihnen der folgende Befehl.

[root@centos6 ~]# lvdisplay /dev/VolGroup00/LogVol00
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol00
  VG Name                VolGroup00
  LV UUID                2wYEvs-2AvM-71kk-KMra-hmMJ-sGFK-L3SIGO
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                1,00 GiB
  Current LE             256
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

Logical Volume vergrößern

Wie bereits erwähnt, kann ein Logical Volume nachträglich vergrößert und verkleinert werden. Um ein Logical Volume zu vergrößern müssen Sie dieses zuerst aus der Verzeichnisstruktur entfernen.

[root@centos6 ~]# umount /mnt

Anschließend vergrößern Sie das Logical Volume mit lvextend. Als Option müssen Sie die neue Größe und den Namen des Logical Volumes angeben. Mit dem folgenden Befehl wird das erstellte Logical Volume mit 1GB auf 1,5GB vergrößert.

[root@centos6 ~]# lvextend -L 1,5G /dev/VolGroup00/LogVol00
  Extending logical volume LogVol00 to 1,50 GiB
  Logical volume LogVol00 successfully resized

Bevor Sie das Dateisystem vergrößern, sollten Sie dieses mit e2fsck auf Fehler überprüfen.

[root@centos6 ~]# e2fsck -f /dev/VolGroup00/LogVol00
e2fsck 1.41.12 (17-May-2010)
Durchgang 1: Prüfe Inodes, Blocks, und Größen
Durchgang 2: Prüfe Verzeichnis Struktur
Durchgang 3: Prüfe Verzeichnis Verknüpfungen
Durchgang 4: Überprüfe die Referenzzähler
Durchgang 5: Überprüfe Gruppe Zusammenfassung
/dev/VolGroup00/LogVol00: 11/65536 Dateien (0.0% nicht zusammenhängend), 12644/262144 Blöcke

Das Dateisystem wird jetzt noch mit resize2fs an die neue Größe der virtuellen Partition angepasst.

[root@centos6 ~]# resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.41.12 (17-May-2010)
Die Grösse des Dateisystems auf /dev/VolGroup00/LogVol00 wird auf 393216 (4k) Blöcke geändert.

Das Dateisystem auf /dev/VolGroup00/LogVol00 ist nun 393216 Blöcke groß.

Sobald der Vorgang abgeschlossen wurde, können Sie das Logical Volume wieder mounten.

[root@centos6 ~]# mount -t ext3 /dev/VolGroup00/LogVol00 /mnt

Logical Volume verkleinern

Die Vorgehensweise beim Verkleinern eines Logical Volumes ist sehr ähnlich wie beim Vergrößern. Allerdings müssen Sie hier zuerst das Dateisystem und erst danach das Logical Volume verkleinern.

Bevor Sie damit beginnen, müssen Sie das Dateisystem unmounten.

[root@centos6 ~]# umount /mnt

Danach sollten Sie das Dateisystem auf eventuelle Fehler überprüfen.

[root@centos6 ~]# e2fsck -f /dev/VolGroup00/LogVol00
e2fsck 1.41.12 (17-May-2010)
Durchgang 1: Prüfe Inodes, Blocks, und Größen
Durchgang 2: Prüfe Verzeichnis Struktur
Durchgang 3: Prüfe Verzeichnis Verknüpfungen
Durchgang 4: Überprüfe die Referenzzähler
Durchgang 5: Überprüfe Gruppe Zusammenfassung
/dev/VolGroup00/LogVol00: 11/98304 Dateien (0.0% nicht zusammenhängend), 14765/393216 Blöcke

Mit dem Befehl resize2fs wird die Größe des Dateisystems geändert. Hier müssen Sie aber zusätzlich die neue Größe des Dateisystems angeben.

[root@centos6 ~]# resize2fs /dev/VolGroup00/LogVol00 1G
resize2fs 1.41.12 (17-May-2010)
Die Grösse des Dateisystems auf /dev/VolGroup00/LogVol00 wird auf 262144 (4k) Blöcke geändert.

Das Dateisystem auf /dev/VolGroup00/LogVol00 ist nun 262144 Blöcke groß.

Anschließend wird noch das Logical Volume verkleinert.

[root@centos6 ~]# lvreduce -L 1G /dev/VolGroup00/LogVol00
  WARNING: Reducing active logical volume to 1,00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce LogVol00? [y/n]: y
  Reducing logical volume LogVol00 to 1,00 GiB
  Logical volume LogVol00 successfully resized

Hinweis: Das Logical Volume darf nicht kleiner sein als das Dateisystem da es sonst zu Datenverlust kommt.

Nachdem das Logical Volume verkleinert wurde, können Sie dieses wieder mounten.

[root@centos6 ~]# mount -t ext3 /dev/VolGroup00/LogVol00 /mnt

Logical Volume umbenennen

Mit dem Befehl lvrename können Sie ein bestehendes Logical Volume umbenennen.

[root@centos6 ~]# lvrename /dev/VolGroup00/LogVol00 /dev/VolGroup00/RenamedLogVol00
  Renamed "LogVol00" to "RenamedLogVol00" in volume group "VolGroup00"

Alternativ zu dieser ausführlichen Schreibweise können Sie auch die folgende Syntax verwenden.

[root@centos6 ~]# lvrename VolGroup00 LogVol00 RenamedLogVol00
  Renamed "LogVol00" to "RenamedLogVol00" in volume group "VolGroup00"

Logical Volume entfernen

Bevor Sie ein Logical Volume löschen, sollten Sie dieses deaktivieren. Dazu rufen Sie für das Logical Volume den folgenden Befehl auf.

[root@centos6 ~]# lvchange -an /dev/VolGroup00/LogVol00

Danach kann das Logical Volume mit lvremove gelöscht werden. Als Parameter muss nur der Logical Volume Pfad angegeben werden.

[root@centos6 ~]# lvremove VolGroup00/LogVol00
  Logical volume "LogVol00" successfully removed

Volume Group erweitern

Mit vgextend können auch nachträglich weitere Physical Volumes zu einer bestehenden Volume Group hinzugefügt werden.

[root@centos6 ~]# vgextend VolGroup00 /dev/sdd1
  No physical volume label read from /dev/sdd1
  Physical volume "/dev/sdd1" successfully created
  Volume group "VolGroup00" successfully extended

Volume Group verkleinern

Wenn Sie ein Physical Volume aus einer Volume Group entfernen wollen, müssen Sie zuerst die Logical Volumes die sich auf dieser befinden auslagern oder löschen. Mit pvmove werden alle Logical Volumes einer Festplatte entweder auf eine neue Festplatte in der gleichen Volume Group übertragen oder auf den freien Speicherplatz innerhalb der ganzen Volume Group verteilt.

Mit dem folgenden Befehl wird der Inhalt von /dev/sdc1 auf den freien Bereich innerhalb der Volume Group verteilt.

[root@centos6 ~]# pvmove /dev/sdc1
  /dev/sdc1: Moved: 100,0%

Wenn Sie eine neue Festplatte in die Volume Group eingebunden haben, können Sie die betroffenen Logical Volumes direkt auf das neue Physical Volume verschieben.

[root@centos6 ~]# pvmove /dev/sdc1 /dev/sdd1
  /dev/sdc1: Moved: 100,0%

Nachdem Sie das Physical Volume geleert haben, können Sie dieses wie folgt aus der Volume Group entfernen.

[root@centos6 ~]# vgreduce VolGroup00 /dev/sdc1
  Removed "/dev/sdc1" from volume group "VolGroup00"

Volume Group umbenennen

Bevor Sie eine Volume Group umbenennen können, müssen Sie alle Logical Volumes in der Volume Group deaktivieren. Dazu rufen Sie für jedes Logical Volume in der Volume Group den folgenden Befehl auf.

[root@centos6 ~]# lvchange -an /dev/VolGroup00/LogVol00

Anschließend wird die Volume Group wie folgt umbenannt.

[root@centos6 ~]# vgrename /dev/VolGroup00 /dev/RenamedVolGroup00
  Volume group "VolGroup00" successfully renamed to "RenamedVolGroup00"

Die folgende alternative Syntax führt zum selben Ergebnis.

[root@centos6 ~]# vgrename VolGroup00 RenamedVolGroup00
  Volume group "VolGroup00" successfully renamed to "RenamedVolGroup00"

Nachdem die Volume Group umbenannt wurde, müssen Sie die deaktivierten Logical Volumes wieder aktivieren.

[root@centos6 ~]# lvchange -ay /dev/RenamedVolGroup00/LogVol00

Volume Group entfernen

Bevor Sie eine Volume Group löschen, sollten Sie alle Logical Volumes in der Volume Group deaktivieren und löschen. Dazu rufen Sie für jedes Logical Volume in der Volume Group die folgenden Befehle auf.

[root@centos6 ~]# lvchange -an /dev/VolGroup00/LogVol00
[root@centos6 ~]# lvremove VolGroup00/LogVol00
  Logical volume "LogVol00" successfully removed

Mit vgremove können Sie jetzt die Volume Group entfernen. Dazu müssen Sie nur den Namen der Volume Group angeben.

[root@centos6 ~]# vgremove VolGroup00
  Volume group "VolGroup00" successfully removed

Physical Volume entfernen

Ein freies Physical Volume wird mit pvremove entfernt.

[root@centos6 ~]# pvremove /dev/sd[bcd]1
  Labels on physical volume "/dev/sdb1" successfully wiped
  Labels on physical volume "/dev/sdc1" successfully wiped
  Labels on physical volume "/dev/sdd1" successfully wiped

Nachdem das Physical Volume entfernt wurde, können Sie gegebenenfalls die Partition löschen und die Festplatte aus dem System entfernen.


Dieser Eintrag wurde am 21.10.2011 erstellt und zuletzt am 24.01.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_33_1441.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer