LVM: práce se snapshoty
Tento návod slouží jako vodítko pro práci s již funkčním LVM. Samotná instalace LVM zde zmíněna není. Časem snad ale bude:-)
LVM (Logical Volume Management) je v Linuxu nástroj, jak spojovat logická zařízení do větších celků. Využívá se pro vytváření velkých souborových systémů, pro možnost plynulého zvyšování kapacity souborových systémů bez nutnosti kopírování dat, pro možnost vyměňování disků, vytváření snímků souborových systémů a podobně.
LVM pracuje s PV (Physical Volume), VG (Volume Group) a LV (Logical Volume). Základem LVM jsou bloková zařízení (PV), ze kterých se pak sestavují svazky (VG) a na nich se vytvářejí logické jednotky (LV), která vystupují jako bloková zařízení a lze je tedy snadno naformátovat a použít jako nosné médium pro souborový systém.
Zmenšení LV
Budeme zmenšovat LV (Logical Volume) /dev/LVM-sda2-sdb2/home
, aby nám uvolnila místo na disku
Odpojíme /home
umount /home
pokud je „device busy“, zastavit sluzby (samba, dovecot, nfs-kernel-server, tftpd-hpa atd.)
Kontrola disku
e2fsck -f /dev/mapper/LVM--sda2--sdb2-home # nebo napr. "sda2"
Zmenšení filesystemu ext3
resize2fs -p /dev/mapper/LVM--sda2--sdb2-home 195G
Zmenšení LV (fs ext3 je na LV, musí být tudíž o trošku menší než LV)
lvreduce --size 200G /dev/LVM-sda2-sdb2/home
Roztažení fs na celou LV
resize2fs /dev/mapper/LVM--sda2--sdb2-home
Opětovné přimountování dle parametrů v /etc/fstab
mount -a
Zvětšení LV
Budeme zmenšovat LV (Logical Volume) /dev/LVM-sda2-sdb2/root
Může zůstat přimountovaná.
Pokud použijeme znaménko +, přidáváme velikost, pokud ne, velikost je výsledná
lvextend --size +20G /dev/LVM-sda2-sdb2/root
Tímto jsme zvětšili LV, nyní je potřeba na celou její délku roztáhnout fs (filesystem)
resize2fs /dev/mapper/LVM--sda2--sdb2-root
Kontrola stavu a volného místa ve VG
Tímto zkontrolujeme stav LV ve VG, vč. nevyužitého místa
vgdisplay
Vytvoření nové LV
Příkazem vgdisplay
jsme zjistili, že máme ještě 11,2G volného místa na VG LVM-sda2-sdb2
a tak si na něj vytvoříme novou LV se jménem var-log
lvcreate -L 11,20G -n var-log LVM-sda2-sdb2
a nakonec naformátujeme na fs ext4
mkfs.ext4 /dev/LVM-sda2-sdb2/var-log
Odstranění stávající LV
lvremove -f /dev/LVM-sda2-sdb2/var-log
Vytvoření LV a snapshotu skriptem
Na disku musíme přidat nový oddíl, pro ukládání snapshotů. V tomto návodu se jedná o oddíly v LVM. Přidávat tedy budeme LV do VG /dev/mapper/LVM–sda2–sdb2-home
.
V /etc/init.d mám skripty na vytvoření snapshotu „snapshot-home“ a „snapshot-root“. Když jej vytvořím, můzu potom vytvořit (zkopírovat) jeho konzistentní zálohu.
Snapshoty vytvářím pomocí tohoto skriptu, po zadání
/etc/init.d/snapshot-home start
se vytvoří LV se snapshotem home-ss o velikosti 14GB na VG /dev/LVM-sda2-sdb2 a přimountuje se do /mnt/home-ss. Tzn., že ve VG musí být dostatečné místo na LV se snapshotem.
po zadání
/etc/init.d/snapshot-home stop
se zruší LV home-ss se snapshotem a odmountuje se přípojný bod /mnt/home-ss
#!/bin/sh zarizeni="/dev/LVM-sda2-sdb2/home"; # LVM logický oddíl pripojny_bod="/mnt/home-ss"; # Adresář, kam vytvořený obraz připojíme velikost_obrazu="14G"; # tolik změn lze na disku udělat, než se snapshot zaplní na 100% nazev_obrazu="home-ss"; # Název LVM obrazu nazev_vg="LVM-sda2-sdb2"; # LVM skupina svazků (VG) case "$1" in start) echo "Vytvářím obraz disku"; /sbin/lvcreate -s -L ${velikost_obrazu} -n ${nazev_obrazu} ${zarizeni} && mkdir ${pripojny_bod} && mount /dev/${nazev_vg}/${nazev_obrazu} ${pripojny_bod}; ;; restart) $0 stop $0 start ;; stop) echo "Ruším obraz disku"; umount ${pripojny_bod} && /sbin/lvremove -f /dev/${nazev_vg}/${nazev_obrazu} && rmdir ${pripojny_bod} ; ;; *) echo "Použijte jeden z těchto parametrů: $0 {start|stop|restart}" exit 3 ;; esac
Další užitečné příkazy
Sada dalších užitečných příkazů pro administraci LVM
Kontrola LVM
vgscan vgs pvs lvs lvdisplay pvdisplay
Připojení LVM
vgscan --mknodes vgchange -ay mount /dev/vg/home /mnt/home
Citace z diskuzního fóra:
Pokud chci vytvořit snapshot, musím mít pro něho ve VG vytvořenu prázdnou LV?
ANOPokud ano, musí být stejně velká jako zálohovaná LV nebo pouze taková, kolik obsahuje zdrojová LV data?
NE, musi byt tak velka, kolik predpokladam, ze ubyde dat z puvodni LV, ze ktere jsem provedl snapshotAbych mohl zálohu uložit např. na externí médium, musím LV se snapshotem namountovat napr. do LVM a pak ji vykopírovat?
Mohu namountovat kamkoliv, v tom pripade bude jiz zaloha po zkopirovani odpovidat opravdove velikosti „snapshotovanych“ datCo vubec ta zaloha obsahuje? To je nějaký „nečitelný soubor nebo přímo ta má data?
Pri namountovani „se tvari“ jako zalohovana data .. tj. vidim soubory i adresareMohu vytvořit snapshot celého disku? Respektive alespoň celé VG, tzn. oddílu s LVM?
NE
Zdroje informací
http://www.abclinuxu.cz
http://www.abclinuxu.cz/blog/root_at_heron/2008/5/zmenseni-ext3
http://www.pslib.cz/ke/LVM_v_Linuxu
Nejnovější komentáře