Co je Kvm? K vytváření virtuálních strojů na serveru používáme KVM. Instalace a konfigurace virtuálního serveru

Hypervizory, virtualizace a cloud

Analýza hypervizoru KVM

Obsahová řada:

O této sérii článků

Tento cyklus začíná s obecné informace o typech hypervizorů a virtualizaci systému a poté se podívá na funkce pěti hypervizorů, jejich instalační procesy a problémy se správou, které mohou nastat.

Tuto sérii článků můžete použít jako výchozí bod k pochopení role hypervizoru v cloudové virtualizaci nebo k prozkoumání jednotlivých článků, které vám pomohou určit, který hypervizor tím nejlepším možným způsobem vhodné pro konkrétní úlohy řešené v cloudu.

Co potřebujete vědět, abyste mohli začít

Kernel-based Virtual Machine (KVM) je kompletní platformově specifické virtualizační řešení pro Linux na procesorech x86 s virtualizačními rozšířeními (Intel VT nebo AMD-V). Pro hosty je k dispozici také omezená podpora paravirtualizace pro Linux a Windows ve formě paravirtuálního síťového ovladače.

V současné době KVM komunikuje s jádrem prostřednictvím zaváděcího modulu jádra. Podporovány jsou různé hostované operační systémy, jako je Linux, BSD, Solaris, Windows, Haiku, ReactOS a operační systém AROS Research. Upravená verze KVM (qemu) může běžet na Mac OS X.

Poznámka: KVM neprovádí žádnou samoemulaci; místo toho program běžící v uživatelském prostoru používá rozhraní /dev/kvm ke konfiguraci adresního prostoru hostovaného virtuálního serveru, přijímá jeho simulované I/O prostředky a mapuje jeho obraz na obraz hostitele.

Architektura KVM je znázorněna na obrázku 1.

Obrázek 1. Architektura KVM
Paravirtualizace

Paravirtualizace je metoda virtualizace, která poskytuje virtuální stroje softwarové rozhraní, podobný, ale ne identický se základním hardwarem. Účelem tohoto upraveného rozhraní je zkrátit čas strávený hostujícím operačním systémem prováděním operací virtuální prostředí mnohem náročnější na provedení než v nevirtualizovaném.

Existují speciální „háky“, které umožňují hostujícím a hostitelským systémům požadovat a potvrzovat řešení těchto složitých úkolů, které by bylo možné provádět ve virtuálním prostředí, ale mnohem pomaleji.

V architektuře KVM běží virtuální stroj jako normální linuxový proces, naplánován standardní plánovač Linux. Ve skutečnosti se každý virtuální procesor jeví jako běžný linuxový proces. To umožňuje KVM využít všech funkcí linuxového jádra.

Emulace zařízení je řízena upravenou verzí qemu, která poskytuje emulaci BIOSu, sběrnice PCI, sběrnice USB a standardní sada zařízení jako např řadiče disků IDE a SCSI, síťové karty atd.

Funkčnost

Hlavní funkce KVM jsou uvedeny níže.

Bezpečnost

Protože je virtuální stroj implementován jako linuxový proces, používá k izolaci a správě zdrojů standardní model zabezpečení Linuxu. Se SELinux (Security-Enhanced Linux) linuxové jádro přidává povinné řízení přístupu, vrstvené a bohaté bezpečnostní kontroly a spravuje bezpečnostní politiku. SELinux poskytuje přísnou izolaci zdrojů a omezuje mobilitu procesů běžících v linuxovém jádře.

Projekt SVirt je snaha komunity integrovat bezpečnostní funkce a virtualizaci povinného řízení přístupu (MAC). Na bázi Linuxu(KVM) – staví na SELinux a poskytuje infrastrukturu, která umožňuje správci definovat zásady izolace virtuální stroje. SVirt je navržen tak, aby zajistil, že prostředky virtuálních strojů nebudou přístupné žádným jiným procesům (nebo virtuálním strojům); správce může tuto zásadu rozšířit definováním podrobných oprávnění; například, aby skupina virtuálních strojů sdílela stejné prostředky.

Správa paměti

KVM zdědí výkonné funkce správy paměti z Linuxu. Paměť virtuálního stroje je uložena stejně jako paměť jakéhokoli jiného linuxového procesu a lze ji zaměnit, zkopírovat do velkých stránek pro zlepšení výkonu, sdílet nebo uložit do souboru na disk. Podpora technologie NUMA (Non-Uniform Memory Access, architektura paměti pro víceprocesorové systémy) umožňuje virtuálním strojům efektivní přístup k velkému množství paměti.

KVM podporuje nejnovější funkce virtualizace paměti od výrobců procesorů, zejména Intel Extended Page Table (EPT) a AMD Rapid Virtualization Indexing (RVI), pro minimalizaci zatížení procesoru a dosažení vysoké propustnosti.

Sdílení stránek paměti je podporováno pomocí funkce jádra Kernel Same-page Merging (KSM). KSM skenuje paměť každého virtuálního stroje, a pokud jsou některé paměťové stránky virtuálních strojů identické, spojí je do jedné stránky, která se stane pro tyto virtuální stroje společnou a je uložena v jediné kopii. Li hostující systém snaží se to změnit obecná stránka, dostává vlastní kopii.

Ukládání dat

KVM může použít jakékoli médium podporované Linuxem k ukládání obrazů virtuálních strojů, včetně místních IDE, SCSI a SATA disků, Network Attached Storage (NAS) včetně NFS a SAMBA/CIFS nebo SAN s podporou iSCSI a Fibre Channel. Vícevláknové I/O lze použít ke zlepšení propustnosti úložiště a redundance.

Opět, protože KVM je součástí linuxového jádra, lze použít osvědčenou a spolehlivou infrastrukturu úložiště s podporou všech předních výrobců; Jeho řada úložných funkcí byla ověřena v mnoha produkčních instalacích.

KVM podporuje distribuované obrazy virtuálních strojů souborové systémy, jako je Global Systém souborů(GFS2), takže je lze sdílet mezi více hostiteli nebo je agregovat pomocí logických svazků. Podpora jemné doladění (tenké zajišťování) diskových obrazů umožňuje optimalizovat využití zdrojů datových úložišť a přidělovat je ne všechny najednou předem, ale pouze tehdy, když to virtuální stroj vyžaduje. Proprietární diskový formát KVM, QCOW2, podporuje snímky a poskytuje několik úrovní snímků, komprese a šifrování.

Živá migrace

KVM podporuje živou migraci a umožňuje běžícím virtuálním strojům pohybovat se mezi fyzickými hostiteli bez přerušení služby. Živá migrace je pro uživatele transparentní: virtuální stroj zůstává zapnutý, síťová připojení zůstávají aktivní a uživatelské aplikace nadále běží, zatímco je virtuální stroj přesouván na nový fyzický server.

Kromě živé migrace podporuje KVM ukládání kopie aktuálního stavu virtuálního stroje na disk, což vám umožňuje jej uložit a později obnovit.

Ovladače zařízení

KVM podporuje hybridní virtualizaci, když jsou v hostujícím operačním systému nainstalovány paravirtualizované ovladače, což umožňuje virtuálním strojům používat optimalizované I/O rozhraní místo emulovaných zařízení. vysoký výkon I/O pro síťová a bloková zařízení.

Hypervizor KVM používá standard VirtIO vyvinutý společností IBM a Červený klobouk ve spolupráci s linuxovou komunitou pro paravirtualizované ovladače; Jedná se o rozhraní nezávislé na hypervizoru pro vytváření ovladačů zařízení, které umožňuje více hypervizorům sdílet stejnou sadu ovladačů zařízení a zlepšuje interoperabilitu mezi hosty.

Ovladače VirtIO jsou součástí moderních verzí linuxového jádra (nejnovější je 2.6.25), jsou součástí Red Hat Enterprise Linux 4.8+ a 5.3+ a jsou dostupné také pro Red Hat Enterprise Linux 3. Red Hat vyvinul ovladače VirtIO pro Hostující operační systémy Microsoft Windows optimalizující síť a diskové operace I/O; tyto ovladače jsou certifikovány v rámci certifikačního programu společnosti Microsoft Hardware Windows Quality Labs (WHQL).

Výkon a škálovatelnost

KVM zdědí výkon a škálovatelnost Linuxu, podporuje virtuální stroje s 16 virtuálními procesory a 256 GB BERAN, stejně jako hostitelské systémy s 256 jádry a více než 1 TB RAM. Může poskytnout:

  • 95-135% výkon ve srovnání s holým kovem ve skutečných podnikových aplikacích, jako jsou SAP, Oracle, LAMP a Microsoft Exchange;
  • více než milion zpráv za sekundu a latence menší než 200 mikrosekund ve virtuálních strojích běžících na standardním serveru;
  • Maximální úrovně konsolidace s více než 600 virtuálními stroji provozujícími podnikové aplikace na jediném serveru.

To znamená, že KVM dokáže virtualizovat nejnáročnější pracovní zátěže.

Nasazení virtualizace

Nasazení KVM je poměrně složitý proces, plný speciálních požadavků na konfiguraci, takže další informace naleznete v části.

Správa virtuálních strojů

Existuje několik správců virtuálních strojů. Mezi nimi:

  • Univention virtuální manažer;
  • qemu/KVM: spouští se přímo z příkazového řádku v počítači KVM;
  • Virsh: minimální shell pro správu virtuálních strojů;
  • Virtual Machine Manager: jinak známý jako virt-manager, uživatelské rozhraní pro správu virtuálních strojů.

Výběr KVM

Pro:

  • navzdory skutečnosti, že KVM je relativně mladý hypervizor, jde o kompaktní modul, který v kombinaci s linuxovým jádrem poskytuje snadnou implementaci při zachování podpory pro linuxové těžké váhy;
  • KVM je flexibilní; Vzhledem k tomu, že hostované operační systémy komunikují s hypervizorem integrovaným do linuxového jádra, mohou ve všech případech přistupovat přímo k hardwaru bez nutnosti upravovat virtualizovaný operační systém. To dělá KVM více rychlé řešení pro virtuální stroje;
  • KVM patche jsou kompatibilní s linuxovým jádrem. KVM je implementováno v samotném linuxovém jádře, což usnadňuje správu virtualizačních procesů.

nevýhody:

  • Neexistují žádné výkonné nástroje pro správu serveru a virtuálních strojů KVM;
  • KVM potřebuje zlepšit podporu pro virtuální sítě a systémy virtuálních úložišť, posílit zabezpečení, zlepšit spolehlivost a odolnost proti chybám, správu napájení, podporu systémů HPC/real-time, škálovatelnost virtuálních procesorů, interoperabilitu mezi dodavateli, přenositelnost virtuálních počítačů a vytvoření ekosystém cloudových služeb.

Originál: Vítejte ve virtualizaci KVM – Důkladný úvod
Autor: Igor Ljubuncic
Datum zveřejnění: 4. května 2011
Překlad: A. Krivoshey
Datum překladu: červenec 2011

Pokud jste četli mé články o virtualizaci, víte, že jsem dříve většinou používal VMware a VirtualBox, ale nyní je čas vyzkoušet něco nového. Dnes bych rád představil novou sérii poznámek o KVM. Dále možná přejdu na Xen nebo jiný systém, ale nyní je hrdinou našeho tématu KVM.
V této příručce budeme hovořit o technologii KVM (Kernel-based Virtual Machine), kterou vytvořil RedHat a která je open source. zdrojový kód, bytí bezplatná alternativa jejich komerční protějšky. Dozvíme se, jak stáhnout, nainstalovat a nakonfigurovat KVM, jaké má nástroje pro správu virtuálních strojů, jak pracovat s KVM na příkazovém řádku, psát skripty a mnoho dalšího. Kromě toho se dotkneme vytváření pokročilých (včetně síťových) konfigurací a dalších zajímavostí. Nyní začněme.

Slovník KVM

Nejprve si povíme něco o tom, jak KVM funguje. Nic přepychového, prostě malý úvod takže znáte základní terminologii.
KVM využívá technologii hardwarové virtualizace podporovanou o moderní procesory od Intel a AMD a známé jako Intel-VT a AMD-V. Pomocí načteného modulu jádra v paměti KVM s pomocí ovladače uživatelského režimu (což je upravený ovladač z QEMU) emuluje vrstvu hardwaru, nad kterou lze vytvářet a spouštět virtuální stroje. KVM může fungovat i bez hardwarové virtualizace (pokud ji nepodporuje procesor), ale v tomto případě funguje v čistě emulačním režimu pomocí QUEMU a výkon virtuálních strojů je značně snížen.
Pro Správa KVM Můžete použít grafický nástroj podobný produktům od VMware a VirtualBox a také příkazový řádek.
Nejoblíbenějším GUI je Virtual Machine Manager (VMM), vytvořený společností RedHat. Je také známý pod názvem svého balíčku jako virt-manager a obsahuje několik nástrojů, včetně virt-install, virt-clone, virt-image a virt-viewer, pro vytváření, klonování, instalaci a prohlížení virtuálních strojů. VMM také podporuje virtuální stroje Xen.
Základní rozhraní příkazového řádku KVM poskytuje obslužný program virsh. V určité případy k vytvoření virtuálních strojů můžete použít podpůrné nástroje, jako je virt-install. Ubuntu má speciální nástroj ubuntu-vm-builder vyvinutý společností Canonical, pomocí kterého můžete vytvářet sestavení Ubuntu.
Pokud se chcete dozvědět více o KVM, další informace naleznete na následujících adresách:

Výhody a nevýhody KVM

Potřebujete KVM? Záleží na co to potřebuješ.
Pokud jste dosud nepoužívali virtuální stroje nebo jste je několikrát spustili jen pro zábavu, může být zvládnutí KVM obtížné. Tento program se ovládá primárně z příkazové řádky a není tak uživatelsky přívětivý jako VMware nebo VirtualBox. Dá se říci, že z hlediska grafického rozhraní zaostává KVM za svými konkurenty o několik let, i když ve skutečnosti za nimi není alespoň z hlediska schopností horší. Schopnosti KVM jsou nejvíce žádané, když se používají pro komerční účely v obchodním prostředí.
Dále, pokud váš procesor nepodporuje virtualizaci hardwaru, bude KVM pracovat ve velmi pomalém a neefektivním režimu emulace softwaru. Navíc je známo, že KVM koliduje s VirtualBoxem, ale tomuto případu bude věnována samostatná poznámka.
Na základě výše uvedeného můžeme dojít k závěru, že KVM je vhodnější pro lidi, kteří se zabývají virtualizací pro profesionální účely. Je nepravděpodobné, že se stane vaší oblíbenou domácí hračkou, ale pokud se rozhodnete vynaložit určité úsilí na jeho studium, znalosti získané tímto způsobem vám umožní seznámit se s virtualizačními technologiemi. Na rozdíl od VMware a VirtualBox, které zpočátku předpokládají, že uživatel bude s programem pracovat pomocí GUI,KVM se zaměřuje na používání příkazového řádku a psaní skriptů.
Abychom to shrnuli, můžeme říci, že výhody KVM spočívají v použití nejnovějších virtualizačních technologií, absenci jakýchkoli licenčních omezení při používání, výkonné rozhraní příkazový řádek. Pokud váš procesor nepodporuje hardwarovou virtualizaci, nechcete psát skripty a dáváte přednost jednodušším administrovatelným systémům, jako je např. Server VMware, ESXi nebo VirtualBox, pak KVM není pro vás.

Testovací platforma

KVM lze použít na jakékoli distribuci Linuxu. Hlavním vývojářem a sponzorem KVM je však RedHat. Například RHEL vychází z krabice s KVM, takže jej můžete najít v jakékoli distribuci založené na RedHat, jako je CentOS, Scientific Linux nebo Fedora.
Vzhledem k tomu, že doma používám především Ubuntu, otestuji KVM na tomto systému, nainstalovaném na mém relativně novém notebooku HP, vybaveném procesorem i5 s podporou hardwarové virtualizace.
V tomto článku vám řeknu, jak nainstalovat KVM na 64bitový Ubuntu Lucid (LTS).

Příprava na instalaci

Nejprve musíte zkontrolovat, zda váš procesor podporuje virtualizaci hardwaru. To se provádí pomocí další příkaz:

$ egrep -c "(vmx|svm)" /proc/cpuinfo

Pokud je na výstupu nenulové číslo, je vše v pořádku. Kromě toho musíte zkontrolovat, zda je v systému BIOS aktivována virtualizační technologie.
Po jeho aktivaci musíte samozřejmě restartovat počítač, aby se změny projevily. Pro kontrolu spusťte příkaz kvm-ok:

Stažení a instalace KVM

Aby KVM fungovalo, musíte nainstalovat následující balíčky (pro distribuce s apt):

$ apt-get install qemu-kvm libvirt-bin

$ apt-get install bridge-utils virt-manager python-virtinst

P.S. Balíčky mohou být v různých distribucích pojmenovány odlišně. Například virt-install se může nazývat python-virt-install nebo python-virtinst. Závislosti pro virt-clone, virt-image a virt-viewer by měly být nainstalovány automaticky. Na rozdíl od toho, co se píše ve většině příruček, mostní inženýrské sítě instalace je volitelná. Jsou potřeba pouze v případě, že se chystáte tvořit síťový most mezi virtuálními a fyzickými síťovými kartami. Většina příruček také uvádí, že většina bezdrátových síťových rozhraní nefunguje s mosty. V některých konkrétních případech to může být pravda, ale most mi funguje dobře bezdrátové adaptéry, tak doufejme, že to bude fungovat i vám.
Vřele doporučuji VMM (virt-manager). Navíc je lepší nainstalovat všechny podpůrné nástroje, včetně virt-viewer, virt-install, virt-image a virt-clone.
A poslední věc. Můžete preferovat ubuntu-vm-builder:

$ apt-get install ubuntu-vm-builder

Navíc bude s největší pravděpodobností nainstalován velký počet závislosti, takže stahování může trvat značnou dobu.
P.S. Na RedHat použijte yum install, na SUSE - zypper install.

Konflikt s VirtualBoxem

Opět vyjádřím odlišný názor, než je uvedeno ve většině návodů: KVM a VirtualBox lze nainstalovat společně na stejný systém. Ale nebudete je moci spustit současně. Jinými slovy, modul jádra jednoho z virtuálních strojů musí být uvolněn z paměti RAM. Ale to není důvod k odmítnutí instalace. Jen zkuste zjistit, jestli vám fungují. Pokud ne, lze tento problém vyřešit. Později zveřejním samostatnou příručku věnovanou řešení tohoto problému. Nyní mám oba virtuální stroje nainstalované a spuštěné.

Pomocí KVM

No a teď ta nejzajímavější část. Začneme seznámení s KVM s jeho grafickým rozhraním, které se jen málo liší od jeho analogů. jako je konzole VMware a zejména VirtualBox.

Správce virtuálních strojů (VMM)

Při prvním spuštění programu uvidíte dvě kategorie, obě nespojené. Toto jsou odkazy na standardní moduly KVM, které ještě nefungují. Chcete-li je použít, klikněte pravým tlačítkem myši a vyberte „připojit“.

Chcete-li je použít, klikněte pravým tlačítkem myši a vyberte „připojit“. Chcete-li přidat nové připojení, vyberte z nabídky Soubor > Přidat připojení. Otevře se okno, ve kterém můžete nastavit typ hypervizoru a typ připojení. VMM může používat místní i vzdálená připojení, včetně QUEMU/KVM a Xen. Kromě toho jsou podporovány všechny metody ověřování.

Můžete také zaškrtnout políčko automatického připojení. Při příštím spuštění programu budou tato připojení připravena k použití. Tohle vypadá jako startér Rozhraní VMware Server. Jen pro příklad:

Jádro vs uživatelský režim

Můžete se zeptat, jaký je rozdíl mezi normálním/výchozím a uživatelským režimem? Při použití uživatelského režimu lze virtuální počítač spustit bez administrátorská oprávnění, ale jeho síťová funkčnost bude omezena.

Pokračujeme ve studiu VMM

Podívejme se krátce na zbývající funkce programu.
Síťové funkce lze zobrazit nebo změnit otevřením Podrobnosti o hostiteli. Tento problém plánuji podrobně zvážit v samostatném průvodci. Tam nainstalujeme utility pro síťový most.

Podobně můžete změnit parametry diskového subsystému:

Změna předvoleb

VMM má malou sadu možností, jejichž změnou můžete lépe přizpůsobit program svým potřebám. Můžete například aktivovat zobrazení ikony VMM na systémové liště, nastavit interval sběru statistik, aktivovat sběr dat pro metriky disku a sítě, nakonfigurovat zachycení klávesnice, škálování konzoly, možnosti audio systému atd.

Poté budete moci zobrazit více podrobné informace o virtuálním stroji. Níže je například uveden výstup využití CPU, disku a sítě pro hosta Ubuntu.

Ikona na systémové liště vypadá takto:

Nyní jsme připraveni vytvořit nový virtuální stroj.

Vytvoření virtuálního stroje

Virtuální počítač můžete vytvořit z příkazového řádku, ale nejprve použijeme VMM. První krok by měl být intuitivní. Zadejte název a určete umístění instalačního disku. Mohlo by to být jako místní zařízení ve formě CD/DVD popř ISO obraz a HTTP nebo FTP server, NFS nebo PXE.

Využíváme lokální média. Nyní je potřeba nastavit, zda se bude jednat o fyzické zařízení nebo obrázek. V našem případě se používá ISO. Dále je třeba vybrat typ a verzi ISO. To nevyžaduje tak vysokou přesnost, ale správná volba zlepší výkon virtuálního stroje.

Čtvrtou fází je virtuální disk. Můžete vytvořit nový obrázek nebo použít existující. Musíte vybrat velikost disku a určit, zda se obraz disku vytvoří okamžitě daná velikost nebo se jeho velikost bude dynamicky zvětšovat podle potřeby. Je třeba poznamenat, že přidělení veškerého prostoru pro obraz disku najednou zlepšuje výkon a snižuje fragmentaci systému souborů.

Dále se budeme více věnovat diskovému subsystému. Upozorňujeme však, že při spuštění v uživatelském režimu nebudete mít oprávnění k zápisu do /var, kde jsou obrázky ve výchozím nastavení uloženy virtuální disky. Proto budete muset pro obrázky nastavit jiné umístění. Této problematice se budeme podrobněji věnovat v samostatném článku.
Fáze 5 je výstup souhrnných dat s možností konfigurace některých pokročilých možností. Zde můžete změnit typ sítě, nastavit pevné MAC adresy, vybrat typ virtualizace a cílovou architekturu. Pokud používáte uživatelský režim, možnosti konfigurace sítě budou omezené, například nebudete moci vytvářet mosty mezi síťovými rozhraními. Poslední věc: pokud váš procesor nepodporuje hardwarovou virtualizaci, pole Virt Type bude QUEMU a nebude možné jej změnit na KVM. Níže se podíváme na nevýhody práce v emulačním režimu. Nyní se můžete podívat, jak vypadají typická nastavení pro virtuální počítač Ubuntu:

Náš stroj je připraven k použití.

Nastavení virtuálního stroje

Konzole VM má také některé zajímavé možnosti. Hostovi můžete posílat signály, přepínat mezi virtuálními konzolemi, restartovat nebo vypnout hosta, klonovat, přesouvat, ukládat stav virtuálního počítače, pořizovat snímky obrazovky a tak dále. Opět je vše stejné jako u konkurence.

Níže je několik snímků obrazovky ukazujících možnosti klonování a přesunutí virtuálního počítače. V budoucnu se touto problematikou budeme podrobně zabývat.

Spuštění virtuálního stroje

Nyní přichází ta zábavná část. Níže je několik krásných screenshotů...
Začněme s boot menu Ubuntu 10.10 Maverick 32bitová verze:

Desktop Puppy Linux je skvělý jako vždy:

Nyní Ubuntu běží pod NAT. Vezměte prosím na vědomí nízké zatížení procesor. Promluvíme si o tom později, až budeme diskutovat o emulačním režimu.

Velikost okna konzoly lze změnit tak, aby odpovídala rozlišení plochy hosta. Následující snímek obrazovky ukazuje Puppy a Ubuntu vedle sebe:

Upozorňujeme, že zatížení systému je nízké. S tímto režimem emulace můžete spouštět více virtuálních počítačů současně.

V případě potřeby můžete odstranit virtuální počítač spolu se všemi jeho soubory:

Příkazový řádek

Nyní se podívejme blíže na nemilovaný příkazový řádek. Uveďme si například seznam všech dostupných virtuálních strojů využívajících virsh.

$virsh "seznam --vše"

Níže je uvedena sekvence příkazů pro vytvoření a spuštění virtuálního počítače pomocí virt-install.

Kompletní příkaz vypadá takto:

$ virt-install --connect qemu://system -n puppy -r 512 -f puppy.img -c lupu-520.iso --vnc --noautoconsole --os-type linux --accelerate --network=network :výchozí

--připojit qemu:///system určuje typ hypervizoru. Systémová volba se používá při spuštění počítače na holém jádře jako superuživatel. Při běhu jako běžný uživatel je použita volba session.
-n štěně je jedinečný název virtuálního počítače. Lze to změnit pomocí virsh.
-R 512 nastavuje velikost RAM.
-F určuje soubor obrazu disku. V mém případě je to puppy.img, který jsem vytvořil pomocí příkazu dd.
-C určuje CD-ROM, což může být fyzické zařízení nebo obraz ISO.
--vnc vytvoří hostující konzoli a exportuje ji jako server VNC. Volba --noautoconnect zabraňuje automatickému otevření konzoly při spuštění virtuálního počítače.
--os-type určuje typ hostovaného operačního systému.
--urychlit Umožňuje KVM používat optimalizační funkce, které zlepšují výkon hosta.
--síť určuje typ sítě. V našem případě je použito výchozí připojení.

Existuje mnoho dalších funkcí, které nastavují parametry jako počet jader procesoru, pevné MAC adresy atd. Všechny jsou podrobně popsány v manuálové stránce. I přes zdánlivou složitost je ovládání pomocí příkazového řádku zvládnuto celkem rychle.

Režim čisté emulace

Už jsem říkal, že je to strašně neúčinné. Nyní si to potvrdíme v praxi. Například na níže uvedeném snímku obrazovky můžete vidět, že systém při provozu spotřebovává všechny dostupné zdroje procesoru, což v tomto případě s jedním jádrem představují 25 % zdrojů fyzického procesoru. To znamená, že čtyři virtuální počítače zcela zatíží čtyřjádrového hostitele.

Kromě toho je výkon hostujícího systému mimo veškerou kritiku. Pokud s povolenou hardwarovou virtualizací mi načítání hostujícího Ubuntu trvalo asi 1 minutu, tak po jeho vypnutí to trvalo 20 minut. Je třeba poznamenat, že bez použití hardwarové virtualizace je výkon QUEMU/KVM mnohem nižší než u jeho konkurentů.

V Ubuntu se doporučuje používat jako nástroje pro správu KVM hypervisor (správce virtuálních strojů) a knihovnu libvirt. Libvirt obsahuje sadu softwarových API a uživatelských aplikací pro správu virtuálních strojů (VM), virt-manager (grafické rozhraní, GUI) nebo virsh (příkazový řádek, CLI). Jak alternativní manažeři můžete použít convirt (GUI) nebo convirt2 (WEB rozhraní).

V současnosti je na Ubuntu oficiálně podporován pouze hypervizor KVM. Tento hypervizor je součástí kódu operačního jádra Linuxové systémy. Na rozdíl od Xen KVM nepodporuje paravirtualizaci, což znamená, že aby ji bylo možné používat, musí váš CPU podporovat technologie VT. Zda váš procesor podporuje tuto technologii, můžete zkontrolovat spuštěním příkazu v terminálu:

Pokud se jako výsledek zobrazí následující zpráva:

INFO: /dev/kvm existuje Lze použít akceleraci KVM

To znamená, že KVM bude fungovat bez problémů.

Pokud jste na výstupu obdrželi následující zprávu:

Váš procesor nepodporuje rozšíření KVM Akceleraci KVM NELZE použít

pak můžete stále používat virtuální stroj, ale bude mnohem pomalejší.

    Nainstalujte 64bitové systémy jako hosté

    Hostujícím systémům přidělte více než 2 GB paměti RAM

Instalace

Sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Jedná se o instalaci na server bez X, tedy bez grafického rozhraní. Můžete jej nainstalovat pomocí příkazu

Sudo apt-get install virt-manager

Poté se v nabídce objeví položka „Správce virtuálních strojů“ a s vysokou mírou pravděpodobnosti bude vše fungovat. Pokud se přesto objeví nějaké problémy, budete si muset přečíst pokyny na anglické wiki.

Vytvoření hostujícího systému

Postup pro vytvoření hostujícího systému pomocí GUI je poměrně jednoduchý.

Ale textový režim se dá popsat.

qcow2

Při vytváření systému pomocí GUI as pevný disk navrhuje se buď vybrat existující obrazový soubor nebo blokovat zařízení, nebo vytvořit nový soubor s nezpracovanými (RAW) daty. Toto však není zdaleka jediný dostupný formát souboru. Ze všech typů disků uvedených v man qemu-img je nejflexibilnější a nejmodernější qcow2. Podporuje snímky, šifrování a kompresi. Musí být vytvořen před vytvořením nového hosta.

Qemu-img create -o preallocation=metadata -f qcow2 qcow2.img 20G

Podle stejného muže qemu-img předběžné přidělení metadat (-o preallocation=metadata) dělá disk zpočátku trochu větší, ale poskytuje lepší výkon, když obraz potřebuje růst. Ve skutečnosti vám v tomto případě tato možnost umožňuje vyhnout se nepříjemné chybě. Vytvořený obrázek zpočátku zabírá méně než megabajt místa a podle potřeby roste do zadané velikosti. Hostující systém by měl toto finále okamžitě vidět specifikovaná velikost, nicméně během fáze instalace může vidět skutečnou velikost souboru. Přirozeně nainstalujte pevný disk 200 kB o velikosti odmítne. Chyba není specifická pro Ubuntu, objevuje se alespoň v RHEL.

Kromě typu obrazu si následně můžete zvolit způsob jeho připojení – IDE, SCSI nebo Virtio Disk. Výkon diskového subsystému bude záviset na této volbě. Neexistuje žádná definitivní správná odpověď, kterou musíte vybrat na základě úkolu, který bude přidělen hostujícímu systému. Pokud je hostující systém vytvořen „k prohlížení“, pak bude stačit jakákoli metoda. Obecně je to obvykle I/O, co je úzkým hrdlem virtuálního stroje, takže při vytváření vysoce zatíženého systému je třeba k tomuto problému přistupovat co nejzodpovědněji.

KVM (Virtuální stroj založený na jádru) je softwarové řešení, které poskytuje virtualizaci v Linuxové prostředí na platformě x86, která podporuje hardwarovou virtualizaci na založené na Intelu VT( Technologie virtualizace) nebo AMD SVM (Secure Virtual Machine).

Software KVM se skládá ze zaváděcího modulu jádra (nazývaného kvm.ko), který poskytuje základní servis virtualizace, zaváděcí modul specifický pro procesor kvm-amd.ko nebo kvm-intel.ko a komponenty uživatelského režimu (upravené QEMU). Všechny softwarové komponenty KVM jsou open source. Komponenta jádra potřebná pro fungování KVM je součástí hlavního linuxového jádra od verze 2.6.20 (únor 2007). KVM byl také portován do FreeBSD jako modul jádra. Probíhají práce na zahrnutí úprav nezbytných pro práci s KVM do hlavní větve QEMU.

S KVM pracuje velké množství hostovaných operačních systémů, včetně mnoha typů a Linuxové verze, BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, AROS Research Operating System a OS X. Kromě toho Android 2.2, Minix 3.1.2a, Solaris 10 U3 a Darwin 8.0.1GNU/Hurd (Debian K16), Minix 3.1 .2a, Solaris 10 U3 a Darwin 8.0.1 spolu s některými verzemi výše uvedených operačních systémů fungují s určitými omezeními.

Paravirtualizace některých zařízení je k dispozici na hostujících operačních systémech Linux, OpenBSD, FreeBSD, NetBSD, Plan 9 a Windows VirtIO API. To podporuje paravirtuální Ethernetové karty, řadič I/O disku, zařízení pro úpravu paměti spotřebované hostem a také grafiku VGA rozhraní pomocí ovladačů SPICE nebo VMware.

Prostředí

KVM samo o sobě neprovádí emulaci. Místo toho program běžící v uživatelském prostoru používá rozhraní /dev/kvm ke konfiguraci adresového prostoru hosta virtuálního stroje a prostřednictvím něj emuluje I/O zařízení a grafický adaptér.

KVM umožňuje virtuálním strojům používat neupravené obrazy disků QEMU, VMware a dalších obsahujících operační systémy. Každý virtuální stroj má svůj vlastní virtuální železářské zboží: síťové karty, disk, grafická karta a další zařízení.

Příběh

Software KVM byl vytvořen, vyvinut a udržován společností Qumranet, kterou 4. září 2008 získal Red Hat za 107 milionů dolarů. Po dohodě se KVM (společně se systémem pro správu virtualizace oVirt) stal součástí virtualizační platformy RHEV. KVM podporuje Paolo Bonzini.

Princip fungování

V současné době KVM komunikuje s jádrem prostřednictvím zaváděcího modulu jádra. Podporovány jsou různé hostované operační systémy, jako je Linux, BSD, Solaris, Windows, Haiku, ReactOS a operační systém AROS Research. Upravená verze KVM (qemu) může běžet na Mac OS X. Poznámka: KVM neprovádí žádnou samoemulaci; místo toho program běžící v uživatelském prostoru používá rozhraní /dev/kvm ke konfiguraci adresního prostoru hostovaného virtuálního serveru, přijímá jeho simulované I/O prostředky a mapuje jeho obraz na obraz hostitele.

V architektuře KVM běží virtuální stroj jako normální proces Linuxu naplánovaný standardním plánovačem Linuxu. Ve skutečnosti se každý virtuální procesor jeví jako běžný linuxový proces. To umožňuje KVM využít všech funkcí linuxového jádra. Emulace zařízení je řízena upravenou verzí qemu, která zajišťuje emulaci BIOSu, sběrnice PCI, sběrnice USB a také standardní sady zařízení, jako jsou řadiče disků IDE a SCSI, síťové karty atd.

Funkčnost

Bezpečnost

Protože je virtuální stroj implementován jako linuxový proces, používá k izolaci a správě zdrojů standardní model zabezpečení Linuxu. Se SELinux (Security-Enhanced Linux) linuxové jádro přidává povinné řízení přístupu, vrstvené a bohaté bezpečnostní kontroly a spravuje bezpečnostní politiku. SELinux poskytuje přísnou izolaci zdrojů a omezuje mobilitu procesů běžících v linuxovém jádře.

Projekt SVirt, snaha komunity integrovat bezpečnostní funkce Mandatory Access Control (MAC) a virtualizaci založenou na Linuxu (KVM), staví na SELinux a poskytuje infrastrukturu, která umožňuje správci definovat zásady izolace virtuálních strojů. SVirt je navržen tak, aby zajistil, že prostředky virtuálních strojů nebudou přístupné žádným jiným procesům (nebo virtuálním strojům); správce může tuto zásadu rozšířit definováním podrobných oprávnění; například, aby skupina virtuálních strojů sdílela stejné prostředky.

Správa paměti

KVM zdědí výkonné funkce správy paměti z Linuxu. Paměť virtuálního stroje je uložena stejně jako paměť jakéhokoli jiného linuxového procesu a lze ji zaměnit, zkopírovat do velkých stránek pro zlepšení výkonu, sdílet nebo uložit do souboru na disk. Podpora technologie NUMA (Non-Uniform Memory Access, architektura paměti pro víceprocesorové systémy) umožňuje virtuálním strojům efektivní přístup k velkému množství paměti.

KVM podporuje nejnovější funkce virtualizace paměti od výrobců procesorů, jako je Intel Extended Page Table (EPT) a AMD Rapid Virtualization Indexing (RVI), pro minimalizaci zatížení procesoru a dosažení vysoké propustnosti.

Sdílení stránek paměti je podporováno pomocí funkce jádra Kernel Same-page Merging (KSM). KSM skenuje paměť každého virtuálního stroje, a pokud jsou některé paměťové stránky virtuálních strojů identické, spojí je do jedné stránky, která se stane pro tyto virtuální stroje společnou a je uložena v jediné kopii. Pokud se host pokusí upravit tuto sdílenou stránku, dostane vlastní kopii.

Ukládání dat

KVM může použít jakékoli médium podporované Linuxem k ukládání obrazů virtuálních strojů, včetně místních IDE, SCSI a SATA disků, Network Attached Storage (NAS) včetně NFS a SAMBA/CIFS nebo SAN s podporou iSCSI a Fibre Channel. Vícevláknové I/O lze použít ke zlepšení propustnosti úložiště a redundance.

Opět, protože KVM je součástí linuxového jádra, lze použít osvědčenou a spolehlivou infrastrukturu úložiště s podporou všech předních výrobců; Jeho řada úložných funkcí byla ověřena v mnoha produkčních instalacích.

KVM podporuje obrazy virtuálních strojů na distribuovaných souborových systémech, jako je Global File System (GFS2), takže je lze sdílet mezi více hostiteli nebo sdílet pomocí logických svazků. Podpora tenkého zajišťování diskových obrazů umožňuje optimalizovat využití zdrojů datových úložišť a nepřidělovat je všechny najednou, ale pouze tehdy, když to virtuální stroj vyžaduje. Proprietární diskový formát KVM, QCOW2, podporuje snímky a poskytuje několik úrovní snímků, komprese a šifrování.

Živá migrace

KVM podporuje živou migraci a umožňuje běžícím virtuálním strojům pohybovat se mezi fyzickými hostiteli bez přerušení služby. Živá migrace je pro uživatele transparentní: virtuální stroj zůstává zapnutý, síťová připojení zůstávají aktivní a uživatelské aplikace nadále běží, zatímco je virtuální stroj přesouván na nový fyzický server.

Kromě živé migrace podporuje KVM ukládání kopie aktuálního stavu virtuálního stroje na disk, což vám umožňuje jej uložit a později obnovit.

Ovladače zařízení

KVM podporuje hybridní virtualizaci, když jsou v hostujícím operačním systému nainstalovány paravirtualizované ovladače, což umožňuje virtuálním strojům používat optimalizované I/O rozhraní spíše než emulovaná zařízení, což poskytuje vysoký I/O výkon pro síťová a bloková zařízení.

Hypervizor KVM používá standard VirtIO, vyvinutý společnostmi IBM a Red Hat společně s linuxovou komunitou pro paravirtualizované ovladače; Jedná se o rozhraní nezávislé na hypervizoru pro vytváření ovladačů zařízení, které umožňuje více hypervizorům sdílet stejnou sadu ovladačů zařízení a zlepšuje interoperabilitu mezi hosty.

Ovladače VirtIO jsou součástí moderních verzí linuxového jádra (nejnovější je 2.6.25), jsou součástí Red Hat Enterprise Linux 4.8+ a 5.3+ a jsou dostupné také pro Red Hat Enterprise Linux 3. Red Hat vyvinul ovladače VirtIO pro Hostující operační systémy Microsoft Windows, optimalizující síťové a diskové I/O operace; Tyto ovladače jsou certifikovány certifikačním programem Microsoft Windows Hardware Quality Labs (WHQL).

Výkon a škálovatelnost

KVM zdědí výkon a škálovatelnost Linuxu, podporuje virtuální stroje s 16 virtuálními procesory a 256 GB RAM, stejně jako hostitelské systémy s 256 jádry a více než 1 TB RAM. Může poskytnout:

  • 95-135% výkon ve srovnání s holým kovem ve skutečných podnikových aplikacích, jako jsou SAP, Oracle, LAMP a Microsoft Exchange;
  • více než milion zpráv za sekundu a latence menší než 200 mikrosekund ve virtuálních strojích běžících na standardním serveru;
  • Maximální úrovně konsolidace s více než 600 virtuálními stroji provozujícími podnikové aplikace na jediném serveru.

To znamená, že KVM dokáže virtualizovat nejnáročnější pracovní zátěže.

Nastavení

Nastavení Virtual Machine Manager (VMM)

Při prvním spuštění programu uvidíte dvě kategorie, obě nespojené. Toto jsou odkazy na standardní moduly KVM, které ještě nefungují. Chcete-li je použít, klikněte pravým tlačítkem myši a vyberte „připojit“.

Chcete-li přidat nové připojení, vyberte z nabídky Soubor > Přidat připojení. Otevře se okno, ve kterém můžete nastavit typ hypervizoru a typ připojení. VMM může používat místní i vzdálená připojení, včetně QUEMU/KVM a Xen. Kromě toho jsou podporovány všechny metody ověřování.

Můžete také zaškrtnout políčko automatického připojení. Při příštím spuštění programu budou tato připojení připravena k použití.

Podívejme se krátce na zbývající funkce programu.
Síťové funkce lze zobrazit nebo změnit otevřením Podrobnosti o hostiteli. Tam nainstalujeme utility pro síťový most.

Podobně můžete změnit parametry diskového subsystému:

Vytvoření virtuálního stroje

Virtuální stroj můžete vytvořit z příkazového řádku, ale my použijeme VMM. První krok by měl být intuitivní. Zadejte název a určete umístění instalačního disku. Může to být buď lokální zařízení ve formě CD/DVD disku nebo obrazu ISO, nebo HTTP nebo FTP server, NFS nebo PXE.

Využíváme lokální média. Nyní je potřeba nastavit, zda se bude jednat o fyzické zařízení nebo obrázek. V našem případě se používá ISO. Dále je třeba vybrat typ a verzi ISO. To nevyžaduje tak vysokou přesnost, ale správná volba zlepší výkon virtuálního stroje.

Nastavte počet procesorů a velikost paměti RAM:

Čtvrtou fází je virtuální disk. Můžete vytvořit nový obrázek nebo použít existující. Musíte vybrat velikost disku a určit, zda se obraz disku vytvoří okamžitě při dané velikosti, nebo se jeho velikost bude dynamicky zvětšovat podle potřeby. Je třeba poznamenat, že přidělení veškerého prostoru pro obraz disku najednou zlepšuje výkon a snižuje fragmentaci systému souborů.

Dále se budeme více věnovat diskovému subsystému. Pamatujte však, že při spuštění v uživatelském režimu nebudete mít přístup k zápisu do /var, kde jsou ve výchozím nastavení uloženy obrazy virtuálních disků. Proto budete muset pro obrázky nastavit jiné umístění.

Fáze 5 je výstup souhrnných dat s možností konfigurace některých pokročilých možností. Zde můžete změnit typ sítě, nastavit pevné MAC adresy, vybrat typ virtualizace a cílovou architekturu. Pokud používáte uživatelský režim, možnosti konfigurace sítě budou omezené, například nebudete moci vytvářet mosty mezi síťovými rozhraními. Poslední věc: pokud váš procesor nepodporuje hardwarovou virtualizaci, pole Virt Type bude QUEMU a nebude možné jej změnit na KVM. Můžete se podívat, jak vypadají typická nastavení pro virtuální počítač Ubuntu:

  • Modul jádra KVM: GPL v2.
  • Modul uživatelského prostředí KVM: LGPL v2.
  • Knihovna virtuálních procesorů QEMU (libqemu.a) a emulátor systému QEMU PC: LGPL.
  • Emulátor uživatelského režimu Linux QEMU: GPL.
  • Soubory BIOS (bios.bin, vgabios.bin a vgabios-cirrus.bin): SeaBIOS (LGPL v2 nebo novější).

Grafické nástroje

libvirt podporuje KVM

  • Kimchi nástroj pro správu webu pro KVM
  • Virtual Machine Manager podporuje vytváření, úpravy, spouštění a zastavování strojů KVM, stejně jako studenou migraci virtuálních počítačů mezi hostiteli.
  • Proxmox Virtual Environment je bezplatný balíček pro správu virtualizace, včetně KVM a OpenVZ. Má instalátor, vzdálené webové rozhraní pro správu a volitelnou komerční podporu.
  • Platforma pro správu OpenQRM pro správu heterogenních datových center.
  • GNOME boxy Rozhraní Gnome pro správu hostů libvirt na Linuxu.
  • oVirt je bezplatný nástroj pro správu virtualizace pro KVM založený na libvirt

Implementace

  • Debian 5.0 a vyšší
  • Gentoo Linux
  • distribuce založené na illumos
  • OpenIndiana
  • Red Hat Enterprise Linux (RHEL) 5.4 a vyšší
  • SmartOS
  • SUSE Linux Enterprise Server (SLES) 11 SP1 a vyšší
  • Ubuntu 10.04 LTS a vyšší
  • Univention Corporate Server

Osobně je pro mě nejjednodušší představit si KVM (kernel-based Virtual Machine) jako úroveň abstrakce nad hardwarovými technologiemi. Virtualizace Intel VT-x a AMD-V. Vezmeme stroj s procesorem, který podporuje jednu z těchto technologií, a vsadíme na to Linuxový stroj, v Linuxu nainstalujeme KVM, výsledkem je možnost vytvářet virtuální stroje. Zhruba takto funguje cloud hosting, například Amazon Web Services. Spolu s KVM se někdy používá také Xen, ale diskuse o této technologii je nad rámec tohoto příspěvku. Na rozdíl od technologií virtualizace kontejnerů, například Docker, vám KVM umožňuje spouštět jakýkoli operační systém jako hostující systém, ale má také Ó Vyšší režie pro virtualizaci.

Poznámka: Níže popsané kroky jsem testoval na Ubuntu Linux 14.04, ale teoreticky budou z velké části platné pro obě další verze Ubuntu a další Linuxové distribuce. Vše by mělo fungovat jak na ploše, tak na serveru, přístupné přes SSH.

Instalace KVM

Zkontrolujeme, zda náš procesor podporuje Intel VT-x nebo AMD-V:

grep -E "(vmx|svm)" /proc/cpuinfo

Pokud se něco zahřeje, znamená to, že je to podporováno a můžete pokračovat.

Instalace KVM:

aktualizace sudo apt-get
sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils

Co se kde obvykle ukládá:

  • /var/lib/libvirt/boot/ - ISO obrazy pro instalaci hostujících systémů;
  • /var/lib/libvirt/images/ - obrázky pevné disky hostující systémy;
  • /var/log/libvirt/ - zde byste měli hledat všechny protokoly;
  • /etc/libvirt/ - adresář s konfiguračními soubory;

Nyní, když je nainstalován KVM, pojďme vytvořit náš první virtuální stroj.

Vytvoření prvního virtuálního stroje

Jako hostující systém jsem zvolil FreeBSD. Stáhněte si ISO obraz systému:

cd /var/lib/libvirt/boot/
sudo wget http://ftp.freebsd.org/ path/ to/ some-freebsd-disk.iso

Virtuální stroje jsou ve většině případů spravovány pomocí nástroje virsh:

sudo virsh --help

Před spuštěním virtuálního stroje budeme muset shromáždit nějaké další informace.

Podíváme se na seznam dostupných sítí:

sudo virsh net-list

Zobrazit informace o konkrétní síť(pojmenovaný výchozí):

sudo virsh net-info výchozí

Podívejme se na seznam dostupných optimalizací pro hostující operační systémy:

sudo virt-install --os-variant seznam

Nyní tedy vytvoříme virtuální stroj s 1 CPU, 1 GB RAM a 32 GB místa na disku, připojený k výchozí síti:

sudo virt-install\
--virt-type =kvm\
--name freebsd10\
--ram 1024\
--vcpus=1\
--os-variant =freebsd8 \
--hvm\
--cdrom =/ var/ lib/ libvirt/ boot/ FreeBSD-10.2 -RELEASE-amd64-disc1.iso \
--síťová síť =výchozí,model =virtio \
--graphics vnc\
--cesta k disku =/ var/ lib/ libvirt/ images/ freebsd10.img,size =32 ,bus =virtio

Můžete vidět:

VAROVÁNÍ Nelze se připojit ke grafické konzoli: virt-viewer ne
nainstalováno. Nainstalujte si prosím balíček "virt-viewer".

Instalace domény stále probíhá. Můžete se znovu připojit ke konzole
k dokončení procesu instalace.

To je normální, tak to má být.

Poté se podívejte na vlastnosti virtuálního stroje ve formátu XML:

sudo virsh dumpxml freebsd10

Zde je nejvíce úplné informace. Patří sem například MAC adresa, kterou budeme potřebovat později. Prozatím zjišťujeme informace o VNC. V mém případě:

Pomocí vašeho oblíbeného klienta (osobně používám Rammina) se přihlásíme přes VNC, v případě potřeby pomocí SSH přesměrování portů. Dostaneme se přímo do instalačního programu FreeBSD. Pak je vše jako obvykle - Další, Další, Další, dostaneme nainstalovaný systém.

Základní příkazy

Pojďme se nyní podívat na základní příkazy pro práci s KVM.

Získání seznamu všech virtuálních strojů:

sudo virsh list --all

Získání informací o konkrétním virtuálním počítači:

sudo virsh dominfo freebsd10

Spusťte virtuální stroj:

sudo virsh start freebsd10

Zastavit virtuální počítač:

sudo virsh vypnutí freebsd10

Stěží přibijete virtuální stroj (navzdory názvu, toto Ne vymazání):

sudo virsh zničit freebsd10

Restartujte virtuální počítač:

sudo virsh restart freebsd10

Klonovat virtuální stroj:

sudo virt-clone -o freebsd10 -n freebsd10-clone \
--file /var/lib/libvirt/images/freebsd10-clone.img

Povolit/zakázat automatické spouštění:

sudo virsh autostart freebsd10
sudo virsh autostart --zakázat freebsd10

Spuštění virsh v dialogovém režimu (všechny příkazy v dialogovém režimu - jak je popsáno výše):

sudo virsh

Úpravy vlastností virtuálního stroje v XML, včetně zde můžete změnit limit na množství paměti atd.:

sudo virsh upravit freebsd10

Důležité! Komentáře z upraveného XML jsou bohužel odstraněny.

Když je virtuální počítač zastaven, lze také změnit velikost disku:

sudo qemu-img resize /var/ lib/ libvirt/ images/ freebsd10.img -2G
sudo qemu-img info /var/lib/libvirt/images/freebsd10.img

Důležité! Vašemu hostujícímu OS se pravděpodobně nebude líbit, že se disk náhle zvětší nebo zmenší. V nejlepší scénář, spustí se v nouzovém režimu s návrhem na nové rozdělení disku. Asi by se ti to nemělo chtít. Může být mnohem jednodušší vytvořit nový virtuální stroj a migrovat na něj všechna data.

Zálohování a obnova jsou poměrně jednoduché. Výstup dumpxml stačí někam uložit, stejně jako obraz disku a pak je obnovit. na YouTube podařilo najít video S ukázkou tohoto procesu opravdu není vše těžké.

Nastavení sítě

Zajímavá otázka - jak zjistit, jakou IP adresu dostal virtuální stroj po nabootování? KVM to dělá chytrým způsobem. Nakonec jsem napsal tento skript v Pythonu:

#!/usr/bin/env python3

# skript virt-ip.py
# (c) 2016 Aleksander Alekseev
# http://site/

import sys
import re
import os
podproces importu
z xml .etree importujte ElementTree

def eprint(str):
print(str, soubor = sys.stderr)

if len(sys.argv)< 2 :
eprint("USAGE: " + sys .argv [ 0 ] + " " )
eprint("Příklad: " + sys .argv [ 0 ] + " freebsd10" )
sys.exit(1)

if os .geteuid () != 0:
eprint("CHYBA: měli byste být root")
eprint("Tip: spusťte `sudo " + sys .argv [ 0 ] + " ...`" ) ;
sys.exit(1)

pokud podproces .call ( "který arping 2>&1 >/dev/null", shell = True ) != 0 :
eprint("CHYBA: arping nenalezen" )
eprint( "Tip: spusťte `sudo apt-get install arping`")
sys.exit(1)

Doména = sys.argv[1]

pokud ne, znovu .match ("^*$" , doména):
eprint( "CHYBA: neplatné znaky v názvu domény")
sys.exit(1)

Domout = subprocess .check_output ("virsh dumpxml " +doména+" || true" ,
shell = pravda)
domout = domout.decode("utf-8").strip()

if domout == "" :
# chybová zpráva již vytištěna pomocí dumpxml
sys.exit(1)

Doc = ElementTree.fromstring(domout)

# 1. seznam všech síťových rozhraní
# 2. spusťte `arping` na každém rozhraní paralelně
#3.grep odpovídá
cmd = "(ifconfig | cut -d " " -f 1 | grep -E "." | " + \
"xargs -P0 -I IFACE arping -i IFACE -c 1 () 2>&1 | " + \
"grep "bytes from") || true"

pro dítě v doc.iter() :
if child.tag == "mac" :
macaddr = dítě.attrib["adresa"]
macout = subprocess .check_output (cmd .format (macaddr) ,
shell = pravda)
print(macout.decode("utf-8"))

Skript pracuje jak s výchozí sítí, tak s přemostěnou sítí, jejíž konfiguraci zvážíme později. V praxi je však mnohem pohodlnější nakonfigurovat KVM tak, aby hostujícím systémům přiděloval vždy stejné IP adresy. Chcete-li to provést, upravte nastavení sítě:

sudo virsh net-edit default

... něco takového:

>



>

Po provedení těchto změn


>

... a nahraďte to něčím jako:




>

Restartujeme hostující systém a zkontrolujeme, zda obdržel IP přes DHCP z routeru. Pokud chcete, aby měl hostovaný systém statickou IP adresu, nakonfiguruje se jako obvykle v samotném hostujícím systému.

program virt-manager

Také by vás mohl zajímat program virt-manager:

sudo apt-get install virt-manager
sudo usermod -a -G libvirtd USERNAME

Takto vypadá jeho hlavní okno:

Jak můžete vidět, virt-manager není pouze GUI pro virtuální stroje běžící lokálně. S jeho pomocí můžete spravovat virtuální stroje běžící na jiných hostitelích a také se dívat na krásnou grafiku v reálném čase. Osobně považuji za obzvláště výhodné ve virt-manageru, že nemusíte prohledávat konfigurace, abyste zjistili, který port VNC běží na konkrétním hostujícím systému. Stačí najít virtuální počítač v seznamu, dvakrát kliknout a získat přístup k monitoru.

S pomocí virt-manageru je také velmi pohodlné dělat věci, které by jinak vyžadovaly pracnou úpravu XML souborů a v některých případech i provádění dalších příkazů. Například přejmenování virtuálních strojů, nastavení afinity CPU a podobné věci. Mimochodem, využití procesoru afinita výrazně snižuje účinek hluční sousedé a dopad virtuálních strojů na hostitelský systém. Vždy jej používejte, kdykoli je to možné.

Pokud se rozhodnete použít KVM jako náhradu za VirtualBox, mějte na paměti, že mezi sebou nebudou moci sdílet hardwarovou virtualizaci. Aby KVM fungovalo na vaší ploše, budete muset nejen zastavit všechny virtuální stroje ve VirtualBoxu a Vagrantu, ale také restartovat systém. Osobně považuji KVM za mnohem pohodlnější než VirtualBox, přinejmenším proto, že nevyžaduje spuštění příkazu nastavení sudo /sbin/rcvboxdrv po každé aktualizaci jádra funguje adekvátně s Unity a obecně umožňuje skrýt všechna okna.




Nahoru