Vi använder KVM för att skapa virtuella maskiner på servern. Ryskspråkig dokumentation för Ubuntu Kvm som skapar en virtuell ubuntu-maskin

KVM (Kernel-baserad virtuell maskin) är gratis virtualiseringsprogramvara med öppen källkod. Du kan skapa flera virtuella maskiner (VM), varje virtuell maskin har sin egen virtuella hårdvara som disk, processor, RAM, etc. Den ingick i huvuddelen av Linux-kärnan i kärnversion 2.6.20.

Om du letar efter ett alternativ VirtualBox, rekommenderar vi starkt att du använder KVM. Vi använder också personligen denna fantastiska virtualiseringsprogramvara.

Installera KVM Ubuntu 17.04

För att installera KVM måste du ha följande förutsättningar.

  1. Aktivera virtualisering i systemets BIOS.
  2. Kontrollera systemets CPU om den stöder virtualisering. Kör kommandot nedan.

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

När du får utdata från ovanstående kommando antingen 1 eller mer betyder det att processorn stöder virtualisering annars betyder 0 eller mindre att den inte stöder.

3. Kontrollera arkitekturen Ubuntu 16.04 LTS genom att köra ett kommando d.v.s

X86_64 är en 64-bitars kärna.
I386, i486, i586 eller i686 är 32-bitars kärnor.

32-bitars OS är begränsat till max 2 GB RAM för detta virtuell maskin.
En 32-bitars kärna kommer bara att vara värd för en 32-bitars gästkärna, medan en 64-bitars kärna kan vara värd för både 32-bitars och 64-bitars gäst-OS.

Följ stegen för att installera KVM på Ubuntu

I det här avsnittet kommer vi att skriva ner stegen för att installera KVM. I vårt förra inlägg lärde vi oss. Kanske kommer detta också att vara intressant för dig.

1. Installera KVM Ubuntu 17.04 och andra beroende paket

På Ubuntu 17.04 LTS kan du använda kommandot benägen eller apt-get båda. Det kommer inte att finnas några skillnader i paket installerade med kommandot apt eller apt-get, så du är bra här.

sudo apt uppdatering

sudo apt installera qemu - kvm libvirt - bridge bin - utils

2. Lär dig om nya användare och grupp för KVM-programvara

Efter installation av paketen kommer vissa tillägg att ske i antalet användare och grupper.

(A) Två användare skapas.
-libvirt-qemu
- libvirt-dnsmasq

sharad@linuxworld :~ $ tail - 2 /etc/passwd

libvirt - qemu : x : 64055 : 129 : Libvirt Qemu ,:/ var / lib / libvirt : /bin/ false

libvirt - dnsmasq : x : 121 : 130 : Libvirt Dnsmasq ,:/ var / lib / libvirt / dnsmasq : /bin/ false

sharad@linuxworld :~ $

B) två grupper kommer att skapas.

- kvm
-libvirtd

sharad@linuxworld :~ $ tail - 2 /etc/group

kvm : x : 129 :

libvirtd:x:130:sharad

sharad@linuxworld :~ $

Du kanske har märkt att den så kallade "charaden" som används är en medlem av gruppen "libvirtd". Detta innebär att denna användare kan använda KVM.

3. Kontrollera din KVM-installation

Det är ganska enkelt att kontrollera din KVM-installation. Kör kommandot -

virsh - med qemu : ///systemlista

Första gången visar det ett fel.

fel: kunde inte ansluta till hypervisorn

fel: Det gick inte att ansluta uttaget till '/var/run/libvirt/libvirt-sock':Åtkomst nekad

sharad@linuxworld :~ $

För att lösa det här problemet måste du logga ut och logga in på skrivbordet igen. Anger att den aktuella användaren ska logga in igen.

När du är inloggad kör du kommandot igen. Den här gången ska du få resultatet enligt nedan. Den är tom eftersom den virtuella maskinen inte skapas.

sharad@linuxworld :~ $ virsh - med qemu : ///systemlista

ID Namn Status

—————————————————-

sharad@linuxworld :~ $

4. Installera Virtual Machine Manager

Här använder vi Virtual Machine Manager, som är en skrivbordsapplikation för att hantera virtuella KVM-maskiner via libvirt.

Kör det här kommandot för att installera Virtual Machine Manager.

sudo apt installera virt - manager

Du kan öppna Virtual Machine Manager genom att ange den i Dash Home. Klicka på ikonen så öppnas programmet.

För att öppna Virtual Machine Manager via kommandorad, stiga på -

virt - chef

Tidigare, när vi installerade KVM på Ubuntu 14.04 LTS Desktop, stötte vi på ett problem när vi skapade den första virtuella maskinen, men vi löste det väldigt enkelt. Vi hittade inte ett sådant problem i Ubuntu 16.04 LTS Desktop.

Om du har frågor om ämnet " Installerar KVM Ubuntu 17.04" - skriv dem till oss i kommentarsformuläret. Vi hjälper dig att förstå ditt problem mycket snabbare.

Om du hittar ett fel, markera en text och klicka Ctrl+Enter.

Utgivningen av WordPress 5.3 förbättrar och utökar blockredigeraren som introducerades i WordPress 5.0 med ett nytt block, mer intuitiv interaktion och förbättrad tillgänglighet. Nya funktioner i redigeraren […]

Efter nio månaders utveckling är multimediapaketet FFmpeg 4.2 tillgängligt, vilket inkluderar en uppsättning applikationer och en samling bibliotek för operationer på olika multimediaformat (inspelning, konvertering och […]

  • Nya funktioner i Linux Mint 19.2 Kanel

    Linux Mint 19.2 är en långsiktig supportversion som kommer att stödjas fram till 2023. Den kommer med uppdaterad programvara och innehåller förbättringar och många nya […]

  • Linux Mint 19.2-distribution släppt

    Utgivningen av distributionssatsen Linux Mint 19.2 har presenterats, den andra uppdateringen av Linux Mint 19.x-grenen, bildad på partiet Ubuntu baserad 18.04 LTS och stöds till 2023. Distributionen är helt kompatibel [...]

  • Nya BIND-tjänstutgåvor är tillgängliga som innehåller buggfixar och funktionsförbättringar. Nya versioner kan laddas ner från nedladdningssidan på utvecklarens webbplats: […]

    Exim är en meddelandeöverföringsagent (MTA) utvecklad vid University of Cambridge för användning på Unix-system anslutna till Internet. Den är fritt tillgänglig i enlighet med [...]

    Efter nästan två års utveckling presenteras releasen av ZFS på Linux 0.8.0, implementering filsystem ZFS, paketerad som en modul för Linux-kärnan. Modulen har testats med Linux-kärnor från 2.6.32 till […]

  • WordPress 5.1.1 fixar en sårbarhet som gör att du kan ta kontroll över din webbplats
  • IETF (Internet Engineering Task Force), som utvecklar Internetprotokoll och arkitektur, har slutfört en RFC för ACME (Automatic Certificate Management Environment)-protokollet […]

    Den ideella certifieringsmyndigheten Let’s Encrypt, som kontrolleras av communityn och tillhandahåller certifikat gratis till alla, summerade det senaste årets resultat och pratade om planerna för 2019. […]

  • Kom ut en ny version Libreoffice – Libreoffice 6.2
  • Förbereder servern

    Söker efter stöd från processorn:

    cat /proc/cpuinfo | egrep "(vmx|svm)"

    Om kommandot inte returnerar något, stöder inte servern virtualisering eller så är det inaktiverat i BIOS-inställningarna. KVM själv kan installeras på en sådan server, men när vi försöker ange hypervisorkontrollkommandot kommer vi att få felet "VARNING KVM-acceleration inte tillgänglig, med "qemu"". I det här fallet måste du starta om servern, gå in i BIOS, hitta stöd för virtualiseringsteknik (Intel VT eller AMD-V) och aktivera den.

    Låt oss skapa kataloger där vi kommer att lagra allt relaterat till virtualisering (de som erbjuds som standard är inte bekväma):

    mkdir -p /kvm/(bilder,iso)

    * katalog /kvm/bilder För virtuella diskar; /kvm/iso- för iso-bilder.

    Installation och start

    Installationen utförs från förvaret med följande kommando:

    yum installera qemu-kvm libvirt virt-installera

    * Var qemu-kvm— Hypervisorn själv. libvirt— bibliotek för virtualiseringshantering; virt-installera— ett verktyg för att hantera virtuella maskiner.

    Tillåt autostart:

    systemctl aktivera libvirtd

    Starta KVM:

    systemctl starta libvirtd

    Nätverkskonfiguration

    I den här manualen kommer vi att titta på att använda en nätverksbrygga.

    När du sätter upp en nätverksbrygga via en fjärranslutning, kontrollera noggrant de inmatade uppgifterna. Om ett fel uppstår kommer anslutningen att avbrytas.

    Installera paketet för att arbeta med bridge:

    yum installera bridge-utils

    Låt oss titta på listan över nätverksgränssnitt och deras inställningar:

    I mitt exempel hade jag följande data:

    1:lo: mtu 65536 qdisc noqueue state OKÄNT qlen 1
    länk/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo

    inet6::1/128 scope värd
    valid_lft forever preferen_lft forever
    2: enp4s0f0: mtu 1500 qdisc pfifo_fast state UP qlen 1000

    inet 192.168.1.24/24 brd 192.168.1.255 scope globalt enp4s0f0
    valid_lft forever preferen_lft forever

    valid_lft forever preferen_lft forever
    3: enp5s5:

    4: virbr0:


    valid_lft forever preferen_lft forever
    5: virbr0-nic:
    länk/eter 52:54:00:cd:86:98 brd ff:ff:ff:ff:ff:ff

    * av dessa är viktiga för oss enp4s0f0- riktigt nätverksgränssnitt med en konfigurerad IP-adress 192.168.1.24 , genom vilken servern ansluter till lokalt nätverk(vi kommer att göra en bro från det); 00:16:76:04:26:c6— mac-adress för den riktiga Ethernet-adaptern; virbr0- virtuell nätverksadapter.

    Redigera inställningarna för den riktiga adaptern:

    vi /etc/sysconfig/network-scripts/ifcfg-enp4s0f0

    Låt oss ta det till form:

    ONBOOT=ja
    BRO=br0
    TYPE=Ethernet
    DEVICE=enp4s0f0
    BOOTPROTO=ingen

    Skapa ett gränssnitt för nätverksbryggan:

    vi /etc/sysconfig/network-scripts/ifcfg-br0

    DEVICE=br0
    TYPE=Brygga
    ONBOOT=ja
    BOOTPROTO=statisk
    IPADDR=192.168.1.24
    NÄTMASK=255.255.255.0
    GATEWAY=192.168.1.1
    DNS1=8.8.8.8
    DNS2=77.88.8.8

    Starta om nätverkstjänsten:

    systemctl starta om nätverket

    Nätverksinställningarna måste ändras - i mitt fall:

    2: enp4s0f0: mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
    länk/eter 00:16:76:04:26:c6 brd ff:ff:ff:ff:ff:ff
    3: enp5s5: mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    länk/eter 00:16:76:04:26:c7 brd ff:ff:ff:ff:ff:ff
    4: virbr0: mtu 1500 qdisc noqueue state DOWN qlen 1000
    länk/eter 52:54:00:cd:86:98 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
    valid_lft forever preferen_lft forever
    5: virbr0-nic: mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
    länk/eter 52:54:00:cd:86:98 brd ff:ff:ff:ff:ff:ff
    6:br0: mtu 1500 qdisc noqueue state UP qlen 1000
    länk/eter 00:16:76:04:26:c6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.24/24 brd 192.168.1.255 omfattning globalt br0
    valid_lft forever preferen_lft forever
    inet6 fe80::216:76ff:fe04:26c6/64 omfattningslänk
    valid_lft forever preferen_lft forever

    Vi insisterar på att omdirigera nätverkstrafik:

    vi /etc/sysctl.d/99-sysctl.conf

    net.ipv4.ip_forward=1

    Tillämpa inställningarna:

    sysctl -p /etc/sysctl.d/99-sysctl.conf

    Starta om libvirtd:

    systemctl starta om libvirtd

    Skapa en virtuell maskin

    Låt oss titta på de tillgängliga alternativen för gästoperativsystem:

    För att skapa den första virtuella maskinen, skriv in följande kommando:

    virt-install -n FirstTest\
    --noautoconsole\
    --nätverk=brygga:br0 \
    --ram 1024 --arch=x86_64 \
    --vcpus=1 --cpu värd --check-cpu \
    --disksökväg=/kvm/images/FirstTest-disk1.img,size=16 \
    --cdrom /kvm/iso/CentOS-7-x86_64-Minimal-1611.iso \
    --graphics vnc,listen=0.0.0.0,lösenord=mitt_lösenord \
    --os-typ linux --os-variant=rhel7 --boot cdrom, hd, menu=on

    • Första testet - namnet på maskinen som skapas;
    • noautoconsole — ansluter inte automatiskt till den virtuella maskinkonsolen efter skapandet;
    • nätverk - nätverkstyp (i vårt exempel, nätverksbrygga);
    • Bagge - volym random access minne, som kommer att markeras;
    • vcpus — antal virtuella processorer;
    • disk - virtuell disk: sökväg — sökväg till disken; storlek — dess volym;
    • cdrom - virtuell enhet med en systemavbildning;
    • grafik parametrar för att ansluta till en virtuell maskin med hjälp av en grafisk konsol (i detta exempel använder vi vnc); lyssna — på vilken adress vnc-förfrågningar tas emot (i vårt exempel, alla); lösenord — lösenord för att ansluta med vnc;
    • os-variant — gästrum operativ system(vi fick hela listan av teamet osinfo-query os, i det här exemplet installerar vi Rev Hat 7 / CentOS 7).

    Tillåt autostart för den skapade virtuella datorn:

    virsh autostart FirstTest

    Ansluter till en virtuell maskin

    För att ytterligare installera operativsystemet, ladda ner en VNC-klient till administratörens dator, till exempel TightVNC och installera den.

    På servern tittar vi på vilken port den skapade maskinen lyssnar på VNC på:

    virsh vncdisplay FirstTest

    i mitt fall var det:

    Det betyder att du måste lägga till 0 till 5900. Om resultatet av kommandot är: 1 - 5900 + 1 = 5901 och så vidare.

    Öppna porten på brandväggen:

    brandvägg-cmd --permanent --add-port=5900-5905/tcp

    brandvägg-cmd -- ladda om

    * i det här exemplet, 6 tcp-portar från 5900 innan 5905 .

    Vi startar den installerade TightVNC Viewer, i fönstret som öppnas anger du IP-adressen för KVM-servern och porten som vår virtuella dator lyssnar på (i det här exemplet 5900):

    Klick Ansluta. Programmet kommer att fråga efter ett lösenord - ange det du angav när du skapade den virtuella datorn (i det här exemplet, mitt lösenord). Vi kommer att ansluta till den virtuella maskinen som om den hade en monitor eller fjärransluten KVM-konsol till den.

    Admin och lösenordet som skapades när kommandot kördes motorinställning. Efter lyckad inloggning kan du hantera virtuella maskiner via webbgränssnittet.

    I den här inledande artikeln kommer jag kortfattat att introducera alla mjukvaruverktyg som används i tjänsteutvecklingsprocessen. De kommer att diskuteras mer i detalj i följande artiklar.

    Varför ? Det här operativsystemet är nära och förståeligt för mig, så det var ingen plåga, plåga eller kastning när man valde distribution. Det har inga speciella fördelar jämfört med Red Hat Enterprise Linux, men beslutet togs att arbeta med ett bekant system.

    Om du planerar att självständigt distribuera en infrastruktur som använder liknande teknik, skulle jag råda dig att ta RHEL: tack vare bra dokumentation och välskrivna applikationsprogram kommer det att vara, om inte en storleksordning, så säkert dubbelt så enklare, och tack vare det utvecklade certifieringssystemet kan du enkelt hitta ett antal specialister som är bekanta med detta operativsystem på rätt nivå.

    Vi, återigen, beslutade att använda Debian Squeeze med en uppsättning paket från Sid/Experimentell och några paket backporterade och kompilerade med våra patchar.
    Det finns planer på att publicera ett arkiv med paket.

    När man valde virtualiseringsteknik övervägdes två alternativ - Xen och KVM.

    Även det faktum att det fanns ett stort antal utvecklare, värdar och kommersiella lösningar baserade på Xen togs i beaktande - desto mer intressant var det att implementera en lösning baserad på KVM.

    Den främsta anledningen till att vi bestämde oss för att använda KVM är behovet av att köra virtuella maskiner med FreeBSD och, i framtiden, MS Windows.

    För att hantera virtuella maskiner visade det sig vara extremt bekvämt att använda produkter som använder dess API: virsh, virt-manager, virt-installera, etc.

    Detta är ett system som lagrar inställningarna för virtuella maskiner, hanterar dem, för statistik över dem, ser till att gränssnittet för den virtuella maskinen höjs vid start, ansluter enheter till maskinen - i allmänhet gör den en massa saker nyttigt arbete och lite till därtill.

    Naturligtvis är lösningen inte perfekt. Nackdelarna inkluderar:

    • Helt galna felmeddelanden.
    • Oförmåga att ändra en del av den virtuella maskinens konfiguration i farten, även om QMP (QEMU Monitor Protocol) tillåter detta.
    • Ibland, av någon okänd anledning, är det omöjligt att ansluta till libvirtd - det slutar svara på externa händelser.

    Det största problemet med att implementera tjänsten i början var begränsningen av resurser för virtuella maskiner. I Xen löstes detta problem med hjälp av en intern schemaläggare som distribuerar resurser mellan virtuella maskiner – och det bästa är att möjligheten att begränsa diskoperationer också implementerades.

    Det fanns inget liknande i KVM förrän tillkomsten av kärnresursallokeringsmekanismen. Som vanligt i Linux implementerades åtkomst till dessa funktioner via ett speciellt filsystem c-grupp, där man, med hjälp av de normala write()-systemanropen, kan lägga till en process till en grupp, tilldela den dess papegojvikt, specificera kärnan på vilken den ska köras, specificera diskbandbredden som processen kan använda, eller igen , tilldela den en vikt.

    Fördelen är att allt detta är implementerat inuti kärnan, och det kan användas inte bara för servern utan också för skrivbordet (som användes i den berömda "The ~200 Line Linux Kernel Patch That Does Wonders"). Och enligt min åsikt är detta en av de mest betydande förändringarna i 2.6-grenen, utan att räkna min favorit #12309, och inte arkiveringen av ett annat filsystem. Jo, kanske, förutom POHMELFS (men enbart på grund av namnet).

    Min inställning till detta verktygsbibliotek är mycket tvetydig.

    Å ena sidan ser det ut ungefär så här:

    Och den här saken är också jävligt svår att sätta ihop från källan, än mindre till ett paket: ibland verkar det för mig som att Linux From Scratch är lite lättare att bygga från grunden.

    Å andra sidan är det en mycket kraftfull sak som låter dig skapa bilder för virtuella maskiner, modifiera dem, komprimera dem, installera grub, modifiera partitionstabellen, hantera konfigurationsfiler, överföra hårdvarumaskiner till en virtuell miljö, överföra virtuella maskiner från en bild till en annan, överför virtuella maskiner från bilden till hårdvaran och för att vara ärlig, här sviker min fantasi mig lite. Åh, ja: du kan också köra en demon inuti en virtuell Linux-maskin och få tillgång till virtuell maskindata live, och göra allt detta i shell, python, perl, java, ocaml. Detta är en kort och inte på något sätt uttömmande lista över vad du kan göra med .

    Intressant nog genereras det mesta av koden vid monteringstillfället, liksom dokumentationen för projektet. Ocaml och perl används ofta. Själva koden skrivs i C, som sedan lindas in i OCaml, och de upprepade kodbitarna genereras själva. Att arbeta med bilder utförs genom att starta en speciell tjänstavbildning (supermin-apparat), till vilken kommandon skickas via en kanal in i den. Den här räddningsbilden innehåller en viss uppsättning verktyg, såsom parted, mkfs och andra användbara för en systemadministratör.

    Nyligen började jag till och med använda det hemma, när jag extraherade den data jag behövde från nandroid-bilden. Men detta kräver en yaffs-aktiverad kärna.

    Övrig

    Nedan finns några fler intressanta länkar till en beskrivning av programvaran som används - läs och studera den själv om du är intresserad. Till exempel,

    Personligen är det lättast för mig att tänka på KVM (Kernel-baserad virtuell maskin) som en abstraktionsnivå över Intel VT-x och AMD-V hårdvaruvirtualiseringsteknologier. Vi tar en maskin med en processor som stöder en av dessa teknologier, installerar Linux på denna maskin, installerar KVM i Linux, och som ett resultat får vi möjlighet att skapa virtuella maskiner. Ungefär så fungerar molnhosting, till exempel Amazon Web Services. Tillsammans med KVM används ibland även Xen, men en diskussion om denna teknik ligger utanför ramen för detta inlägg. Till skillnad från, till exempel Docker, låter KVM dig köra vilket operativsystem som helst som gästsystem, men det har också O Högre overhead för virtualisering.

    Notera: De steg som beskrivs nedan har testats av mig på Ubuntu Linux 14.04, men i teorin kommer de till stor del vara giltiga för både andra versioner av Ubuntu och andra Linux-distributioner. Allt ska fungera både på skrivbordet och på servern, nås via SSH.

    Installerar KVM

    Vi kontrollerar om Intel VT-x eller AMD-V stöds av vår processor:

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

    Om något blir varmt betyder det att det stöds och du kan gå vidare.

    Installera KVM:

    sudo apt-get uppdatering
    sudo apt-get installera qemu-kvm libvirt-bin virtinst bridge-utils

    Vad förvaras vanligtvis var:

    • /var/lib/libvirt/boot/ - ISO-avbildningar för installation av gästsystem;
    • /var/lib/libvirt/images/ — bilder av hårddiskar i gästsystem;
    • /var/log/libvirt/ - här bör du leta efter alla loggar;
    • /etc/libvirt/ - katalog med konfigurationsfiler;

    Nu när KVM är installerat, låt oss skapa vår första virtuella maskin.

    Skapar den första virtuella maskinen

    Jag valde FreeBSD som gästsystem. Ladda ner ISO-bilden av systemet:

    cd /var/lib/libvirt/boot/
    sudo wget http:// ftp.freebsd.org/ sökväg/ till/ some-freebsd-disk.iso

    Virtuella maskiner hanteras i de flesta fall med virsh-verktyget:

    sudo virsh --hjälp

    Innan vi startar den virtuella maskinen måste vi samla in ytterligare information.

    Vi tittar på listan över tillgängliga nätverk:

    sudo virsh nätlista

    Visa information om ett specifikt nätverk (med namnet standard):

    sudo virsh net-info standard

    Låt oss titta på listan över tillgängliga optimeringar för gästoperativsystem:

    sudo virt-install --os-variant lista

    Så nu skapar vi en virtuell maskin med 1 CPU, 1 GB RAM och 32 GB diskutrymme, ansluten till standardnätverket:

    sudo virt-install\
    --virt-typ =kvm\
    --namn freebsd10\
    --ram 1024\
    --vcpus=1\
    --os-variant =freebsd8 \
    --hvm\
    --cdrom =/ var/ lib/ libvirt/ boot/ FreeBSD-10.2 -RELEASE-amd64-disc1.iso \
    --nätverksnätverk =standard,modell =virtio \
    --grafik vnc\
    --disksökväg =/ var/ lib/ libvirt/ images/ freebsd10.img, storlek =32 ,bus =virtio

    Du kan se:

    VARNING Det går inte att ansluta till den grafiska konsolen: virt-viewer inte
    installerat. Installera paketet "virt-viewer".

    Domäninstallationen pågår fortfarande. Du kan återansluta till konsolen
    för att slutföra installationsprocessen.

    Det här är normalt, så här ska det vara.

    Titta sedan på egenskaperna för den virtuella maskinen i XML-format:

    sudo virsh dumpxml freebsd10

    Den mest fullständiga informationen finns här. Detta inkluderar till exempel en MAC-adress, som vi kommer att behöva senare. För nu hittar vi information om VNC. I mitt fall:

    Med din favoritklient (jag använder personligen Rammina) loggar vi in ​​via VNC, med SSH portvidarebefordran om det behövs. Vi kommer direkt in i FreeBSD-installationsprogrammet. Sedan är allt som vanligt - Nästa, Nästa, Nästa, vi får det installerade systemet.

    Grundläggande kommandon

    Låt oss nu titta på de grundläggande kommandona för att arbeta med KVM.

    Få en lista över alla virtuella maskiner:

    sudo virsh lista --all

    Få information om en specifik virtuell maskin:

    sudo virsh dominfo freebsd10

    Starta virtuell maskin:

    sudo virsh starta freebsd10

    Stoppa virtuell maskin:

    sudo virsh avstängning freebsd10

    Knappast spika den virtuella maskinen (trots namnet, detta Inte radering):

    sudo virsh förstör freebsd10

    Starta om den virtuella maskinen:

    sudo virsh starta om freebsd10

    Klona virtuell maskin:

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

    Aktivera/inaktivera autorun:

    sudo virsh autostart freebsd10
    sudo virsh autostart --inaktivera freebsd10

    Kör virsh i dialogläge (alla kommandon i dialogläge - som beskrivs ovan):

    sudo virsh

    Redigera egenskaperna för den virtuella maskinen i XML, inklusive här kan du ändra gränsen för mängden minne, etc.:

    sudo virsh redigera freebsd10

    Viktig! Kommentarer från den redigerade XML-filen tas tyvärr bort.

    När den virtuella maskinen är stoppad kan disken även ändras:

    sudo qemu-img ändra storlek /var/ lib/ libvirt/ images/ freebsd10.img -2G
    sudo qemu-img info /var/lib/libvirt/images/freebsd10.img

    Viktig! Ditt gästoperativsystem kommer förmodligen inte att gilla att disken plötsligt blir större eller mindre. I bästa fall kommer den att starta upp i nödläge med ett förslag om att partitionera om disken. Det borde du nog inte vilja göra. Det kan vara mycket lättare att skapa en ny virtuell maskin och migrera all data till den.

    Säkerhetskopiering och återställning är ganska enkelt. Det räcker med att spara dumpxml-utgången någonstans, liksom diskavbildningen, och sedan återställa dem. På Youtube lyckades hitta videon Med en demonstration av denna process är allt verkligen inte svårt.

    Nätverksinställningar

    En intressant fråga - hur man bestämmer vilken IP-adress den virtuella maskinen fick efter laddning? KVM gör detta på ett smart sätt. Det slutade med att jag skrev det här skriptet i Python:

    #!/usr/bin/env python3

    # virt-ip.py-skript
    # (c) 2016 Aleksander Alekseev
    # http://webbplats/

    import sys
    import ang
    importera os
    import underprocess
    från xml .etree import ElementTree

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

    if len(sys.argv)< 2 :
    eprint("ANVÄNDNING: " + sys .argv [ 0 ] + " " )
    eprint("Exempel: " + sys .argv [ 0 ] + " freebsd10" )
    sys.exit(1)

    if os .geteuid() != 0 :
    eprint("FEL: du borde vara root" )
    eprint("Tips: kör `sudo " + sys .argv [ 0 ] + " ...`" );
    sys.exit(1)

    if subprocess .call ( "vilken arping 2>&1 >/dev/null", skal = Sant ) != 0 :
    eprint("FEL: arping hittades inte" )
    eprint( "Tips: kör `sudo apt-get install arping`")
    sys.exit(1)

    Domän = sys.argv[1]

    om inte re .match ("^*$" , domän):
    eprint( "FEL: ogiltiga tecken i domännamnet")
    sys.exit(1)

    Domout = subprocess .check_output ("virsh dumpxml " +domän+" || true" ,
    skal = sant)
    domout = domout.decode("utf-8").strip()

    om domout == "" :
    # felmeddelande har redan skrivits ut av dumpxml
    sys.exit(1)

    Doc = ElementTree.fromstring(domout)

    # 1. lista alla nätverksgränssnitt
    # 2. kör `arping` på varje gränssnitt parallellt
    #3.grep svar
    cmd = "(ifconfig | cut -d " " -f 1 | grep -E "." | " + \
    "xargs -P0 -I IFACE arping -i IFACE -c 1 () 2>&1 | " + \
    "grep "bytes från") || sant"

    för barn i doc.iter():
    if child.tag == "mac" :
    macaddr = child.attrib["adress"]
    macout = underprocess .check_output (cmd .format (macaddr) ,
    skal = sant)
    print(macout.decode("utf-8"))

    Skriptet fungerar med både standardnätverket och det överbryggade nätverket, vars konfiguration vi kommer att överväga senare. Men i praktiken är det mycket bekvämare att konfigurera KVM så att den alltid tilldelar samma IP-adresser till gästsystem. För att göra detta, redigera nätverksinställningarna:

    sudo virsh net-edit standard

    ... något som det här:

    >



    >

    Efter att ha gjort dessa ändringar


    >

    ... och ersätt det med något i stil med:




    >

    Vi startar om gästsystemet och kontrollerar att det har fått en IP via DHCP från routern. Om du vill att gästsystemet ska ha en statisk IP-adress konfigureras detta som vanligt inom själva gästsystemet.

    virt-manager program

    Du kanske också är intresserad av virt-manager-programmet:

    sudo apt-get install virt-manager
    sudo usermod -a -G libvirtd ANVÄNDARNAMN

    Så här ser dess huvudfönster ut:

    Som du kan se är virt-manager inte bara ett GUI för virtuella maskiner som körs lokalt. Med dess hjälp kan du hantera virtuella maskiner som körs på andra värdar, samt titta på vacker grafik i realtid. Jag tycker personligen att det är särskilt bekvämt i virt-manager att du inte behöver söka igenom konfigurationerna för att ta reda på vilken port VNC körs på ett visst gästsystem. Du hittar bara den virtuella maskinen i listan, dubbelklickar och får tillgång till monitorn.

    Med hjälp av virt-manager är det också mycket bekvämt att göra saker som annars skulle kräva arbetskrävande redigering av XML-filer och, i vissa fall, exekvering av ytterligare kommandon. Till exempel att byta namn på virtuella maskiner, ställa in CPU-affinitet och liknande saker. Förresten, att använda CPU-affinitet minskar avsevärt effekten av bullriga grannar och inverkan av virtuella maskiner på värdsystemet. Använd den alltid om möjligt.

    Om du bestämmer dig för att använda KVM som ersättning för VirtualBox, kom ihåg att de inte kommer att kunna dela hårdvaruvirtualisering mellan sig. För att KVM ska fungera på ditt skrivbord måste du inte bara stoppa alla virtuella maskiner i VirtualBox och Vagrant, utan även starta om systemet. Jag tycker personligen att KVM är mycket bekvämare än VirtualBox, åtminstone eftersom det inte kräver att du kör ett kommando sudo /sbin/rcvboxdrv inställning efter varje kärnuppdatering fungerar den adekvat med Unity, och låter dig generellt dölja alla fönster.

    
    Topp