KVM

Libvirt QEMU ja KVM korstna seadistamine Debianis

Libvirt QEMU ja KVM korstna seadistamine Debianis
QEMU-KVM-põhine virtualiseerimine on Linuxi-põhise virtualiseerimise virna keskmes. See on tasuta ja avatud lähtekoodiga ning üks levinumaid virtualiseerimistehnoloogiaid kogu tööstusharus. Enamik pilveteenuse pakkujaid kasutab KVM-i ja seda põhjusega. See pakub väga tõhusat ja samas väga turvalist virtualiseerimise virna ning sellega pole vaja keerulist litsentsimist. See ei kehti teie tüüpilise Hyper-V või VMWare seadistuse kohta. Kompromiss on aga see, et seadistamine võib olla väga keeruline, eriti kogenematute kasutajate jaoks. See artikkel on mõeldud selle keerukuse vähendamiseks lugeja jaoks.

Seda öeldes proovime oma KVM-i hüpervisori seadistada Debian 9 serverisse .

VT-x või AMD-V laienduste lubamine

Ideaalis vajate oma Linuxi lemmikjaotuse puhast installimist masinasse (mitte VM-i), millel on üsna kaasaegne protsessor. Enamik kaasaegseid Inteli protsessoreid toetavad VT-x laiendusi ja sarnaselt on AMD-l ka oma AMD-V laiendused. Need laiendused on otse teie protsessori räni sisseehitatud täiustused, mis võimaldavad kiiremat ja turvalisemat virtualiseerimist. Need laiendused peate lubama emaplaadi BIOS / UEFI menüüs. Lisateavet leiate emaplaadi kasutusjuhendist.

Kui te ei soovi oma täiuslikult töötavat Linuxi tööjaama sulatada, võite nende katsete käivitamiseks kasutada pilves olevat virtuaalset masinat. Näiteks DigitalOcean pakub virtuaalmasinaid, millel on pesastatud virtualiseerimine lubatud. See võimaldab teil oma pilves hostitud VM-is käivitada VM-e (seda nimetatakse pesastatud virtualiseerimiseks). Ilmselt on see hüpervisori praktiliseks käitamiseks väga ebaefektiivne viis, kuid eksperimendina saab see hästi hakkama. Hankige kindlasti vähemalt 4 GB mälu ja rohkem kui 2 protsessorit.

Kui olete nimetatud laiendused lubanud, saate seda kontrollida, käivitades lscpu ja otsides kirjet Virtualization:

$ lscpu
… .
Virtualiseerimine: VT-x
… .

Nüüd, kui meil on laiendustel lubatud aeg, et virnas edasi liikuda.

KVM ja QEMU installimine

KVM (või kernelipõhine virtuaalne masin) koosneb mõnest Linuxi kernelmoodulist, mis kasutavad ära varem lubatud CPU laiendusi. QEMU seevastu koosneb hulgast kasutajamaa programmidest, mis pakuvad meile emuleerimisvõimalusi. Eraldiseisva tarkvarana saab QEMU-d kasutada ühe arhitektuuri, näiteks ARM-i, programmide käitamiseks, näiteks x86_64 ja vastupidi. Seda saab kasutada üksiku binaarfaili kuni täieliku operatsioonisüsteemini käivitamiseks.

Loomulikult kasutame seda ainult x86_64 operatsioonisüsteemide virtualiseerimiseks x86_64 platvormil. Ja selleks vajame vaid ühte paketti:

$ sudo apt installib qemu-kvm

Saate kontrollida, kas pakett on laadinud kõik vajalikud moodulid, käivitades:

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

See on kõik, mida teoreetiliselt vajate. Kuid saate varsti aru, et see on praktiline. Virtuaalsed masinad on tohutult keerukad ja me vajame tarkvaramoodulit, et hallata kõiki erinevaid nõudmisi, nagu võrguühendus, failisüsteemi haldamine jne, üsna automatiseeritud (ja skaleeritaval viisil). Selleks vajame Libvirt virtualiseerimise teeki / deemoni.

Libvirt paigaldamine

Libvirt on teie virtualiseerimise virna oluline osa. Libvirtd deemon käitab taustal virtualiseerimisega seotud teenuseid. Teenused, mis kuulavad selliseid taotlusi nagu „Loo VM”, „Hävitage VM”, „Looge võrk” jne ja täidate need neis, kasutades Linuxi põhilisi utiliite, näiteks qemu binaarfaile, iptables jne.

Libvirt on väga üldistatud ja seda saab kasutada KVM-i külaliste, LXC-konteinerite ja Xeni virtualiseerimise virna haldamiseks. Keskendume praegu KVM-i külalistele mõeldud Libvirtile. Libvirtd paljastab API, mida saavad kasutada GUI-rakendused, näiteks virt-manager või oVirt, või käsurea tööriistad, nagu virt-install, virsh jne. Saame kirjutada isegi omaenda kohandatud kliendid, kes kasutavad sama standardset API-d.  Asjade standardiseeritud hoidmiseks kasutame käsurea tööriistu, nagu virsh ja virt-install.

Installime kõik need tööriistad:

$ apt install libvirt-kliendid libvirt-daemon-süsteem virtinst

Vajame ka teist paketti libguestfs-tools, mis aitab meil redigeerida või muuta külalise VM-i kõvakettaid ja failisüsteeme.

Suurepärane! Nüüd oleme kogu virna installinud ja teame, kuidas arhitektuur on paigutatud. Libvirt (ja seotud tööriistade) kasutamiseks lisage oma kasutaja gruppidesse libvirt-qemu ja libvirt.

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

Või käivitage käsud juurkasutajana.

Virsh ja vaikevõrgu käivitamine

Ülemi käsurea utiliit on midagi, mida kasutate oma VM-ide haldamisel palju. Võite lihtsalt tippida virsh ja langeda virshi käsurea liidesesse või tippida virsh [Valikud] tavalisest kestast. Läbige virsh-i abi väljund alati, kui olete mõne VM-iga seotud toimingu juurde jäänud.

Esimene kasutatav virsh-käsk kutsub esile vaikevõrgu, millega VM võib ühendada:

vaikeväärtus $ virsh net-autostart
Vaikimisi on $ virsh net-start

See käivitab vaikevõrgu ja tagab, et see käivitatakse automaatselt, kui hosti taaskäivitub. Selle vaikevõrgu üksikasjade kontrollimiseks kasutage käsku:

Vaikimisi $ virsh net-dumpxml

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












Xml-fail võib näidata teile võimalike IP-aadresside vahemikku ja nende suhtlemist välismaailmaga. Põhimõtteliselt tuleb liiklus neile NAT-i kaudu ja nad ei kuulu teie hosti välise võrgu ossa. Sildvõrgu abil saate iga VM-i eksponeerida hostimasina LAN-ile.

Virtuaalmasina käivitamiseks

Virtuaalmasina käivitamiseks vajame installikandjat (nt iga operatsioonisüsteemi installi ISO-d) ja seda, kui palju protsessoreid ja kui palju mälu tuleb VM-ile eraldada ja kui see vajab VNC-d. Selles etapis saate tõesti hinnata GUI installerit nagu virt-manager, kuid me teeme seda üsna keeruka virt-installi käsu abil.

Mulle meeldib hoida kogu oma alglaadimiskandja aadressil / var / lib / libvirt / boot ning kõiki VM-e ja nende virtuaalset kõvaketast aadressil / var / lib / libvirt / images (vaikekoht), see lihtsustab organisatsiooni.

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

Ülaltoodud käsk tõmbab Ubuntu töölaua ISO, saate sama hõlpsalt hankida CentOS-i või muu soovitud levitamise.

Uue VM-i loomiseks ja selle käivitamiseks käivitage:

$ virt-install --virt-tüüpi kvm \
--nimi myVM \
--mälu 2048 - vcpus = 2 \
--cdrom / var / lib / libvirt / boot / ubuntu-18.04.2-desktop-amd64.iso \
--ketta suurus = 40 \
--graafika vnc, kuula = 0.0.0.0, port = 5900 \
--noautoconsole

Ülaltoodud käsk on tõepoolest keeruline. Soovitan need käsklused salvestada tekstifailidesse ja käivitada need käivitatavate skriptidena iga kord, kui loote uue virtuaalse masina. Enamik parameetreid nagu virt-tüüp ja virt-name on üsna iseenesestmõistetavad. Neid on lihtsalt tüütu üles kirjutada.

Viimane VNC-ekraani valik käivitab VNC-serveri ja võimaldab teil konsoolil juurdepääsu oma VM-ile eemalt, ühendades hosti porti 5900. Avage VNC klient oma töölaual ja minge oma KVM-i hosti IP-le porti 5900. Veenduge, et jõuate hosti IP-le, mitte VM-i IP-le. Teie VNC loob ühenduse teie VM-i videoväljundiga ja saate installimist jätkata.

Kuhu edasi?

Siit saate proovida VM-i peatada, peatada ja kustutada. Samuti saate muuta alusinfrastruktuuri, lisades hoiule basseinid ja konfigureerides sildvõrke. Kõik üksikute VM-ide, võrguliideste ja salvestusbasseinide konfiguratsioonifailid on salvestatud / etc / libvirt / ja / etc / libvirt / qemu.

Mõnikord peate füüsiliselt kustutama aadressil / lib / libvirt / images salvestatud kõvakettafailid ka pärast VM-i eemaldamist libvirtist. Asjade edasiseks automatiseerimiseks proovige importida qcow2 pilte, mida enamik Linuxi jaotusi nagu Ubuntu ja CentOS. Nendes on operatsioonisüsteem eelinstallitud.

Järeldus

Selle seadistamine pole kusagil nii lihtne kui VirtualBoxi seadistamine ja selle põhjus on mitmekordne. Enamik korstnatest on keerulised, kuna see on loodud modulaarseks ja väga skaleeritavaks. See ei tee oletusi selle kohta, kus te VM-i käitate. Keskkond võib olla isiklik töölaud või andmekeskus. GUI-ga töötamine võib seda keerukust teatud määral vähendada. Need süsteemid on loodud töötama REST API-ga, et luua ühendus teie organisatsiooni arveldussüsteemide, jälgimissüsteemidega jne. Pärast lähetamist ei puutu inimene neid peaaegu kunagi.

See tähendab, et automaatika on mängu nimi, millel on libvirt ja qemu-kvm. Tutvuge ametliku dokumentatsiooniga ja kirjutage endale suurepärane skript VM-ide laevastiku arendamiseks ja andke meile teada, kui leiate, et see õpetus oli kasulik.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
X-Mouse Button Control abil saate hiire nupud erinevates tarkvarades erinevalt ümber teha
Võib-olla vajate tööriista, mis võiks muuta teie hiire juhtimissüsteemi iga kasutatava rakendusega. Sel juhul võite proovida rakendust nimega X hiiren...
Microsoft Sculpt Touch juhtmeta hiirte ülevaade
Lugesin hiljuti Microsoft Sculpt Touch juhtmevaba hiir ja otsustas selle osta. Pärast mõnda aega kasutamist otsustasin jagada sellega oma kogemusi. Se...