KVM

KVM snímky hostů s Libvirt

KVM snímky hostů s Libvirt
Virtuální počítače mají mnoho případů použití, jedním z nich je kapacita virtuálních počítačů, které se mají použít jako testovací stroje. Můžete experimentovat v rámci virtuálního počítače, aplikovat opravy a testovat upgrady, než to uděláte ve svých produkčních systémech nebo na své pracovní stanici. Můžete také použít jednorázové virtuální počítače, které postrádají osobní nebo citlivá data, k testování malwaru, jak to dělá většina komunit zabezpečení, stačí se ujistit, že síť virtuálního počítače je izolovaná od vašeho hostitele a LAN.

Je však obtížné znovu a znovu instalovat operační systém uvnitř vašeho VM. Překáží vašemu pracovnímu postupu, a proto potřebujete spolehlivý způsob, jak:

  1. Pořiďte snímek svého virtuálního počítače v daném okamžiku.
  2. Mít mechanismus k použití snímku k vrácení vašeho virtuálního počítače zpět do dříve fungujícího stavu.

Předtím jsem diskutoval o tom, jak snímky fungují ve VirtualBoxu, a tentokrát jsem chtěl diskutovat o snímcích v Libvirtu. Budu používat QEMU-KVM jako back-endový hypervisor pro svou instalaci Libvirt. Váš případ se může lišit, ale celková funkčnost a rozhraní by se neměly příliš lišit, protože libvirt se snaží co nejlépe standardizovat rozhraní frontendu.

Pokud nejste obeznámeni s libvirt a qemu-kvm, zde je průvodce, jak můžete nastavit KVM v Debianu.

Vytvoření snímku

Existuje několik způsobů, kterými můžete pořizovat a spravovat snímky svého virtuálního počítače. Aplikace GUI jako virt-manager a oVirt nabízí tuto funkčnost a můžete dokonce psát vlastní skripty pro rozhraní s libvirt API, které pro vás spravuje celou škálu snímků.

Budu však používat rozhraní příkazového řádku virsh, abych ukázal, jak můžete spravovat své virtuální počítače a jejich snímky. Tento nástroj je dodáván s téměř všemi výchozími instalacemi libvirt a měl by být k dispozici v celé řadě distribucí.

U níže uvedených příkazů nezapomeňte nahradit název mého virtuálního počítače, VM1, skutečným názvem vašeho virtuálního počítače. Libvirt často označuje virtuální stroj a kontejnery jako Domény. Pokud se vám tedy zobrazí chybová zpráva s návrhem, řekněme „zadat název domény“, musíte jako jeden z argumentů příkazu zadat název svého virtuálního počítače. Pomocí následujícího příkazu zobrazíte seznam všech virtuálních počítačů pod správou Libvirt.

$ virsh list - vše

Chcete-li pořídit snímek virtuálního počítače, jednoduše spusťte:

$ virsh snapshot-create VM1

Chcete-li zobrazit seznam všech snímků daného virtuálního počítače, použijte příkaz:

$ virsh snapshot-list VM1
Stav vytvoření jména
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 běží

Vidíte, že je vytvořen snímek. Ve výchozím nastavení je název snímku časovým razítkem jeho vytvoření (počet sekund od epochy systému UNIX). Sloupec Čas vytvoření zobrazuje čas vytvoření lidským způsobem a sloupec Stav zobrazuje stav virtuálního počítače, když byl snímek. Protože tento VM běžel, stav snímku je také „spuštěný“, ale to neznamená, že je spuštěn samotný snímek. Časem se to nezmění. Tato funkce je také známá jako živý snímek a je velmi cenná, protože vám umožňuje pořídit snímek vašeho virtuálního počítače bez jakýchkoli prostojů. Hosté KVM přinejmenším fungují dobře se živými snímky.

Určité úlohy však vyžadují zastavení virtuálního počítače před jeho snapshottováním. Tím je zajištěno, že data ve snímku jsou konzistentní a neexistuje žádný napůl napsaný soubor nebo chybějící data. Pokud má pracovní zátěž spuštěná ve vašem virtuálním počítači vysoké IO, pravděpodobně budete muset virtuální počítač před vytvořením snímku vypnout. Vytvořme jeden tímto způsobem.

$ virsh vypnutí VM1

Probíhá vypnutí domény VM1

$ virsh snapshot-create VM1

Snímek domény 1556533868 vytvořen

[chráněno e-mailem]: ~ # virsh snapshot-list VM1
Stav vytvoření jména
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 běží
1556533868 2019-04-29 16:01:08 +0530 uzavření
 
$ virsh start VM1
Doména VM1 spuštěna

Pokud chcete pojmenovat snímky něčím jiným než časovým razítkem, použijte příkaz:

$ virsh snapshot-create-as VM1 --name snap1
Stav vytvoření jména
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 běží
1556533868 2019-04-29 16:01:08 +0530 uzavření
Snap1 2019-05-02 22:27:48 +0530 běží

Je zřejmé, že to nemusíte pojmenovat snap1, můžete si vybrat libovolný vhodný název.

Vrátit se zpět ze snímku

Pořídit snímek není k ničemu, pokud se k němu nemůžete vrátit. V případě, že se potřebujete vrátit zpět na snímek, jednoduše použijte příkaz:

$ virsh snapshot-revert $ VMName $ snapshot-name

Název může být časové razítko nebo název přiřazený uživatelem daný snímku.

Ujistěte se, že ve vašem aktuálním virtuálním počítači nejsou žádná důležitá data, nebo pokud existuje něco důležitého, pořiďte snímek aktuálního virtuálního počítače a poté se vraťte zpět na starší snímek.

Výhody QCOW2

Mechanismus kopírování a zápisu souborů qcow2 umožňuje každému snímku zabírat velmi malé místo. Prostor pořízený snímkem se časem zvětšuje, protože se běžící obraz liší od snímku. Dokud tedy nepřepíšete hodně dat, vaše snímky zaberou jen několik MB úložiště.

Také to znamená, že snímky jsou také velmi rychlé. Protože mechanismus kopírování při zápisu potřebuje pouze označit časové razítko, když byl snímek pořízen. Datové bloky zapsané do souboru qcow2 po snímku do něj nepatří, ale ty starší ano. Je to tak jednoduché. Moje zkušební stolice používá pevný disk 5400RPM, který v žádném případě není na vrcholu svého výkonu, pořízení živého snímku virtuálního počítače na tomto disku trvá stále méně než několik sekund.

Závěr

Stejně jako u většiny nástrojů souvisejících s libvirt a virsh poskytuje funkce snapshot velmi flexibilní rozhraní s funkcemi podnikové třídy, jako je živý snapshot, spolu s výhodami mechanismu kopírování na zápis.

Výchozí konvence pojmenování také usnadňuje skriptům prostředí pravidelně odstraňovat staré snímky a nahradit je novějšími. Jeden z mých starších článků o snapshotech a zásadách snapshotů OpenZFS lze také použít pro vašeho hosta KVM. Další informace o obslužném programu virsh snapshot můžete použít pomocí příkazu virsh help snapshot. Stránka nápovědy je velmi malá, přesná a snadno srozumitelná.

Hry Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Emulátor Dolphin vám umožní hrát vybrané hry Gamecube a Wii na osobních počítačích se systémem Linux (PC). Jako volně dostupný herní emulátor s otevř...
Hry Jak používat GameConqueror Cheat Engine v Linuxu
Jak používat GameConqueror Cheat Engine v Linuxu
Tento článek popisuje průvodce používáním cheatovacího modulu GameConqueror v systému Linux. Mnoho uživatelů, kteří hrají hry v systému Windows, často...
Hry Nejlepší emulátory herních konzolí pro Linux
Nejlepší emulátory herních konzolí pro Linux
Tento článek uvádí seznam populárního softwaru pro emulaci herních konzolí, který je k dispozici pro Linux. Emulace je vrstva softwarové kompatibility...