KVM

Libvirt QEMU un KVM steka iestatīšana Debian

Libvirt QEMU un KVM steka iestatīšana Debian
QEMU-KVM balstītā virtualizācija ir Linux balstītas virtualizācijas kaudzes pamatā. Tā ir bezmaksas un atvērta pirmkoda un ir viena no izplatītākajām virtualizācijas tehnoloģijām visā nozarē. Lielākā daļa mākoņpakalpojumu sniedzēju izmanto KVM un tam ir labs iemesls. Tas piedāvā ļoti efektīvu un tomēr ļoti drošu virtualizācijas kaudzi, un nav sarežģītas licencēšanas, ar kuru rīkoties. Tas neattiecas uz jūsu parasto Hyper-V vai VMWare iestatīšanu. Tomēr kompromiss ir tāds, ka iestatīšana var būt ļoti sarežģīta, it īpaši nepieredzējušiem lietotājiem. Šis raksts ir domāts, lai samazinātu lasītāja sarežģītību.

Pateicoties tam, mēģināsim iestatīt savu KVM hipervizoru uz Debian 9 servera .

VT-x vai AMD-V paplašinājumu iespējošana

Ideālā gadījumā jums būs nepieciešama tīra iecienītā Linux izplatīšanas instalēšana mašīnā (nevis VM), kurai ir diezgan moderns centrālais procesors. Lielākā daļa mūsdienu Intel procesoru atbalsta VT-x paplašinājumus, un līdzīgi arī AMD ir savi AMD-V paplašinājumi. Šie paplašinājumi ir “uzlabojumi”, kas iebūvēti tieši jūsu procesora silīcijā, kas nodrošina ātrāku un drošāku virtualizāciju. Šie paplašinājumi ir jāiespējo mātesplates BIOS / UEFI izvēlnē. Plašāku informāciju skatiet mātesplatē.

Ja jūs nevēlaties aplaupīt savu perfekti strādājošo Linux darbstaciju, šo eksperimentu veikšanai varat izmantot virtuālo mašīnu mākonī. Piemēram, DigitalOcean piedāvā virtuālās mašīnas, kurās ir iespējota ligzdota virtualizācija. Tas ļauj palaist VM mākoņa mitinātā VM iekšpusē (to sauc par ligzdotu virtualizāciju). Acīmredzot tas būs ļoti neefektīvs veids, kā praktiski vadīt hipervizoru, bet kā eksperiments tas darbosies lieliski. Pārliecinieties, vai esat ieguvis vismaz 4 GB atmiņas un vairāk nekā 2 procesorus.

Kad esat iespējojis minētos paplašinājumus, varat to pārbaudīt, palaižot lscpu un meklējot ierakstu Virtualizācija:

$ lscpu
… .
Virtualizācija: VT-x
… .

Tagad, kad mums ir iespējots paplašinājumu laiks, lai virzītos tālāk uz augšu.

KVM un QEMU instalēšana

KVM (vai uz kodola balstīta virtuālā mašīna) sastāv no dažiem Linux kodola moduļiem, kas izmantos iepriekš iespējotos CPU paplašinājumus. QEMU, no otras puses, sastāv no vairākām userland programmām, kas mums nodrošina emulācijas iespējas. Kā atsevišķu programmatūru QEMU var izmantot, lai palaistu programmas no vienas arhitektūras, piemēram, ARM, no otras, piemēram, x86_64, un otrādi. To var izmantot, lai palaistu visu, sākot no viena binārā faila līdz pilnīgai operētājsistēmai.

Protams, mēs to izmantosim tikai, lai virtualizētu x86_64 operētājsistēmas uz x86_64 platformas. Un tam mums ir nepieciešama tikai viena pakete:

$ sudo apt instalējiet qemu-kvm

Varat pārbaudīt, vai pakete ir ielādējusi visus nepieciešamos moduļus, palaižot:

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

Tas ir viss, kas jums nepieciešams, teorētiski. Bet jūs drīz sapratīsit, ka tas ir praktiski. Virtuālās mašīnas ir ārkārtīgi sarežģītas, un mums ir nepieciešams programmatūras iesaiņotājs, lai diezgan automatizēti (un mērogojami) pārvaldītu visas dažādās prasības, piemēram, tīklu veidošanu, failu sistēmas pārvaldību utt. Lai to izdarītu, mums ir nepieciešama Libvirt virtualizācijas bibliotēka / dēmons.

Libvirt instalēšana

Libvirt ir būtiska jūsu virtualizācijas kaudzes sastāvdaļa. Libvirtd dēmons fonā vada ar virtualizāciju saistītus pakalpojumus. Pakalpojumi, kas klausās tādus pieprasījumus kā “VM izveide”, “VM iznīcināšana”, “Tīkla izveide” utt. Un tos tajos izpilda, izmantojot pamata Linux utilītprogrammas, piemēram, qemu bināros failus, iptables utt.

Libvirt ir ļoti vispārināts, un to var izmantot, lai pārvaldītu KVM viesus, LXC konteinerus un Xen virtualizācijas kaudzi. Pagaidām mēs pievērsīsimies tikai Libvirt KVM viesiem. Libvirtd pakļauj API, ko var izmantot GUI lietojumprogrammas, piemēram, virt-manager vai oVirt, vai komandrindas rīki, piemēram, virt-install, virsh utt. Mēs varam rakstīt pat paši savus klientus, kas izmanto to pašu standarta API.  Lai lietas būtu standartizētas, mēs izmantosim komandrindas rīkus, piemēram, virsh un virt-install.

Instalēsim visus šos rīkus:

$ apt instalējiet libvirt-klientus libvirt-daemon-sistēmu virtinst

Mums būs nepieciešama arī cita pakete libguestfs-tools, lai palīdzētu mums rediģēt vai modificēt viesa VM cietos diskus un failu sistēmas.

Lieliski! Tagad mēs esam instalējuši visu kaudzīti un zinām, kā tiek izkārtota arhitektūra. Lai izmantotu libvirt (un saistītos rīkus), pievienojiet savu lietotāju grupām libvirt-qemu un libvirt.

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

Vai arī palaidiet komandas kā root lietotāju.

Virsh un noklusējuma tīkla palaišana

Komandrindas virsh lietderība ir kaut kas, ko jūs daudz izmantosit, pārvaldot savus VM. Jūs varat vienkārši ierakstīt virsh un nomest virsh komandrindas saskarnē vai ierakstīt virsh [Opcijas] no parastās čaulas. Iet caur virsh palīdzības izvadi ikreiz, kad esat iestrēdzis ar kādu ar VM saistītu darbību.

Pirmā virsh komanda, kuru izmantosim, izsauks noklusējuma tīklu, pie kura var izveidot VM savienojumu:

noklusējuma $ virsh net-autostart
$ virsh net-start noklusējums

Tas palaidīs noklusējuma tīklu un pārliecināsies, ka tas tiek palaists automātiski, kad resursdators tiek restartēts. Lai pārbaudītu informāciju par šo noklusējuma tīklu, izmantojiet komandu:

noklusējuma $ virsh net-dumpxml

noklusējums
3d723dc6-49a4-4f73-bf6d-623d6b46b099












Xml fails var parādīt iespējamo IP adrešu diapazonu un to, kā tās sazināsies ar ārpasauli. Būtībā datplūsma pie viņiem nonāks caur NAT, un tie nebūs daļa no jūsu resursdatora ārējā tīkla. Varat izmantot Bridge Networking, lai pakļautu katru virtuālo mašīnu resursdatora LAN vietnei.

Lai palaistu virtuālo mašīnu

Lai palaistu virtuālo mašīnu, mums ir nepieciešams instalācijas datu nesējs (piemēram, jebkuras operētājsistēmas instalācijas ISO) un cik CPU un cik daudz atmiņas jāpiešķir virtuālajai mašīnai, un, ja tai ir nepieciešams VNC. Šis solis ir tas, kur jūs patiešām varat novērtēt GUI instalētāju, piemēram, virt-manager, tomēr mēs to darīsim, izmantojot diezgan sarežģītu virt-install komandu.

Man patīk saglabāt visus savus sāknēšanas multivides failus / var / lib / libvirt / boot un visus VM un to virtuālo cieto disku vietnē / var / lib / libvirt / images (noklusējuma atrašanās vieta). Tas vienkāršo organizāciju.

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

Iepriekš minētā komanda iegūst Ubuntu darbvirsmas ISO, tikpat viegli varat iegūt CentOS vai jebkuru citu vēlamo izplatīšanu.

Lai izveidotu jaunu virtuālo mašīnu un palaistu to:

$ virt-install --virt-type kvm \
--nosaukt myVM \
--atmiņa 2048 - vcpus = 2 \
--cdrom / var / lib / libvirt / boot / ubuntu-18.04.2-desktop-amd64.iso \
--diska izmērs = 40 \
--grafika vnc, klausieties = 0.0.0.0, osta = 5900 \
--noautokonsole

Iepriekš minētā komanda patiešām ir sarežģīta. Es iesaku saglabāt šīs komandas teksta failos un palaist tās kā izpildāmos skriptus, kad izveidojat jaunu virtuālo mašīnu. Lielākā daļa parametru, piemēram, virt-type un virt-name, ir diezgan pašsaprotami. Viņi vienkārši ir garlaicīgi pierakstīt.

Pēdējā VNC displeja opcija sāks VNC serveri un ļaus jums piekļūt konsolei VM no attāluma, izveidojot savienojumu ar resursdatora 5900 portu. Atveriet VNC klientu darbvirsmā un dodieties uz KVM resursdatora IP portā 5900. Pārliecinieties, vai esat sasniedzis resursdatora IP, nevis VM IP. Jūsu VNC izveidos savienojumu ar jūsu VM video izeju, un jūs varat turpināt instalēšanu.

Kur tālāk?

Turpmāk varat mēģināt apturēt, apturēt un dzēst VM. Varat arī modificēt pamatā esošo infrastruktūru, pievienojot krātuves krātuvei un konfigurējot tiltu tīklus. Visi atsevišķu VM, tīkla interfeisu un krātuves baseinu konfigurācijas faili tiek glabāti mapēs / etc / libvirt / un / etc / libvirt / qemu.

Dažreiz jums būs fiziski jāizdzēš cietā diska faili, kas saglabāti vietnē / lib / libvirt / images, pat pēc VM noņemšanas no libvirt. Lai lietas vēl vairāk automatizētu, mēģiniet importēt qcow2 attēlus, kas ir lielākajā daļā Linux izplatītāju, piemēram, Ubuntu un CentOS. Tajos OS ir iepriekš instalēta.

Secinājums

Šī iestatīšana nav tik vienkārša kā VirtualBox iestatīšana, un iemesls tam ir daudzveidīgs. Lielākā daļa kaudzes ir sarežģītas, jo tā ir veidota kā modulāra un ļoti pielāgojama. Tas neveic nekādus pieņēmumus par to, kur izmantojat VM. Vide var būt personālais darbvirsma vai datu centrs. Darbs ar GUI var zināmā mērā samazināt šo sarežģītību. Tomēr šīs sistēmas ir paredzētas darbam ar REST API, lai izveidotu savienojumu ar jūsu organizācijas norēķinu sistēmām, uzraudzības sistēmām utt. Pēc izvietošanas cilvēks tos gandrīz nekad nepieskaras.

Tas nozīmē, ka automatizācija ir spēles ar libvirt un qemu-kvm nosaukums. Izpētiet oficiālo dokumentāciju un uzrakstiet jums foršu skriptu, lai izveidotu virtuālo mašīnu parku, un dariet mums zināmu, vai šī apmācība jums noderēja.

Kā izmantot AutoKey, lai automatizētu Linux spēles
AutoKey ir darbvirsmas automatizācijas lietderība operētājsistēmām Linux un X11, kas ieprogrammēta Python 3, GTK un Qt. Izmantojot skriptu un MACRO fu...
Kā parādīt FPS skaitītāju Linux spēlēs
Linux spēles ieguva lielu impulsu, kad Valve 2012. gadā paziņoja par Linux atbalstu Steam klientam un viņu spēlēm. Kopš tā laika daudzas AAA un indie ...
Kā lejupielādēt un atskaņot Sid Meier Civilization VI operētājsistēmā Linux
Ievads spēlē Civilization 6 ir mūsdienīga klasiskā koncepcija, kas ieviesta Age of Empires spēļu sērijā. Ideja bija diezgan vienkārša; jūs sāktu pašā ...