LVM - Anleitung für Anfänger

Version 1.0
Author: Falko Timme


Diese Anleitung veranschaulicht, wie man mit LVM (Logical Volume Management) unter Linux arbeitet. In einem gesonderten Kapitel wird außerdem beschrieben, wie man LVM zusammen mit RAID1 verwendet. Da LVM ein ziemlich abstraktes Thema ist, beinhaltet diese Anleitung ein Debian Etch VMware Image, das Du runter laden und starten kannst. Auf diesem Debian Etch System kannst Du alle Befehle laufen lassen, die ich hier ausführen werde und Deine Ergebnisse mit den meinen vergleichen. Mit dieser praktischen Vorgehensweise kannst Du Dich recht schnell mit LVM vertraut machen.

Ich übernehme jedoch keine Garantie, dass dies auch bei Dir funktionieren wird!

1 Vorbemerkung

Zwei Artikel, die micht zu dieser Anleitung inspiriert haben, sind:
Diese Artikel sind großartig aber schwer zu verstehen, wenn Du noch nie zuvor mit LVM gearbeitet hast. Daher habe ich dieses Debian Etch VMware Image erstellt, das Du runter laden und im VMware Server oder VMware Player (siehe http://www.howtoforge.com/import_vmware_images hier findest Du eine Anleitung) laufen lassen kannst.

Ich habe während dieses Tutorials alle Tools auf dem Debian Etch System installiert, die wir brauchen (indem ich Folgendes laufen lies

apt-get install lvm2 dmsetup mdadm reiserfsprogs xfsprogs

) darüber brauchst Du Dir also keine Sorgen machen.

Das Netzwerk des Debian Etch Systems ist via DHCP konfiguriert, Du musst Dir also nicht den Kopf wegen sich widersprechenden IP Adressen zerbrechen. Das Root Passwort ist howtoforge. Du kannst Dich mit diesem System auch mit einem SSH Klienten wie PuTTY verbinden. Um die IP Adresse des Debian Etch Systems herauszufinden, führe Folgendes aus

ifconfig

Das System hat sechs SCSI Festplatten /dev/sda - /dev/sdf. /dev/sda wird für das Debian Etch System verwendet, während wir /dev/sdb - /dev/sdf für LVM und RAID verwenden werden. /dev/sdb - /dev/sdf haben jeweils 80GB Speicherplatz. Am Anfang werden wir so tun, als ob jede nur 25GB freien Speicherplatz hat (demnach werden nur 25GB auf jeder verwendet). In dieser Anleitung werden wir unsere 25GB-Festplatten mit 80GB Festplatten "ersetzen", wir demonstrieren somit, wie man kleine Festplatten mit größeren in LVM ersetzen kann.

Die Anleitung http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html verwendet Festplatten von 250GB und 800GB, jedoch brauchen einige Befehle wie pvmove mit einer so großen Festplatte ziemlich lange, daher habe ich beschlossen, Festplatten mit der Größe von 25GB und 80GB zu verwenden (das reicht um zu verstehen, wie LVM funktioniert).

1.1 Zusammenfassung

Lade dieses Debian Etch VMware Image (~310MB) runter und starte es wie folgt. Melde Dich als Rootanwender mit dem Passwort howtoforge an.

2 LVM Layout

LVM sieht im Wesentlichen so aus:


Du hast eine oder mehrere Physical Volumes (/dev/sdb1 - /dev/sde1 in our example), auf diesen Physical Volumes kannst Du eine oder mehrere Volume Groups erstellen (z.B. fileserver) und in jeder Volume Group kannst Du ein oder mehrere Logical Volumes erstellen. Wenn Du mehrere Physical Volumes verwendest, kann jedes Logical Volume größer sein als eines der zugrunde liegenden Physical Volumes (jedoch darf die Summe der Logical Volumes nicht den gesamten Speicherplatz der Physical Volumes überschreiten).

Es ist ganz praktisch den Logical Volumes nicht den gesamten Speicherplatz zuzuweisen, sondern ein bisschen Kapazität offen zu lassen. Somit kannst Du später eines oder mehrere Logical Volumes vergrößern, falls Du musst.

In diesem Beispiel werden wir eine Volume Group namens fileserver erstellen, sowie die Logical Volumes /dev/fileserver/share, /dev/fileserver/backup und /dev/fileserver/media (die nur die Hälfte des Platzes verwenden werden, der von unseren Physical Volumes derzeit angeboten wird - so können wir später zu RAID1 wechseln (wie auch in dieser Anleitung beschrieben wird)).

3 Unser Erstes LVM Setup

Lass uns etwas über unsere Festplatten in Efahrung bringen:

fdisk -l

Die Ausgabe sieht wie folgt aus:

server1:~# fdisk -l


Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 18 144553+ 83 Linux
/dev/sda2 19 2450 19535040 83 Linux
/dev/sda4 2451 2610 1285200 82 Linux swap / Solaris

Disk /dev/sdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table


Disk /dev/sdc: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdc doesn't contain a valid partition table


Disk /dev/sdd: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdd doesn't contain a valid partition table


Disk /dev/sde: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sde doesn't contain a valid partition table


Disk /dev/sdf: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdf doesn't contain a valid partition table

Auf /dev/sdb - /dev/sdf sind noch keine Partitionen vorhanden. Wir werden die Partitionen /dev/sdb1, /dev/sdc1, /dev/sdd1 und /dev/sde1 erstellen und lassen /dev/sdf fürs erste unberühert. Wir tun so als ob unsere Festplatten nur 25GB freien Speicherplatz anstelle von 80GB haben, daher weisen wir 25GB den Festplatten /dev/sdb1, /dev/sdc1, /dev/sdd1 und /dev/sde1 zu:

fdisk /dev/sdb

server1:~# fdisk /dev/sdb

Die Zahl der Zylinder für diese Festplatte ist auf 10443 eingestellt.
Das ist völlig in Ordnung, jedoch ist dies größer als 1024 und könnte in bestimmten Setups folgende Probleme verursachen:
1) Probleme mit der Software, die beim Hochfahren des Rechners startet (z.B. alte Versionen von LILO)
2) Probleme mit dem Boot Loader und Partitionierungssoftware von anderen Betriebssystemen (z.B DOS FDISK, OS/2 FDISK)

Command (m for help): <-- m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Command (m for help): <-- n
Command action
e extended
p primary partition (1-4)
<-- p
Partition number (1-4): <-- 1
First cylinder (1-10443, default 1): <-- <ENTER>
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-10443, default 10443): <-- +25000M

Command (m for help): <-- t
Selected partition 1
Hex code (type L to list codes): <-- L

0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot
1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris
2 XENIX root 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
5 Extended 41 PPC PReP Boot 85 Linux extended c7 Syrinx
6 FAT16 42 SFS 86 NTFS volume set da Non-FS data
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 DOS access
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT
1c Hidden W95 FAT3 75 PC/IX
Hex code (type L to list codes): <-- 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): <-- w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Nun führen wir das Gleiche für die Festplatten /dev/sdc - /dev/sde aus:

fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde

Lass dann

fdisk -l

1 Kommentar(e)

Zum Posten von Kommentaren bitte

Kommentare

Von: T-Roc

Also, ganz dickes Lob. Das HOWTO is echt ma geil. Vielen Dank.