KVM

Postavljanje Libvirt QEMU i KVM steka na Debianu

Postavljanje Libvirt QEMU i KVM steka na Debianu
Virtualizacija temeljena na QEMU-KVM-u srž je stoga virtualizacije temeljenog na Linuxu. Besplatan je i otvoren je i jedna je od najrasprostranjenijih tehnologija za virtualizaciju u industriji. Većina davatelja usluga u oblaku koristi KVM i to iz dobrog razloga. Nudi vrlo učinkovit, a opet vrlo siguran stog za virtualizaciju i ne postoji zamršeno licenciranje s kojim se možete nositi. To nije slučaj s vašim tipičnim postavkama Hyper-V ili VMWare. Međutim, kompromis je u tome što postavljanje može biti vrlo složeno, posebno za neiskusne korisnike. Ovaj je članak namijenjen smanjenju složenosti čitatelja.

Uz to, pokušajmo postaviti naš vlastiti KVM hipervizor na Debian 9 poslužitelju .

Omogućavanje VT-x ili AMD-V proširenja

U idealnom slučaju trebat će vam čista instalacija vaše omiljene Linux distribucije na stroju (a ne na VM-u) koji ima prilično moderan CPU. Većina modernih Intelovih procesora podržava VT-x proširenja i, slično tome, AMD ima svoja AMD-V proširenja. Ova su proširenja "poboljšanja" ugrađena točno u silicij vašeg CPU-a što omogućuje bržu i sigurniju virtualizaciju. Ova proširenja morate omogućiti unutar BIOS / UEFI izbornika vaše matične ploče. Dodatne informacije potražite u priručniku matične ploče.

Ako ne želite uništavati svoju savršeno radnu Linux radnu stanicu, možete upotrijebiti virtualni stroj u oblaku za pokretanje ovih eksperimenata. DigitalOcean, na primjer, nudi virtualne strojeve s omogućenom ugniježđenom virtualizacijom. To vam omogućuje pokretanje VM-ova unutar VM-a hostiranog u oblaku (to je poznato kao ugniježđena virtualizacija). Očito je da će ovo biti vrlo neučinkovit način za praktično pokretanje hipervizora, ali kao eksperiment to će učiniti sasvim u redu. Pripazite da nabavite najmanje 4 GB memorije i više od 2 CPU-a.

Nakon što omogućite navedena proširenja, to možete provjeriti pokretanjem lscpu i traženjem stavke Virtualizacija:

$ lscpu
.. .
Virtualizacija: VT-x
.. .

Sad kad smo proširenjima omogućili vrijeme za dalje pomicanje u hrpi.

Instaliranje KVM-a i QEMU-a

KVM (ili virtualni stroj zasnovan na jezgri) sastoji se od nekoliko modula jezgre Linuxa koji će iskoristiti CPU proširenja koja smo ranije omogućili. QEMU se, s druge strane, sastoji od gomile korisničkih programa koji nam pružaju mogućnosti emulacije. Kao samostalni softver QEMU se može koristiti za pokretanje programa iz jedne arhitekture, poput ARM-a, na drugoj poput x86_64 i obrnuto. Može se koristiti za pokretanje bilo čega, od jedne binarne datoteke do kompletnog operativnog sustava.

Mi ćemo ga, naravno, koristiti samo za virtualizaciju x86_64 operativnih sustava na x86_64 platformi. A za to nam treba samo jedan paket:

$ sudo apt instalirati qemu-kvm

Možete provjeriti je li paket učitao sve potrebne module, pokretanjem:

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

To je sve što vam treba, teoretski. Ali uskoro ćete shvatiti da je to praktično. Virtualni strojevi izuzetno su složeni i potreban nam je omot softvera za upravljanje svim različitim zahtjevima poput umrežavanja, upravljanja datotečnim sustavom itd. Na prilično automatiziran (i skalabilan način). Da bismo to učinili potrebna nam je knjižnica / demon virtualizacije Libvirt.

Instaliranje Libvirt-a

Libvirt je najznačajniji dio vašeg stoga za virtualizaciju. Dabon libvirtd u pozadini pokreće usluge povezane s virtualizacijom. Usluge koje slušaju zahtjeve poput "Stvori VM", "Uništi VM", "Stvori mrežu" itd. I izvršava ih u njima koristeći osnovne Linux uslužne programe poput qemu binarnih datoteka, iptables itd.

Libvirt je vrlo generaliziran i može se koristiti za upravljanje KVM gostima, LXC spremnicima i Xen stekom za virtualizaciju. Za sada ćemo se usredotočiti samo na Libvirt za goste KVM-a. Libvirtd izlaže API koji mogu koristiti GUI aplikacije poput virt-manager ili oVirt ili alati naredbenog retka poput virt-install, virsh itd. Možemo pisati čak i vlastite prilagođene klijente koji koriste isti standardni API.  Koristit ćemo alate naredbenog retka, poput virsh i virt-install, kako bi stvari bile standardizirane.

Instalirajmo sve ove alate:

$ apt instalirajte libvirt-klijenti libvirt-daemon-system virtinst

Trebat će nam i drugi paket libguestfs-tools koji će nam pomoći u uređivanju ili izmjeni tvrdih diskova i datotečnih sustava gostujućih VM-a.

Sjajno! Sada smo instalirali cijeli stog i znamo kako je postavljena arhitektura. Da biste koristili libvirt (i srodne alate), dodajte svog korisnika u grupe libvirt-qemu i libvirt.

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

Ili pokrenite naredbe kao root korisnik.

Virsh i pokretanje zadane mreže

Uslužni program virsh naredbenog retka nešto ćete što ćete koristiti prilikom upravljanja VM-ovima. Jednostavno možete utipkati virsh i ući u sučelje naredbenog retka virsh ili utipkati virsh [Opcije] iz vaše uobičajene ljuske. Prođite kroz izlaz virsh pomoći kad god zapnete s nekom operacijom povezanom s VM-om.

Prva virsh naredba koju ćemo upotrijebiti pozvat će zadanu mrežu na koju se VM može povezati:

$ virsh net-autostart zadani
Zadana vrijednost $ virsh net-start

Ovo će pokrenuti zadanu mrežu i pobrinut će se da se automatski pokrene kada se domaćin ponovno pokrene. Da biste provjerili detalje o ovoj zadanoj mreži, upotrijebite naredbu:

$ virsh net-dumpxml zadano

zadano
3d723dc6-49a4-4f73-bf6d-623d6b46b099












Datoteka xml može vam pokazati raspon mogućih IP adresa i način na koji će komunicirati s vanjskim svijetom. Uglavnom, promet će im stizati putem NAT-a i oni neće biti dio vanjske mreže vašeg domaćina. Bridge Networking možete koristiti za izlaganje svakog VM-a LAN-u glavnog računala.

Za pokretanje virtualnog stroja

Za pokretanje virtualnog stroja potreban nam je instalacijski medij (poput instalacijskog ISO-a za bilo koji operativni sustav) i koliko CPU-a i koliko memorije treba dodijeliti VM-u i treba li VNC. U ovom koraku možete zaista cijeniti GUI instalater kao što je virt-manager, međutim, mi ćemo to učiniti pomoću prilično složene naredbe virt-install.

Volim zadržati sve svoje medije za pokretanje na / var / lib / libvirt / boot, a sve VM-ove i njihov virtualni tvrdi disk na / var / lib / libvirt / images (zadano mjesto), što pojednostavljuje organizaciju.

$ cd / var / lib / libvirt / boot
$ wget http: // izdanja.ubuntu.com / 18.04.2 / ubuntu-18.04.2-radna površina-amd64.izo

Naredba iznad donosi ISO Ubuntu radne površine, možete jednako lako dobiti CentOS ili bilo koju drugu distribuciju koju želite.

Da biste stvorili novi VM i pokrenuli ga:

$ virt-install --virt-type kvm \
--ime myVM \
--memorija 2048 --vcpus = 2 \
--cdrom / var / lib / libvirt / boot / ubuntu-18.04.2-radna površina-amd64.iso \
--veličina diska = 40 \
--grafika vnc, slušaj = 0.0.0.0, priključak = 5900 \
--noautoconsole

Gornja naredba je doista složena. Predlažem da te naredbe spremite u tekstualne datoteke i pokrenete ih kao izvršne skripte kad god kreirate novi VM. Većina parametara poput virt-type i virt-name prilično su razumljive. Jednostavno su dosadni zapisivati.

Posljednja opcija za VNC prikaz pokrenut će VNC poslužitelj i omogućit će vam daljinski pristup VM-u, povezivanjem na priključak domaćina 5900. Otvorite VNC klijent na radnoj površini i idite na IP vašeg KVM domaćina na portu 5900. Obavezno dosegnite IP hosta, a ne IP VM-a. Vaš VNC spojit će se na video izlaz vašeg VM-a i možete nastaviti s instalacijom.

Kamo dalje?

Od ovog trenutka možete pokušati zaustaviti, zaustaviti i izbrisati VM-ove. Također možete izmijeniti temeljnu infrastrukturu dodavanjem spremišta za pohranu i konfiguriranjem mostnih mreža. Sve konfiguracijske datoteke za pojedinačne VM-ove, mrežna sučelja i spremišta pohranjene su na / etc / libvirt / i / etc / libvirt / qemu.

Ponekad ćete morati fizički izbrisati datoteke tvrdog diska spremljene na / lib / libvirt / images čak i nakon uklanjanja VM-a iz libvirt. Da biste automatizirali stvari, pokušajte uvesti qcow2 slike koje većina linux distribucija poput Ubuntu-a i CentOS-a. U njima je unaprijed instaliran OS.

Zaključak

Ovo postavljanje nije nigdje tako lako kao postavljanje VirtualBox-a, a razlog tome je višestruk. Većina stoga složena je jer je dizajnirana da bude modularna i visoko skalabilna. Ne donosi nikakve pretpostavke o tome gdje koristite VM. Okruženje može biti osobna radna površina ili podatkovni centar. Rad s grafičkim sučeljem može donekle smanjiti ovu složenost. Međutim, ti su sustavi dizajnirani za rad s REST API-jem za povezivanje sa sustavima naplate u vašoj organizaciji, sustavima za nadzor itd. Čovjek ih gotovo nikad ne dotakne nakon raspoređivanja.

Ipak, automatizacija je naziv igre s libvirtom i qemu-kvm. Pregledajte službenu dokumentaciju i napišite vlastiti skript kako biste zaokružili flotu VM-ova i javite nam ako vam je ovo uputstvo korisno.

Kako pojačati FPS u Linuxu?
FPS je kratica Okviri u sekundi. Zadatak FPS-a je mjerenje broja sličica u reprodukcijama video zapisa ili igranim izvedbama. Jednostavnim riječima, b...
Najpopularnije laboratorijske igre Oculus App
Ako ste vlasnik slušalica Oculus, tada morate biti sigurni u bočno učitavanje. Bočno učitavanje postupak je instaliranja nehranjenog sadržaja na vaše ...
10 najboljih igara za igranje na Ubuntuu
Windows platforma bila je jedna od dominantnih platformi za igre zbog ogromnog postotka igara koje se danas razvijaju kako bi podržavale Windows. Može...