V rámci přípravy na zkoušku RHCSA jsme se již naučili spravovat oddíly na disku. Oddíly jsou užitečné pro oddělení místa na disku (například oddělení souborů souvisejících s databází od souborů souvisejících s webovým serverem), ale máme mnohem flexibilnější řešení, které dokáže oddělit nebo agregovat úložný prostor.
Toto řešení se nazývá LVM, správce logických svazků. LVM nám umožňuje vidět více disků jako jeden souborový systém, čímž překonáváme omezení webu fyzického disku. Můžeme také vytvořit softwarové zrcadlení na discích pro ochranu nebo data zapsaná do souborového systému. V tomto tutoriálu probereme základy:budeme spravovat tři vrstvy LVM, fyzické svazky, skupiny svazků a logické svazky.
V tomto tutoriálu se naučíte:
- Jak vytvořit a odebrat fyzické svazky
- Jak přiřadit fyzické svazky skupinám svazků
- Jak vytvářet a odstraňovat logické svazky
Vytvoření nového fyzického svazku pomocí LVM.
Požadavky na software a použité konvence
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | Red Hat Enterprise Linux 8.1 |
Software | LVM 2.03 |
Jiné | Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz. |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
S LVM máme tři vrstvy, které staví na sobě:physical volumes
(pv), což jsou podobné oddíly, pouze označené pro použití LVM. Můžeme vytvořit fyzický svazek z diskového oddílu nebo celého surového disku. Pokud máme v úmyslu použít disk pouze jako fyzický svazek LVM, nemusíme na něm nejprve vytvářet oddíl. Další vrstvou je volume group
(vg). Jak název napovídá, jde jednoduše o seskupení fyzických svazků. Na této vrstvě můžeme agregovat veškerý základní prostor fyzického svazku do větší úložné jednotky. Nad skupinami svazků můžeme vytvořit poslední vrstvu, logical volumes
(lv). Ty mohou obsahovat souborové systémy, ve kterých můžeme ukládat naše data.
Jednou z hlavních funkcí LVM je, že můžeme za běhu přidat další fyzický svazek do skupiny svazků a také můžeme upravit velikost logického svazku za běhu systému. Takže pokud nám dojde místo, můžeme škálovat bez vypínání systému.
Zkratky vrstev jsou dobrou připomínkou, když se zabýváme LVM. Všechny příkazy, které pracují na různých vrstvách, začínají těmito zkratkami, například pokud pracujeme s fyzickými svazky, příkaz k vytvoření jednoho bude pvcreate
, příkaz pro výpis existujících fyzických nosičů bude pvdisplay
, a tak dále. I když to potřebujeme dělat zřídka, je snadné uhodnout nebo najít správný příkaz, protože tato konvence pojmenování je konzistentní ve všech vrstvách.
Pro tento výukový program jsme přidali na disky, každý má velikost 2 GB pro náš laboratorní stroj. Jsou rozpoznány jako /dev/sdb
a /dev/sdc
v našem systému, zatímco /dev/sda
drží operační systém, kterého se během následujících kroků nedotkneme.
Jak vytvořit a odebrat fyzické svazky
Jak vytvořit fyzický svazek
K vytvoření fyzického svazku použijeme pvcreate
. Na obou sdb
vytvoříme fyzický svazek 2 GB a sdc
.
# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created. # pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created.
Můžeme zkontrolovat, zda jsme to udělali správně, uvedením našich fyzických objemů. Použijeme pvdisplay
.
# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name rhel PV Size <14.00 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 3583 Free PE 0 Allocated PE 3583 PV UUID rfezEa-GlgW-jWUX-Zixs-Ydw0-EsZS-nk3JDH "/dev/sdb" is a new physical volume of "2.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID V2PUv4-O9eQ-jFvQ-UmQf-dmq3-caF9-xmxYGj "/dev/sdc" is a new physical volume of "2.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID PWTs7Q-x3wD-RyXj-ertn-Sh2N-CiXb-ayDc1q
Laboratorní stroj již používá LVM ve výchozím nastavení (stejně jako většina dnešních distribucí), proto /dev/sda2
je ukázáno. Máme zájem o naše dva nové fyzické svazky, které nyní můžeme ověřit.
Jak odebrat fyzický svazek
Chcete-li odstranit fyzický svazek, máme k dispozici pvremove
příkaz. Neodstraňujte fyzický svazek, na kterém jsou zapsána data, která jsou potřeba.
# pvremove /dev/sdc Labels on physical volume "/dev/sdc" successfully wiped.
Jak přiřadit fyzické svazky skupinám svazků
Vytvoření skupiny svazků z fyzických svazků.
Po opětovném vytvoření zahozeného sdc
fyzického svazku, máme vše, co potřebujeme k vytvoření skupiny svazků, která pojme logický svazek. Mohli bychom vytvořit „skupinu“ svazků, která má pouze jeden fyzický svazek – což je přesný případ výchozího sda2
– ale abychom demonstrovali agregaci úložiště, použijeme oba naše nové fyzické svazky k vytvoření skupiny svazků nazvané „data“, která má k dispozici 4 GB místa na disku.
Skupinu svazků můžeme vytvořit pomocí vgcreate
. Vše, co potřebujeme, je zadat název VG a fyzické svazky, které budou členy skupiny svazků.
# vgcreate data /dev/sdb /dev/sdc Volume group "data" successfully created
Vlastnosti naší nové skupiny svazků můžeme zobrazit pomocí vgdisplay
.
# vgdisplay data --- Volume group --- VG Name data System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 3.99 GiB PE Size 4.00 MiB Total PE 1022 Alloc PE / Size 0 / 0 Free PE / Size 1022 / 3.99 GiB VG UUID CmM07M-16Ys-PZx2-XGvo-N1j3-nINX-fnIFIA
Všimněte si velikosti VG téměř 4 GB, což je součet dvou fyzických svazků. Nebude to přesně součet objemů, protože určitý prostor je vyhrazen pro metadata.
Jak vytvořit a odstranit logické svazky
Na vrcholu skupiny svazků můžeme vytvořit logické svazky, které zase mohou obsahovat souborové systémy. Výchozí instalace na mnoha distribucích je takto oddělené úložiště, například data uživatele jsou uložena na /home
logický svazek a systémové protokoly jsou uloženy na /var
hlasitost. V případě, že uživatel zaplní domovský svazek, bude celý systém stále moci zapisovat protokoly, a jeho služby tedy budou nadále běžet, zatímco správce systému může zvládnout uživatele, který se zbláznil.
Jak vytvořit logický svazek
Vytvoříme dva logické svazky, první s názvem „databáze“ o velikosti 2 GB, druhý s názvem „webový server“ s 500 MB místa na disku. Jak jste mohli odhadnout z výše uvedených příkladů, použijeme příkaz lvcreate
.
# lvcreate -L 2G -n database data Logical volume "database" created. # lvcreate -L 500M -n webserver data Logical volume "webserver" created.
Vlastnosti našich svazků můžeme zobrazit pomocí lvdisplay <volume path>
, nebo můžeme uvést všechny naše logické svazky, pokud neuvedeme argument pro lvdisplay
. I když to může na některých systémech poskytovat dlouhý výstup, je to užitečné v neznámém prostředí, protože cesty svazků se mohou lišit v závislosti na distribuci a verzi.
# lvdisplay /dev/data/database --- Logical volume --- LV Path /dev/data/database LV Name database VG Name data LV UUID D7f9An-G0dd-kEGw-OGrP-HZlA-dQlX-yBbQbi LV Write Access read/write LV Creation host, time rhel8rhcsa, 2019-12-28 16:53:24 +0100 LV Status available # open 0 LV Size 2.00 GiB Current LE 512 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2 # lvdisplay /dev/data/webserver --- Logical volume --- LV Path /dev/data/webserver LV Name webserver VG Name data LV UUID 7Ldt79-aw0i-Oydm-4d0I-JaVe-Zd8m-xKpvrD LV Write Access read/write LV Creation host, time rhel8rhcsa, 2019-12-28 16:53:38 +0100 LV Status available # open 0 LV Size 500.00 MiB Current LE 125 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:3
Pokud v tomto okamžiku zkontrolujeme naši skupinu svazků, můžeme si všimnout prostoru, který logické svazky využívají ze skupiny svazků.
# vgdisplay data --- Volume group --- VG Name data System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 3.99 GiB PE Size 4.00 MiB Total PE 1022 Alloc PE / Size 637 / <2.49 GiB Free PE / Size 385 / 1.50 GiB VG UUID CmM07M-16Ys-PZx2-XGvo-N1j3-nINX-fnIFIA
Jak odstranit logický svazek
Chcete-li uvolnit místo nebo reorganizovat svazky, můžeme logické svazky zrušit pomocí lvremove
.
Neodstraňujte logické svazky, které obsahují cenná data. Pokud tak učiníte, zničíte data na svazku.
Jsou tam zabudované bezpečnostní pásy, pryč jsou doby, kdy utírání našeho systému nemuselo čekat na výzvu. Alespoň při použití příkazů LVM.
# lvremove /dev/data/webserver Do you really want to remove active logical volume data/webserver? [y/n]: y Logical volume "webserver" successfully removed
Jiný výpis skupiny svazků ukazuje, že 500 MB webserver
svazek je nyní přidán zpět do volné velikosti skupiny svazků:
# vgdisplay data --- Volume group --- VG Name data System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 6 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 3.99 GiB PE Size 4.00 MiB Total PE 1022 Alloc PE / Size 512 / 2.00 GiB Free PE / Size 510 / 1.99 GiB VG UUID CmM07M-16Ys-PZx2-XGvo-N1j3-nINX-fnIFIA
Cvičení
- Vytvořte dvě skupiny svazků a na obou vytvořte logické svazky se stejným názvem.
- Přidejte do své skupiny svazků další fyzický svazek a poté vytvořte logický svazek, který zabírá celou skupinu svazků. Nyní zkuste odebrat jeden z fyzických svazků.
- Zkuste vytvořit logický svazek, který má přesnou velikost skupiny svazků.
- Vytvořte na disku další fyzický svazek, přidejte jej do skupiny svazků, vypněte počítač a vyjměte disk. Co znamená
vgdisplay
řekněme na chybějícím disku? - Znovu přidejte dříve odebraný disk. Je rozpoznán při příštím spuštění?