Linux: Logical Volume Management

13. července 2022

Lang: cs en de es

Linuxový OS je mocný nástroj. Můžete za běhu spravovat diskové oddílý, dokonce je zvětšovat, přidávat a přesouvat mezi fyzickými disky. A to vše za běhu a bez výpadku. K tomuto všemu a dalšímu slouží technologie Logical Volume Management. Co LVM umí a jak tuto technologii používat popíši v tomto článku.

V předchozím článku jsem popsal jak na Linuxový softwarový RAID. LVM umí taky RAID navíc umí spoustu dalších věcí a je vhodný na servery, kde se mohou měnit požadavky na úložný prostor a bude tedy potřeba dělat změny disků za běhu systému bez výpadku služby.

S LVM se například setkáte pokud používáte proxmox. A spousty automatických instalátorů by default použijí LVM pro správu disků. Může se vám tak hodit LVM aspoň znát, aby jste se pak nedivily až na tuto technologii narazíte.

Co je LVM

Vlastnosti

  • změna (zvětšení) velikosti blokového zařízení (disku) za běhu
  • přesun blokového zařízení na jiný fyzický disk
  • RAID1
  • spojení více disků do jednoho (ekvivalent RAID0)
  • vytváření blokových zařízení pro virtuální stoje (VPS)
  • snapshoty
  • atd

Nevýhody?

S možnostmi přichází složitosti a tak je náročnější LVM pochopit a vyznat se v něm. Stejně tak to platí s LVM, proto je potřeba si tuto technologii nastudovat a vyzkoušet.

S LVM je více práce a v případě, že neplánujete velké změny oddílů a nákupy disků, je zbytečné. Kde vyvstává možnost potřeby zvětšení diskového úložiště s minimálním výpadkem, je LVM ideální řešení a to společně s filesystémem, který se dá rozšiřovat za běhu.

Instalace

V linuxové distribuci Debian následujícím příkazem nainstaluje podporu technologie LVM:

apt install lvm2

LVM použití

Několik základních příkazů:

  • pvs zobrazení Physical Volumes
  • vgs zobrazení Volume Groups
  • lvs zobrazení Logical Volumes

Vytvoření LVM

Na disku nebo lépe diskovém oddíle můžete LVM vytvořit následovně:

  1. Vytvoření Physical Volumes:
    pvcreate  /dev/sdc1
  2. Vytvoření Volume Groups:
    vgcreate home_vg /dev/sdc1
  3. Vytvoření Logical Volumes:
    lvcreate -l 100%FREE -n home home_vg

Zformátování blokového zařízení a úprava parametrů filesystému:

mkfs.ext4 -L server-backup /dev/mapper/home_vg-home
tune2fs -c 0 -i 0 /dev/mapper/home_vg-home

Změny LVM

Po zvětšení dicku ve VPS je potřeba zvětšit LVM PV (physical volumes), tak že využijete veškerou volnou kapacitu:

pvresize /dev/sda3
Vytvoření LVM physical volumes na novém disku a přidání do LVM VG (volume group)
pvcreate /dev/sde1
vgextend home_vg /dev/sde1
Zvětšení LVM LV (logical volume):
lvextend  /dev/home_vg/home /dev/sde1
#OR:
lvextend -l +100%FREE   /dev/home_vg/home
Rozšíření filesystému EXT přes celý oddíl:
resize2fs /dev/home_vg/home
Následující příkaz zvetší logical volume /dev/myvg/homevol na 12GB
lvextend -L12G /dev/myvg/homevol
Následující příkaz přidá 1GB k existující velikosti logical volume /dev/myvg/homevol.
lvextend -L+1G /dev/myvg/homevol

Zvětšení filesystému XFS:

xfs_growfs /

Zvětšení oddílu č 1 na disku xvda, aby využil prázdné místo. Typicky pokud ve VMWare nebo Proxmoxu zvětšíte disk, který VPS používá. (Nesouvisí přímo s LVM) Potřebujete zvětšit daný oddíl a následně souborový systém EXT také rozšířit.

growpart /dev/xvda 1
resize2fs /dev/xvda1
Program growpart je v součástí balíku cloud-utils. Pokud vám program growpart hlásí tuto chybu:
unexpected output in sfdisk --version [sfdisk z util-linux 2.36.1]
Můžete to být i tím, že nepoužíváte v systému anglický jazyk, a tak daný příkaz nerozumí programu sfdisk, který používá. Řešením je nastavit si promennou prostředí na angličtinu následujícím příkazem:
export LANG=en_US.UTF-8

Smazání metadat o LVM na daném oddíle, taktéž smaže informace o RAIDu nebo jinou signaturu toho jak je diskový oddíl použitý.

wipefs -a /dev/sdb3

Video návod

Podrobnou a názornou ukázku jak používat LVM najdete v tomto video návod jako začít používat LVM:

Více o LVM

Debian.org LVM
LVM
LVM howto

Články na podobné téma

Změna licencování VMware
Provoz Microsoft SQL serveru na Linuxu
Zálohování: Proxmox backup server
Linux jako router a firewall
Jak náhrát docker image do Docker Registry
Linuxový softwarový RAID
Provoz webové aplikace za proxy
Migrace mail schránek
Docker multistage build
Zálohování dat zapnutím počítače
Podman
Import Windows do virtualizace Proxmox
Docker a PHP mail
Virtualizace Proxmox
Docker a Cron
Lenovo ThinkPad X1 Carbon: zprovoznění LTE modemu EM7544
Yocto Project: Build vlastního operačního sytému pro embedded zařízení
Příprava linuxového serveru pro běh webové aplikace v jazyce Python
Jak řešit špatný výkon sdílených souborů u Dockeru
Jak začít správně používat Docker
Instalace Linuxu na dedikovaný server HPE ProLiant DL320e
Jak provést zátěžový test webové aplikace
Proč používat filesystém JFS
Jak bootovat z 4TB disku s GTP pomocí UEFI
Jak nainstalovat operační systém Mageia Linux bez DVD mechaniky
Souborový systém Btrfs
Raspberry PI
Jak zprovoznit vzdálené přehrávání přes síť na televizi s DLNA
Upgrade Mandriva Linuxu za běhu
Poznámky ke GNU/Linux
WINE - spouštíme programy pro Windous pod Linuxem
Operační systém GNU/Linux

Odběr novinek

Pokud máte zájem dostávat příležitostně na email novinky.
Můžete se vyplněním emailu registrovat k odběru novinek.


+