Version 1.0
Autor:Falko Timme
Letzte Aktualisierung:09.02.2015
Diese Anleitung zeigt, wie Sie mit LVM (Logical Volume Management) unter Linux arbeiten. Außerdem wird in einem extra Kapitel beschrieben, wie man LVM zusammen mit RAID1 verwendet. Da LVM ein ziemlich abstraktes Thema ist, enthält dieser Artikel ein Debian Etch VMware-Image, das Sie herunterladen und starten können, und auf diesem Debian Etch-System können Sie alle Befehle ausführen, die ich hier ausführe, und Ihre Ergebnisse mit meinen vergleichen. Durch diesen praktischen Ansatz sollten Sie sich sehr schnell an LVM gewöhnen.
Ich übernehme jedoch keine Garantie dafür, dass dieses Tutorial bei Ihnen funktioniert!
1 Vorbemerkung
Dieses Tutorial wurde von zwei Artikeln inspiriert, die ich gelesen habe:
- http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html
- http://www.debian-administration.org/articles/410
Dies sind großartige Artikel, aber schwer zu verstehen, wenn Sie noch nie zuvor mit LVM gearbeitet haben. Aus diesem Grund habe ich dieses Debian Etch VMware-Image erstellt, das Sie herunterladen und in VMware Server oder VMware Player ausführen können (siehe https://www.howtoforge.com/import_vmware_images, um zu erfahren, wie das geht).
Ich habe alle Tools, die wir im Laufe dieser Anleitung benötigen, auf dem Debian Etch-System installiert (durch Ausführen von
apt-get install lvm2 dmsetup mdadm reiserfsprogs xfsprogs
), also brauchen Sie sich darüber keine Gedanken zu machen.
Das Netzwerk des Debian Etch-Systems wird über DHCP konfiguriert, sodass Sie sich keine Gedanken über widersprüchliche IP-Adressen machen müssen. Das Root-Passwort lautet howtoforge. Sie können sich auch mit einem SSH-Client wie PuTTY mit diesem System verbinden. Um die IP-Adresse des Debian-Etch-Systems herauszufinden, führen Sie
ausifconfig
Das System hat sechs SCSI-Festplatten, /dev/sda - /dev/sdf. /dev/sda wird für das Debian Etch-System selbst verwendet, während wir /dev/sdb - /dev/sdf für LVM und RAID verwenden werden. /dev/sdb - /dev/sdf haben jeweils 80 GB Speicherplatz. Am Anfang werden wir so tun, als ob jeder nur 25 GB Speicherplatz hat (also nur 25 GB auf jedem von ihnen verwenden), und im Laufe des Tutorials werden wir unsere 25-GB-Festplatten durch 80-GB-Festplatten „ersetzen“ und so demonstrieren, wie Sie können in LVM kleine Festplatten durch größere ersetzen.
Der Artikel http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html verwendet Festplatten von 250 GB und 800 GB, aber einige Befehle wie pvmove nehmen lange Zeit mit solchen Festplattengrößen, deshalb habe ich mich entschieden, Festplatten mit 25 GB und 80 GB zu verwenden (das reicht, um zu verstehen, wie LVM funktioniert).
1.1 Zusammenfassung
Laden Sie dieses Debian Etch VMware-Image (~310 MB) herunter und starten Sie es so. Melden Sie sich als root mit dem Passwort howtoforge.
an
2 LVM-Layout
Grundsätzlich sieht LVM so aus:
Sie haben ein oder mehrere physische Volumes (in unserem Beispiel /dev/sdb1 - /dev/sde1), und auf diesen physischen Volumes erstellen Sie eine oder mehrere Volume-Gruppen (z. B. Dateiserver), und in jeder Volume-Gruppe können Sie eine oder mehrere erstellen logische Volumes. Wenn Sie mehrere physische Datenträger verwenden, kann jeder logische Datenträger größer sein als einer der zugrunde liegenden physischen Datenträger (aber natürlich darf die Summe der logischen Datenträger den von den physischen Datenträgern angebotenen Gesamtspeicherplatz nicht überschreiten).
Es empfiehlt sich, logischen Volumes nicht den gesamten Speicherplatz zuzuweisen, sondern etwas Speicherplatz ungenutzt zu lassen. Auf diese Weise können Sie später ein oder mehrere logische Volumes erweitern, wenn Sie dies für erforderlich halten.
In diesem Beispiel erstellen wir eine Volume-Gruppe namens fileserver und wir erstellen auch die logischen Volumes /dev/fileserver/share, /dev/fileserver/backup und /dev/fileserver/media (die nur die Hälfte des Speicherplatzes beanspruchen von unseren Physical Volumes angeboten - so können wir später auf RAID1 umsteigen (ebenfalls in diesem Tutorial beschrieben)).
3 Unser erstes LVM-Setup
Informieren wir uns über unsere Festplatten:
fdisk -l
Die Ausgabe sieht so 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
Es gibt noch keine Partitionen auf /dev/sdb - /dev/sdf. Wir werden die Partitionen /dev/sdb1, /dev/sdc1, /dev/sdd1 und /dev/sde1 erstellen und /dev/sdf vorerst unberührt lassen. Wir tun so, als ob unsere Festplatten vorerst nur 25 GB statt 80 GB Speicherplatz hätten, daher weisen wir 25 GB zu /dev/sdb1, /dev/sdc1, /dev/sdd1 und /dev/sde1:
fdisk /dev/sdb
server1:~# fdisk /dev/sdb
Die Anzahl der Zylinder für diese Festplatte ist auf 10443 gesetzt.
Daran ist nichts falsch , aber das ist größer als 1024,
und könnte in bestimmten Setups Probleme verursachen mit:
1) Software, die beim Booten ausgeführt wird (z. B. alte Versionen von LILO)
2) Software von anderen Betriebssystemen booten und partitionieren
(z. B. DOS FDISK, OS/2 FDISK)
Befehl (m for help): <-- m
Command action
a toggle a bootable flag
b edit bsd disklabel
c das DOS-Kompatibilitäts-Flag umschalten
d eine Partition löschen
l bekannte Partitionstypen auflisten
m dieses Menü drucken
n eine neue Partition hinzufügen
o erstellen eine neue leere DOS-Partitionstabelle
p die Partitionstabelle drucken
q beenden ohne Änderungen zu speichern
s ein neues leeres Sun-Disklabel erstellen
t die System-ID einer Partition ändern
u Anzeige-/Eingabeeinheiten ändern
v die Partitionstabelle überprüfen w Tabelle auf Festplatte schreiben und beenden
x zusätzliche Funktionalität (nur für Experten)
Befehl (m für Hilfe): <-- n
Befehl Aktion
e erweitert
p primäre Partition (1-4)
<-- p
Partitionsnummer (1-4): <-- 1
Erster Zylinder (1-10443, Standard 1):<--
Unter Verwendung des Standardwerts 1
Letzter Zylinder oder +Größe oder +GrößeM oder +GrößeK (1-10443, Standard 10443): <-- +25000M
Befehl (m für Hilfe): <-- t
Ausgewählte Partition 1
Hex-Code (geben Sie L ein, um Codes aufzulisten): <-- L
0 Leer 1e Hidden W95 FAT1 80 ALTER MINIX BE Solaris Boot
1 FAT12 24 NEC DOS 81 MINIX/ALTES 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 erweitert 41 PP erweitert 41 PP C Prep-Boot 85 Linux erweitert C7 Syrinx
6 FAT16 42 SFS 86 NTFS Volume Set DA Non-FS-Daten
7 hpfs/ntfs 4d qnx4.x 87 ntfs Volumensatz DB CP/M/CTOS/. <<
8 AIX 4E qnx4.x 2. Teil 88 Linux Plaintext de Dell Utility
9 AIX bootable 4F qnx4.x 3rd Teil 8e Linux LVM df Bootit
A OS /2 Boot Managing 50 Ontrack DM 93 Amoeba E1 DOS -Zugang
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-2-12 /16/
11 Verstecktes FAT12 56 Goldener Bogen 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 oder Sys ab Darwin Boot F2 dos sekundär
17 Hidden HPFS /NTF 64 Novell Netware b7 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 AT 3/ IX /> Hex-Code (geben Sie L ein, um Codes aufzulisten): <-- 8e
Geänderter Systemtyp von Partition 1 zu 8e (Linux LVM)
Befehl (m für Hilfe): <-- w
Die Partitionstabelle wurde geändert!
Aufruf von ioctl() um die Partitionstabelle neu zu lesen.
Festplatten werden synchronisiert.
Jetzt machen wir dasselbe für die Festplatten /dev/sdc - /dev/sde:
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde
Dann ausführen
fdisk -l
wieder. Die Ausgabe sollte so aussehen:
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
Device Boot Start End Blocks Id System
/dev/sdb1 1 3040 24418768+ 8e Linux LVM
Disk /dev/sdc: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 3040 24418768+ 8e Linux LVM
Disk /dev/sdd: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdd1 1 3040 24418768+ 8e Linux LVM
Disk /dev/sde: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sde1 1 3040 24418768+ 8e Linux LVM
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
Jetzt bereiten wir unsere neuen Partitionen für LVM vor:
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdc1" successfully created
Physical volume "/dev/sdd1" successfully created
Physical volume "/dev/sde1" successfully created
Lassen Sie uns diese letzte Aktion zu Trainingszwecken rückgängig machen:
pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Labels on physical volume "/dev/sdb1" successfully wiped
Labels on physical volume "/dev/sdc1" successfully wiped
Labels on physical volume "/dev/sdd1" successfully wiped
Labels on physical volume "/dev/sde1" successfully wiped
Dann ausführen
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
nochmal:
server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdc1" successfully created
Physical volume "/dev/sdd1" successfully created
Physical volume "/dev/sde1" successfully created
Jetzt ausführen
pvdisplay
um mehr über den aktuellen Zustand Ihrer physischen Volumes zu erfahren:
server1:~# pvdisplay
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 23.29 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID G8lu2L-Hij1-NVde-sOKc-OoVI-fadg-Jd1vyU
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size 23.29 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 40GJyh-IbsI-pzhn-TDRq-PQ3l-3ut0-AVSE4B
--- NEW Physical volume ---
PV Name /dev/sdd1
VG Name
PV Size 23.29 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 4mU63D-4s26-uL00-r0pO-Q0hP-mvQR-2YJN5B
--- NEW Physical volume ---
PV Name /dev/sde1
VG Name
PV Size 23.29 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 3upcZc-4eS2-h4r4-iBKK-gZJv-AYt3-EKdRK6