abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:33 | Pozvánky

    O víkendu 11. a 12. května lze navštívit Maker Faire Prague, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    včera 21:55 | Nová verze

    Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.

    Ladislav Hagara | Komentářů: 11
    včera 20:22 | IT novinky

    Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.

    Ladislav Hagara | Komentářů: 2
    včera 12:55 | Nová verze

    Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    7.5. 18:55 | IT novinky

    Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).

    Ladislav Hagara | Komentářů: 10
    7.5. 18:33 | IT novinky

    Apple představil (keynote) iPad Pro s čipem Apple M4, předělaný iPad Air ve dvou velikostech a nový Apple Pencil Pro.

    Ladislav Hagara | Komentářů: 3
    7.5. 17:11 | Nová verze

    Richard Biener oznámil vydání verze 14.1 (14.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 14. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.

    Ladislav Hagara | Komentářů: 0
    7.5. 13:44 | Komunita

    Free Software Foundation zveřejnila ocenění Free Software Awards za rok 2023. Vybráni byli Bruno Haible za dlouhodobé příspěvky a správu knihovny Gnulib, nováček Nick Logozzo za front-end Parabolic pro yt-dlp a tým Mission logiciels libres francouzského státu za nasazování svobodného softwaru do praxe.

    Fluttershy, yay! | Komentářů: 0
    7.5. 13:11 | IT novinky

    Před 10 lety Microsoft dokončil akvizici divize mobilních telefonů společnosti Nokia a pod značkou Microsoft Mobile ji zanedlouho pohřbil.

    Ladislav Hagara | Komentářů: 2
    6.5. 21:33 | Komunita

    Fedora 40 release party v Praze proběhne v pátek 17. května od 18:30 v prostorách společnosti Etnetera Core na adrese Jankovcova 1037/49, Praha 7. Součástí bude program kratších přednášek o novinkách ve Fedoře.

    Ladislav Hagara | Komentářů: 5
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (63%)
     (8%)
     (13%)
     (16%)
    Celkem 145 hlasů
     Komentářů: 10, poslední včera 17:35
    Rozcestník

    Zálohování KVM virtuálů

    16.8.2013 09:40 | Přečteno: 2221× | Výběrový blog

    Mám už několik produkčních hostů, všichni jsou typu qemu plná virtualizace s HW podporou, s image ve formátu qcow2 a jsou na cLVM svazcích. Hledal jsem, jak je efektivně zálohovat.

    Úvodem bych poznamenal, že zacházení s LVM svazky je trochu míň pohodlné než by bylo zacházení s image ve formě souborů. Jenže když mám image jako soubor, je přístup virtuálního hosta na disk o desítky procent pomalejší než ke stejnému disku přímo od hmotného hostitele. To jsem zjistil už před pár lety na XEN virtuálech a ověřil jsem, že to teď platí i pro KVM virtuály. Asi to bude tím, že když chce host něco udělat s n-tým diskovým blokem, vytvoří system call, ten dostane jádro hostitele a teď musí proběhnout seek v souborových službách hostitele. Oproti tomu LVM jde přímo na bloky.

    Nejasně jsem tušil, že správná záloha image znamená udělat snapshot image a ten nějak zazálohovat a poté smazat tak, aby se image běžícího hosta o ničem nedozvěděl. Moji hosté byli vytvořeni pomocí virt-install, takže k tvorbě a zpracování snapshotů máme na výběr qemu snapshoty třeba podle návodu tady, nebo virtlib snapshoty podle Kashyapa. Zkoušel jsem to oboje a podle určitých drobných rozdílností v chování bych hádal, že virtlib má svoje vlastní metody, jak zacházet se snapshoty, i když v podstatě musí používat stejné KVM konstrukce jako qemu. Pro uživatele je to vždycky takové, že doposud živý image se najednou zmrazí a je z něj snapshot, zatímco další změny páchané živým hostem jdou někam jinam, třeba do nového LVM svazku čerstvě vytvořeného. Není to copy-on-write, jen prosté zapisování do nového místa. Po zpracování snapshotu potřebuju zapsané bloky zkopírovat zpátky do původního image, k tomu slouží
    qemu-img commit <ten nový prostor>
    a následně se ten nový dočasný prostor může zlikvidovat. Jak se analogická operace udělá ve virsh jsem nějak nepochopil (což asi nebude vina virtlibu).

    Když mám vytvořený snapshot, rád bych se podíval, co v něm je. Na to ho musím napřed vyexportovat do jakoby blokového zařízení, a k tomu slouží
    qemu-nbd -c /dev/nbd0 <ten snapshot> .
    Pomocí fdisk se teď můžu podívat na strukturu virtuálního disku, a dopadne to např. takhle:

     # fdisk -u -l /dev/nbd0
    
    Disk /dev/nbd0: 21.5 GB, 21474836480 bytes
    255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x000ec934
    
         Device Boot      Start         End      Blocks   Id  System
    /dev/nbd0p1   *        2048    40136703    20067328   83  Linux
    /dev/nbd0p2        40136704    41940991      902144   82  Linux swap / Solaris
     # 
    
    Dobrá finta u fdisku je volbička -u , údaje o oblastech jsou potom spolehlivě v 512 B sektorech. Jestliže je na oblasti nbd0p1 souborový systém, třeba půjde namontovat read-only:
    mount -r -o offset=$((512*2048)) /dev/nbd0 /mnt
    Volba -r je důležitá, jinak si ve snapshotu něco změníme a jestli je ještě živý, zničíme si tím běžící image.

    Když se nechceme trápit s offsety, je tady podle jednoho návodu taková finta, která se mi líbí nejvíc ze všech vyguglených fint na tohle téma:
    modprobe -r loop && modprobe loop max_part=63
    mount -r /dev/nbd0p1 /mnt
    Česky řečeno, když si odloadujeme defaultně natažený modul pro loop zařízení a zase ho natáhneme s nenulovou hodnotou parametru max_part, tak nám losetup namapuje nejen zadané zařízení jako /dev/loop# , ale také všechny jeho oblasti jako bloková zařízení /dev/loop#p## .

    Až nás hrátky s obsahem snapshotu omrzí, je dobré nezapomenout všechno uklidit. Napřed všechny umount, potom všechny losetup -d a nakonec všechny qemu-nbd -d .

    Spolehlivost snapshoťáckých postupů jsem se snažil testovat tím, že jsem ve zkušebním hostovi pořád dělal manipulace se soubory a při tom jsem vytvářel, prohlížel a zase rušil snapshoty. Dvakrát mi při tom došlo k nevratnému narušení image, kdy mi ten host bez výstrahy spadnul. Mohlo to být chybou manipulace, ale podezření na chybu mechanismu snapshotů stejně mám. Nikomu ho nevnucuju, zkuste si to sami.

    Mount snapshotu zaživa není tak úplně nezbytná věc, ale bez něj je život o něco těžší. Takže se mi zdá důležité, že read-only mount popsaný výše se dost často nedá udělat. Není divu, virtualizační nástroj nic neví o filesystémech hosta a tak jsou file systémy ve snapshotu obecně v nekonzistentním stavu. fsck by to asi srovnal, ale to si na živém snapshotu nemůžeme dovolit. Snapshot můžeme zajisté někam zkopírovat a už v neživém stavu na něj udělat qemu-nbd -c a potom s ním pracovat už read-write. Když ale nepracujeme se soubory ale s LVM svazky, je to trochu nepraktické. A při tom právě při práci s LVM svazky, protože tam máme LVM 2, můžeme v poklidu použít LVM snapshoty. Má to samé výhody a nenapadla mě žádná nevýhoda. Takže to máme
    lvcreate --size 20g --snapshot --name debil.snap /dev/VIRTUALY/debil
    a po odzálohování zase
    lvremove VIRTUALY/debil.snap
    a to je všecko. Při testování jsem nezaregistroval žádný problém. Se živým LVM 2 snapshotem se dá klidně zacházet read-write a nic se tím nezkazí. Můžeme klidně i fsck, když na to máme náladu. Nebo to není potřeba, protože i samotný read-write mount si u některých filesystémů dokáže udělat recovery a to stačí. Tohle chování jsem pozoroval u ext3. Mount -r při intenzívním diskovém provozu na hostu většinou nešel, read-write mount mi šel vždycky. Takže na zálohování budu používat LVM snapshoty a qemu snapshoty tady budou na řešení problémů, kdy si potřebujeme schovat i obsah operační paměti.

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Diskuse byla administrátory uzamčena

    16.8.2013 12:52 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: Zálohování KVM virtuálů
    Tyhle hrátky už mám dávno za sebou a věnoval jsem jim docela dost hodně času a úsilí čti. Jak si lze všimnout, k poslední části zatím nic napsáno není, takže jen ve zkratce:

    Poslední řešení je opravdu blbuvzdorné a ustálo bez ztráty kytičky i hodně ošklivé výpadky. Pro diskless řešení je v naší wiki samostateně zpracovaný manuál.
    20.8.2013 08:39 Pev | skóre: 28
    Rozbalit Rozbalit vše Re: Zálohování KVM virtuálů
    Díky za odkazy na zajímavé čtení :-).
    17.8.2013 10:14 David Jaša | skóre: 44 | blog: Dejvův blog
    Rozbalit Rozbalit vše Re: Zálohování KVM virtuálů
    A reminder why you should never mount guest disk images on the host OS - snad není potřeba další komentář...
    Dobrá finta u fdisku je volbička -u , údaje o oblastech jsou potom spolehlivě v 512 B sektorech.
    platí u starších fdisků jako je ten v RHEL6, u novějších (IIRC rok a půl starých a novějších) už -u naopak zapíná kompatibilitu s DOSem.

    Ad pády - nainstalit debug balíčky, zapnout coredumpy, vytáhnout backtrace a do bugzilly s tím!

    Jinak podle libvirtích vývojářů bylo na první implementaci živých snapshotů znát, že byly spíchnuty horkou jehlou pro potřebu oVirta - třeba proto, že neuměly pracovat s trvalými doménami. :) Jinak v nadcházející verzi oVirtu by už živé snapshoty neměly být ochuzeny o RAM - viz.
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.