KVM

Nastavenie zásobníka Libvirt QEMU a KVM na Debiane

Nastavenie zásobníka Libvirt QEMU a KVM na Debiane
Virtualizácia založená na QEMU-KVM je jadrom virtualizačného zásobníka založeného na systéme Linux. Je to bezplatný a otvorený zdroj a je jednou z najbežnejších virtualizačných technológií v priemysle. Väčšina poskytovateľov cloudových služieb používa KVM, a to z dobrého dôvodu. Ponúka veľmi efektívny a napriek tomu veľmi bezpečný virtualizačný zásobník a nie je potrebné riešiť žiadne komplikované licencie. Toto nie je prípad vášho typického nastavenia Hyper-V alebo VMWare. Nevýhodou však je, že nastavenie môže byť veľmi zložité, najmä pre neskúsených používateľov. Účelom tohto článku je znížiť túto zložitosť pre čitateľa.

S týmto tvrdením skúsme nainštalovať náš vlastný hypervízor KVM na serveri Debian 9 .

Povolenie rozšírení VT-x alebo AMD-V

V ideálnom prípade budete potrebovať čistú inštaláciu svojej obľúbenej distribúcie Linuxu na stroj (nie VM), ktorý má pomerne moderný procesor. Väčšina moderných procesorov Intel podporuje rozšírenia VT-x a podobne má AMD svoje rozšírenia AMD-V. Tieto rozšírenia sú „vylepšeniami“ zabudovanými priamo do kremíka vášho procesora, čo umožňuje rýchlejšiu a bezpečnejšiu virtualizáciu. Tieto rozšírenia musíte povoliť z ponuky BIOS / UEFI základnej dosky. Ďalšie informácie nájdete v príručke k základnej doske.

Ak nechcete svoju perfektne fungujúcu pracovnú stanicu Linuxu znechutiť, môžete na spustenie týchto experimentov použiť virtuálny počítač v cloude. Napríklad DigitalOcean ponúka virtuálne stroje, ktoré majú vnorenú virtualizáciu povolenú. To vám umožňuje spúšťať VM vo vašom VM hostenom v cloude (toto sa nazýva vnorená virtualizácia). Je zrejmé, že to bude veľmi neefektívny spôsob, ako prakticky spustiť hypervízor, ale ako experiment to pôjde dobre. Uistite sa, že máte najmenej 4 GB pamäte a viac ako 2 procesory.

Po povolení uvedených rozšírení to môžete overiť spustením lscpu a vyhľadaním položky Virtualization:

$ lscpu
… .
Virtualizácia: VT-x
… .

Teraz, keď máme rozšírenia povolené, je čas posunúť sa v zásobníku vyššie.

Inštalácia KVM a QEMU

KVM (alebo Kernel-Based Virtual Machine) sa skladá z niekoľkých modulov jadra Linuxu, ktoré využijú výhody rozšírení CPU, ktoré sme predtým povolili. Na druhej strane QEMU pozostáva z množstva užívateľských programov, ktoré nám poskytujú možnosti emulácie. Ako samostatný softvér možno QEMU použiť na spustenie programov z jednej architektúry, napríklad ARM, na inej, napríklad x86_64 a naopak. Môže byť použitý na spustenie čohokoľvek od jedného binárneho súboru po kompletný operačný systém.

Použijeme ho samozrejme iba na virtualizáciu operačných systémov x86_64 na platforme x86_64. A na to potrebujeme jediné balenie:

$ sudo apt nainštalovať qemu-kvm

To, že balík načítal všetky požadované moduly, môžete overiť spustením:

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

To je teoreticky všetko, čo potrebujete. Ale čoskoro si uvedomíte, že je to praktické. Virtuálne stroje sú nesmierne zložité a vyžadujeme softvérový obal, aby sme mohli pomerne automaticky (a škálovateľne) spravovať všetky rôzne požiadavky, ako je sieť, správa súborového systému atď. Potrebujeme na to virtualizačnú knižnicu / démona Libvirt.

Inštaluje sa Libvirt

Libvirt je podstatnou súčasťou vášho virtualizačného zásobníka. Démon libvirtd spúšťa služby spojené s virtualizáciou na pozadí. Služby, ktoré počúvajú požiadavky ako „Vytvoriť virtuálny počítač“, „Zničiť virtuálny počítač“, „Vytvoriť sieť“ atď. A vykonáva ich v nich pomocou základných nástrojov systému Linux, ako sú binárne súbory qemu, iptables atď.

Libvirt je veľmi zovšeobecnený a dá sa použiť na správu hostí KVM, kontajnerov LXC a virtualizačného zásobníka Xen. Teraz sa budeme venovať iba Libvirtu pre hostí KVM. Libvirtd sprístupňuje API, ktoré môžu byť spotrebované aplikáciami GUI ako virt-manager alebo oVirt alebo nástroje príkazového riadku ako virt-install, virsh atď. Môžeme písať dokonca aj našich vlastných klientov, ktorí používajú rovnaké štandardné API.  Budeme používať nástroje príkazového riadku, ako napríklad virsh a virt-install, aby sme zaistili štandardizáciu vecí.

Nainštalujme si všetky tieto nástroje:

$ apt nainštalovať libvirt-clients libvirt-daemon-system virtinst

Budeme tiež potrebovať ďalší balík libguestfs-tools, ktorý nám pomôže s úpravami alebo úpravami pevných diskov a súborových systémov hosťujúcich VM.

Skvelé! Teraz sme nainštalovali celý zásobník a vieme, ako je usporiadaná architektúra. Ak chcete používať libvirt (a súvisiace nástroje), pridajte svojho používateľa do skupín libvirt-qemu a libvirt.

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

Alebo spustite príkazy ako užívateľ root.

Virsh a spustenie predvolenej siete

Obslužný program príkazového riadku virsh budete často používať pri správe svojich virtuálnych počítačov. Môžete jednoducho napísať virsh a prejsť do rozhrania príkazového riadku virsh alebo napísať virsh [Možnosti] z vášho bežného shellu. Prejdite si výstup virsh help vždy, keď uviaznete na nejakej operácii súvisiacej s VM.

Prvý príkaz virsh, ktorý použijeme, vyvolá predvolenú sieť, ku ktorej sa môže VM pripojiť:

predvolené nastavenie $ virsh net-autostart
$ virsh net-start predvolené

Spustí sa predvolená sieť a zabezpečí sa automatické spustenie po reštarte hostiteľa. Ak chcete skontrolovať podrobnosti o tejto predvolenej sieti, použite príkaz:

$ virsh net-dumpxml predvolené

predvolené
3d723dc6-49a4-4f73-bf6d-623d6b46b099












Súbor xml vám môže ukázať rozsah možných adries IP a spôsob, akým budú komunikovať s okolitým svetom. Prevádzka k nim bude v zásade prichádzať prostredníctvom protokolu NAT a nebudú súčasťou externej siete vášho hostiteľa. Môžete použiť Bridge Networking na vystavenie každého VM sieti LAN hostiteľského počítača.

Spustenie virtuálneho stroja

Na spustenie virtuálneho stroja potrebujeme inštalačné médium (napríklad inštalačný ISO pre akýkoľvek operačný systém) a koľko CPU a koľko pamäte je potrebné prideliť VM a či potrebuje VNC. V tomto kroku môžete skutočne oceniť inštalátor grafického používateľského rozhrania, ako je napríklad virt-manager, urobíme to však pomocou pomerne zložitého príkazu virt-install.

Rád by som nechal všetky svoje bootovacie médiá na / var / lib / libvirt / boot a všetky virtuálne počítače a ich virtuálny pevný disk na / var / lib / libvirt / images (predvolené umiestnenie), čo zjednodušuje organizáciu.

$ cd / var / lib / libvirt / boot
$ wget vydaní http: //.ubuntu.sk / 18.04.2 / ubuntu-18.04.2-desktop-amd64.izo

Vyššie uvedený príkaz načíta ISO desktopu Ubuntu, rovnako ľahko môžete získať CentOS alebo inú distribúciu, ktorú si želáte.

Ak chcete vytvoriť nový virtuálny počítač a spustiť ho, postupujte takto:

$ virt-install --virt typu kvm \
--meno myVM \
--pamäť 2048 --vcpus = 2 \
--cdrom / var / lib / libvirt / boot / ubuntu-18.04.2-desktop-amd64.izo \
--veľkosť disku = 40 \
--graphics vnc, listen = 0.0.0.0, port = 5900 \
--noautoconsole

Vyššie uvedený príkaz je skutočne komplikovaný. Navrhujem uložiť tieto príkazy v textových súboroch a spustiť ich ako spustiteľné skripty vždy, keď vytvoríte nový VM. Väčšina parametrov, ako napríklad virt-type a virt-name, je úplne jasná. Sú len namáhavé zapisovať si.

Posledná možnosť zobrazenia VNC spustí server VNC a umožní vám vzdialený prístup ku konzole k vášmu VM pripojením k portu hostiteľa 5900. Otvorte klienta VNC na pracovnej ploche a prejdite na adresu IP hostiteľa KVM na porte 5900. Uistite sa, že ste dosiahli IP hostiteľa a nie IP VM. Váš VNC sa pripojí k video výstupu z vášho VM a môžete pokračovať v inštalácii.

Kam ďalej?

Od tejto chvíle môžete vyskúšať pozastavenie, zastavenie a odstránenie virtuálnych počítačov. Môžete tiež upraviť základnú infraštruktúru pridaním fondov pre úložisko a konfiguráciou mostových sietí. Všetky konfiguračné súbory pre jednotlivé virtuálne počítače, sieťové rozhrania a úložné oblasti sú uložené na adresári / etc / libvirt / a / etc / libvirt / qemu.

Niekedy budete musieť fyzicky odstrániť súbory z pevného disku uložené na / lib / libvirt / images aj po odstránení VM z libvirt. Ak chcete veci ďalej automatizovať, skúste importovať obrázky qcow2, ktoré väčšina linuxových distribúcií ako Ubuntu a CentOS. Tieto majú v sebe predinštalovaný OS.

Záver

Nastavenie nie je také ľahké ako nastavenie VirtualBoxu a dôvod je rôznorodý. Väčšina zásobníka je komplikovaná, pretože je navrhnutá tak, aby bola modulárna a vysoko škálovateľná. Nerobí žiadne predpoklady o tom, kde spustíte VM. Prostredím môže byť osobný počítač alebo dátové centrum. Práca s GUI môže do istej miery pomôcť znížiť túto zložitosť. Tieto systémy sú však navrhnuté tak, aby spolupracovali s rozhraním REST API na pripojenie k fakturačným systémom, monitorovacím systémom atď. Vašej organizácie. Po nasadení sa ich človek takmer nikdy nedotkne.

To znamená, že automatizácia je názov hry s libvirt a qemu-kvm. Prezrite si oficiálnu dokumentáciu a napíšte svoj vlastný vynikajúci skript, ktorý roztočí flotilu virtuálnych počítačov. Ak je vám tento návod užitočný, dajte nám vedieť.

Hry 5 najlepších arkádových hier pre Linux
5 najlepších arkádových hier pre Linux
V dnešnej dobe sú počítače vážne stroje používané na hranie hier. Ak nemôžete dosiahnuť nové najvyššie skóre, budete vedieť, čo tým myslím. V tomto pr...
Hry Battle For Wesnoth 1.13.6 Vývoj uvoľnený
Battle For Wesnoth 1.13.6 Vývoj uvoľnený
Battle For Wesnoth 1.13.6 vydané minulý mesiac, je šiestym vývojovým vydaním v 1.13.séria x a prináša množstvo vylepšení, najmä používateľského rozhra...
Hry Ako nainštalovať League Of Legends na Ubuntu 14.04
Ako nainštalovať League Of Legends na Ubuntu 14.04
Ak ste fanúšikom League of Legends, potom je to pre vás príležitosť otestovať spustenie League of Legends. Upozorňujeme, že program PlayOnLinux podpor...