Je však namáhavé opakovane preinštalovať operačný systém vo vašom VM. Prekáža vám to v pracovnom postupe, a preto potrebujete spoľahlivý spôsob, ako:
- Urobte si snímku svojho VM v danom okamihu.
- Majte mechanizmus na použitie snímky na vrátenie vášho VM späť do predtým fungujúceho stavu.
Predtým som hovoril o tom, ako fungujú snímky vo VirtualBoxe, a tentoraz som chcel diskutovať o snímkach v rámci Libvirt. Budem používať QEMU-KVM ako backendový hypervízor pre svoju inštaláciu Libvirt. Váš prípad sa môže líšiť, ale celková funkčnosť a rozhranie by sa nemali veľmi líšiť, pretože libvirt sa snaží čo najlepšie štandardizovať klientske rozhranie.
Ak nepoznáte libvirt a qemu-kvm, tu je sprievodca nastavením KVM v Debiane.
Vytvorenie snímky
Existuje niekoľko spôsobov, ako môžete robiť a spravovať snímky svojho VM. Aplikácie GUI ako virt-manager a oVirt ponúkajú túto funkcionalitu a dokonca môžete písať vlastné skripty na rozhranie s libvirt API, ktoré za vás spravuje celú škálu snímok.
Budem však používať rozhranie príkazového riadku virsh, aby som ukázal, ako môžete spravovať svoje VM a ich snímky. Tento nástroj je dodávaný s takmer všetkými predvolenými inštaláciami libvirt a mal by byť k dispozícii v širokej škále distribúcií.
U príkazov uvedených nižšie nahraďte názov môjho VM VM1 skutočným názvom vášho VM. Libvirt často označuje virtuálny stroj a kontajnery ako Domény. Ak sa vám teda zobrazí chybové hlásenie naznačujúce napríklad „určiť názov domény“, musíte zadať názov svojho VM ako jeden z argumentov príkazu. Pomocou nasledujúceho príkazu môžete zobraziť zoznam všetkých virtuálnych počítačov spravovaných spoločnosťou Libvirt.
$ virsh list - všetkoAk chcete urobiť snímku VM, jednoducho spustite:
$ virsh snapshot-create VM1Ak chcete zobraziť zoznam všetkých snímok daného VM, použite príkaz:
$ virsh zoznam snímok VM1Stav času vytvorenia názvu
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 beh
Vidíte, že snímka je vytvorená. Názov snímky je predvolene časová pečiatka jej vytvorenia (počet sekúnd od epochy systému UNIX). Stĺpec Čas vytvorenia zobrazuje čas vytvorenia ľudským spôsobom a stĺpec Stav zobrazuje stav virtuálneho počítača, keď bol snímaný. Pretože tento VM bežal, stav snímky je tiež „spustený“, ale to neznamená, že je spustená samotná snímka. Časom sa to nezmení. Táto vlastnosť je tiež známa ako živá snímka a je veľmi cenná, pretože umožňuje snímať snímky vášho virtuálneho počítača bez akýchkoľvek prestojov. Hostia KVM, prinajmenšom, fungujú dobre so živými snímkami.
Určité pracovné záťaže však vyžadujú, aby ste zastavili VM skôr, ako dôjde k jeho snapshotovaniu. Takto je zaistené, že údaje v snímke sú konzistentné a že v nich nie je žiadny napísané alebo chýbajúce údaje. Ak má pracovné zaťaženie bežiace na vašom VM vysoké IO, pravdepodobne budete musieť pred vytvorením snímky VM vypnúť. Vytvorme jeden takýmto spôsobom.
$ virsh vypnutie VM1Doména VM1 sa práve vypína
$ virsh snapshot-create VM1Snímka domény 1556533868 bola vytvorená
[chránené e-mailom]: ~ # virsh snapshot-list VM1Stav času vytvorenia názvu
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 beh
1556533868 2019-04-29 16:01:08 +0530 vypnutie
$ virsh štart VM1
Doména VM1 bola spustená
Ak chcete pomenovať snímky niečím iným ako časovou značkou, použite príkaz:
$ virsh snapshot-create-as VM1 - názov snap1Stav času vytvorenia názvu
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 beh
1556533868 2019-04-29 16:01:08 +0530 vypnutie
snap1 2019-05-02 22:27:48 +0530 beh
Je zrejmé, že to nemusíte pomenovať snap1, môžete si zvoliť ľubovoľný vhodný názov.
Vracia sa späť zo snímky
Ak sa nemôžete vrátiť späť, snímka nie je k ničomu. V prípade, že sa potrebujete vrátiť späť na snímku, jednoducho použite príkaz:
$ virsh snapshot-revert $ VMName $ snapshot-nameNázov môže byť časová pečiatka alebo meno priradené používateľom k snímke.
Uistite sa, že na vašom súčasnom VM nie sú žiadne dôležité údaje, alebo ak je niečo dôležité, urobte snímku aktuálneho VM a potom sa vráťte späť na staršiu snímku.
Výhody QCOW2
Mechanizmus kopírovania a zápisu súborov qcow2 umožňuje, aby každá snímka zaberala veľmi malé miesto. Miesto zachytené snímkou sa časom zväčšuje, keď sa bežný obraz líši od snímky. Pokiaľ teda neprepisujete veľa údajov, vaše snímky zaberú iba niekoľko MB úložného priestoru.
Znamená to tiež, že snímky sú tiež veľmi rýchle. Pretože mechanizmus kopírovania a zápisu stačí označiť časovú pečiatku, keď bola snímka urobená. Dátové bloky zapísané do súboru qcow2 po snímke doň nepatria, ale staršie áno. Je to také jednoduché. Moje testovacie zariadenie používa pevný disk s rýchlosťou 5400 ot./min., Ktorý v žiadnom prípade nie je na vrchole svojho výkonu, vyhotovenie živej snímky virtuálneho počítača na tomto disku trvá stále menej ako pár sekúnd.
Záver
Rovnako ako u väčšiny pomocných programov súvisiacich s libvirt a virsh, funkcia snímok poskytuje veľmi flexibilné rozhranie s funkciami podnikovej triedy, ako je živá snímka spolu s výhodami mechanizmu kopírovania a zápisu.
Predvolená konvencia pomenovania tiež uľahčuje skriptom shellu periodické odstraňovanie starých snímok a ich nahradenie novšími. Jeden z mojich starších článkov o snímkach a politikách snímok OpenZFS sa dá použiť aj na vášho hosťa KVM. Viac informácií o obslužnom programe virsh snapshot nájdete v príkaze virsh help snapshot. Stránka pomocníka je veľmi malá, presná a ľahko pochopiteľná.