GNU/Linux >> Znalost Linux >  >> Linux

Průvodce LVM pro začátečníky

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

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- 3 xenix usr 3c distritionmagic 83 Linux C4 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

Nyní uděláme totéž pro pevné disky /dev/sdc - /dev/sde:

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

Potom spusťte

fdisk -l

znovu. Výstup by měl vypadat 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

   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

Nyní připravujeme naše nové oddíly pro LVM:

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

Vraťme tuto poslední akci pro účely školení:

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

Potom spusťte

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

znovu:

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

Nyní spusťte

pvdisplay

abyste se dozvěděli o aktuálním stavu vašich fyzických svazků:

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

Linux
  1. Průvodce pro začátečníky multipathingem Device Mapper (DM).

  2. CentOS / RHEL 7:Průvodce pro začátečníky systemd

  3. Průvodce pro začátečníky NFS v CentOS / RHEL

  1. CentOS / RHEL:Průvodce cronem pro začátečníky

  2. Průvodce SELinuxem pro začátečníky

  3. Průvodce pro začátečníky ke konfiguraci yum

  1. Průvodce linuxovým terminálem pro začátečníky

  2. Vytváření logických svazků v Linuxu pomocí LVM

  3. Průvodce pro začátečníky ke správě uživatelů a skupin v Linuxu