Ubuntu KVM virtualiseerimine: Täielik juhend algajatele ja edasijõudnutele

目次

Sissejuhatus

Ubuntu on üks maailma populaarsemaid Linuxi distributsioone. Seda kasutatakse laialdaselt nii era- kui ka ärikasutuses ning see sobib suurepäraselt serverite ehitamiseks ja arenduskeskkondadeks. Kui soovite Ubuntus rakendada tõsist virtualiseerimist, siis üks võimsamaid lahendusi on KVM (Kernel-based Virtual Machine).

KVM on Linuxi kerneli sisseehitatud hüperviisoripõhine virtualiseerimistehnoloogia, mis kasutab riistvara virtualiseerimise tuge (nt Intel VT või AMD-V) kõrge jõudluse ja stabiilsuse saavutamiseks. Kuna KVM on avatud lähtekoodiga, on võimalik luua professionaalne virtualiseerimiskeskkond väikeste kuludega.

Virtualiseerimistehnoloogiad võivad tunduda keerulised, kuid Ubuntu ja KVM kombinatsiooniga saavad isegi algajad suhteliselt lihtsalt virtuaalmasinaid luua ja hallata. Loomulikult sobib see lahendus ka edasijõudnutele, kes tahavad serverite ressursse tõhusalt ära kasutada või oma ärirakendusi virtualiseerida.

Selles artiklis selgitatakse samm-sammult, kuidas Ubuntus KVM-iga virtualiseerimiskeskkonda üles seada, põhitõdesid ning praktilisi nõuandeid ja probleemide lahendamist. Kui soovite KVM-i kasutama hakata või Ubuntu virtualiseerimist mugavamalt kasutada, lugege kindlasti lõpuni.

侍エンジニア塾

KVM ja teiste virtualiseerimistehnoloogiate võrdlus

Virtualiseerimiseks on mitmeid tehnoloogiaid, kuid Ubuntu puhul kasutatakse sageli KVM-i, VirtualBoxi ja VMware’i. Allpool selgitame iga lahenduse omadusi ning KVM-i eeliseid ja puudusi.

Peamised virtualiseerimistehnoloogiate tüübid

  • KVM (Kernel-based Virtual Machine)
    KVM on Linuxi kerneli sisseehitatud virtualiseerimisfunktsioon, mis töötab ainult Linuxi hostidel. Tänu riistvara virtualiseerimise toele (Intel VT, AMD-V) on virtuaalmasinate jõudlus väga kõrge ja sobib ka tootmiskeskkondadesse. Halduseks saab kasutada käsurea tööriistu või graafilisi vahendeid nagu virt-manager.
  • VirtualBox
    VirtualBox on Oracle’i pakutav töölauakasutuseks mõeldud virtualiseerimistarkvara, mis töötab Windowsis, Macis ja Linuxis. Selle kasutajaliides on lihtne ja sobib hästi õppeotstarbeliseks või koduseks kasutamiseks. Küll aga pole see võrreldes KVM-iga nii sobiv kõrge koormusega või ärikeskkondadesse.
  • VMware (VMware Workstation/ESXi jne)
    VMware on ärikasutuses populaarne tasuline virtualiseerimislahendus. Sellel on palju funktsioone ja põhjalik tugi, kuid litsentsitasud on suuremad. Seda kasutatakse tihti suurtes ettevõtetes, kuid sellega kaasneb ka suurem kulu.

KVM-i eelised

  • Kõrge jõudlus ja stabiilsus
    KVM töötab otse Linuxi kernelis, mistõttu on ressursikasutus tõhus ja võimalik on täpselt määrata CPU ja mälu jaotust igale virtuaalmasinale. See tagab töökindluse ka ärikriitilistes süsteemides.
  • Avatud lähtekoodiga ja tasuta
    KVM on täiesti tasuta ja ei nõua litsentsitasusid, seega sobib hästi madalate kuludega virtualiseerimiskeskkondade loomiseks.
  • Rikkalikud haldustööriistad ja automatiseerimine
    Käsurea tööriistad (nt virsh, virt-install) ja GUI tööriistad (virt-manager) võimaldavad paindlikku haldust. Automatiseerimine ja skriptimine on lihtne, sobides hästi DevOps-i ja infrastruktuurihalduseks.

KVM-i puudused

  • Töötab ainult Linuxi hostidel
    KVM vajab Linuxi kerneli, seega ei saa seda kasutada Windowsi ega Maci hostides.
  • Esialgne seadistamine ja probleemide lahendamine eeldab Linuxi tundmist
    Kuigi olemas on ka graafilised tööriistad, nõuab võrgu- ja detailne seadistamine sageli käsurea kasutamist ja Linuxi tundmist.

Millal valida KVM?

  • Kui soovite kasutada serveri ressursse maksimaalselt tõhusalt
  • Kui soovite virtualiseerida ärikriitilisi süsteeme või servereid
  • Kui soovite madalate kuludega luua professionaalse virtualiseerimiskeskkonna
  • Kui soovite Linuxi serverite haldust või infrastruktuuri automatiseerida

KVM sobib eriti hästi Linuxi tundvatele kasutajatele ja neile, kes soovivad serverihalduses järgmisele tasemele jõuda.

KVM-i keskkonna seadistamine Ubuntus [Installatsioon ja esmane seadistamine]

KVM-i kasutamiseks Ubuntus tuleb täita mõned eeltingimused ja teha vajalikud ettevalmistused ning installatsioon. Selles peatükis selgitatakse samme, mis on vajalikud KVM-i kasutuselevõtuks. Selgitused on detailsed, et ka algajad saaksid edukalt virtualiseerimiskeskkonna üles seada.

Nõuded ja eelkontroll

KVM-i kasutamiseks peab sinu arvuti või serveri protsessor toetama virtualiseerimist (Intel VT või AMD-V).
Kontrolli virtualiseerimistoe olemasolu järgmise käsuga:

egrep -c '(vmx|svm)' /proc/cpuinfo

Kui tagastatud väärtus on vähemalt 1, on virtualiseerimine toetatud.
Lisaks peab kasutusel olema 64-bitine Ubuntu.

KVM-i ja vajalike pakettide installatsioon

Paigalda KVM-i põhipakett ning vajalikud tööriistad (libvirt, virt-manager jm).
Tee seda järgmiste käskudega:

sudo apt update
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
  • qemu-kvm: KVM-i virtualiseerimise tuumpakett
  • libvirt-daemon-system, libvirt-clients: Virtuaalmasinate haldusteenused
  • bridge-utils: Võrgu sillatööriistad
  • virt-manager: Graafiline haldustööriist virtuaalmasinate jaoks

Kasutaja grupi seadistamine ja õiguste andmine

Pärast installatsiooni lisa oma kasutaja KVM-i ja libvirt’i gruppidesse. See võimaldab virtuaalmasinaid hallata ilma administraatoriõigusteta.

sudo usermod -aG libvirt $(whoami)
sudo usermod -aG kvm $(whoami)

Muudatuste rakendamiseks logi välja ja sisse või taaskäivita süsteem.

KVM-teenuse töö kontrollimine

Kontrolli, kas KVM on õigesti paigaldatud ja teenus töötab:

sudo systemctl status libvirtd

Kui näed „active (running)“, on kõik korras.
Lisaks saad kontrollida KVM-i olekut käsuga:

virsh list --all

Kui virtuaalmasinate nimekiri (ka tühjana) kuvatakse, on KVM-i keskkond õigesti seadistatud.

Virtuaalmasinate loomine ja põhilised toimingud

Kui KVM-i keskkond on valmis, saad hakata virtuaalmasinaid looma ja haldama. KVM võimaldab kasutada nii graafilist tööriista (virt-manager) kui ka käsurea käske (virt-install, virsh). Allpool selgitame mõlemat lähenemist.

Virtuaalmasina loomine virt-manageriga (GUI)

Virt-manager võimaldab virtuaalmasinaid luua ja hallata mugava graafilise liidese kaudu. Kui kasutad Linuxi töölauakeskkonda, on see eriti mugav.

  1. Käivita virt-manager rakendus menüüst või käsurealt.
  2. Klõpsa vasakus ülanurgas „Uus“ (New) nuppu.
  3. Määra installatsioonimeedia (nt ISO-fail), vali külalis-OS-i tüüp (nt Ubuntu, Windows).
  4. Määra virtuaalmasina CPU, mälu ja ketta suurus.
  5. Kontrolli seadeid ning klõpsa „Lõpeta“ (Finish), et virtuaalmasin luua ja installatsioon alustada.

Virt-manager võimaldab ka virtuaalmasina käivitamist, peatamist, taaskäivitust, hetktõmmiste loomist ja võrgu- või kettaseadete muutmist.

Virtuaalmasina loomine käsurealt (virt-install)

Serverikasutuseks või kaugkeskkondades on mugav kasutada käsurea tööriistu. Allpool näide virt-install käsu kasutamisest:

sudo virt-install 
  --name ubuntu-vm 
  --memory 2048 
  --vcpus 2 
  --disk size=20 
  --cdrom /path/to/ubuntu.iso 
  --os-type linux 
  --os-variant ubuntu20.04 
  --network network=default 
  --graphics vnc
  • --name: Virtuaalmasina nimi
  • --memory: Mälumaht (MB)
  • --vcpus: Protsessori tuumade arv
  • --disk size=20: Virtuaalketta maht (GB)
  • --cdrom: Installatsiooni ISO-faili asukoht
  • --os-type, --os-variant: OS-i tüüp ja versioon
  • --network: Võrguühenduse määramine
  • --graphics: Graafikarežiim (VNC jne)

Pärast käsu käivitamist käivitatakse virtuaalmasin automaatselt ja installatsioonikuvaga (nt VNC kaudu).

Virtuaalmasina käivitamine, peatamine, kustutamine, hetktõmmiste loomine

KVM-iga on virtuaalmasinaid lihtne hallata. Peamised käsud:

  • Virtuaalmasina käivitamine
  virsh start <virtuaalmasina_nimi>
  • Virtuaalmasina peatamine
  virsh shutdown <virtuaalmasina_nimi>
  • Virtuaalmasina sundpeatamine
  virsh destroy <virtuaalmasina_nimi>
  • Virtuaalmasina kustutamine (ka ketta kustutamisel ole ettevaatlik)
  virsh undefine <virtuaalmasina_nimi>
  • Hetktõmmise (snapshot) loomine
  virsh snapshot-create-as <virtuaalmasina_nimi> <snapshot_nimi>

Neid toiminguid saab teha ka virt-manageri graafilise liidese kaudu.

Võrgu seadistamine ja laiendused

KVM-iga virtuaalmasinate haldamisel on võrgu seadistused väga olulised. Vaikeseadistus sobib paljudeks otstarveteks, kuid ärikasutuses või tõsisematel serverijuhtudel on vaja sageli täpsemat seadistust. Selles peatükis selgitame KVM-i võrgu põhialuseid ja levinumaid laiendatud seadistusi.

Vaikimisi NAT (virbr0) ja silla võrgu erinevused

KVM-i installimisel luuakse automaatselt virtuaalne sillavõrk nimega „virbr0“. See kasutab NAT-i (Network Address Translation) ja sellel on järgmised omadused:

  • virbr0 (NAT) omadused
  • Virtuaalmasinad pääsevad internetti
  • Kuid hostist või teistest võrkudest virtuaalmasinasse ligipääsuks on vaja seadistada portide suunamine (port forwarding)
  • Sobib kodu, arenduse või testkeskkondadesse

Sillavõrk („bridge network“) annab virtuaalmasinale sama võrgu nagu füüsilisel võrgukaardil.

  • Sillavõrgu omadused
  • Virtuaalmasinad saavad sama IP-aadressiruumi nagu host
  • Virtuaalmasinad on kättesaadavad ka teistest füüsilistest arvutitest
  • Ideaalne ettevõttesisesteks serveriteks ja teenuste pakkumiseks

Kohandatud silla loomine (LAN-i ligipääsuks)

Kui soovid virtuaalmasinat otse muudest arvutitest kasutada, loo sillaühendus (bridge). Tüüpilised sammud (eeldades, et füüsiline võrguliides on eth0):

  1. Paigalda bridge-utils (kui pole veel olemas)
   sudo apt install bridge-utils
  1. Muuda võrgu seadistusfaili
    Ubuntu 18.04 ja uuemates kasutatakse Netplani.
    Redigeeri nt faili /etc/netplan/01-netcfg.yaml. Näide:
   network:
     version: 2
     renderer: networkd
     ethernets:
       eth0:
         dhcp4: no
     bridges:
       br0:
         interfaces: [eth0]
         dhcp4: yes
  1. Rakenda seadistused
   sudo netplan apply
  1. Lisa uus sild (br0) KVM-is virtuaalmasina võrguadapterina
    Muuda virt-manageris või virsh abil virtuaalmasina võrguadapter br0 peale.

Virtuaalmasina IP-aadressi fikseerimine ja portide suunamine

  • IP-aadressi fikseerimine
    Määra statiline IP virtuaalmasina sees või kasuta DHCP-serverit MAC-aadressi põhise fikseeritud aadressi jaoks.
  • Portide suunamine (NAT puhul)
    Kasuta virsh käsku või libvirt XML-faili, et suunata kindel port (nt SSH või veebiserver) hostist virtuaalmasinasse. Näide (SSH port 22):
  virsh nat-forward --network default --add-port tcp:2222:22

* Täpsemat seadistust saab teha ka libvirti XML-failides või firewalld kaudu.

Salvestusruumi haldus ja kettatoimingud

KVM-i kasutamisel on oluline planeerida salvestusruumi ja ketaste haldus. Selles peatükis tutvustame virtuaalketaste tüüpe, salvestusruumide haldust ja ketta suurendamist ning hetktõmmiste kasutamist.

Virtuaalketta tüübid (qcow2, raw) ja kasutusalad

KVM toetab peamiselt kahte tüüpi virtuaalkettaid:

  • qcow2 formaat
  • Standardne KVM-i virtuaalketta formaat
  • Toetab hetktõmmiseid, tihendust ja ruumisäästu
  • Sobib paindlikuks kasutamiseks ja testkeskkondadeks
  • raw formaat
  • Lihtne formaat ilma tihenduse või teisendamiseta
  • Sobib maksimaalse jõudluse jaoks või kui tähtis on kiire ketta I/O

Tavaliselt soovitatakse qcow2, kuid vajadusel vali sobiv formaat.

Salvestusruumi loomine ja haldus

KVM-is kasutatakse salvestusruumide (storage pools) kontseptsiooni virtuaalmasinate ketaste haldamiseks.

  • Vaikimisi salvestusruum
    Pärast installatsiooni on vaikimisi salvestusruum /var/lib/libvirt/images/.
    Virtuaalkettad luuakse sinna kataloogi.
  • Uue salvestusruumi loomine (näide)
  1. Loo kataloog
    sudo mkdir /data/kvm-images && sudo chown libvirt-qemu:kvm /data/kvm-images
  2. Lisa salvestusruum virt-manageri või virsh abil. Virshi näide:
    virsh pool-define-as --name mypool --type dir --target /data/kvm-images
    virsh pool-autostart mypool
    virsh pool-start mypool

Virtuaalketta laiendamine ja hetktõmmised

  • Virtuaalketta laiendamine
    Kui soovid suurendada ketta mahtu, kasuta qemu-img käsku (toetab nii qcow2 kui raw):
  sudo qemu-img resize /var/lib/libvirt/images/ubuntu-vm.qcow2 +10G

Pärast seda tuleb virtuaalmasina sees partitsioon või failisüsteem käsitsi laiendada.

  • Hetktõmmiste (snapshot) kasutamine
    qcow2 ketastel saab luua hetktõmmiseid, mis salvestavad oleku teatud ajahetkel.
  virsh snapshot-create-as <virtuaalmasina_nimi> <snapshot_nimi>

Hetktõmmiseid on mugav kasutada enne muudatusi või testimiseks, et vajadusel kiiresti taastada eelnev olek.

Külalisoperatsioonisüsteemi installimine ja haldus

Selles peatükis selgitatakse, kuidas paigaldada tegelik operatsioonisüsteem (guest OS) KVM-i virtuaalmasinasse ning kuidas tagada selle sujuv töö. Tutvustame levinumate süsteemide installatsiooni, ISO-failidega töötamist ja jõudluse optimeerimist.

Tüüpilised külalis-OS-ide installatsiooni sammud

KVM võimaldab kasutada erinevaid operatsioonisüsteeme (nt Ubuntu, CentOS, Windows) virtuaalmasinatena. Allpool on toodud Ubuntu ja Windowsi paigaldamise näited.

  • Ubuntu näide
  1. Laadi Ubuntu ametlik ISO-pilt alla.
  2. Virt-manageri kasutades vali „Uue virtuaalmasina loomine“, vali „Lokaalne installatsioonimeedia“ ja määra allalaaditud ISO-fail.
  3. Määra virtuaalmasina CPU, mälu ja ketta suurus ning alusta installatsiooni.
  4. Järgi ekraanil kuvatavaid juhiseid Ubuntu paigaldamiseks nagu füüsilisse masinasse.
  • Windowsi näide
  1. Laadi alla Windowsi ametlik ISO-pilt või prooviversioon Microsofti kodulehelt.
  2. Loo uus virtuaalmasin virt-manageri või virt-install abil ja vali ISO-fail.
  3. Windowsi puhul paigalda „virtio draiverid“, et parandada ketta ja võrgu jõudlust. Lisa virtio ISO virtuaalse CD-draivina ja kasuta seda seadistamisel.

ISO-piltide hankimine ja kasutamine

  • Laadi külalis-OS-i ametlik ISO alla selle kodulehelt.
  • Virtuaalmasina loomisel määra ISO-faili asukoht – see lisatakse virtuaalse CD/DVD-na.
  • Vajadusel võid lisada mitu ISO-d (nt OS ja draiverid korraga).

Külalis-OS-i halduse nipid ja jõudluse parandamine

  • Ressursside jaotuse optimeerimine
    Määra igale virtuaalmasinale sobiv kogus CPU-d ja mälu. Liiga suured ressursid võivad mõjutada hosti või teisi virtuaalmasinaid.
  • Virtio draiverite paigaldamine
    Windowsile või vanemale Linuxile paigalda virtio draiverid, et parandada ketta ja võrgu jõudlust.
  • Mittevajalike teenuste väljalülitamine
    Keela külalis-OS-is teenused ja taustaprogrammid, mida ei kasuta, et ressursse optimeerida.
  • KVM-i külalistööriistade kasutamine
    QEMU Guest Agent võimaldab saada täpsemat infot virtuaalmasina kohta ning võimaldab paremat juhtimist (nt korralik väljalülitamine).

Praktilised kasutusnäited ja automatiseerimise nipid

KVM-i saab kasutada palju enama kui ainult virtuaalmasinate loomiseks – seda kasutatakse laialdaselt arenduses, testimises ja ettevõtete serverites. Samuti saab paljusid haldustoiminguid automatiseerida skriptide või tööriistadega. Allpool mõned praktilised näited.

Serverikasutuse näited

  • Arendus- ja testkeskkondade eraldamine
    Iga projekti jaoks saab luua eraldi virtuaalmasina ning katsetada erinevaid tarkvaraversioone või konfiguratsioone, mõjutamata tootmiskeskkonda. Samuti on võimalik kiiresti taastada eelmise seisu tänu hetktõmmistele.
  • Ettevõttesisesed teenused
    Failiserver, veebiserver, andmebaas – iga teenus võib töötada eraldi virtuaalmasinas, mis muudab halduse paindlikuks ja piirab võimalike rikete mõju. Virtuaalmasinate varundamine ja hetktõmmiste loomine on lihtne.

Automaatne loomine CLI ja Ansible’iga

  • Virtuaalmasinate automaatne loomine käsurealt
    Kirjutades skripte, mis kasutavad virt-install ja virsh käske, saad kiiresti korraga luua ja hallata mitut virtuaalmasinat. Näide:
  for i in {1..5}
  do
    virt-install --name test-vm-$i --memory 1024 --vcpus 1 
      --disk size=10 --cdrom /path/to/ubuntu.iso 
      --os-type linux --os-variant ubuntu20.04 --graphics none --network network=default --noautoconsole
  done
  • Automaatne seadistamine Ansible’iga
    Kasutades infrastruktuuri automatiseerimise tööriista Ansible, saad kirjutada playbook’e, mis loovad virtuaalmasinad, seadistavad algparameetrid ja paigaldavad tarkvara – kõik ühe käsuga. See on eriti tõhus, kui haldad mitut serverit või soovid tagada ühtlase seadistuse.

Pilvelaadne haldus ja integratsioon

  • Virtuaalmasinate mallide (template) kasutamine
    Loo standardne mall virtuaalmasinast, mida on võimalik kiiresti kloonida uute serverite loomiseks.
  • API ja veebihaldustööriistade kasutamine
    Libvirt pakub API-d, mida saab ühendada teiste tööriistade või haldussüsteemidega. Suuremas keskkonnas kasuta veebipõhiseid haldustööriistu (nt Cockpit), et virtuaalmasinaid visuaalselt hallata.

Tõrkeotsing ja levinud vigade lahendused

KVM-i kasutamisel võib ette tulla erinevaid probleeme, näiteks virtuaalmasin ei käivitu või võrk ei tööta. Selles peatükis selgitame levinumaid probleemitüüpe, nende lahendusi, logide vaatamist ja toetusressursside kasutamist.

Levinumad KVM-i probleemid

  • Virtuaalmasin ei käivitu või ei saa luua
  • Protsessori virtualiseerimistugi (Intel VT, AMD-V) on keelatud
  • Puudub piisavalt mälu või kettaruumi
  • Vale salvestusruumi või ISO-faili tee
  • Võrguühendus ei toimi
  • Virtuaalmasina võrgukaart pole õigesti seadistatud
  • Silla- või NAT-seadistuse viga, DHCP jaotuse probleemid
  • Tulemüüri või turvasätete takistus
  • Väga madal jõudlus
  • Liiga palju või vähe ressursse määratud
  • Virtio draiverid puuduvad (eriti Windowsi puhul)
  • Ketta I/O on pudelikaelaks

Logide kontroll ja põhiline lahendusprotsess

Kui tekib probleem, alusta alati logide kontrollist.

  • Süsteemilogide vaatamine
  sudo journalctl -xe

Vaata, kas seal on KVM-i või libvirt’iga seotud veateateid.

  • libvirt’i logid
    Logid asuvad /var/log/libvirt/ kataloogis (nt libvirtd.log).
  • Virtuaalmasina logid
    Virt-manageris või virsh käsuga vaata virtuaalmasina seisu ja logisid.
  • Võrgu oleku kontroll
  ip a
  brctl show
  virsh net-list --all

Nendega saad kontrollida võrguühendust ja sildade seadistust.

Põhiline tõrkeotsingu protsess

  1. Määratle, millal probleem tekkis ja mis muutus
  2. Vaata ülaltoodud logisid ja seadistusi
  3. Vajadusel muuda seadistusi, taaskäivita teenus või loo virtuaalmasin uuesti

Ametlike juhendite ja kogukonna kasutamine

Probleemide korral on abiks järgmised ressursid:

Turvalisus ja jõudluse optimeerimine

KVM-i ohutu ja efektiivne kasutamine eeldab turvameetmeid ja jõudluse optimeerimist. Selles peatükis toome välja olulisemad turvanipid ja jõudluse tõstmise nõuanded.

Virtualiseerimiskeskkonna turvamine

  • Keela mittevajalikud teenused
    Lülita välja teenused, mida virtuaalmasinas või hostis ei kasutata, et vähendada rünnakupinda.
  • Tulemüür ja juurdepääsupiirangud
    Sea tulemüür (nt ufw või firewalld) nii hostis kui külalissüsteemides; piiritle SSH ligipääs ja kasuta võtmetega autentimist, vajadusel ka fail2ban-i.
  • Virtuaalmasinate isoleerimine
    Tundlikud serverid paiguta eraldi virtuaalvõrkudesse või isegi füüsiliselt eraldi segmentidesse, et minimeerida turvariski.
  • Regulaarne tarkvarauuendus
    Hoia nii host- kui külalissüsteemid värsked, paigaldades regulaarselt turvapaigad ja uuendused.

Ressursside (CPU/mälu/kettakasutus) optimeerimine

  • Ressursside mõistlik jaotus
    Määra igale virtuaalmasinale piisavalt CPU-d ja mälu, kuid jäta ka hostile ressurssi. Üleliigne jaotus võib kõigi süsteemide tööd aeglustada.
  • Ketta I/O optimeerimine
    Ketta jõudlus on tihti pudelikaelaks. Tõsisemate virtuaalmasinate jaoks kasuta kiiret SSD-d. qcow2-formaadis ketastel võib liiga palju hetktõmmiseid jõudlust langetada – kasuta neid tasakaalukalt.
  • Virtio draiverite kasutamine
    Virtuaalmasina sees paigalda virtio draiverid, et saavutada parim võimalik ketta- ja võrgukiirus.

Varundus ja hetktõmmiste automatiseerimine

  • Regulaarsed hetktõmmised
    Tootmiskeskkonna virtuaalmasinatele loo regulaarselt hetktõmmiseid, et tagada kiire taastumine rikke korral.
  • Virtuaalketaste ja seadistuste varundus
    Tee koopiaid virtuaalkettafailidest (qcow2, raw) ja libvirt’i seadistusfailidest (XML). Varunda need teise serverisse või välisele andmekandjale.
  • Automatiseerimine
    Kasuta cron’i või Ansible’t, et ajastada automaatset varundust ja hetktõmmiste loomist.

Kokkuvõte ja edasised õppeallikad

Selles artiklis selgitasime, kuidas seadistada ja hallata KVM-i virtualiseerimiskeskkonda Ubuntus – alates paigaldusest kuni praktilise kasutuse, tõrkeotsingu ning turva- ja jõudlusnippideni. Lõpetuseks teeme lühikokkuvõtte ning toome välja soovituslikud õppeallikad edasiseks arendamiseks.

Artikli kokkuvõte

  • KVM-i ülevaade ja eelised
    KVM on avatud lähtekoodiga ning suure jõudlusega virtualiseerimistehnoloogia, mida kasutatakse laialdaselt Ubuntu serverites ja teistes Linuxi keskkondades.
  • Paigaldusest halduseni
    Käsitlesime, kuidas kontrollida protsessori virtualiseerimistuge, paigaldada vajalikud paketid, seadistada kasutajaõigused ning luua ja hallata virtuaalmasinaid.
  • Võrk, salvestusruum ja praktiline haldus
    Tutvustasime NAT-i ja silla (bridge) võrke, salvestusruumi haldust, ketta laiendamist ja hetktõmmiste kasutamist vastavalt vajadusele.
  • Tõrkeotsing ja turvalisus
    Selgitasime levinud vigade lahendusi, logide kontrolli ning turvalise ja tõhusa kasutamise põhinõuandeid.

Edasised sammud ja soovituslikud õppematerjalid

KVM on paindlik virtualiseerimislahendus, mis sobib nii üksikisikutele kui ettevõtetele. Kasuta seda artiklit stardipunktina ja arenda oma virtualiseerimisteadmisi veelgi edasi!

Käskude spikker ja tüüpilised näited (cheat sheet)

KVM-i ja libvirt’i haldamisel on mugav hoida käepärast sagedamini kasutatavad käsud ja seadistused. Allpool on toodud peamised käsud ja võrgu- ning kettaseadistuste näited.

KVM/virsh/virt-manager’i peamised käsud

  • Virtuaalmasinate nimekirja kuvamine
  virsh list --all
  • Virtuaalmasina käivitamine
  virsh start <virtuaalmasina_nimi>
  • Virtuaalmasina sulgemine
  virsh shutdown <virtuaalmasina_nimi>
  • Virtuaalmasina sundpeatamine
  virsh destroy <virtuaalmasina_nimi>
  • Virtuaalmasina loomine (virt-install)
  virt-install --name <nimi> --memory <MB> --vcpus <tuumade_arv> 
    --disk size=<GB> --cdrom <ISO_tee> 
    --os-type linux --os-variant ubuntu20.04
  • Virtuaalmasina eemaldamine (ainult seadistus)
  virsh undefine <virtuaalmasina_nimi>

Võrgu ja silla seadistamise näited

  • Võrkude nimekirja kuvamine
  virsh net-list --all
  • Uue võrgu loomine (XML-näide)
    Paiguta XML-fail kataloogi /etc/libvirt/qemu/networks/, siis aktiveeri:
    virsh net-define <failinimi>, virsh net-start <võrgu_nimi>

Salvestusruumi ja ketaste näited

  • Salvestusruumide nimekiri
  virsh pool-list --all
  • Virtuaalketta laiendamine
  sudo qemu-img resize /path/to/disk.qcow2 +10G
  • Hetktõmmise loomine
  virsh snapshot-create-as <virtuaalmasina_nimi> <snapshot_nimi>

Muud kasulikud nipid

  • Virtuaalmasina automaatne käivitamine hosti buutimisel
  virsh autostart <virtuaalmasina_nimi>
  • Virtuaalmasina detailinfo
  virsh dominfo <virtuaalmasina_nimi>
  • virt-manager’i käivitamine (GUI)
  virt-manager

KKK (Korduma kippuvad küsimused)

Siin on vastused sageli esitatud küsimustele seoses KVM-i ja Ubuntu virtualiseerimiskeskkonna seadistamise ning haldamisega.

K1: Mis vahe on KVM-il, VirtualBoxil ja VMware’il?

V1: KVM on Linuxi kernelisse integreeritud suure jõudlusega virtualiseerimiskeskkond, sobides eriti serveri ja tõsise kasutuse jaoks. VirtualBox on töölauale orienteeritud, VMware on tasuline, sobib suurtesse ettevõtetesse ja pakub laialdast tuge, kuid KVM annab tasuta väga hea jõudluse ja on paindlik.

K2: Kuidas varundada ja taastada virtuaalmasinaid?

V2: Kopeeri lihtsalt virtuaalketta failid (qcow2 või raw). Samuti tasub varundada virshi snapshot’id ja masinate XML-seadistusfailid – nii on taastamine kiire ja lihtne.

K3: Kuidas kasutada USB-seadmeid virtuaalmasinas?

V3: Lisa virt-manager’is „Uus riistvara” kaudu USB või seadista virsh’iga USB pass-through – nii saab virtuaalmasin kasutada näiteks USB-mälupulka, välist HDD-d või printerit.

K4: Kuidas käivitada virtuaalmasin automaatselt koos hostiga?

V4: Kasuta käsku virsh autostart <virtuaalmasina_nimi>, et seada automaatne käivitamine hosti buutimisega.

K5: Mida teha, kui virtuaalmasin on aeglane?

V5: Vaata CPU ja mälu jaotust üle, optimeeri ketta I/O (kasuta kiiret SSD-d, vajadusel vaheta qcow2 → raw), paigalda virtio draiverid.

K6: Võrgu seadistamine ei õnnestu, mida teha?

V6: Kontrolli võrgu olekut virsh’i või brctl abil, vajadusel loo võrk uuesti või muuda Netplani/NetworkManageri seadistusi.

K7: Kas KVM-iga saab luua klastrit või HA lahendusi?

V7: Jah, kasutades näiteks Pacemakerit, Corosync’i ja jagatud salvestusruumi (NFS, iSCSI) on võimalik ehitada kõrgkäideldav klaster või kasutada live-migratsiooni. See nõuab aga lisateadmisi.

侍エンジニア塾