GNU/Linux >> Znalost Linux >  >> Linux

Logical Volume Management Vysvětlení v Linuxu

V Linuxu může být docela obtížné správa úložiště a souborových systémů a k přesunu dat často potřebuje mnoho různých příkazů.

Tradiční úložiště se obvykle skládá ze tří různých vrstev:fyzický disk (ať už se jedná o HDD nebo SSD), logické oddíly vytvořené na něm a systému souborů naformátovaný na oddílu.

Tyto tři vrstvy jsou však obvykle úzce propojeny:může být docela obtížné zmenšit existující oddíly a vytvořit nový.

Podobně je poměrně těžké rozšířit souborový systém, pokud do systému přidáte nový disk:museli byste přesouvat data z jednoho disku na druhý, což někdy vedlo ke ztrátě dat .

Naštěstí pro vás existuje nástroj nebo abstrakce, kterou můžete v Linuxu použít ke správě úložišť:LVM .

LVM , zkratka pro Logical Volume Management , přichází jako sada nástrojů, které vám umožňují rozšiřovat, zmenšovat stávající svazky a také nahrazovat stávající disky za běhu systému.

V tomto tutoriálu se seznámíme sLVM a jak je můžete snadno implementovat do svého systému.

Vysvětlení vrstev LVM

Než začnete, je důležité, abyste dobře porozuměli tomu, jak jsou LVM navrženy ve vašem systému .

Pokud jste se dříve zabývali běžnými úložnými zařízeními, vztah mezi disky a souborovými systémy již znáte.

V systému Linux máte k dispozici fyzické disky které automaticky detekuje a spravuje udev při prvním vložení.

Na těchto discích můžete vytvářet oddíly pomocí jednoho z oblíbených dostupných nástrojů (fdisk, parted nebo gparted).

Konečně vy formátovat souborové systémy na tyto oddíly, abyste mohli ukládat své soubory.

Při použití LVM je design úložiště trochu jiný.

Mezi oddíly a souborovými systémy máte tři další vrstvy:fyzické svazky, skupiny svazků a logické svazky.

Fyzický objem

Když používáte LVM, fyzické svazky mají představovat oddíly, které již na vašich pevných discích existují.

Když správci systému hovoří o „fyzických svazcích“, často mají na mysli skutečné fyzické zařízení ukládající data v našem systému.

Fyzické svazky jsou pojmenovány stejným způsobem než fyzické oddíly :/dev/sda1 pro první oddíl vašeho prvního pevného disku /dev/sdb1 pro první oddíl druhého disku a tak dále.

Skupina svazků

Přímo nad fyzickými svazky skupinu svazků lze vidět jako několik fyzických svazků seskupených do jednoho svazku.

Metaforicky lze skupiny svazků vnímat jako úložné nádoby :jedná se o fond různých fyzických svazků, které lze použít k rozšíření stávajících logických svazků nebo k vytvoření nových.

Skupiny svazků nemají žádnou konvenci názvů, ale obecně se uznává, že jim předchází předpona „vg“ („vg-storage “, „vg-disky ” například)

Logické svazky

A konečně, logické svazky mají být přímým propojením mezi skupinami svazků a systémy souborů naformátovanými na vašich zařízeních.

Mají one-to-one vztah se souborovými systémy a v podstatě představují oddíl vaší skupiny svazků.

I když jsou logické svazky pojmenovány stejným způsobem jako přípojné body, jedná se o dva různé koncepty a logický svazek je velmi odlišná entita od vašeho souborového systému.

Poznámka :rozšíření vašeho logického svazku neznamená, že například automaticky rozšíříte souborový systém.

Výhody LVM oproti standardní správě disků

Logical Volume Management byl postaven na prvním místě, aby napravil většinu nedostatků spojených s běžnou správou disků v Linuxu.

Jednou z hlavních výhod LVM je skutečnost, že můžete znovu sestavit svůj prostor, zatímco váš systém běží.

Úprava úložiště

Jak jste si pravděpodobně v minulosti všimli, vaše úložiště na hostiteli je těsně propojeno do oddílů zapsaných na vašich discích.

V důsledku toho přeformátování oddílu nebo opětovné sestavení souborového systému přes jiný oddíl donutilo kteréhokoli správce systému restartovat systém .

To je způsobeno hlavně tím, že jádro nemůže číst tabulku oddílů živě a potřebuje úplný restart, aby bylo možné prozkoumat různé oddíly vašeho systému.

To může být samozřejmě hlavní problém, pokud máte co do činění s produkčním serverem:pokud váš web běží na tomto serveru, nebudete jej moci restartovat, aniž by byl web mimo provoz.

Pokud váš web nefunguje, znamená to, že pravděpodobně nebudete schopni uspokojit potřeby svých zákazníků, což vede ke ztrátě peněz.

LVM řeší tento problém vytvořením abstrakce nad běžnými oddíly :pokud se nezabýváte běžnými oddíly, nemusíte již znovu číst tabulku oddílů, stačí aktualizovat mapování vašeho zařízení.

Díky této volbě designu se správa úložiště stává software-to-software problematické a již není vázáno na hardware, alespoň ne přímo.

Rozložení místa na více discích

Dalším skvělým aspektem LVM je skutečnost, že můžete snadno rozložit data na více disků .

Když se podíváte na výše uvedený diagram, uvidíte, že existuje silná vazba mezi souborovými systémy a oddíly:v důsledku toho je poměrně těžké mít data uložená na více discích.

LVM přichází jako skvělé řešení tohoto problému:vaše logické svazky patří do centrální skupiny svazků .

I když se skupina svazků skládá z více disků, nemusíte je spravovat sami, udělá to za vás mapovač zařízení.

To platí pro rozšiřování souborových systémů, ale také pro jejich zmenšování a také pro přenos dat z jednoho fyzického zařízení do druhého.

Správa fyzických svazků LVM

V této části budeme používat příkazy k zobrazení, vytváření nebo odstraňování fyzických svazků ve vašem systému.

Zobrazit existující fyzické svazky

Chcete-li v systému Linux zobrazit existující úložná zařízení, musíte použít příkaz „lvmdiskscan“.

$ sudo lvmdiskscan

Poznámka :Pokud na vašem hostiteli nejsou nainstalovány nástroje LVM, například se zobrazí chyba „příkaz nenalezen“, musíte programy LVM nainstalovat spuštěním „apt-get install lvm2“ jako root.

Když spustíte „lvmdiskscan“, zobrazí se vám různé disky dostupné na vašem hostiteli.

Na těchto discích také vidíte oddíly, pokud jsou na těchto discích již vytvořeny.

A konečně, pravděpodobně nejdůležitější informace, vidíte, kolik fyzických svazků LVM je vytvořeno ve vašem systému.

Poznámka :toto je důležitý bod flexibility LVM:můžete vytvářet fyzické svazky z celých disků nebo oddílů těchto disků.

V tomto případě začínáme se zcela novým serverem bez vytvořených fyzických svazků LVM.

Chcete-li zobrazit existující fyzické svazky existující na vašem hostiteli, můžete také použít příkaz „pvs“ .

$ pvs

Vytvořte nové fyzické svazky

Vytváření nových fyzických svazků v Linuxu je docela jednoduché:musíte provést „pvcreate“ a určit základní fyzická zařízení, která mají být vytvořena.

$ pvcreate <device_1> <device_2> ... <device_n>

V našem případě řekněme, že chceme vytvořit fyzický svazek pro druhý disk připojený k našemu hostiteli, což je „sdb“.

$ pvcreate /dev/sdb

Poznámka :nebudete moci vytvářet fyzické svazky ze zařízení, která jsou již připojena k vašemu systému. V důsledku toho nelze „sda1“ (který obvykle ukládá kořenový oddíl) snadno převést na LVM.

Spuštěním příkazu „lvmdiskscan“ se opět zobrazí velmi odlišný výstup ve srovnání s první částí.

$ lvmdiskscan

Jak můžete vidět, náš hostitel automaticky detekuje, že jeden celý disk je naformátován jako fyzický svazek LVM a že je připraven k přidání do skupiny svazků.

Podobně má nyní příkaz „pvs“ jiný výstup:náš nový disk byl přidán do seznamu fyzických svazků dostupných na našem hostiteli.

$ pvs

Nyní, když jste úspěšně vytvořili svou první skupinu svazků, je čas vytvořit první skupinu svazků.

Správa skupin svazků LVM

Pokud váš systém nebyl předem nakonfigurován se svazky LVM, neměli byste mít v systému vytvořeny žádné skupiny svazků.

Chcete-li vypsat existující skupiny svazků na svém hostiteli, musíte použít příkaz „vgs“ bez argumentů.

$ vgs

Vytvořte skupinu svazků pomocí vgcreate

Nejjednodušší způsob, jak vytvořit skupinu svazků, je použít „vgcreate“ k zadání názvu skupiny svazků, která má být vytvořena, a fyzických svazků, které do ní mají být zahrnuty.

$ vgcreate <volume_name> <physical_volume_1> <physical_volume_2> ... <physical_volume_n>

V našem případě máme na našem hostiteli pouze jeden fyzický svazek (což je /dev/sdb), který bude použit k vytvoření skupiny svazků „vg_1“.

$ vgcreate vg_1 /dev/sdb

Seznam a zobrazení existujících skupin svazků

Výpis existujících skupin svazků ve vašem systému pomocí „vgs“ by nyní měl zobrazovat skupinu svazků „vg_1“, kterou jste právě vytvořili.

$ vgs

Bez argumentů se vám zobrazí sedm různých sloupců:

  • VG :popisující název skupiny svazků na hostiteli;
  • #PV :zobrazení počtu fyzických svazků dostupných ve skupině svazků;
  • #LV :podobně počet logických svazků vytvořených ze skupiny svazků;
  • #SN :počet snímků vytvořených z logických svazků;
  • Atr :popis atributů skupiny disků (w pro zapisovatelný, z pro změnu velikosti a n pro „normální“);
  • VSize :velikost svazku skupiny svazků v GB;
  • VFree :místo dostupné ve skupině svazků

Chcete-li získat více informací o vašich stávajících skupinách svazků, můžete použít příkaz „vgdisplay“.

$ vgdisplay

$ vgdisplay <volume_group>

Jak jste si pravděpodobně všimli, „vgdisplay“ zobrazuje mnohem více informací než jednoduchý příkaz „vgs“.

Na konci výstupu můžete vidět dva sloupce nazvané „Velikost PE“ a „Celkový PE“ zkráceně „Velikost fyzického rozsahu“ a „Celkový fyzický rozsah“.

Pod kapotou spravuje LVM fyzické rozsahy, což jsou kusy dat velmi podobné konceptu velikosti bloku na oddílech.

V tomto případě LVM spravuje pro tuto skupinu svazků fyzické rozsahy, které jsou velké 4,00 MiB a skupina svazků má 511 různých fyzických rozsahů. Výpočet zjevně vede k prostoru o velikosti 2,00 GiB (4*511 =2,044 MiB nebo 2,00 GiB).

Prakticky byste se neměli příliš starat o fyzické rozsahy:LVM vždy zajistí, aby bylo zachováno mapování mezi fyzickými rozsahy a logickými svazky.

Nyní, když jste vytvořili svou první skupinu svazků, je čas vytvořit první logický svazek pro ukládání dat.

Správa logických svazků LVM

Chcete-li vytvořit logický svazek ve skupině svazků, musíte použít příkaz „lvcreate“, zadat název logického svazku a skupinu svazků, do které patří.

Chcete-li určit prostor, který má být obsazen, musíte použít „-L ” a zadejte velikost (složenou z čísla a jeho jednotky)

$ lvcreate -L <size> <volume_group>

Pokud chcete pojmenovat svůj logický svazek, můžete použít volbu „-n“.

$ lvcreate -n <name> -L <size> <volume_group>

Opět můžete uvést svůj nově vytvořený logický svazek spuštěním příkazu „lvs“ jako sudo.

$ lvs

Spuštěním příkazu „lvs“ se vám zobrazí mnoho různých sloupců:

  • LV :zobrazení názvu logického svazku;
  • VG :popisující skupinu svazků, do které váš logický svazek patří;
  • Atr :výpis atributů vašeho logického svazku („w“ pro zapisovatelný, „i“ pro zděděné a „a“ pro přidělené);
  • LSvelikost :samovysvětlující, popisující velikost vašeho logického svazku v GiB;

Další sloupce popisují pokročilé použití LVM, jako je nastavení zrcadlených prostorů nebo prokládaných prostorů. V tomto základním tutoriálu je nebudeme popisovat a budou popsány v pokročilejších kurzech.

Když jste vytvořili svůj logický svazek, jádro provedlo některé akce, aniž byste si toho všimli:

  • Virtuální zařízení bylo vytvořeno pod /dev :ve složce pojmenované podle názvu vaší skupiny svazků („vg_1“) bylo vytvořeno virtuální logické zařízení pojmenované podle názvu logického svazku („lv_1“)
  • Virtuální zařízení je měkký odkaz na zařízení „dm-0“ dostupné v /dev :„dm-0“ je virtuální zařízení, které uchovává mapování mezi vašimi logickými svazky a vašimi skutečnými pevnými disky. (/dev/sda, /dev/sdb a tak dále)

Formátování a připojení logických svazků LVM

Posledním krokem, abyste mohli začít používat nově vytvořený prostor, je naformátování a připojení vašich logických svazků.

Aby formátovat logický svazek , musíte použít příkaz „mkfs“ a určit souborový systém, který se má použít.

$ mkfs -t <filesystem_type> <logical_volume>

V našem případě předstírejme, že chceme naformátovat náš logický svazek jako souborový systém „ext4“, spustili bychom následující příkaz

$ mkfs -t ext4 /dev/vg_1/lv_1

Nyní, když je logický svazek naformátován, stačí jej připojit k jedné složce ve vašem systému.

Abyste mohli připojit logický svazek LVM, musíte použít příkaz „mount“, zadat název logického svazku a bod připojení, který se má použít.

$ mount <logical_volume> <mount_point>

Například předstírejme, že se chystáme připojit souborový systém do adresáře „/mnt“ kořenového adresáře.

$ mount /dev/vg_1/lv_1 /mnt

Pokud nyní spustíte příkaz „lsblk“, měli byste vidět, že váš logický svazek je nyní připojen.

$ lsblk

Gratulujeme, nyní můžete začít používat svůj nově vytvořený svazek!

Rozšíření existujících souborových systémů pomocí LVM

Jako příklad použití LVM se podívejme, jak snadné může být zvětšení velikosti souborového systému přidáním dalšího disku k vašemu hostiteli.

Pokud ke svému hostiteli přidáte další disk, udev jej automaticky vybere a přiřadí mu název.

Chcete-li zjistit název diskového zařízení ve vašem systému, nezapomeňte provést příkaz „lsblk“.

$ lsblk

V našem případě jsme přidali nový pevný disk na konektor SATA, který se jmenuje „sdc“.

Chcete-li přidat tento nový disk do našich vrstev LVM, musíme nakonfigurovat každou vrstvu zásobníku LVM.

Nejprve označme tento nový disk jako fyzický svazek na našem hostiteli pomocí „pvcreate “.

$ pvcreate /dev/sdc

Physical volume "/dev/sdc" successfully created

Poté musíte přidat svůj nově vytvořený fyzický svazek do skupiny svazků.

Chcete-li přidat fyzický svazek do existující skupiny svazků, musíte použít „vgextend ” zadejte skupinu disků a fyzické nosiče, které se mají přidat.

$ vgextend vg_1 /dev/sdc

Volume group "vg_1" successfully extended

Pomocí příkazu „vgs“ můžete ověřit, že vaše skupina svazků byla úspěšně rozšířena.

$ vgs

Jak můžete vidět, ve srovnání s první částí se výstup mírně změnil:nyní máte dva fyzické svazky. Prostor se také zvýšil z 2 GiB na téměř 3 GiB.

Váš logický svazek ještě není větší, budete muset jeho velikost zvětšit, abyste zabrali nějaké místo ve fondu.

Chcete-li zvětšit velikost svého logického svazku, musíte použít „lvextend“, zadat logický svazek a také velikost, která má být převzata pomocí možnosti „-L“.

$ lvextend -L +1G dev/vg_1/lv_1

Jak můžete vidět, změnila se velikost logického svazku a také počet fyzických oblastí vyhrazených pro váš logický svazek.

Zvětšení logického svazku neznamená, že se váš souborový systém automaticky zvětší tak, aby odpovídal velikosti vašeho logického svazku.

Chcete-li zvětšit velikost systému souborů, musíte použít příkaz „resize2fs“ a zadat logický svazek, který se má rozšířit (v tomto případě „/dev/vg_1/lv_1“)

$ resize2fs /dev/vg_1/lv_1

Nyní můžete zkontrolovat velikost vašeho souborového systému:byl rozšířen, aby odpovídal velikosti vašeho logického svazku, gratulujeme!

$ df -h

Jak jste si pravděpodobně všimli, zvětšili jste velikost svého souborového systému přidáním dalšího disku, přesto jste nemuseli restartovat systém ani odpojovat žádné souborové systémy v tomto procesu.

Zmenšení existujících souborových systémů pomocí LVM

Nyní, když jste viděli, jak můžete snadno rozšířit stávající souborové systémy, pojďme se podívat, jak je můžete zmenšit aby se zmenšil jejich prostor.

Před zmenšením libovolného logického svazku se ujistěte, že máte k dispozici nějaké místo na logickém svazku pomocí příkazu „df“.

$ df -h

Při použití logického objemu z předchozí části máme stále k dispozici téměř 2 GiB.

V důsledku toho můžeme z logického svazku odebrat 1GiB.

Chcete-li zmenšit velikost logického svazku, musíte provést příkaz „lvreduce“, zadat velikost pomocí možnosti „-L“ a také název logického svazku.

$ lvreduce -L <size> <logical_volume>

V našem případě by to vedlo k následujícímu příkazu (k odstranění 1GiB dostupného prostoru)

$ lvreduce -L 1G /dev/vg_1/lv_1

Poznámka :Pamatujte, že tato operace není bez rizika. Pokud se rozhodnete snížit svůj logický svazek, můžete smazat některá ze svých stávajících dat.

V důsledku toho byl prostor přidělen zpět skupině svazků a nyní je připraven k použití jiným logickým svazkem v systému.

$ vgs

Závěr

V tomto tutoriálu jste se dozvěděli o LVM , zkratka pro Logical Volume Management a jak se používá ke snadné konfiguraci přizpůsobitelného prostoru na vašem hostiteli.

Dozvěděli jste se, jaké fyzické objemy , skupiny hlasitosti a logické svazky jsou a jak je lze použít společně za účelem snadného růstu nebo zmenšení souborových systémů.

Pokud vás zajímá Správa systému Linux , máme na webu kompletní sekci věnovanou tomu, takže se na to určitě podívejte!


Linux
  1. Linux – přesunout logický svazek z jedné skupiny svazků do druhé?

  2. CentOS / RHEL :Jak najít logické svazky (LV) obsažené ve fyzickém svazku (PV) v LVM

  3. Vypište všechny fyzické nosiče přidružené ke skupině nosičů

  1. Jak vytvořit souborový systém na linuxovém oddílu nebo logickém svazku

  2. Jak vytvořit fyzický svazek v Linuxu pomocí LVM

  3. Jak najít fyzické svazky, které obsahují logický svazek v LVM

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

  2. Zmenšení kořene pomocí správy logických svazků?

  3. Rozšiřte a zmenšete svazky pomocí správy disků