KVM

Nastavení zásobníku Libvirt QEMU a KVM na Debianu

Nastavení zásobníku Libvirt QEMU a KVM na Debianu
Virtualizace založená na QEMU-KVM je jádrem virtualizačního zásobníku založeného na Linuxu. Je to bezplatný a otevřený zdroj a je jednou z nejběžnějších virtualizačních technologií v tomto odvětví. Většina poskytovatelů cloudových služeb používá KVM, a to z dobrého důvodu. Nabízí velmi efektivní a přesto velmi bezpečný virtualizační zásobník a není třeba řešit spletité licence. To není případ vašeho typického nastavení Hyper-V nebo VMWare. Nevýhodou však je, že nastavení může být velmi složité, zejména pro nezkušené uživatele. Tento článek je určen ke snížení této složitosti pro čtenáře.

Díky tomu si zkusme nastavit náš vlastní hypervizor KVM na serveru Debian 9 .

Povolení rozšíření VT-x nebo AMD-V

V ideálním případě budete potřebovat čistou instalaci vaší oblíbené distribuce Linuxu na stroj (nikoli VM), který má poměrně moderní CPU. Většina moderních procesorů Intel podporuje rozšíření VT-x a podobně má AMD své rozšíření AMD-V. Tato rozšíření jsou „vylepšeními“ zabudovanými přímo do křemíku vašeho CPU, což umožňuje rychlejší a bezpečnější virtualizaci. Musíte tato rozšíření povolit z nabídky BIOS / UEFI základní desky. Další informace naleznete v příručce k základní desce.

Pokud si nepřejete, aby vaše perfektně fungující pracovní stanice s Linuxem byla znechucená, můžete ke spuštění těchto experimentů použít virtuální počítač v cloudu. DigitalOcean například nabízí virtuální stroje, které mají povolenou vnořenou virtualizaci. To vám umožní spouštět virtuální počítače uvnitř vašeho cloudu hostovaného virtuálního počítače (toto se nazývá vnořená virtualizace). Je zřejmé, že to bude velmi neefektivní způsob, jak prakticky spustit hypervisor, ale jako experiment to půjde dobře. Ujistěte se, že máte alespoň 4 GB paměti a více než 2 CPU.

Jakmile povolíte uvedená rozšíření, můžete to ověřit spuštěním lscpu a hledáním položky Virtualization:

$ lscpu
… .
Virtualizace: VT-x
… .

Nyní, když máme rozšíření povolen čas, abychom se v zásobníku posunuli dále.

Instalace KVM a QEMU

KVM (nebo Kernel-Based Virtual Machine) se skládá z několika modulů jádra Linuxu, které využijí výhody rozšíření CPU, které jsme dříve povolili. QEMU se na druhé straně skládá z mnoha programů uživatelských zemí, které nám poskytují možnosti emulace. Jako samostatný software lze QEMU použít ke spouštění programů z jedné architektury, jako je ARM, na jiné, jako je x86_64 a naopak. Lze jej použít ke spuštění čehokoli od jednoho binárního souboru po kompletní operační systém.

Samozřejmě jej použijeme pouze k virtualizaci operačních systémů x86_64 na platformě x86_64. A k tomu potřebujeme jen jedno balení:

$ sudo apt install qemu-kvm

To, že balíček načetl všechny požadované moduly, můžete ověřit spuštěním:

$ lsmod | grep kvm
kvm_intel 200704 0
kvm 598016 1 kvm_intel
irqbypass 16384 1 kvm

To je vše, co teoreticky potřebujete. Brzy si ale uvědomíte, že je to praktické. Virtuální stroje jsou nesmírně složité a vyžadujeme softwarový obal, který spravuje všechny různé požadavky, jako je síť, správa souborového systému atd., Poměrně automatizovaným způsobem (a škálovatelným způsobem). K tomu potřebujeme virtualizační knihovnu / démona Libvirt.

Instalace Libvirt

Libvirt je podstatnou součástí vašeho virtualizačního zásobníku. Démon libvirtd spouští služby spojené s virtualizací na pozadí. Služby, které naslouchají požadavkům jako „Vytvořit virtuální počítač“, „Zničit virtuální počítač“, „Vytvořit síť“ atd. A provádí je v nich pomocí základních nástrojů systému Linux, jako jsou binární soubory qemu, iptables atd.

Libvirt je velmi obecný a lze jej použít ke správě hostů KVM, kontejnerů LXC a virtualizačního zásobníku Xen. Prozatím se zaměříme pouze na Libvirt pro hosty KVM. Libvirtd vystavuje API, které může být spotřebováno aplikacemi GUI, jako je virt-manager nebo oVirt nebo nástroje příkazového řádku jako virt-install, virsh atd. Můžeme psát i naše vlastní klienty, kteří používají stejné standardní API.  Budeme používat nástroje příkazového řádku, například virsh a virt-install, abychom udrželi standardizované věci.

Nainstalujeme si všechny tyto nástroje:

$ apt install libvirt-clients libvirt-daemon-system virtinst

Budeme také potřebovat další balíček libguestfs-tools, který nám pomůže upravit nebo upravit pevné disky a souborové systémy hostovaných VM.

Skvělý! Nyní jsme nainstalovali celý zásobník a víme, jak je rozložena architektura. Chcete-li použít libvirt (a související nástroje), přidejte uživatele do skupin libvirt-qemu a libvirt.

$ sudo usermod -aG libvirt
$ sudo usermod -aG libvirt-qemu

Nebo spusťte příkazy jako uživatel root.

Virsh a spuštění výchozí sítě

Obslužný program virsh příkazového řádku je něco, co při správě svých virtuálních počítačů hodně využijete. Můžete jednoduše zadat virsh a přejít do rozhraní příkazového řádku virsh nebo zadat virsh [Možnosti] z vašeho běžného prostředí. Projděte si výstup virsh help, kdykoli narazíte na nějakou operaci související s VM.

První příkaz virsh, který použijeme, vyvolá výchozí síť, ke které se může VM připojit:

$ virsh net-autostart výchozí
$ virsh net-start výchozí

Tím se spustí výchozí síť a zajistí se její automatické spuštění při restartu hostitele. Chcete-li zkontrolovat podrobnosti o této výchozí síti, použijte příkaz:

$ virsh net-dumpxml výchozí

výchozí
3d723dc6-49a4-4f73-bf6d-623d6b46b099












Soubor XML vám může ukázat rozsah možných IP adres a způsob, jakým budou komunikovat s vnějším světem. Provoz k nim v zásadě přijde přes NAT a nebudou součástí externí sítě vašeho hostitele. Můžete použít Bridge Networking k vystavení každého virtuálního počítače do LAN hostitelského počítače.

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

Ke spuštění virtuálního počítače potřebujeme instalační médium (například instalační ISO pro libovolný operační systém) a kolik CPU a kolik paměti je třeba přidělit virtuálnímu počítači a jestli potřebuje VNC. V tomto kroku opravdu oceníte instalační program GUI, jako je virt-manager, ale uděláme to pomocí poměrně složitého příkazu virt-install.

Rád bych nechal všechna svá zaváděcí média na / var / lib / libvirt / boot a všechny virtuální počítače a jejich virtuální pevný disk na / var / lib / libvirt / images (výchozí umístění), což zjednodušuje organizaci.

$ cd / var / lib / libvirt / boot
$ wget vydává http: //.ubuntu.com / 18.04.2 / ubuntu-18.04.2-desktop-amd64.iso

Výše uvedený příkaz načte ISO desktopu Ubuntu, stejně snadno získáte CentOS nebo jakoukoli jinou distribuci, kterou si přejete.

Chcete-li vytvořit nový virtuální počítač a spustit jej, postupujte takto:

$ virt-install --virt typu kvm \
--jméno myVM \
--paměť 2048 --vcpus = 2 \
--cdrom / var / lib / libvirt / boot / ubuntu-18.04.2-desktop-amd64.iso \
--velikost disku = 40 \
--graphics vnc, listen = 0.0.0.0, port = 5900 \
--noautoconsole

Výše uvedený příkaz je skutečně komplikovaný. Navrhuji uložit tyto příkazy v textových souborech a spustit je jako spustitelné skripty, kdykoli vytvoříte nový virtuální počítač. Většina parametrů, jako je virt-type a virt-name, je docela vysvětlující. Jsou jen zdlouhavé zapisovat.

Poslední možnost zobrazení VNC spustí server VNC a umožní vám vzdálený přístup ke konzole k vašemu virtuálnímu počítači připojením k portu hostitele 5900. Otevřete klienta VNC na ploše a přejděte na IP hostitele KVM na portu 5900. Ujistěte se, že dosáhnete IP hostitele a ne IP virtuálního počítače. Vaše VNC se připojí k video výstupu vašeho virtuálního počítače a můžete pokračovat v instalaci.

Kam dál?

Od této chvíle můžete zkusit pozastavit, zastavit a odstranit virtuální počítače. Můžete také upravit podkladovou infrastrukturu přidáním fondů pro úložiště a konfigurací sítí mostů. Všechny konfigurační soubory pro jednotlivé virtuální počítače, síťová rozhraní a fondy úložišť jsou uloženy na / etc / libvirt / a / etc / libvirt / qemu.

Někdy budete muset fyzicky odstranit soubory pevného disku uložené na / lib / libvirt / images i po odebrání virtuálního počítače z libvirtu. Chcete-li věci dále automatizovat, zkuste importovat obrázky qcow2, které většina linuxových distribucí, jako jsou Ubuntu a CentOS. V nich je předinstalován OS.

Závěr

Nastavení tohoto nastavení není nikde tak snadné jako nastavení VirtualBoxu a důvod je rozmanitý. Většina zásobníku je komplikovaná, protože je navržena tak, aby byla modulární a vysoce škálovatelná. Nedělá žádné předpoklady ohledně toho, kde používáte virtuální počítač. Prostředím může být osobní počítač nebo datové centrum. Práce s grafickým uživatelským rozhraním může do určité míry pomoci tuto složitost snížit. Tyto systémy jsou však navrženy pro práci s REST API pro připojení k fakturačním systémům, monitorovacím systémům atd. Vaší organizace. Člověk se jich po nasazení téměř nikdy nedotkne.

To znamená, že automatizace je název hry s libvirt a qemu-kvm. Prohlédněte si oficiální dokumentaci a napište svůj vlastní skvělý skript, který roztočí flotilu virtuálních počítačů, a dejte nám vědět, pokud vám tento návod bude užitečný.

Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvoření vlastní simulace dopravy může být zábavné, uvolňující a mimořádně lákavé. Proto se musíte ujistit, že vyzkoušíte co nejvíce her, abyste našl...
Hry Výukový program OpenTTD
Výukový program OpenTTD
OpenTTD je jednou z nejpopulárnějších her pro obchodní simulaci. V této hře musíte vytvořit skvělé dopravní podnikání. Začnete však na začátku kolem r...
Hry SuperTuxKart pro Linux
SuperTuxKart pro Linux
SuperTuxKart je skvělý titul navržený tak, aby vám ve vašem systému Linux přinesl zážitek Mario Kart zdarma. Je to docela náročné a zábavné hrát, je n...