schlittermann

LVM ohne Manpage

Auf einfachen Wunsch ... eine unvollständige Anleitung, wie immer hilft aber eigentlich das Manual (man -k lvm ) weiter.

WTF is LVM?

Mit LVM wird es möglich, den zur Verfügung stehenden Festplattenplatz relativ dynamisch an die Anforderungen anzupassen. Um die einzelnen Begriffe zu verstehen, ist vielleicht das folgende Bild hilfreich:
    
    Physical Volumes (Partitionen, ganze Festplatten) (PV)
	/dev/hda  /dev/hdc4  ...
	    \       |       /
	     \      |      /		pv*
	      \     |     /
	    [ verfügbarer Platz ]
	        /        \		Aufteilung in Volume Groups (VG)
	       /          \		vg*
	    [ Volume ]   [ Volume ]
	    [ Group  ]   [ Group  ]
	      /    \        ..  ..
	     /      \			Aufteilung in Logical Volumes (LV)
	    /        \			lv*
	 [ Logical ] [ Logical ]
	 [ Volume  ] [ Volume  ]


    

Kurz und Bündig

    
    $ su -
    $ Password:
    # cfdisk /dev/XXX
    # vgscan
    # pvcreate /dev/XXX
    # vgcreate /dev/XXX
    # lvcreate -L 500G vg1
    # mke2fs -j /dev/vg1/lvol1
    # mount /dev/vg1/lvol1 /data
    # _

    

Etwas länger

Zu Beginn

Um das LVM-System zu initialisieren ist ein einmaliger Aufruf von vgscan notwendig. Es werden /etc/lvm*-Files angelegt.

pv*

Zuerst müssen die physischen Datenträger dem LVM "übereignet" werden. (Hier hilft fdisk -l beim Finden von Datenträgern und Partitionen. Werden realte Partitionen verwendet, sollte der verwendete Partitionstyp dann 8e bzw. Linux LVM sein.

Physischen Datenträger ans LVM übergeben (Physical Volume (PV) "erzeugen")
pvcreate /dev/sda
Anzeigen der Eigentschaften dieses PV
pvdisplay /dev/sda
Suchen nach LVM-Datenträgern (PVs)
pvscan

Jeder der zu verwendenden Datenträger wird also mit pvcreate behandelt. Die Gesamtheit dieser Datenträger bildet dann den Pool der verfügbaren Blöcke (PE - Physical Extends).

Und natürlich gibt es noch weitere Kommandos (Verschieben der Daten eines PV etc.)

vg*

Nun können Volume Groups (VG) angelegt werden. Ein VG ist am besten vergleichbar mit einer Festplatte, auf der dann später noch Partitionen eingerichtet werden. Beim Anlegen der VG ist es erforderlich, mit anzugeben, auf welchen physischen Devices diese Volumegroup beheimatet sein soll. Wir könnten also z.B. eine VG für unsere Videos (große, billige Platten) und eine andere VG für unsere Kunden-Datenabank (teure, hochwertige Platten) anlegen.

Volume Group erzeugen
vgcreate /dev/sda /dev/sdb

...legt also eine VG mit Default-Namen vg1 an. Die Daten dieser VG werden dann auf /dev/sda und /dev/sdb verteilt.

VG anzeigen
vgdisplay vg1
Suchen nach Volume Groups
vgscan
Auflösen einer VG
Deaktivieren: vgchange -a n vg1 und anschließend entfernen: vgremove vg1.

Dafür darf aber auf dieser VG kein Logical Volume mehr liegen (s.u.).

Und es gilt das selbe wie oben: Es gibt noch mehr Kommandos für VGs (Verändern etc.) Die Tabulatortaste ist Ihr Freund: vg<TAB><TAB>.

lv*

Wenn das geschafft ist, müssen nur noch die Logical Volumes (vergleichbar mit Partitionen) angelegt werden. Jetzt ist der Augenblick der Größenbestimmung gekommen...

Logical Volume (LV) anlegen
lvcreate -L 100G vg1

Dieses LV kann jetzt wie ein Block-Device betrachtet werden (z.B. könnte ein Filesystem erzeugt werden: mkfs /dev/vg1/lvol1. Der Name lvol1 ist der Default-Name und wurde von lvcreate gewählt.

LV anzeigen
lvdisplay /dev/vg1/lvol1
LVs suchen
lvscan
LV verändern (Größe anpassen)
lvextend -L 200M /dev/vg1/lvol1
LV entfernen
lvremove /dev/vg1/lvol1

Natürlich darf die LV nicht mehr gemounted sein.

Und natürlich auch wieder hier: es gibt noch jede Menge weitere Kommandos.

Ganz genau

Dafür sei einfach mal auf die Manual-Seiten und auf das Weltweite Web verwiesen :-)