Verze 1.0
Autor:Falko Timme
Poslední aktualizace:2015-02-09
Tato příručka ukazuje, jak pracovat s LVM (Logical Volume Management) v systému Linux. V další kapitole také popisuje, jak používat LVM spolu s RAID1. Protože LVM je poněkud abstraktní téma, tento článek přichází s obrazem Debian Etch VMware, který si můžete stáhnout a spustit, a na tomto systému Debian Etch můžete spouštět všechny příkazy, které zde provádím, a porovnávat své výsledky s mými. Díky tomuto praktickému přístupu byste si měli na LVM velmi rychle zvyknout.
Neposkytuji však žádnou záruku, že vám tento návod bude fungovat!
1 předběžná poznámka
Tento návod byl inspirován dvěma články, které jsem četl:
- http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html
- http://www.debian-administration.org/articles/410
Jsou to skvělé články, ale těžko pochopitelné, pokud jste s LVM nikdy předtím nepracovali. Proto jsem vytvořil tento obraz Debian Etch VMware, který si můžete stáhnout a spustit ve VMware Server nebo VMware Player (viz https://www.howtoforge.com/import_vmware_images, kde se dozvíte, jak to udělat).
Nainstaloval jsem všechny nástroje, které potřebujeme v průběhu této příručky na systém Debian Etch (spuštěním
apt-get install lvm2 dmsetup mdadm reiserfsprogs xfsprogs
), takže si s tím nemusíte dělat starosti.
Síť systému Debian Etch je konfigurována pomocí DHCP, takže se nemusíte obávat konfliktních IP adres. Heslo uživatele root je howtoforge. K tomuto systému se můžete také připojit pomocí klienta SSH, jako je PuTTY. Chcete-li zjistit IP adresu systému Debian Etch, spusťte
ifconfig
Systém má šest pevných disků SCSI, /dev/sda - /dev/sdf. /dev/sda se používá pro samotný systém Debian Etch, zatímco pro LVM a RAID použijeme /dev/sdb - /dev/sdf. /dev/sdb - každý /dev/sdf má 80 GB místa na disku. Na začátku se budeme chovat, jako by každý měl pouze 25 GB místa na disku (tedy na každém z nich použijeme pouze 25 GB) a v průběhu tutoriálu naše 25GB pevné disky „nahradíme“ pevnými disky 80 GB, čímž si ukážeme, jak v LVM můžete vyměnit malé pevné disky za větší.
Článek http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html používá pevné disky 250 GB a 800 GB, ale některé příkazy jako pvmove berou dlouhou dobu s takovými velikostmi pevných disků, proto jsem se rozhodl používat pevné disky 25GB a 80GB (to stačí k pochopení toho, jak LVM funguje).
1.1 Souhrn
Stáhněte si tento obraz Debian Etch VMware (~310 MB) a spusťte jej takto. Přihlaste se jako root s heslem howtoforge.
2 rozvržení LVM
V podstatě LVM vypadá takto:
Máte jeden nebo více fyzických svazků (/dev/sdb1 - /dev/sde1 v našem příkladu) a na těchto fyzických svazcích vytvoříte jednu nebo více skupin svazků (např. fileserver) a v každé skupině svazků můžete vytvořit jednu nebo více logické svazky. Pokud používáte více fyzických svazků, každý logický svazek může být větší než jeden ze základních fyzických svazků (ale součet logických svazků samozřejmě nesmí překročit celkový prostor nabízený fyzickými svazky).
Je dobrým zvykem nepřidělovat celý prostor logickým svazkům, ale ponechat určitý prostor nevyužitý. Tímto způsobem můžete později zvětšit jeden nebo více logických svazků, pokud to budete potřebovat.
V tomto příkladu vytvoříme skupinu svazků nazvanou fileserver a vytvoříme také logické svazky /dev/fileserver/share, /dev/fileserver/backup a /dev/fileserver/media (které zaberou pouze polovinu prostoru prozatím nabízené našimi fyzickými svazky – tímto způsobem můžeme později přejít na RAID1 (také popsáno v tomto tutoriálu)).
3 Naše první nastavení LVM
Pojďme se dozvědět o našich pevných discích:
fdisk -l
Výstup vypadá takto:
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
Na /dev/sdb - /dev/sdf zatím nejsou žádné oddíly. Vytvoříme oddíly /dev/sdb1, /dev/sdc1, /dev/sdd1 a /dev/sde1 a zatím ponecháme /dev/sdf beze změny. Chováme se, jako by naše pevné disky měly prozatím pouze 25 GB místa místo 80 GB, proto přidělujeme 25 GB /dev/sdb1, /dev/sdc1, /dev/sdd1 a /dev/sde1:
fdisk /dev/sdb
server1:~# fdisk /dev/sdb
Nyní uděláme totéž pro pevné disky /dev/sdc - /dev/sde:
Potom spusťte
znovu. Výstup by měl vypadat takto:
Nyní připravujeme naše nové oddíly pro LVM:
Vraťme tuto poslední akci pro účely školení:
Potom spusťte
znovu:
Nyní spusťte
abyste se dozvěděli o aktuálním stavu vašich fyzických svazků:
Počet cylindrů pro tento disk je nastaven na 10443.
Na tom není nic špatného , ale to je větší než 1024,
a může v určitých nastaveních způsobit problémy s:
1) softwarem který běží při zavádění (např. staré verze LILO)
2) zavádění a rozdělování softwaru např. z jiných OS
DOS FDISK, OS/2 FDISK)
Příkaz (m pro nápovědu): <-- m
Akce příkazu
a přepnutí příznaku zavedení
b upravit bsd diskklabel
c přepněte příznak kompatibility dos
d odstraňte oddíl
l seznam známých typů oddílů
m vytiskněte tuto nabídku
n novou reklamu n n reklamu nová prázdná tabulka oddílů DOS
p tisk tabulky oddílů
q ukončit bez uložení změn
s vytvořit novou prázdnou změnu systému Sun disklabel
v ověření tabulky oddílů w zapsat tabulku na disk a ukončit
x další funkce (pouze odborníci)
Příkaz (m pro nápovědu): <-- n
Akce příkazu
e rozšířeno
p primární oddíl (1-4)
<-- p
Číslo oddílu (1-4): <-- 1
První válec (1-10443, výchozí 1):<--
Použití výchozí hodnoty 1
Poslední válec nebo +velikost nebo +velikostM nebo +velikostK (1-10443, výchozí 10443): <-- +25000M
Příkaz (m pro nápovědu): <-- t
Vybraný oddíl 1
Hexadecimální kód (zadáním L zobrazíte kódy): <-- L
0 Prázdné 1E skrytý 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-
4 FAT16 <32M 40 Venix 80286 84 OS/2 Skryté C:C6 DRDOS/SEC (FAT-
5 C Prep Boot 85 Linux Extended C7 Syrinx
6 FAT16 42 SFS 86 NTFS SET DA Non-FS data
7 HPFS/NTFS 4d qnx4.x 87 NTFS SET DB CP/M/CTOS/. BR /> 8 AIX 4E QNX4.X 2. část 88 Linux PlainText de Dell Utility
9 Aix Boot 4f QNX4.X 3RD ČÁST 8E LInux LVM DF Boot
OS /2 Boot Manage 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 ahoj EB BEOS FS
F W95 EXT'D (LBA) 54 ONTRACKDM6 A5 FreeBSD EE EFI GPT
10 Opus 55 Ez-Drive A6 OpenBSD EFI EFI (FAT-12-12 /16/
11 Skrytý FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Compaq diagnostika 5c Usk U Priam D E F1 Speedstor
14 Skrytý fat16 <3 61 Speedstor A9 NetBSD F4 Speedstor
16 Skrytý fat16 63 GNU HURD nebo SYS AB DARWIN BOOT F2 DOS Sekundární
17 skrytých HPFS /NTF 64 Novell Netě fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Skrytý W95 FAT3 70 F D Bot 70 W FAT 70 W Disk 5 /> Hexadecimální kód (napište L k zobrazení kódů): <-- 8e
Změněn systém typ oddílu 1 na 8e (Linux LVM)
Příkaz (m pro nápovědu): <-- w
Ta fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sdefdisk -l
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 tablepvcreate /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 createdpvremove /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 wipedpvcreate /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 createdpvdisplay
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