Dit enge woord is ‘virtualisatie’. Mijn oplossing is gebaseerd op KVM. Wat is KVM-virtualisatie

Bij het kiezen van een tarief kiest iemand ook de virtualisatiemethode voor de server. Wij bieden keuze uit virtualisatie op besturingssysteemniveau OpenVZ en hardwarevirtualisatie KVM.

Het is onmogelijk om het type virtualisatie na de lancering te wijzigen, omdat de servers zich op verschillende hardwareplatforms bevinden. Je zult moeten bestellen nieuwe server, verplaats het project en verlaat de oude server.

Vergelijking van virtualisatietypen

OpenVZ KVM
Besturingssysteem van een aantal voorgestelde: Debian, CentOS, UbuntuLinux, Windows, FreeBSD, uw eigen distributie installeren
Bronnen wijzigen zonder opnieuw op te starten ( HDD, geheugen, processor)Geheugen en processor veranderen na opnieuw opstarten, harde schijf - alleen nadat contact is opgenomen met de ondersteuning (geheugen kan niet worden gewijzigd bij kant-en-klare plannen)
Wijziging tariefplan zonder opnieuw opstarten

Wijziging van het tariefplan. De server zal gedurende 1-2 uur niet beschikbaar zijn.

Zachte limieten: maximale serverprestaties kunnen naar boven of naar beneden afwijkenHarde limieten: elke server ontvangt de aangegeven bronnen
Beperking op het starten van projecten met een hoge belasting. Het is verboden Java-applicaties, massamailings of proxyverkeer uit te voeren. TUN/TAP is uitgeschakeld.Mogelijkheid om alle projecten uit te voeren (behalve gedistribueerde computersystemen)

OpenVZ-virtualisatie

OpenVZ - virtualisatie op besturingssysteemniveau. De technologie is gebaseerd op de Linux OS-kernel en maakt het mogelijk om programma's te maken en uit te voeren kopieën van elkaar geïsoleerd geselecteerde besturingssysteem (Debian, CentOS, Ubuntu). Het installeren van een ander besturingssysteem is niet mogelijk, omdat er gebruik wordt gemaakt van virtuele servers gemeenschappelijke kern Linux.

De technologie onderscheidt zich door het gemak van serverbeheer: de gebruiker kan voeg zelf het aantal bronnen toe(geheugen, processor, harde schijf) of stap over naar een ander tarief met dezelfde virtualisatie. Wijzigingen in bronnen worden automatisch toegepast, zonder dat de server opnieuw hoeft te worden opgestart.

Op servers met OpenVZ-virtualisatie verboden loop:

  • diensten voor het organiseren van proxying van elk type verkeer
  • streamingdiensten
  • spelservers
  • systemen of elementen van gedistribueerde computersystemen (bijvoorbeeld bitcoin-mining)
  • massamailingdiensten mailberichten, zelfs als ze voor legale doeleinden worden gebruikt
  • Java-applicaties
  • andere resource-intensieve toepassingen

Dergelijke projecten zorgen voor een ongelijkmatige belasting van de bovenliggende server en kunnen aangrenzende virtuele machines verstoren.

KVM-virtualisatie

KVM (Kernel-based Virtual Machine) is een waarmee u creaties kunt maken volledig virtueel analoog fysieke server . Met KVM kunt u een virtuele server creëren die volledig geïsoleerd is van zijn “buren” met zijn eigen OS-kernel, die de gebruiker zonder beperkingen kan aanpassen en aanpassen aan zijn eigen behoeften. Aan elke dergelijke server wordt zijn eigen gebied in RAM en harde schijfruimte toegewezen, wat de algehele betrouwbaarheid van een dergelijke server vergroot.

Installatie mogelijk elk besturingssysteem om uit te kiezen (Debian, CentOS, Ubuntu, FreeBSD, Windows-server), of installeer uw eigen distributie (klik in het VMmanager-paneel in de sectie ISO-images op de knop Maken en voeg uw ISO-image van het systeem toe).

Wijziging van tarief plan is alleen mogelijk in grote kant en alleen binnen het kader van de basistarieven (Start, Acceleratie, Breakaway, Fly away). Als uw project buiten het tarief ‘groeit’, schrijf dan een ondersteuningsverzoek van Persoonlijk account- beheerders zullen het tarief kosteloos wijzigen naar het gewenste tarief. Tarief wijzigen naar beneden Je kunt het alleen overbrengen naar een nieuwe server. Bestel een nieuwe server en breng de gegevens zelf over, of technische ondersteuningsspecialisten helpen met de overdracht voor 1 oproep onder het administratiepakket of 250 roebel.

Houd er rekening mee dat dit op de VDS-Forsazh- en VDS-Atlant-tarieven mogelijk is middelen wijzigen in plaats van het tarief te wijzigen: het aantal beschikbare processorcores en RAM onafhankelijk in het bedieningspaneel, en de grootte harde schijf- nadat u contact heeft opgenomen met de ondersteuning (als onderdeel van de administratie of voor 250 roebel).

Gezien de functies en voordelen die KVM-virtualisatie biedt, is het tarieven zijn duurder vergelijkbare tarieven met OpenVZ-virtualisatie.

Op servers met KVM-virtualisatie is het de Abonnee verboden systemen of elementen van gedistribueerde computersystemen te plaatsen (bijvoorbeeld bitcoin-mining).

Virtualisatie op de server wijzigen

Het is onmogelijk om de virtualisatie van OpenVZ naar KVM en omgekeerd binnen dezelfde server te veranderen.

1. Bestel een tweede server bij de noodzakelijke virtualisatie in het BILLmanager-paneel, sectie Virtuele servers → Bestellen

2. Breng er gegevens naar over.

3. Na overdracht en verificatie oude server kunnen worden verwijderd (Virtuele servers → Verwijderen).


In Ubuntu wordt het aanbevolen om de KVM-hypervisor (virtuele machinebeheerder) en de libvirt-bibliotheek als beheertool hiervoor te gebruiken. Libvirt bevat een reeks software-API's en aangepaste besturingstoepassingen virtuele machines(VM) virt-manager (grafische interface, GUI) of virsh (opdrachtregel, CLI). Als alternatieve beheerders kunt u convirt (GUI) of convirt2 (WEB-interface) gebruiken.

Momenteel wordt alleen de KVM-hypervisor officieel ondersteund op Ubuntu. Deze hypervisor maakt deel uit van de operationele kernelcode Linux-systemen. In tegenstelling tot Xen ondersteunt KVM geen paravirtualisatie, wat betekent dat om het te kunnen gebruiken, uw CPU VT-technologieën moet ondersteunen. U kunt controleren of uw processor deze technologie ondersteunt door de opdracht in de terminal uit te voeren:

Als u hierdoor het volgende bericht ontvangt:

INFO: /dev/kvm bestaat KVM-versnelling kan worden gebruikt

Dit betekent dat KVM zonder problemen zal werken.

Als u bij de uitgang het volgende bericht heeft ontvangen:

Uw CPU ondersteunt geen KVM-extensies KVM-versnelling kan NIET worden gebruikt

dan kun je nog steeds de virtuele machine gebruiken, maar het zal veel langzamer zijn.

    Installeer 64-bits systemen als gasten

    Wijs meer dan 2 GB RAM toe aan gastsystemen

Installatie

Sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Dit is een installatie op een server zonder X, d.w.z. er is geen grafische interface aanwezig. Je kunt het installeren met het commando

Sudo apt-get install virt-manager

Hierna verschijnt het item "Virtual Machine Manager" in het menu en met grote waarschijnlijkheid zal alles werken. Als er zich nog steeds problemen voordoen, moet u de instructies in de Engelse wiki lezen.

Een gastsysteem maken

Procedure voor het aanmaken van een gast met behulp van GUI redelijk makkelijk.

Maar de tekstmodus kan worden beschreven.

qkoe2

Wanneer u een systeem maakt dat de grafische interface als harde schijf gebruikt, wordt u gevraagd een bestaand imagebestand of blokapparaat te selecteren, of een nieuw bestand met ruwe (RAW) data. Dit is echter verre van het enige beschikbaar formaat bestanden. Van alle schijftypen die in man qemu-img worden vermeld, is qcow2 de meest flexibele en moderne. Het ondersteunt snapshots, encryptie en compressie. Het moet worden aangemaakt voordat een nieuwe gast wordt aangemaakt.

Qemu-img create -o preallocation=metadata -f qcow2 qcow2.img 20G

Volgens dezelfde man qemu-img maakt het vooraf toewijzen van metadata (-o preallocation=metadata) de schijf in eerste instantie iets groter, maar levert betere prestaties wanneer het beeld moet groeien. Sterker nog, binnen in dit geval Met deze optie kunt u een onaangename bug vermijden. Beeld gemaakt neemt aanvankelijk minder dan een megabyte aan ruimte in beslag en groeit indien nodig naar de opgegeven grootte. Het gastsysteem zou deze finale onmiddellijk moeten zien gespecificeerde maat Tijdens de installatiefase kan ze echter wel zien daadwerkelijke grootte bestand. Uiteraard zal het weigeren te installeren op een harde schijf van 200 KB. De bug is niet specifiek voor Ubuntu; hij verschijnt tenminste in RHEL.

Naast het type afbeelding kunt u vervolgens de verbindingsmethode kiezen: IDE, SCSI of Virtio Disk. De prestaties van het schijfsubsysteem zijn afhankelijk van deze keuze. Er is geen definitief juist antwoord; u moet kiezen op basis van de taak die aan het gastsysteem wordt toegewezen. Als het gastsysteem is gemaakt ‘om naar te kijken’, dan is elke methode voldoende. Over het algemeen is I/O meestal het knelpunt van een virtuele machine, dus bij het creëren van een zwaarbelast systeem moet dit probleem zo verantwoordelijk mogelijk worden behandeld.

Persoonlijk is het voor mij het gemakkelijkst om KVM (Kernel-based Virtual Machine) te beschouwen als een abstractieniveau bovenën Intel VT-x en AMD-V. We nemen een machine met een processor die een van deze technologieën ondersteunt, installeren Linux op deze machine, installeren KVM in Linux en als resultaat krijgen we de mogelijkheid om virtuele machines te creëren. Dit is ongeveer hoe cloudhosting werkt, bijvoorbeeld Amazon Web Services. Samen met KVM wordt soms ook Xen gebruikt, maar een bespreking van deze technologie valt buiten het bestek van dit bericht. In tegenstelling toteën, bijvoorbeeld Docker, kunt u met KVM elk besturingssysteem als gastsysteem uitvoeren, maar het heeft ook O Hogere overhead voor virtualisatie.

Opmerking: De hieronder beschreven stappen zijn door mij getest op Ubuntu Linux 14.04, maar in theorie zullen ze grotendeels geldig zijn voor zowel andere versies van Ubuntu als andere Linux-distributies. Alles zou zowel op de desktop als op de server moeten werken, toegankelijk via SSH.

KVM installeren

We controleren of Intel VT-x of AMD-V wordt ondersteund door onze processor:

grep -E "(vmx|svm)" /proc/cpuinfo

Als iets heet wordt, betekent dit dat het wordt ondersteund en dat je verder kunt.

KVM installeren:

sudo apt-get-update
sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils

Wat wordt meestal opgeslagen waar:

  • /var/lib/libvirt/boot/ - ISO-images voor het installeren van gastsystemen;
  • /var/lib/libvirt/images/ — afbeeldingen van harde schijven van gastsystemen;
  • /var/log/libvirt/ - hier zou je naar alle logs moeten zoeken;
  • /etc/libvirt/ - map met configuratiebestanden;

Nu KVM is geïnstalleerd, gaan we onze eerste virtuele machine maken.

Het creëren van de eerste virtuele machine

Ik heb FreeBSD als gastsysteem gekozen. Download de ISO-image van het systeem:

cd /var/lib/libvirt/boot/
sudo wget http://ftp.freebsd.org/ pad/ naar/some-freebsd-disk.iso

Virtuele machines worden in de meeste gevallen beheerd met behulp van het virsh hulpprogramma:

sudo virsh --help

Voordat we de virtuele machine starten, moeten we wat aanvullende informatie verzamelen.

We kijken naar de lijst met beschikbare netwerken:

sudo virsh net-lijst

Bekijk informatie over specifiek netwerk(standaard genoemd):

sudo virsh net-info standaard

Laten we eens kijken naar de lijst met beschikbare optimalisaties voor gastbesturingssystemen:

sudo virt-install --os-variantlijst

Dus nu maken we een virtuele machine met 1 CPU, 1 GB RAM en 32 GB schijfruimte, verbonden met het standaardnetwerk:

sudo virt-install\
--virt-type =kvm\
--naam freebsd10\
--ram 1024\
--vcpus=1\
--os-variant =freebsd8 \
--hvm\
--cdrom =/ var/ lib/ libvirt/ boot/ FreeBSD-10.2 -RELEASE-amd64-disc1.iso \
--netwerk netwerk =standaard,model =virtio \
--grafische vnc\
--schijfpad =/ var/ lib/ libvirt/ images/ freebsd10.img,size =32,bus =virtio

Je kan zien:

WAARSCHUWING Kan geen verbinding maken met de grafische console: virt-viewer niet
geïnstalleerd. Installeer alstublieft het "virt-viewer" pakket.

Domeininstallatie wordt nog uitgevoerd. Jij kan maak opnieuw verbinding met de console
om het installatieproces te voltooien.

Dit is normaal, dit is hoe het zou moeten zijn.

Bekijk vervolgens de eigenschappen van de virtuele machine in XML-formaat:

sudo virsh dumpxml freebsd10

Hier zijn de meeste volledige informatie. Daartoe behoort bijvoorbeeld een MAC-adres, dat we later nodig zullen hebben. Voorlopig zoeken we informatie over VNC. In mijn geval:

Met uw favoriete client (ik gebruik persoonlijk Rammina) loggen we in via VNC, indien nodig met behulp van SSH port forwarding. We komen meteen in het FreeBSD-installatieprogramma. Dan is alles zoals gewoonlijk: Volgende, Volgende, Volgende, we krijgen het geïnstalleerde systeem.

Basiscommando's

Laten we nu kijken naar de basisopdrachten voor het werken met KVM.

Een lijst krijgen van alle virtuele machines:

sudo virsh lijst --all

Informatie verkrijgen over een specifieke virtuele machine:

sudo virsh dominfo freebsd10

Virtuele machine starten:

sudo virsh start freebsd10

Virtuele machine stoppen:

sudo virsh shutdown freebsd10

Nauwelijks de virtuele machine te pakken krijgen (ondanks de naam, this Niet verwijdering):

sudo virsh vernietig freebsd10

Start de virtuele machine opnieuw op:

sudo virsh start freebsd10 opnieuw op

Virtuele machine klonen:

sudo virt-clone -o freebsd10 -n freebsd10-clone \
--bestand /var/lib/libvirt/images/freebsd10-clone.img

Autorun in-/uitschakelen:

sudo virsh autostart freebsd10
sudo virsh autostart -- schakel freebsd10 uit

Virsh uitvoeren in dialoogmodus (alle commando's in dialoogmodus - zoals hierboven beschreven):

sudo virsh

De eigenschappen van de virtuele machine in XML bewerken, inclusief hier kunt u de limiet op de hoeveelheid geheugen wijzigen, enz.:

sudo virsh bewerk freebsd10

Belangrijk! Opmerkingen uit de bewerkte XML zijn helaas verwijderd.

Wanneer de virtuele machine wordt gestopt, kan de grootte van de schijf ook worden gewijzigd:

sudo qemu-img resize /var/ lib/ libvirt/ images/ freebsd10.img -2G
sudo qemu-img info /var/lib/libvirt/images/freebsd10.img

Belangrijk! Uw gastbesturingssysteem zal het waarschijnlijk niet leuk vinden als de schijf plotseling groter of kleiner wordt. In het beste geval zal het opstarten in de noodmodus met een voorstel om de schijf opnieuw te partitioneren. Waarschijnlijk zou je dat niet willen doen. Het kan veel eenvoudiger zijn om een ​​nieuwe virtuele machine te maken en alle gegevens ernaar te migreren.

Back-up en herstel zijn vrij eenvoudig. Het is voldoende om de dumpxml-uitvoer ergens op te slaan, evenals de schijfkopie, en deze vervolgens te herstellen. Op Youtube heb het filmpje kunnen vinden Met een demonstratie van dit proces is alles echt niet moeilijk.

Netwerkinstellingen

Een interessante vraag: hoe bepaal je welk IP-adres de virtuele machine heeft ontvangen na het laden? KVM doet dit op een slimme manier. Uiteindelijk heb ik dit script in Python geschreven:

#!/usr/bin/env python3

# virt-ip.py-script
# (c) 2016 Aleksander Alekseev
# http://site/

importsysteem
import re
importeer os
subproces importeren
vanuit xml .etree importeer ElementTree

def eprint(str) :
print(str, bestand = sys.stderr)

if len(sys.argv)< 2 :
eprint("GEBRUIK: " + sys.argv [ 0 ] + " " )
eprint("Voorbeeld: " + sys .argv [ 0 ] + "freebsd10" )
sys.exit(1)

als os .geteuid() != 0 :
eprint("ERROR: je moet root zijn" )
eprint("Hint: voer `sudo " + sys .argv [ 0 ] + " ...`" ) uit;
sys.exit(1)

if subproces .call ( "welke arping 2>&1 >/dev/null", shell = Waar ) != 0 :
eprint("FOUT: arping niet gevonden" )
eprint( "Hint: voer `sudo apt-get install arping` uit")
sys.exit(1)

Domein = sys.argv[1]

indien niet opnieuw .match ("^*$", domein):
eprint( "ERROR: ongeldige tekens in domeinnaam")
sys.exit(1)

Domout = subproces .check_output ("virsh dumpxml " +domain+" || true" ,
schil = Waar)
domout = domout.decode("utf-8").strip()

als domout == "" :
# foutmelding al afgedrukt door dumpxml
sys.exit(1)

Doc = ElementTree.fromstring(domout)

# 1. maak een lijst van alle netwerkinterfaces
# 2. voer `arping` parallel uit op elke interface
#3.grep antwoordt
cmd = "(ifconfig | knippen -d " " -f 1 | grep -E "." | " + \
"xargs -P0 -I IFACE arping -i IFACE -c 1 () 2>&1 | " + \
"grep "bytes van") || waar"

voor kind in doc.iter() :
if child.tag == "mac" :
macaddr = kind.attrib["adres"]
macout = subproces .check_output (cmd .format (macaddr),
schil = Waar)
print(macout.decode("utf-8"))

Het script werkt met zowel het standaardnetwerk als het overbrugde netwerk, waarvan we de configuratie later zullen bekijken. In de praktijk is het echter veel handiger om KVM zo te configureren dat het altijd dezelfde IP-adressen aan gastsystemen toewijst. Bewerk hiervoor de netwerkinstellingen:

sudo virsh net-edit standaard

... iets zoals dit:

>



>

Nadat u deze wijzigingen heeft aangebracht


>

... en vervang het door iets als:




>

We starten het gastsysteem opnieuw op en controleren of het via DHCP een IP-adres heeft ontvangen van de router. Als u wilt dat het gastsysteem dat heeft statisch IP-adres, wordt dit zoals gebruikelijk geconfigureerd binnen het gastsysteem zelf.

virt-manager programma

Mogelijk ben je ook geïnteresseerd in het virt-manager programma:

sudo apt-get install virt-manager
sudo usermod -a -G libvirtd GEBRUIKERSNAAM

Zo ziet het hoofdvenster eruit:

Zoals je kunt zien is virt-manager niet alleen een GUI voor virtuele machines die lokaal draaien. Met zijn hulp kunt u virtuele machines beheren die op andere hosts draaien, en in realtime prachtige graphics bekijken. Persoonlijk vind ik het vooral handig in virt-manager dat je niet door de configuraties hoeft te zoeken om uit te vinden op welke poort VNC draait op een bepaald gastsysteem. U hoeft alleen maar de virtuele machine in de lijst te vinden, te dubbelklikken en toegang te krijgen tot de monitor.

Met de hulp van virt-manager is het ook erg handig om dingen te doen die anders arbeidsintensief bewerken van XML-bestanden zouden vereisen en, in sommige gevallen, het uitvoeren van extra commando's. Bijvoorbeeld het hernoemen van virtuele machines, het instellen van CPU-affiniteit en soortgelijke zaken. Overigens vermindert het gebruik van CPU-affiniteit aanzienlijk het effect van luidruchtige buren en de invloed van virtuele machines op het hostsysteem. Gebruik het altijd indien mogelijk.

Als u besluit KVM te gebruiken als vervanging voor VirtualBox, houd er dan rekening mee dat ze geen hardwarevirtualisatie onderling kunnen delen. Om KVM op uw bureaublad te laten werken, moet u niet alleen alle virtuele machines in VirtualBox en Vagrant stoppen, maar ook het systeem opnieuw opstarten. Persoonlijk vind ik KVM veel handiger dan VirtualBox, tenminste omdat je er geen commando voor hoeft uit te voeren sudo /sbin/rcvboxdrv installatie na elke kernelupdate werkt het adequaat met Unity, en kun je over het algemeen alle vensters verbergen.

KVM (Kernel-gebaseerde virtuele machine) - software-oplossing, dat virtualisatie biedt in een Linux-omgeving op het x86-platform, dat hardwarevirtualisatie ondersteunt op basis van Intel VT ( Virtualisatie technologie) of AMD SVM (veilige virtuele machine).

KVM-software bestaat uit een kernellaadmodule (genaamd kvm.ko) die de basisvirtualisatieservice levert, een processorspecifieke laadmodule kvm-amd.ko of kvm-intel.ko, en gebruikersmoduscomponenten (een aangepaste QEMU). Alle componenten software KVM's zijn open. Kernelcomponent vereist voor KVM-werk, opgenomen in de hoofdtak Linux-kernels sinds versie 2.6.20 (februari 2007). KVM werd ook als kernelmodule naar FreeBSD geport. Er wordt gewerkt aan het opnemen van de wijzigingen die nodig zijn om met KVM te kunnen werken in de hoofdtak van QEMU.

Werkt met KVM een groot aantal van gast-besturingssysteem, inclusief vele typen en Linux-versies, BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, AROS Research Operating System en OS X. Daarnaast Android 2.2, Minix 3.1.2a, Solaris 10 U3 en Darwin 8.0.1GNU/Hurd (Debian K16), Minix 3.1 .2a, Solaris 10 U3 en Darwin 8.0.1, samen met enkele versies van de bovenstaande besturingssystemen, werken met enkele beperkingen.

Paravirtualisatie van sommige apparaten is beschikbaar op Linux, OpenBSD, FreeBSD, NetBSD, Plan 9 en Windows gastbesturingssystemen VirtIO API. Dit ondersteunt paravirtueel Ethernet-kaarten, I/O-schijfcontroller, apparaten voor het wijzigen van het door de gast verbruikte geheugen, evenals grafische afbeeldingen VGA-interface met behulp van SPICE- of VMware-stuurprogramma's.

Omgeving

KVM zelf voert geen emulatie uit. In plaats daarvan gebruikt het programma dat in de gebruikersruimte draait de interface /dev/kvm om de adresruimte van de gast van de virtuele machine te configureren, en emuleert hierdoor I/O-apparaten en de videoadapter.

Met KVM kunnen virtuele machines ongewijzigde schijfimages gebruiken van QEMU, VMware en andere die besturingssystemen bevatten. Elke virtuele machine heeft zijn eigen virtuele hardware: netwerkkaarten, schijf, videokaart en andere apparaten.

Verhaal

KVM-software is gemaakt, ontwikkeld en onderhouden door Qumranet, dat op 4 september 2008 door Red Hat werd overgenomen voor $ 107 miljoen. Na de deal werd KVM (samen met het oVirt virtualisatiebeheersysteem) onderdeel van het RHEV-virtualisatieplatform. KVM wordt ondersteund door Paolo Bonzini.

Werkingsprincipe

Momenteel communiceert KVM met de kernel via een laadbare kernelmodule. Er wordt een verscheidenheid aan gastbesturingssystemen ondersteund, zoals Linux, BSD, Solaris, Windows, Haiku, ReactOS en AROS Research Operating System. Een aangepaste versie van KVM (qemu) kan draaien op Mac OS X. Opmerking: KVM voert geen zelfemulatie uit; in plaats daarvan gebruikt een programma dat in de gebruikersruimte draait de /dev/kvm interface om de adresruimte van de gast te configureren virtuele server, neemt zijn gesimuleerde I/O-bronnen en wijst zijn afbeelding toe aan de hostafbeelding.

In de KVM-architectuur draait de virtuele machine als een normaal Linux-proces, gepland door de standaard Linux-planner. In feite verschijnt elke virtuele processor als een normaal Linux-proces. Hierdoor kan KVM profiteren van alle functies van de Linux-kernel. Bedieningselementen voor apparaatemulatie aangepaste versie qemu, die voorziet BIOS-emulatie, PCI-bussen, USB-bussen, evenals een standaardset apparaten zoals schijfcontrollers IDE en SCSI, netwerkkaarten, enz.

Functionaliteit

Veiligheid

Omdat de virtuele machine is geïmplementeerd als een Linux-proces, gebruikt deze het standaard Linux-beveiligingsmodel om bronnen te isoleren en te beheren. Met SELinux (Security-Enhanced Linux) voegt de Linux-kernel verplichte toegangscontroles, gelaagde en meerlaagse beveiliging toe, en beheert het beveiligingsbeleid. SELinux biedt strikte bronisolatie en beperkt de mobiliteit van processen die in de Linux-kernel draaien.

Het SVirt-project, een inspanning van de gemeenschap om Mandatory Access Control (MAC)-beveiligingsfuncties en op Linux gebaseerde virtualisatie (KVM) te integreren, bouwt voort op SELinux om een ​​infrastructuur te bieden waarmee een beheerder een isolatiebeleid voor virtuele machines kan definiëren. SVirt is ontworpen om ervoor te zorgen dat bronnen van virtuele machines niet toegankelijk zijn voor andere processen (of virtuele machines); de beheerder kan dit beleid uitbreiden door gedetailleerde machtigingen te definiëren; bijvoorbeeld om een ​​groep virtuele machines dezelfde bronnen te laten delen.

Geheugen management

KVM erft krachtige geheugenbeheerfuncties van Linux. Het geheugen van een virtuele machine wordt op dezelfde manier opgeslagen als het geheugen van elk ander Linux-proces en kan worden vervangen en gekopieerd grote pagina's om de prestaties te verbeteren, samengevat of opgeslagen in een bestand op schijf. Dankzij ondersteuning voor NUMA-technologie (Non-Uniform Memory Access, een geheugenarchitectuur voor systemen met meerdere processors) kunnen virtuele machines efficiënt toegang krijgen tot grote hoeveelheden geheugen.

KVM ondersteunt de nieuwste geheugenvirtualisatiefuncties van processorfabrikanten, zoals Intel Extended Page Table (EPT) en AMD Rapid Virtualization Indexing (RVI), om de processorbelasting te minimaliseren en hoge prestaties te bereiken. bandbreedte.

Het delen van geheugenpagina's wordt ondersteund met behulp van de kernelfunctie Kernel Same-page Merging (KSM). KSM scant het geheugen van elke virtuele machine en als sommige geheugenpagina's van de virtuele machines identiek zijn, combineert het deze tot één pagina, die gemeenschappelijk wordt voor deze virtuele machines en in één kopie wordt opgeslagen. Als het gastsysteem dit probeert te veranderen algemene pagina, ze krijgt haar eigen exemplaar.

Data opslag

KVM kan elk door Linux ondersteund medium gebruiken om afbeeldingen van virtuele machines op te slaan, inclusief lokale schijven met IDE-, SCSI- en SATA-interfaces, Network Attached Storage (NAS), inclusief NFS en SAMBA/CIFS, of SAN met iSCSI- en Fibre Channel-ondersteuning. Multi-threaded I/O kan worden gebruikt om de opslagdoorvoer en redundantie te verbeteren.

Nogmaals, aangezien KVM onderdeel is van de Linux-kernel, kan er gebruik worden gemaakt van bewezen en betrouwbare opslaginfrastructuur, met ondersteuning van alle toonaangevende leveranciers; Het scala aan opslagfuncties heeft zich in veel productie-installaties bewezen.

KVM ondersteunt afbeeldingen van virtuele machines in gedistribueerd bestandssystemen, zoals Global File System (GFS2), zodat ze kunnen worden gedeeld over meerdere hosts of kunnen worden gedeeld met behulp van logische volumes. Steun scherpstellen(thin provisioning) van schijfkopieën stelt u in staat het gebruik van gegevensopslagbronnen te optimaliseren, door ze niet allemaal vooraf in één keer toe te wijzen, maar alleen wanneer de virtuele machine dit nodig heeft. Eigen formaat schijven voor KVM - QCOW2 - bieden snapshot-ondersteuning huidige toestand en biedt verschillende lagen van dergelijke snapshots, evenals compressie en encryptie.

Live migratie

KVM ondersteunt livemigratie, waardoor draaiende virtuele machines tussen fysieke hosts kunnen bewegen zonder de service te onderbreken. Livemigratie is transparant voor gebruikers: de virtuele machine blijft ingeschakeld, netwerk connecties- actief, en aangepaste toepassingen blijven draaien terwijl de virtuele machine naar een nieuwe fysieke server wordt verplaatst.

Naast livemigratie ondersteunt KVM het opslaan van een kopie van de huidige status van de virtuele machine op schijf, zodat u deze kunt opslaan en later kunt herstellen.

Apparaatstuurprogramma's

KVM ondersteunt hybride virtualisatie wanneer paragevirtualiseerde stuurprogramma's in de gast worden geïnstalleerd besturingssysteem, waardoor virtuele machines een geoptimaliseerde I/O-interface kunnen gebruiken in plaats van geëmuleerde apparaten hoge performantie I/O voor netwerk- en blokapparaten.

De KVM-hypervisor maakt gebruik van de VirtIO-standaard, ontwikkeld door IBM en Red Hat samen met de Linux-gemeenschap voor paragevirtualiseerde stuurprogramma's; Het is een hypervisor-onafhankelijke interface voor het maken van apparaatstuurprogramma's, waardoor meerdere hypervisors dezelfde set apparaatstuurprogramma's kunnen delen, waardoor de interoperabiliteit tussen gasten wordt verbeterd.

VirtIO-stuurprogramma's zijn inbegrepen moderne versies Linux-kernels (nieuwste 2.6.25), opgenomen in Red Hoed onderneming Linux 4.8+ en 5.3+, en ook beschikbaar voor Red Hat Enterprise Linux 3. Red Hat heeft VirtIO-stuurprogramma's ontwikkeld voor Microsoft Windows-gastbesturingssystemen die netwerk- en schijf-I/O-bewerkingen optimaliseren; Deze stuurprogramma's zijn gecertificeerd door het certificeringsprogramma van Microsoft Windows Hardware Quality Labs (WHQL).

Prestaties en schaalbaarheid

KVM erft de prestaties en schaalbaarheid van Linux en ondersteunt virtuele machines met 16 virtuele processors en 256 GB RAM, evenals hostsystemen met 256 cores en meer dan 1 TB RAM. Het kan bieden:

  • 95-135% prestatie vergeleken met bare metal in echte bedrijfsapplicaties zoals SAP, Oracle, LAMP en Microsoft Exchange;
  • meer dan een miljoen berichten per seconde en een latentie van minder dan 200 microseconden in virtuele machines die op een standaardserver draaien;
  • maximale consolidatieniveaus met meer dan 600 actieve virtuele machines Enterprise applicaties, op één server.

Dit betekent dat KVM de meest veeleisende workloads kan virtualiseren.

Instellingen

Virtual Machine Manager (VMM) instellen

Wanneer u het programma voor het eerst start, ziet u twee categorieën, beide niet met elkaar verbonden. Dit zijn links naar standaard KVM-modules die nog niet werken. Om ze te gebruiken, klikt u met de rechtermuisknop en selecteert u "verbinden".

Om een ​​nieuwe verbinding toe te voegen, selecteert u Bestand > Verbinding toevoegen in het menu. Er wordt een venster geopend waarin u het hypervisortype en het verbindingstype kunt instellen. VMM kan zowel lokaal als verbindingen op afstand, inclusief QUEMU/KVM en Xen. Bovendien worden alle authenticatiemethoden ondersteund.

U kunt ook het vakje voor automatisch verbinden aanvinken. De volgende keer dat u het programma start, zijn deze verbindingen klaar voor gebruik.

Laten we kort kijken naar de overige functies van het programma.
Netwerkfunctionaliteit kan worden bekeken of gewijzigd door Hostdetails te openen. Daar zullen we hulpprogramma's voor de netwerkbrug installeren.

Op dezelfde manier kunt u de parameters van het schijfsubsysteem wijzigen:

Een virtuele machine maken

U kunt ook een virtuele machine maken van opdrachtregel, maar we zullen VMM gebruiken. De eerste stap moet intuïtief zijn. Voer een naam in en geef de locatie van de installatieschijf op. Dit kan een lokaal apparaat zijn in de vorm van een cd/dvd of ISO-afbeelding en HTTP-of FTP-server, NFS of PXE.

Wij maken gebruik van lokale media. Nu moet u instellen of het een fysiek apparaat of een afbeelding wordt. In ons geval wordt ISO gebruikt. Vervolgens moet u het ISO-type en de versie selecteren. Dit vereist niet zo'n hoge precisie, maar de juiste keuze zal de prestaties van de virtuele machine verbeteren.

Stel het aantal processors en de grootte van het RAM-geheugen in:

Vierde fase - virtuele schijf. Je kunt creëren nieuw beeld of gebruik een bestaande. U moet de schijfgrootte selecteren en opgeven of de schijfkopie onmiddellijk wordt gemaakt gegeven maat, anders neemt de omvang ervan dynamisch toe als dat nodig is. Opgemerkt moet worden dat het in één keer toewijzen van alle ruimte voor een schijfkopie de prestaties verbetert en de fragmentatie van het bestandssysteem vermindert.

Vervolgens zullen we meer aandacht besteden schijf subsysteem. Houd er echter rekening mee dat wanneer u in de gebruikersmodus draait, u geen schrijftoegang hebt tot /var, waar standaard virtuele schijfimages worden opgeslagen. Daarom moet u een andere locatie voor de afbeeldingen instellen.

Fase 5 is de uitvoer van samenvattende gegevens met de mogelijkheid om enkele geavanceerde opties te configureren. Hier kunt u het netwerktype wijzigen, vaste MAC-adressen instellen, het virtualisatietype en de doelarchitectuur selecteren. Als u in de gebruikersmodus werkt, zijn uw netwerkconfiguratieopties beperkt; u kunt bijvoorbeeld geen bruggen tussen netwerkinterfaces maken. Nog een laatste ding: als uw processor geen hardwarevirtualisatie ondersteunt, zal het Virt Type-veld QUEMU zijn en zal het niet mogelijk zijn om dit te wijzigen in KVM. U kunt zien hoe typische instellingen voor een virtuele Ubuntu-machine eruit zien:

  • KVM-kernelmodule: GPL v2.
  • KVM-gebruikersomgevingsmodule: LGPL v2.
  • QEMU virtuele processorbibliotheek (libqemu.a) en QEMU PC-systeememulator: LGPL.
  • Emulator voor gebruikersmodus Linux QEMU: GPL.
  • BIOS-bestanden (bios.bin, vgabios.bin en vgabios-cirrus.bin): SeaBIOS (LGPL v2 of hoger).

Grafische hulpmiddelen

libvirt ondersteunt KVM

  • Kimchi-webbeheertool voor KVM
  • Virtual Machine Manager ondersteunt het maken, bewerken, starten en stoppen van KVM-machines, evenals koude migratie van VM's tussen hosts
  • Proxmox virtuele omgeving gratis pakket virtualisatiebeheer, inclusief KVM en OpenVZ. Het heeft een bare metal-installatieprogramma, een externe webinterface voor beheer en optionele commerciële ondersteuning.
  • OpenQRM-beheerplatform voor het beheren van heterogene datacenters.
  • GNOME Boxen Gnome-interface voor het beheren van libvirt-gasten op Linux.
  • oVirt is een gratis virtualisatiebeheertool voor KVM gebaseerd op libvirt

Implementaties

  • Debian 5.0 en hoger
  • Gentoo Linux
  • op illumos gebaseerde distributies
  • OpenIndiana
  • Red Hat Enterprise Linux (RHEL) 5.4 en hoger
  • SmartOS
  • SUSE Linux Enterprise Server (SLES) 11 SP1 en hoger
  • Ubuntu 10.04 LTS en hoger
  • Univention bedrijfsserver

Origineel: Welkom bij KVM-virtualisatie - Grondige introductie
Auteur: Igor Ljubuncic
Datum van publicatie: 4 mei 2011
Vertaling: A. Krivoshey
Vertaaldatum: juli 2011

Als je mijn artikelen over virtualisatie hebt gelezen, weet je dat ik vroeger vooral VMware en VirtualBox gebruikte, maar nu is het tijd om iets nieuws te proberen. Vandaag wil ik een nieuwe reeks opmerkingen over KVM introduceren. Vervolgens zal ik misschien overstappen naar Xen of een ander systeem, maar nu is de held van ons onderwerp KVM.
In deze handleiding zullen we het hebben over KVM-technologie (Kernel-based Virtual Machine), die is gemaakt door RedHat en die open source is. gratis alternatief hun commerciële tegenhangers. We leren hoe u KVM kunt downloaden, installeren en configureren, welke tools het heeft voor het beheren van virtuele machines, hoe u met KVM op de opdrachtregel kunt werken, hoe u scripts schrijft en nog veel meer. Daarnaast zullen we ingaan op het creëren van geavanceerde (inclusief netwerk) configuraties, evenals andere interessante dingen. Laten we nu beginnen.

KVM-woordenlijst

Laten we eerst een beetje praten over hoe KVM werkt. Niets bijzonders, gewoon een korte introductie zodat u de basisterminologie kent.
KVM maakt gebruik van die wordt ondersteund door moderne processors van Intel en AMD en bekend staat als Intel-VT en AMD-V. Met behulp van een geladen kernelmodule emuleert KVM, met behulp van een gebruikersmodusstuurprogramma (een aangepast stuurprogramma van QEMU), de laag hardware, waar bovenop virtuele machines kunnen worden gemaakt en gelanceerd. KVM kan functioneren zonder hardwarevirtualisatie (als dit niet door de processor wordt ondersteund), maar in dit geval werkt het in pure emulatiemodus met behulp van QUEMU en worden de prestaties van virtuele machines aanzienlijk verminderd.
Voor KVM-beheer U kunt een grafisch hulpprogramma gebruiken dat lijkt op producten van VMware en VirtualBox, evenals de opdrachtregel.
De meest populaire GUI is de Virtual Machine Manager (VMM), gemaakt door RedHat. Het is ook bekend onder de pakketnaam als virt-manager en bevat verschillende hulpprogramma's, waaronder virt-install, virt-clone, virt-image en virt-viewer, voor het creëren, klonen, installeren en bekijken van virtuele machines. VMM ondersteunt ook virtuele Xen-machines.
De basis KVM-opdrachtregelinterface wordt geleverd door het virsh-hulpprogramma. In bepaalde gevallen kun je ondersteunende hulpprogramma's zoals virt-install gebruiken om je virtuele machines te creëren. Ubuntu heeft een speciaal hulpprogramma ubuntu-vm-builder, ontwikkeld door Canonical, waarmee je Ubuntu-builds kunt maken.
Wilt u meer weten over KVM, dan kunt u meer informatie vinden op de volgende adressen:

Voor- en nadelen van KVM

KVM nodig? Het hangt ervan af waar je het voor nodig hebt.
Als je nog niet eerder virtuele machines hebt gebruikt, of ze een paar keer voor de lol hebt gestart, kan het lastig zijn om KVM onder de knie te krijgen. Dit programma wordt voornamelijk bestuurd vanaf de opdrachtregel en is niet zo gebruiksvriendelijk als VMware of VirtualBox. We kunnen zeggen dat KVM qua grafische interface enkele jaren achterloopt op zijn concurrenten, hoewel het in feite qua mogelijkheden in ieder geval niet onderdoet voor hen. KVM-mogelijkheden zijn het meest gevraagd bij gebruik voor commerciële doeleinden in een zakelijke omgeving.
Als uw processor bovendien geen hardwarevirtualisatie ondersteunt, zal KVM in een zeer trage en inefficiënte software-emulatiemodus werken. Bovendien is het bekend dat KVM conflicteert met VirtualBox, maar dit geval zal in een aparte notitie worden besproken.
Op basis van het bovenstaande kunnen we concluderen dat KVM meer geschikt is voor mensen die zich voor professionele doeleinden met virtualisatie bezighouden. Het is onwaarschijnlijk dat dit je favoriete speelgoed voor thuis zal worden, maar als je besluit wat moeite te doen om het te bestuderen, kun je met de kennis die je hierdoor opdoet, vertrouwd raken met virtualisatietechnologieën. In tegenstelling tot VMware en VirtualBox, die er in eerste instantie van uitgaan dat de gebruiker met het programma zal werken via een grafische interface, richt KVM zich op het gebruik van de opdrachtregel en het schrijven van scripts.
Samenvattend liggen de voordelen van KVM in het gebruik nieuwste technologieën virtualisatie, de afwezigheid van enige licentiebeperkingen in gebruik, een krachtige opdrachtregelinterface. Als uw processor geen hardwarevirtualisatie ondersteunt, wilt u geen scripts schrijven en geeft u de voorkeur aan eenvoudiger te beheren systemen zoals VMware-server, ESXi of VirtualBox, dan is KVM niets voor jou.

Testplatform

KVM kan op elke Linux-distributie worden gebruikt. De belangrijkste ontwikkelaar en sponsor van KVM is echter RedHat. RHEL wordt bijvoorbeeld uit de doos geleverd met KVM, zodat je het kunt vinden op elke op RedHat gebaseerde distributie zoals CentOS, Scientific Linux of Fedora.
Omdat ik Ubuntu vooral thuis gebruik, ga ik KVM testen op dit systeem, geïnstalleerd op mijn relatief nieuwe HP laptop, voorzien van een i5 processor met ondersteuning voor hardware virtualisatie.
In dit artikel vertel ik je hoe je KVM installeert op 64-bit Ubuntu Lucid (LTS).

Installatie voorbereiden

Eerst moet u controleren of uw processor hardwarevirtualisatie ondersteunt. Dit gebeurt met behulp van het volgende commando:

$ egrep -c "(vmx|svm)" /proc/cpuinfo

Als de uitvoer een getal is dat niet nul is, is alles in orde. Bovendien moet u controleren of de virtualisatietechnologie is geactiveerd in het BIOS.
Uiteraard moet u na activering de machine opnieuw opstarten om de wijzigingen door te voeren. Om dit te controleren, voert u de opdracht kvm-ok uit:

KVM downloaden en installeren

Om KVM te laten werken, moet u installeren de volgende pakketten(voor distributies met apt):

$ apt-get install qemu-kvm libvirt-bin

$ apt-get install bridge-utils virt-manager python-virtinst

P.S. IN verschillende distributies pakketten kunnen anders worden genoemd. Virt-install zou bijvoorbeeld python-virt-install of python-virtinst kunnen heten. De afhankelijkheden voor virt-clone, virt-image en virt-viewer zouden automatisch geïnstalleerd moeten worden. In tegenstelling tot wat in de meeste handleidingen staat, hoeven de bridge-utilities niet geïnstalleerd te worden. Ze zijn alleen nodig als je gaat creëren netwerk brug tussen virtuele en fysieke netwerkkaarten. In de meeste handleidingen staat ook dat de meeste draadloze netwerkinterfaces niet met bridges werken. Dit kan in bepaalde gevallen waar zijn, maar voor mij werkt de bridge prima met draadloze adapters, dus laten we hopen dat alles ook voor jou zal werken.
Ik raad VMM (virt-manager) ten zeerste aan. Bovendien is het beter om alle ondersteunende hulpprogramma's te installeren, inclusief virt-viewer, virt-install, virt-image en virt-clone.
En nog een laatste ding. Misschien geeft u de voorkeur aan ubuntu-vm-builder:

$ apt-get installeer ubuntu-vm-builder

Bovendien zal er waarschijnlijk een groot aantal afhankelijkheden zijn geïnstalleerd, waardoor het downloaden een aanzienlijke hoeveelheid tijd kan duren.
P.S. Op RedHat gebruik je yum install, op SUSE - zypper install.

Conflict met VirtualBox

Ik zal opnieuw een andere mening uiten dan wat in de meeste handleidingen staat: KVM en VirtualBox kunnen samen op hetzelfde systeem worden geïnstalleerd. Maar je kunt ze niet tegelijkertijd uitvoeren. Met andere woorden: de kernelmodule van een van de virtuele machines moet uit het RAM worden verwijderd. Maar dit is geen reden om de installatie te weigeren. Probeer gewoon of ze voor u werken. Als dit niet het geval is, kan dit probleem worden opgelost. Later zal ik een aparte handleiding plaatsen die gewijd is aan het oplossen van dit probleem. Ik heb nu beide virtuele machines geïnstalleerd en actief.

KVM gebruiken

Nou, nu het meest interessante deel. We zullen onze kennismaking met KVM beginnen met zijn grafische interface, die weinig verschilt van zijn analogen. zoals de VMware-console en vooral VirtualBox.

Virtuele machinebeheerder (VMM)

Wanneer u het programma voor het eerst start, ziet u twee categorieën, beide niet met elkaar verbonden. Dit zijn links naar standaard KVM-modules die nog niet werken. Om ze te gebruiken, klikt u met de rechtermuisknop en selecteert u "verbinden".

Om ze te gebruiken, klikt u met de rechtermuisknop en selecteert u "verbinden". Om een ​​nieuwe verbinding toe te voegen, selecteert u Bestand > Verbinding toevoegen in het menu. Er wordt een venster geopend waarin u het hypervisortype en het verbindingstype kunt instellen. VMM kan zowel lokale als externe verbindingen gebruiken, inclusief QUEMU/KVM en Xen. Bovendien worden alle authenticatiemethoden ondersteund.

U kunt ook het vakje voor automatisch verbinden aanvinken. De volgende keer dat u het programma start, zijn deze verbindingen klaar voor gebruik. Dit is vergelijkbaar met de opstartinterface van VMware Server. Gewoon bijvoorbeeld:

Kernel versus gebruikersmodus

U vraagt ​​zich misschien af: wat is het verschil tussen normaal/standaard en gebruikersmodus? Wanneer u de Gebruikersmodus gebruikt, kan de virtuele machine zonder beheerdersrechten worden uitgevoerd, maar is de netwerkfunctionaliteit beperkt.

We blijven VMM bestuderen

Laten we kort kijken naar de overige functies van het programma.
Netwerkfunctionaliteit kan worden bekeken of gewijzigd door Hostdetails te openen. Ik ben van plan deze kwestie in detail te bespreken aparte handleiding. Daar zullen we hulpprogramma's voor de netwerkbrug installeren.

Op dezelfde manier kunt u de parameters van het schijfsubsysteem wijzigen:

Voorinstellingen wijzigen

VMM heeft een klein aantal opties, waardoor u het programma beter kunt aanpassen aan uw behoeften. U kunt bijvoorbeeld de weergave van het VMM-pictogram in het systeemvak activeren, het interval voor het verzamelen van statistieken instellen, het verzamelen van gegevens voor schijf- en netwerkstatistieken activeren, toetsenbordopname configureren, consoleschaling, audiosysteemopties, enz.

Hierna kunt u meer bekijken gedetailleerde informatie over de virtuele machine. Hieronder vindt u bijvoorbeeld de uitvoer van CPU-, schijf- en netwerkgebruik voor een Ubuntu-gast.

Het systeemvakpictogram ziet er als volgt uit:

Nu zijn we klaar om een ​​nieuwe virtuele machine te maken.

Een virtuele machine maken

U kunt een virtuele machine maken vanaf de opdrachtregel, maar eerst gebruiken we VMM. De eerste stap moet intuïtief zijn. Voer een naam in en geef de locatie van de installatieschijf op. Dit kan een lokaal apparaat zijn in de vorm van een cd/dvd-schijf of ISO-image, of een HTTP- of FTP-server, NFS of PXE.

Wij maken gebruik van lokale media. Nu moet u instellen of het een fysiek apparaat of een afbeelding wordt. In ons geval wordt ISO gebruikt. Vervolgens moet u het ISO-type en de versie selecteren. Dit vereist niet zo'n hoge precisie, maar de juiste keuze zal de prestaties van de virtuele machine verbeteren.

De vierde fase is een virtuele schijf. U kunt een nieuwe afbeelding maken of een bestaande afbeelding gebruiken. U moet de schijfgrootte selecteren en opgeven of de schijfkopie onmiddellijk met een bepaalde grootte wordt gemaakt, of dat de grootte dynamisch wordt vergroot als dat nodig is. Opgemerkt moet worden dat het in één keer toewijzen van alle ruimte voor een schijfkopie de prestaties verbetert en de fragmentatie van het bestandssysteem vermindert.

Vervolgens zullen we meer aandacht besteden aan het schijfsubsysteem. Houd er echter rekening mee dat wanneer u in de gebruikersmodus draait, u geen schrijftoegang hebt tot /var, waar standaard virtuele schijfimages worden opgeslagen. Daarom moet u een andere locatie voor de afbeeldingen instellen. Dit probleem zal in een apart artikel in meer detail worden behandeld.
Fase 5 is de uitvoer van samenvattende gegevens met de mogelijkheid om enkele geavanceerde opties te configureren. Hier kunt u het netwerktype wijzigen, vaste MAC-adressen instellen, het virtualisatietype en de doelarchitectuur selecteren. Als u in de gebruikersmodus werkt, zijn uw netwerkconfiguratieopties beperkt; u kunt bijvoorbeeld geen bruggen tussen netwerkinterfaces maken. Nog een laatste ding: als uw processor geen hardwarevirtualisatie ondersteunt, zal het Virt Type-veld QUEMU zijn en zal het niet mogelijk zijn om dit te wijzigen in KVM. Hieronder zullen we kijken naar de nadelen van het werken in de emulatiemodus. Nu kunt u zien hoe typische instellingen voor een virtuele Ubuntu-machine eruit zien:

Onze machine is klaar voor gebruik.

Een virtuele machine opzetten

De VM-console heeft ook enkele interessante opties. U kunt signalen naar de gast sturen, schakelen tussen virtuele consoles, de gast opnieuw opstarten of afsluiten, klonen, verplaatsen, de status van de virtuele machine opslaan, schermafbeeldingen maken, enzovoort. Opnieuw is alles hetzelfde als bij de concurrenten.

Hieronder staan ​​een paar schermafbeeldingen die de opties tonen voor het klonen en verplaatsen van een virtuele machine. In de toekomst zullen we dit onderwerp in detail bekijken.

Een virtuele machine starten

Nu komt het leuke gedeelte. Hieronder enkele mooie screenshots...
Laten we beginnen met het opstartmenu van de 32-bits versie van Ubuntu 10.10 Maverick:

Bureaublad Puppy-Linux geweldig zoals altijd:

Nu draait Ubuntu onder NAT. Let op het lage CPU-gebruik. We zullen hier later over praten als we de emulatiemodus bespreken.

Het consolevenster kan worden aangepast aan de resolutie van het gastbureaublad. De volgende schermafbeelding toont Puppy en Ubuntu naast elkaar:

Houd er rekening mee dat de systeembelasting laag is. Met deze emulatiemodus kunt u meerdere virtuele machines tegelijkertijd uitvoeren.

Indien nodig kunt u de virtuele machine samen met alle bestanden verwijderen:

Opdrachtregel

Laten we nu de onbeminde opdrachtregel eens nader bekijken. Laten we bijvoorbeeld alle beschikbare virtuele machines vermelden die virsh gebruiken.

$virsh "lijst --alles"

Hieronder staat een reeks commando's om een ​​virtuele machine te creëren en uit te voeren met behulp van virt-install.

Het volledige commando ziet er als volgt uit:

$ virt-install --connect qemu://system -n puppy -r 512 -f puppy.img -c lupu-520.iso --vnc --noautoconsole --os-type linux --accelerate --network=netwerk :standaard

--connect qemu:///systeem specificeert het hypervisortype. De systeemoptie wordt gebruikt wanneer een machine als superuser op een kale kernel draait. Als u als gewone gebruiker werkt, gebruikt u de sessieoptie.
-n puppy is de unieke naam van de virtuele machine. Het kan worden gewijzigd met behulp van virsh.
-r 512 stelt de RAM-grootte in.
-F specificeert het schijfkopiebestand. In mijn geval is het puppy.img, dat ik heb gemaakt met de opdracht dd.
-C specificeert de cd-rom, die een fysiek apparaat of een ISO-image kan zijn.
--vnc maakt een gastconsole aan en exporteert deze als een VNC-server. Keuze --geen autoconnect verbiedt automatisch openen console bij het starten van de virtuele machine.
--os-type specificeert het type gastbesturingssysteem.
--versnellen Hiermee kan KVM optimalisatiefuncties gebruiken die de prestaties van gasten verbeteren.
--netwerk bepaalt het netwerktype. In ons geval wordt de standaardverbinding gebruikt.

Er zijn veel andere functies die parameters instellen zoals het aantal processorkernen, vaste MAC-adressen, enz. Ze worden allemaal in detail beschreven op de manpagina. Ondanks de ogenschijnlijke complexiteit wordt de bediening via de opdrachtregel vrij snel onder de knie.

Pure emulatiemodus

Ik zei al dat het vreselijk ineffectief is. Laten we dit nu in de praktijk bevestigen. In de onderstaande schermafbeelding kunt u bijvoorbeeld zien dat het systeem tijdens het gebruik alle beschikbare processorbronnen verbruikt, wat in dit geval, met één kern, 25% van de bronnen is fysieke verwerker. Dit betekent dat vier virtuele machines de quad-core host volledig zullen laden.

Bovendien zijn de prestaties van het gastsysteem beneden alle kritiek. Als hardwarevirtualisatie was ingeschakeld, kostte het laden van de gast-Ubuntu ongeveer 1 minuut, en na het uitschakelen duurde het 20 minuten. Opgemerkt moet worden dat zonder het gebruik van hardwarevirtualisatie de prestaties van QUEMU/KVM veel lager zijn dan die van zijn concurrenten.