Pokud si myslíte, že správa diskových oddílů znamená vypnutí systému a doufání, že vše funguje po restartu, pak vám upřímně naklonuji. Lituju, že vám chybí Linux LVM mount možnosti a že si neuvědomujete, že správa úložiště nemusí být tak bolestivá.
Tato příručka vám ukáže, jak vytvořit LVM v Linux, připojit LVM oddíly a spravovat logické svazky bez výpadku. Naučíte se základní Linux LVM příkazy, které fungují na Ubuntu LVM a CentOS systémech (nebo spíše jejich moderních náhradách).
Stručně řečeno
- LVM vytváří flexibilní vrstvu úložiště mezi fyzickými disky a systémy souborů, což vám umožní změnit velikost oddílů během běhu systému
- Instalovat pomocí apt install lvm2 v Ubuntu nebo dnf install lvm2 na Rocky Linux/AlmaLinux (CentOS je zastaralý, použijte místo něj tyto)
- Vytvořte LVM inicializací disků pomocí pvcreate, seskupením pomocí vgcreatea vytvářením logických svazků pomocí lvcreate
- Po formátování pomocí připojte oddíly LVM jako běžné oddíly mkfs.ext4 a přidejte položky do /etc/fstab
- Klíčové příkazy: pvs, vgs, LVS zobrazí vaši konfiguraci; lvresize změní velikosti za chodu; lvcreate -s vytváří snímky
Co je LVM v Linux?

LVM (Logical Volume Manager) se umísťuje mezi vaše fyzické disky a souborové systémy. Místo toho, abyste vytvářeli pevné oddíly přímo na discích, LVM vytváří flexibilní vrstvu, kde můžete měnit velikost, přesunovat a pořizovat snímky úložiště, zatímco vše zůstává online.
Zde je návod, co se odehrává v pozadí. Vaše fyzické disky se stanou fyzickými svazky. Ty se spojí do skupin svazků. Z těchto skupin vytváříte logické svazky, které se chují jako běžné oddíly, ale s opravdovou flexibilitou.
Praktický rozdíl se ukazuje, když potřebujete více místa. Tradičních oddílů vás nutí vypnout systém, zavést se z USB a doufat, že data neztratíte. S LVM spustíte jeden příkaz, zatímco váš systém pokračuje v práci. Zjistil jsem to během migrace serveru, když rozšíření /home o 200GB zabralo přibližně 30 sekund místo celého víkendu.
Jak fungují fyzické svazky
Fyzický svazek je libovolné úložné zařízení, které LVM může použít. Pevné disky, SSDs, RAID pole, dokonce smyčkové zařízení. Inicializujete je pomocí pvcreate, což zapíše metadata LVM a označí zařízení jako dostupné pro skupiny svazků.
Fyzický svazek se nestará o hardware pod ním. Ten 500GB rotační disk a váš nový 2TB NVMe vypadají pro LVM stejně. To má význam, když kombinujete různá úložiště.
Pochopení skupin svazků
Skupiny svazků sloučují několik fyzických svazků do jedné jednotky úložiště. Představte si kombinaci tří 1TB disků do jednoho 3TB fondu. Skupiny svazků vytváříte pomocí vgcreate a fyzické svazky můžete přidávat nebo odebírat, když se změní kapacita.
Tento přístup sloučování znamená, že nejste vázáni na plánování pro jednotlivé disky. Potřebujete více místa? Přidejte do skupiny svazků další disk. Nahrazujete starý disk? Přesuňte data pomocí pvmove zatímco systém běží, a pak vyměňte hardware.
Co dělají logické svazky

Logické svazky jsou to, co skutečně používáte. Jsou vyřezávány ze skupin svazků a chují se jako běžné oddíly. Formátujte je pomocí ext4 nebo xfs, připojte je kamkoliv a změňte jejich velikost, kdykoliv. Rozdíl je v tom, že nejsou vázány na hranice fyzických disků.
Když spustíte lvcreate -L 50G -n data datavg, přidělujete 50GB z fondu skupiny svazků. Tento prostor může pocházet z jedné jednotky nebo být rozdělen mezi více jednotek. Vás to nezajímá, protože LVM řeší distribuci automaticky.
Fyzické extenty vysvětleny
Fyzické extenty jsou nejmenší jednotkou přidělování v LVM, obvykle bloky 4MB. Když vytvoříte logický svazek, LVM přidělí fyzické extenty ze skupiny svazků. Tento granulární přístup vám umožní přesně měnit velikost svazků.
Velikost extentu záleží na rozsahu svazků. Větší extenty znamenají nižší režii metadat, ale hrubší přidělování. Výchozí 4MB funguje ve většině případů. Změnil jsem to jen v případě masivních úložných polí, kde si to matematika vyžádala.
Snímky pro zálohování stavu v čase
Snímky zachycují stav logického svazku v určitém okamžiku. LVM používá technologii copy-on-write. Původní data zůstávají na místě. Když se něco změní, LVM uchovává staré bloky ve snímku a zapisuje nová data do hlavního svazku.
Chcete otestovat aktualizace systému? Nejdřív si udělejte snímek. Něco se pokazí? Obnovte ze snímku. Celá operace trvá jen sekundy, protože LVM sleduje jen změněné bloky, nikoliv kopírování všeho.
Pořizuji snímky produkčních databází před velkými změnami schématu. Klid v duši stojí skoro nic na režii a třikrát jsem se vyhnul úplné obnově vrácením se z neúspěšných migrací.
Kdy používat striping v LVM
Striping rozprostírá data mezi více fyzických svazků, podobný jako RAID 0. Když zapíšete soubor, LVM distribuuje kousky na různé jednotky současně. Tato paralelizace zrychluje čtení i zápis, zejména pro velké soubory nebo databáze.
Zisk výkonu závisí na vaší zátěži. Sekvenční čtení velkých souborů prospívá nejvíce. Náhodné vzory přístupu vidí menší zlepšení. Databázové servery a stanice pro střih videa si rozdíl všimnou.
Zrcadlování LVM pro redundanci
Zrcadlování duplikuje data mezi fyzickými svazky. Pokud selže jedna jednotka, vaše data přežijí v zrcadle. LVM řídí synchronizaci automaticky. Pokles výkonu se vyplatí, když výpadek stojí více než dodatečné úložiště.
Moderní řešení často používají RAID pro redundanci a LVM nad ním pro flexibilitu. Získáte ochranu na úrovni hardwaru a správu na úrovni softwaru. Kombinace funguje lépe než spoléhání se jen na jednu.
Pokud porovnáváte přístupy ke správě úložiště, podívejte se na LVM versus ZFS abyste pochopili, kdy má každý smysl pro vaši zátěž.
Jak nainstalujete LVM na Ubuntu a CentOS?

Instalace LVM trvá asi 60 sekund, pokud znáte správné příkazy. Moderní distribuce Linux řeší závislosti automaticky. Nainstalujete balíček, ověříte, že funguje, a jste připraveni konfigurovat úložiště.
Jednu důležitou poznámku před začátkem: CentOS dosáhlo konce života v roce 2020. Pokud stále používáte CentOS, přejděte na Rocky Linux nebo AlmaLinux. Jsou to přímé náhrady, které opravdu dostávají bezpečnostní aktualizace. Příkazy zde fungují identicky na Rocky Linux 9, AlmaLinux 9, Ubuntu 24.04 a aktuálních vydáních Debian.
Nejdřív aktualizujte systém
Začněte aktualizací seznamu balíčků vašeho systému. To zaručuje, že získáte nejnovější verzi LVM2 se všemi bezpečnostními opravami a opravami chyb.
Pro systémy Ubuntu:
sudo apt update
Pro systémy na bázi CentOS (Rocky Linux/AlmaLinux):
sudo dnf update
Moderní systémy založené na RHEL používají dnf jako správce balíčků. Pokud narazíte na staré návody, které zmiňují yum, ignorujte je. DNF nahradil yum v roce 2015 s lepším řešením závislostí a výkonem.
Instalace balíčku LVM2
Název balíčku je lvm2 ve všech distribucích. Instalace automaticky stáhne závislosti, včetně nástrojů device-mapper a souvisejících knihoven.
Instalace Logical Volume Manageru pro Ubuntu:
sudo apt install lvm2
Instalace Logical Volume Manageru pro CentOS (Rocky/AlmaLinux):
sudo dnf install lvm2
Počkejte na dokončení instalace. Na moderním hardware s dobrou konektivitou trvá 10-15 sekund. Velikost balíčku je malá, kolem 2-3 MB plus závislosti.
Ověření úspěšné instalace
Zkontrolujte, že se LVM2 nainstaloval správně, a zjistěte, kterou verzi máte:
sudo lvm version
Zobrazí se informace o verzi a detaily buildu. Aktuální verze jsou 2.03.x nebo vyšší. Pokud se příkaz nezdaří nebo vrátí "command not found", instalace se nezdařila.
Moderní distribuce se systemd aktivují LVM automaticky při startu. Nemusíte ručně aktivovat služby jako u starších init systémů. Vše řídí lvm2-activation-generator. Jedna věc míň, kterou musíte nastavit.
Chcete vyzkoušet LVM na systému, který neuchází vaše kritická data? Zvažte spuštění nejlepší Linux VPS kde můžete experimentovat bez rizika vaších produkčních souborů.
Jak vytvoříte LVM v Linux?

Vytváření LVM zahrnuje tři kroky: inicializace fyzických svazků, jejich seskupení do skupiny svazků a vytváření logických svazků. Postup vypadá složitěji, než je ve skutečnosti. Spustíte jen asi šest příkazů.
Než začnete, určete, které disky chcete použít. Příklady zde používají /dev/sdX jako zástupné symboly. Vaše skutečné názvy zařízení budou odlišné. Spusťte lsblk abyste viděli, co je připojeno k vašemu systému.
Inicializovat fyzické svazky
Fyzické svazky říkají LVM, které jednotky může použít. Inicializujte jednotku pomocí pvcreate:
sudo pvcreate /dev/sdb
Nahradit /dev/sdb se skutečným zařízením. Tímto se do jednotky zapíší metadata LVM a jednotka se označí jako dostupná. Jednotka již nepotřebuje tradiční schéma dělení na oddíly.
Chcete inicializovat více disků najednou? Vypište je všechny:
sudo pvcreate /dev/sdb /dev/sdc /dev/sdd
LVM je spravuje společně. Zkontrolujte, co jste vytvořili:
sudo pvs
Zobrazuje všechny fyzické svazky, jejich velikost a skupinu svazků, do které patří (zatím žádná).
Vytvořit skupinu svazků
Skupiny svazků sloučují fyzické svazky do jedné jednotky úložiště. Vytvořte skupinu svazků s názvem "datavg":
sudo vgcreate datavg /dev/sdb
Při vytváření skupiny přidejte více jednotek najednou:
sudo vgcreate datavg /dev/sdb /dev/sdc
Teď se tyto jednotky chují jako jeden pool. Podívejte se na skupinu svazků:
sudo vgs
Uvidíte celkovou velikost, kolik je přiděleno logickým svazkům a kolik zbývá volného místa pro budoucí přidělení.
Vytvořit logické svazky
Logické svazky jsou to, co skutečně formátujete a připojujete. Vytváří se z dostupného místa ve skupině svazků. Vytvořte svazek o velikosti 50GB:
sudo lvcreate -L 50G -n data datavg
Tímto se vytvoří logický svazek s názvem "data" ze skupiny svazků "datavg". Úplná cesta zařízení bude /dev/datavg/data.
Chcete využít veškerý dostupný prostor místo zadávání velikosti?
sudo lvcreate -l 100%FREE -n data datavg
The -l 100%FREE možnost přiděluje každý zbývající bajt. Hodí se pro jednoduché konfigurace, kdy jeden logický svazek využívá celou skupinu svazků.
Formátování logického svazku
Logické svazky potřebují souborový systém jako každý oddíl. Formátujte pomocí ext4:
sudo mkfs.ext4 /dev/datavg/data
U malých svazků to trvá několik sekund, u velkých déle. Výstup ukazuje počty bloků a informace o inode. Pokud se nic neobjevi nepovedeme, můžete detaily ignorovat.
Chcete místo toho xfs? Nahraďte ext4 za xfs. Obě varianty fungují dobře. Ext4 je běžnější na systémech Ubuntu. Rocky Linux defaultně používá xfs pro většinu případů.
Buďte extrémně opatrní s příkazy LVM. Přímo modifikují vaši infrastrukturu úložiště. Jednou jsem se zmýlil v názvu zařízení a smazal 2TB souborů klienta. Před spuštěním čehokoli, co změní konfiguraci úložiště, zálohujte kritická data.
Jak připojíte LVM oddíly?
Připojení LVM oddílu funguje přesně jako připojení jakéhokoli jiného oddílu. Vytvoříte adresář pro připojovací bod, spustíte příkaz mount a volitelně přidáte záznam do /etc/fstab pro automatické připojení při spuštění.
Jediný rozdíl je v cestě zařízení. Místo /dev/sda1, používáte /dev/volumegroup/logicalvolume. Zbytek zůstává stejný.
Vytvoření adresáře pro připojovací bod
Připojovací body jsou jen adresáře, kde přistupujete k souborovému systému. Vytvořte ho tam, kde to dává smysl pro váš případ:
sudo mkdir /mnt/data
Používejte popisné názvy. /mnt/data, /mnt/backup, /home/shared všechno funguje. Umístění nemá vliv na funkčnost. Někteří lidé preferují /mnt pro dočasná připojení a vyhrazené adresáře pod / pro trvalá.
Připojení logického svazku
Připojte formátovaný logický svazek k vašemu připojovacímu bodu:
sudo mount /dev/datavg/data /mnt/data
Nahraďte cestu zařízení a připojovací bod skutečnými hodnotami. Souborový systém je nyní přístupný na /mnt/data. Všechny soubory, které tam vytvoříte, se nacházejí na logickém svazku.
Ověřte, že se připojení zdařilo:
df -h /mnt/data
Uvidíte celkovou velikost svazku, použitý prostor, dostupný prostor a bod připojení. Pokud se nic nezobrazí, příkaz mount selhal. Zkontrolujte cestu zařízení a ujistěte se, že logický svazek existuje pomocí LVS.
Přípravy trvale připojené svazky
Dočasná připojení zmizí po restartování. Přidejte položky do /etc/fstab pro trvale připojené svazky:
sudo nano /etc/fstab
Přidejte tento řádek na konec:
/dev/datavg/data /mnt/data ext4 defaults 0 0
Formát je: zařízení, bod připojení, typ souborového systému, možnosti připojení, priorita dumpování, pořadí fsck. Nuly na konci fungují dobře pro většinu situací. Změňte ext4 tak, aby odpovídal souborovému systému, který jste skutečně použili.
Uložte a zavřete editor. Otestujte položku fstab bez restartování:
sudo mount -a
Tím se připojí vše v fstab, co už není připojeno. Pokud vidíte chyby, něco jste v fstab napsal špatně. Opravte to před restartováním, jinak se systém nemusí spustit správně.
Výkon je důležitý, když připojujete svazky pro produkční úlohy. Po konfiguraci LVM otestujte rychlost disku v Linux abyste změřili skutečnou propustnost a latenci.
Připojení LVM během instalace Ubuntu
Instalátor Ubuntu podporuje konfiguraci LVM během nastavení systému. Když se dostanete na obrazovku s oddíly, vyberte ruční dělení a zvolte Konfigurovat správce logických svazků.
Tento přístup funguje dobře pro nové instalace. Svazky a logické svazky nastavíte před instalací operačního systému. Instalátor zpracuje /etc/fstab položky automaticky.
U stávajících systémů vám přístup z příkazového řádku výše poskytuje větší kontrolu a umožňuje vám pochopit, co se přesně děje v každém kroku.
Řešení problémů s připojením
Pokud se váš oddíl LVM nepripojuje, nejdřív zkontrolujte tyto běžné problémy:
Skupina svazků není aktivní:
sudo vgchange -ay
Tím se aktivují všechny skupiny svazků. Někdy se po přidání nových disků nebo restartování neaktivují automaticky.
Špatná cesta zařízení: Ověřte, že logický svazek existuje pomocí LVS a používejte úplnou cestu jako /dev/volumegroup/logicalvolume, ne zkratky.
Chyby souborového systému: Spusťte kontrolu souborového systému na připojené svazku:
sudo fsck /dev/datavg/data
Poškození souborového systému brání připojení. Nástroj fsck může automaticky opravit mnoho problémů.
Jaké jsou základní příkazy Linux LVM?
Příkazy Linux LVM vám umožňují spravovat celou konfiguraci úložiště z příkazové řádky. Jedná se o příkazy, které skutečně používáte v praxi, ne teoretické příkazy ze zastaralé dokumentace.
Zobrazit fyzické svazky
Podívejte se na všechny fyzické svazky ve vašem systému:
sudo pvs
Zobrazí stručnou tabulku s názvy zařízení, skupinami svazků, formátem, atributy, velikostí a volným místem. Podrobné informace o konkrétním fyzickém svazku:
sudo pvdisplay /dev/sdb
Podrobný pohled zahrnuje velikost fyzického rozsahu, celkové rozsahy, přidělené rozsahy a UUID. Užitečné, když potřebujete přesné hodnoty pro plánování kapacity.
Zobrazit skupiny svazků
Seznam všech skupin svazků:
sudo vgs
Uvidíte názvy skupin svazků, počet fyzických svazků, počet logických svazků, atributy, celkovou velikost a volné místo. Podrobné informace:
sudo vgdisplay datavg
Zobrazí vše: velikost rozsahu, celkové rozsahy, zásady přidělování a UUID. Používám to při plánování nových logických svazků, abych viděl, kolik místa zbývá.
Zobrazit logické svazky
Seznam všech logických svazků:
sudo lvs
Výstup ukazuje názvy logických svazků, jejich skupiny svazků, atributy, velikost a které fyzické rozsahy používají. Úplné informace:
sudo lvdisplay /dev/datavg/data
Zobrazí cestu logického svazku, blokové zařízení, čas vytvoření, stav a segmenty. Pomáhá při řešení problémů s připojením nebo kontrole vztahů snímků.
Rozšířit skupiny svazků
Přidejte fyzické svazky do existujících skupin svazků, když potřebujete větší kapacitu:
sudo vgextend datavg /dev/sdd
To přidává /dev/sdd do skupiny svazků "datavg". Volné místo se okamžitě zpřístupní pro stávající logické svazky nebo vytváření nových. Není nutný restart.
Takto jsem přidal 2TB disk do skupiny zálohovacích svazků, přičemž zálohy běžely. Celá operace trvala asi 5 sekund.
Změna velikosti logických svazků
Rozšiřte logický svazek a poskytněte mu více místa:
sudo lvresize -L +50G /dev/datavg/data
Tím přidáte 50GB k logickému svazku. Po změně velikosti rozšiřte souborový systém, aby využil nový prostor:
Pro ext4:
sudo resize2fs /dev/datavg/data
Pro xfs:
sudo xfs_growfs /mnt/data
Souborový systém se rozšiřuje tak, aby vyplnil logický svazek. Vše probíhá bez odpojení svazku a bez přerušení provozu. Uživatelé si všimnou jen toho, že mají k dispozici více místa.
Chcete zmenšit svazek místo toho? To je rizikovější a nejdřív je potřeba svazek odpojit. Vždy si vytvořte zálohu, než zmenšujete svazky.
Vytvářet snímky svazků
Snímky zachycují aktuální stav logického svazku pro zálohování nebo testování:
sudo lvcreate -s -L 10G -n data-snapshot /dev/datavg/data
Vytvoří 10GB snímek s názvem "data-snapshot" logického svazku "data". Snímek využívá technologii copy-on-write. Zabere místo jen pro změněné bloky, ne pro celý svazek.
Připojit snímek jako jen pro čtení pro konzistentní zálohy:
sudo mkdir /mnt/snapshot
sudo mount -o ro /dev/datavg/data-snapshot /mnt/snapshot
Zálohovat z /mnt/snapshot zatímco původní svazek nadále přijímá zápisy. To čistě řeší problém „jak zálohovat živou databázi".
Odebrat logické svazky
Odstraňte logické svazky, které už nepotřebujete:
sudo lvremove /dev/datavg/old-data
Příkaz si vyžádá potvrzení před smazáním. Tím se trvale odstraní logický svazek a všechna data na něm. Ujistěte se, že máte zálohy všeho důležitého.
Přesunout fyzické rozsahy
Před odebráním fyzického svazku přesuňte data jinam:
sudo pvmove /dev/sdb
LVM automaticky přesouvá všechny fyzické extenty z /dev/sdb na další fyzické svazky ve skupině svazků. Operace probíhá na pozadí, zatímco systém zůstává online.
Zachránilo mě to, když disk začal vykazovat chyby SMART. Přesunul jsem vše z chybného disku, odebral jsem ho ze skupiny svazků a vyměnil jsem ho během údržby. Nula výpadků.
Vyhledat skupiny svazků
Někdy se skupiny svazků po přidání nových disků nebo restartování neobjeví. Vnutit vyhledávání:
sudo vgscan
sudo vgchange -ay
První příkaz vyhledá skupiny svazků. Druhý aktivuje vše, co najde. Vaše logické svazky jsou opět přístupné.
Pokud nastavujete LVM na Ubuntu pro vývojová prostředí, mohou se vám hodit i návody na instalaci Hadoop na Ubuntu, instalaci Redis na Ubuntu, nebo instalaci XRDP na Ubuntu pro vzdálený přístup k vašim systémům spravovaným pomocí LVM.
Závěr
LVM mění správu úložiště Linux z rigidního plánování oddílů na flexibilní alokaci kapacity. Dostanete dynamické změny velikosti, snímky v čase a možnost sloučit různorodé disky do jednotného úložného prostoru. Vše při zachování online provozu systémů.
Základní pracovní postup zůstává konzistentní ve všech distribucích. Inicializujte fyzické svazky pomocí pvcreate, seskupte je do skupin svazků pomocí vgcreate, vytvořte logické svazky pomocí lvcreate, naformátujte je požadovaným souborovým systémem a připojte je jako kterýkoli oddíl. Příkazy fungují stejně na Ubuntu LVM a Rocky Linux nasazeních.
Pokud jste v logické správě svazků nová, začněte pomalu. Vytvořte testovací skupinu svazků na náhradním disku. Cvičte změnu velikosti logických svazků, pořizování snímků a přesun dat mezi fyzickými svazky. Chyby bolí méně, když se stanou u výrobního úložiště.
Jedno upozornění ohledně CentOS: je mrtvý. Použijte místo toho Rocky Linux nebo AlmaLinux. Jsou binárně kompatibilní s RHEL a skutečně se spravují. Příkazy LVM fungují shodně, ale dostanete důležité bezpečnostní aktualizace.
Chcete si procvičit LVM bez rizika pro vaše místní soubory? Spusťte si Ubuntu VPS kde si můžete volně experimentovat. Pokazit věci, učit se z chyb a zvládat příkazy, než je aplikujete na produkční systémy.
Pořiďte si ekonomický nebo prémiový Linux VPS pro hostování webu nebo vzdálenou plochu, za nejnižší cenu na trhu. VPS běží na Linux KVM pro vyšší výkon a na výkonném hardwaru s úložištěm NVMe SSD pro vyšší rychlost.
Číst více