Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Iron
  • Server virtuelne mašine na ubuntu. Prestanite da se plašite virtuelizacije koristeći KVM

Server virtuelne mašine na ubuntu. Prestanite da se plašite virtuelizacije koristeći KVM

U Ubuntu-u se preporučuje korištenje hipervizora (manager virtuelne mašine) KVM i libvirt biblioteka kao alati za upravljanje. Libvirt uključuje skup softverskih API-ja i prilagođene aplikacije menadžment virtuelne mašine(VM) virt-manager ( GUI, GUI) ili virsh ( komandna linija,CLI). Kao alternativni menadžeri, možete koristiti convirt (GUI) ili convirt2 (WEB interfejs).

Trenutno je samo KVM hipervizor zvanično podržan na Ubuntu-u. Ovaj hipervizor je dio koda operativnog kernela Linux sistemi. Za razliku od Xen-a, KVM ne podržava paravirtualizaciju, što znači da da bi ga koristio, vaš CPU mora podržavati VT tehnologije. Možete provjeriti podržava li vaš procesor ovu tehnologiju pokretanjem naredbe u terminalu:

Ako kao rezultat dobijete sljedeću poruku:

INFO: /dev/kvm postoji KVM ubrzanje se može koristiti

To znači da će KVM raditi bez problema.

Ako ste na izlazu dobili sljedeću poruku:

Vaš CPU ne podržava KVM ekstenzije KVM ubrzanje NE može se koristiti

tada i dalje možete koristiti virtuelnu mašinu, ali će biti mnogo sporija.

    Instalirajte 64-bitne sisteme kao gosti

    Dodijelite više od 2 GB RAM-a gostujućim sistemima

Instalacija

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

Ovo je instalacija na serveru bez X, tj. ne uključuje grafičko sučelje. Možete ga instalirati pomoću naredbe

Sudo apt-get install virt-manager

Nakon toga, u meniju će se pojaviti stavka „Upravitelj virtuelne mašine“ i sa velikom verovatnoćom sve će raditi. Ako i dalje bude bilo kakvih problema, morat ćete pročitati upute na engleskom wikiju.

Kreiranje sistema gostiju

Procedura za kreiranje sistema za goste koristeći GUI je prilično jednostavna.

I ovdje tekstualni mod može se opisati.

qcow2

Kada kreirate sistem koristeći grafičko sučelje kao tvrdi disk, od vas se traži da odaberete postojeću datoteku slike ili blokirate uređaj, ili da kreirate novi fajl sa sirovim (RAW) podacima. Međutim, ovo je daleko od jedinog dostupan format datoteke. Od svih tipova diskova navedenih u man qemu-img, najfleksibilniji i najmoderniji je qcow2. Podržava snimke, enkripciju i kompresiju. Mora se kreirati prije kreiranja novog gosta.

Qemu-img kreirati -o preallocation=metapodaci -f qcow2 qcow2.img 20G

Prema istom čovjeku qemu-img, pre-dodjela metapodataka (-o preallocation=metadata) čini disk u početku malo većim, ali omogućava bolje performanse u onim trenucima kada slika treba da raste. U stvari, in u ovom slučaju Ova opcija vam omogućava da izbjegnete neugodnu grešku. Kreirana slika u početku zauzima manje od megabajta prostora i prema potrebi raste do određene veličine. Sistem gostiju bi trebao odmah vidjeti ovo finale specificirana veličina, međutim, tokom faze instalacije ona može vidjeti prirodna veličina fajl. Naravno, neće se instalirati na hard disk od 200 KB. Greška nije specifična za Ubuntu; pojavljuje se barem u RHEL-u.

Pored vrste slike, naknadno možete odabrati način povezivanja - IDE, SCSI ili Virtio Disk. Učinak će ovisiti o ovom izboru diskovni podsistem. Ne postoji definitivan tačan odgovor, morate birati na osnovu zadatka koji će biti dodijeljen sistemu gostiju. Ako sistem gostiju je kreiran „za gledanje“, onda će odgovarati bilo koja metoda. Generalno, to je obično I/O usko grlo virtuelna mašina, tako da kada kreirate sistem sa visokim opterećenjem, ovaj problem se mora shvatiti što je moguće odgovornije.

Pišem ovu belešku da demonstriram instalacija korak po korak i postavljanje virtuelne mašine zasnovane na KVM-u u Linuxu. Ranije sam pisao o virtuelizaciji, gde sam koristio divni .

Sada sam suočen sa problemom iznajmljivanja. dobar server sa velikom zapreminom ram memorija i volumetrijski tvrdi disk. Ali ne želim da pokrećem projekte direktno na glavnom računaru, pa ću ih razdvojiti u zasebne male virtuelne servere koji pokreću Linux ili Docker kontejnere (o njima ću govoriti u drugom članku).

Svi moderni cloud hostingi rade na istom principu, tj. hoster on dobra žlezda podiže gomilu virtuelnih servera, koje smo nekada zvali VPS/VDS, i distribuira ih korisnicima, ili automatizuje ovaj proces (zdravo, DigitalOcean).

KVM (virtuelna mašina zasnovana na kernelu) je softver za Linux koji koristi hardver x86 kompatibilnih procesora za rad sa Intel VT/AMD SVM tehnologijom virtuelizacije.

Instaliranje KVM-a

Izvršiću sve mahinacije kreiranja virtuelne mašine na Ubuntu 16.04.1 LTS OS. Da provjerite da li vaši procesi podržavaju hardversku virtuelizaciju uključenu Zasnovan na Intelu VT/AMD SVM, izvrši:

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

Ako terminal nije prazan, onda je sve u redu i KVM se može instalirati. Ubuntu zvanično podržava samo KVM hipervizor (uključen uz Linux kerneli) i savjetuje korištenje biblioteke libvirt kao alata za upravljanje njome, što ćemo i učiniti sljedeće.

Također možete provjeriti podršku za virtuelizaciju hardvera u Ubuntu-u koristeći naredbu:

Ako bude uspješan, vidjet ćete nešto poput ovoga:

INFO: /dev/kvm postoji KVM ubrzanje se može koristiti

Instalirajte pakete za rad sa KVM:

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

Ako imate pristup grafička ljuska sistema, možete instalirati libvirt GUI manager:

Sudo apt-get install virt-manager

Korištenje virt-managera je prilično jednostavno (nije teže od VirtualBoxa), pa ćemo u ovom članku govoriti o konzolnoj opciji za instaliranje i konfiguraciju virtualnog servera.

Instalacija i konfiguracija virtuelnog servera

U konzolnoj verziji instalacije, konfiguracije i upravljanja sistemom, nezamjenjiv alat je virsh utility (dodatak biblioteci libvirt). Ona ima veliki broj opcije i parametri, Detaljan opis može se nabaviti ovako:

Čovjek virsh

ili pozovite standardnu ​​"pomoć":

Virsh help

Uvek se držim toga slijedeći pravila kada radite sa virtuelnim serverima:

  1. Pohranjujem iso OS slike u /var/lib/libvirt/boot direktorij
  2. Slike virtuelne mašine spremam u /var/lib/libvirt/images direktorijum
  3. Svakoj novoj virtuelnoj mašini eksplicitno dodeljujem sopstvenu statičku IP adresu preko DHCP server hipervizor.

Počnimo sa instaliranjem prve virtuelne mašine (64-bitni server Ubuntu 16.04 LTS):

Cd /var/lib/libvirt/boot sudo wget http://releases.ubuntu.com/16.04/ubuntu-16.04.1-desktop-amd64.iso

Nakon preuzimanja slike pokrenite instalaciju:

Sudo virt-install \ --virt-type=kvm \ --name ubuntu1604\ --ram 1024 \ --vcpus=1 \ --os-variant=ubuntu16.04 \ --hvm \ --cdrom=/var/ lib/libvirt/boot/ubuntu-16.04.1-server-amd64.iso \ --network network=default,model=virtio \ --graphics vnc \ --disk path=/var/lib/libvirt/images/ubuntu1604. img,size=20,bus=virtio

Prevođenje svih ovih parametara u " ljudski jezik“, ispostavilo se da kreiramo virtuelnu mašinu sa Ubuntu 16.04 OS, 1024 MB RAM-a, 1 procesor, standardnu ​​mrežnu karticu (virtuelna mašina će pristupiti internetu kao da je zahvaljujući NAT-u), 20 GB HDD.

Vrijedi obratiti pažnju na parametar --os-varijanta, govori hipervizoru kojem OS treba prilagoditi postavke.
Lista dostupne opcije OS se može dobiti pokretanjem naredbe:

Osinfo-upit os

Ako takav uslužni program nije na vašem sistemu, instalirajte:

Sudo apt-get install libosinfo-bin

Nakon pokretanja instalacije, na konzoli će se pojaviti sljedeća poruka:

Instalacija domene je još u toku. Možete se ponovo povezati na konzolu da dovršite proces instalacije.

Ovo je normalna situacija, instalaciju ćemo nastaviti preko VNC-a.
Pogledajmo koji port je podignut na našoj virtuelnoj mašini (na primer u sledećem terminalu):

Virsh dumpxml ubuntu1604... ...

Luka 5900, na lokalna adresa 127.0.0.1. Da biste se povezali na VNC, morate koristiti prosljeđivanje portova putem ssh-a. Prije nego što to učinite, uvjerite se da je tcp prosljeđivanje omogućeno u ssh demonu. Da biste to učinili, idite na sshd postavke:

Cat /etc/ssh/sshd_config | grep AllowTcpForwarding

Ako ništa nije pronađeno ili vidite:

AllowTcpForwarding br

Zatim uređujemo konfiguraciju u

AllowTcpForwarding da

i ponovo pokrenite sshd.

Podešavanje prosljeđivanja portova

Izvršavamo naredbu na lokalnoj mašini:

Ssh -fN -l prijava -L 127.0.0.1:5900:localhost:5900 server_ip

Ovdje smo konfigurisali ssh port forwarding With lokalna luka 5900 na port servera 5900. Sada se možete povezati na VNC koristeći bilo koji VNC klijent. Više volim UltraVNC zbog njegove jednostavnosti i pogodnosti.

Nakon uspješnog povezivanja, pojavit će se ekran standardni prozor pozdrav za početak instalacije Ubuntua:

Nakon završetka instalacije i uobičajenog ponovnog pokretanja, pojavit će se prozor za prijavu. Nakon prijave, određujemo IP adresu novostvorene virtuelne mašine kako bismo je kasnije učinili statičnom:

Ifconfig

Sjećamo se i idemo na host mašinu. Izvlačimo mac adresu "mrežne" kartice virtuelne mašine:

Virsh dumpxml ubuntu1604 | grep "mac adresa"

Prisjetimo se naše mac adrese:

Uređivanje mrežne postavke hipervizor:

Sudo virsh net-edit default

Tražimo DHCP i dodajemo ovo:

Trebalo bi izgledati otprilike ovako:

Da bi postavke stupile na snagu, potrebno je ponovo pokrenuti DHCP server hipervizora:

Sudo virsh net-destroy default sudo virsh net-start default sudo service libvirt-bin restart

Nakon ovoga, ponovo pokrećemo virtuelnu mašinu, sada će joj uvek biti dodeljena IP adresa - 192.168.122.131.

Postoje i drugi načini za postavljanje statičke IP adrese za virtuelnu mašinu, na primjer, direktnim uređivanjem mrežnih postavki unutar sistema za goste, ali ovdje je sve što vam srce poželi. Upravo sam pokazao opciju koju najradije koristim.

Da se povežete na terminal virtuelne mašine, pokrenite:

Ssh 192.168.122.131

Auto je spreman za borbu.

Virsh: lista komandi

Da vidim kako trči virtuelni domaćini(sve dostupne se mogu dobiti dodavanjem --sve):

Sudo virsh lista

Možete ponovo pokrenuti host:

Sudo virsh ponovno pokretanje $VM_NAME

Zaustavite virtuelnu mašinu:

Sudo virsh stop $VM_NAME

Izvrši zaustavljanje:

Sudo virsh uništi $VM_NAME

Sudo virsh start $VM_NAME

Onemogući:

Sudo virsh gašenje $VM_NAME

Dodaj u automatsko pokretanje:

Sudo virsh autostart $VM_NAME

Vrlo često je potrebno klonirati sistem kako bi se u budućnosti koristio kao okvir za druge virtuelne operativne sisteme; za to se koristi uslužni program virt-clone.

Virt-klon --pomoć

On klonira postojeću virtuelnu mašinu i menja podatke osetljive na host, na primer, mac adresu. Lozinke, datoteke i druge korisničke informacije u klonu ostaju iste. Ako je IP adresa na kloniranoj virtuelnoj mašini registrovana ručno, tada mogu nastati problemi sa SSH pristupom klonu zbog konflikta (2 hosta sa istim IP-om).

Pored instaliranja virtuelne mašine preko VNC-a, moguće je koristiti i X11Forwarding preko virt-manager uslužnog programa. Na Windows-u, na primjer, možete koristiti Xming i PuTTY za ovo.

KVM ili Kernel Virtual Module je modul za virtuelizaciju za Linux kernel koji vam omogućava da svoj računar pretvorite u hipervizor za upravljanje virtuelnim mašinama. Ovaj modul radi na nivou kernela i podržava tehnologije hardverskog ubrzanja kao što su Intel VT i AMD SVM.

Samo po sebi softver KVM u korisničkom prostoru ne virtuelizira ništa. Umjesto toga, koristi /dev/kvm datoteku da konfiguriše virtuelne adresne prostore za gosta u kernelu. Svaki mašina za gosteće imati svoju video karticu, mrežu i zvučna kartica, HDD i drugu opremu.

Takođe, gostujući sistem neće imati pristup komponentama realnog operativni sistem. Virtuelna mašina radi u potpuno izolovanom prostoru. Kvm možete koristiti i na GUI sistemu i na serverima. U ovom članku ćemo pogledati kako instalirati kvm Ubuntu 16.04

Prije nego što pređete na samu KVM instalaciju, morate provjeriti podržava li vaš procesor hardversko ubrzanje virtuelizacija iz Intel-VT ili AMD-V. Da biste to učinili, pokrenite sljedeću naredbu:

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

Ako rezultat vrati 0, onda vaš procesor ne podržava hardversku virtuelizaciju, ako je 1 ili više, onda možete koristiti KVM na svom stroju.

Sada možemo nastaviti s instalacijom KVM-a, set programa se može dobiti direktno iz službenih spremišta:

sudo apt install qemu-kvm libvirt-bin bridge-utils virt-manager cpu-checker

Instalirali smo ne samo kvm uslužni program, već i libvirt biblioteku, kao i upravitelj virtuelnih mašina. Kada se instalacija završi, morate dodati svog korisnika u libvirtd grupu, jer samo root i korisnici u ovoj grupi mogu koristiti KVM virtuelne mašine:

sudo gpasswd -a KORISNIK libvirtd

Nakon što pokrenete ovu naredbu, odjavite se i ponovo se prijavite. Zatim provjerimo da li je sve ispravno instalirano. Da biste to učinili, koristite naredbu kvm-ok:

INFO: /dev/kvm postoji
Može se koristiti KVM ubrzanje

Ako je sve urađeno kako treba, vidjet ćete istu poruku.

Korištenje KVM-a na Ubuntu 16.04

Završili ste zadatak instaliranja kvm-a u Ubuntu, ali još uvijek ne možete koristiti ovo virtualizacijsko okruženje, ali ga još uvijek treba konfigurirati. Zatim ćemo pogledati kako je konfigurisan kvm Ubuntu. Prvo morate postaviti svoju mrežu. Moramo da napravimo most sa kojim će se virtuelna mašina povezati na mrežu računara.

Postavljanje mosta u NetworkManageru

To se može učiniti na nekoliko načina, na primjer, možete koristiti program za konfiguraciju mreže NetworkManager.

Kliknite na ikonu NetworkManager na panelu, a zatim odaberite promenite veze, a zatim kliknite na dugme Dodati:

Zatim odaberite vrstu veze Most i pritisnite Stvoriti:

U prozoru koji se otvori kliknite na dugme Dodati, da povežete naš most sa internet vezom:

Sa liste izaberite Ethernet i pritisnite Stvoriti:

U sljedećem prozoru odaberite u polju uređaj, mrežni interfejs, sa kojim bi naš most trebao biti povezan:

Sada na listi mrežne veze vidjet ćeš svoj most. Sve što ostaje je da ponovo pokrenete mrežu da biste u potpunosti primijenili promjene, da biste to učinili, pokrenite:

Ručno postavljanje mosta

Prvo morate instalirati bridge-utils skup uslužnih programa ako to već niste učinili:

sudo apt install bridge-utils

Zatim, koristeći program brctl, možemo kreirati most koji nam je potreban. Da biste to učinili, koristite sljedeće naredbe:

sudo brctl addbr bridge0
$ sudo ip addr show
$ sudo addif bridge0 eth0

Prva naredba dodaje uređaj za premošćivanje br0, dok drugom trebate odrediti na koji mrežni interfejs je glavna veza eksternu mrežu, u mom slučaju to je eth0. I sa zadnjom komandom povezujemo most br0 sa eth0.

Sada morate dodati nekoliko redova mrežnim postavkama kako bi se sve automatski pokrenulo nakon pokretanja sistema. Da biste to učinili, otvorite datoteku /etc/network/interfaces i tamo dodajte sljedeće redove:

sudo gedit /etc/network/interfaces

loopback
auto lo bridge0
iface lo inet loopback
iface bridge0 inet dhcp
bridge_ports eth0

Kada se postavke dodaju, ponovo pokrenite mrežu:

sudo systemctl ponovo pokrenite umrežavanje

Sada je instalacija i konfiguracija KVM-a u potpunosti završena i možete kreirati svoju prvu virtuelnu mašinu. Nakon toga možete pogledati dostupne mostove koristeći naredbu:

Kreiranje KVM virtuelnih mašina

Postavke KVM Ubuntu završeno i sada možemo preći na njegovo korištenje. Prvo, pogledajmo listu postojećih virtuelnih mašina:

virsh -c qemu:///sistemska lista

Prazan je. Možete kreirati virtuelnu mašinu preko terminala ili u grafičkom interfejsu. Za kreiranje putem terminala koristite naredbu virt-install. Prvo idemo u folder libvirt:

cd /var/lib/libvirt/boot/

Za CentOS instalacije komanda će izgledati ovako:

sudo virt-install\
--virt-type=kvm \
--ime centos7\
--ram 2048\
--vcpus=2 \
--os-varijanta=rhel7 \
--hvm\
--cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-DVD-1511.iso \
--network=bridge=br0,model=virtio \
--grafika vnc\
--putanja diska=/var/lib/libvirt/images/centos7.qcow2,size=40,bus=virtio,format=qcow2

Pogledajmo bliže šta znače parametri ove naredbe:

  • virt-type- tip virtuelizacije, u našem slučaju kvm;
  • ime- Ime novo auto;
  • RAM- količina memorije u megabajtima;
  • vcpus- broj procesorskih jezgara;
  • os-varijanta- tip operativnog sistema;
  • CD ROM - instalacijska slika sistemi;
  • mrežni most- mrežni most koji smo ranije konfigurisali;
  • grafika- način pristupa grafičkom interfejsu;
  • diskpath- adresa new hard disk za ovu virtuelnu mašinu;

Nakon što je instalacija virtuelne mašine završena, možete saznati parametre VNC veze pomoću naredbe:

sudo virsh vncdisplay centos7

Sada možete unijeti primljene podatke u svoj VNC klijent i povezati se na virtuelnu mašinu čak i daljinski. Za Debian naredba će biti malo drugačija, ali sve izgleda slično:

Idite u folder za slike:

cd /var/lib/libvirt/boot/

Po potrebi možete preuzeti instalacijsku sliku s interneta:

sudo wget https://mirrors.kernel.org/debian-cd/current/amd64/iso-dvd/debian-8.5.0-amd64-DVD-1.iso

Zatim napravimo virtuelnu mašinu:

sudo virt-install\
--virt-type=kvm \
--name=debina8 \
--ram=2048\
--vcpus=2 \
--os-variant=debian8 \
--hvm\
--cdrom=/var/lib/libvirt/boot/debian-8.5.0-amd64-DVD-1.iso \
--network=bridge=bridge0,model=virtio \
--grafika vnc\
--putanja diska=/var/lib/libvirt/images/debian8.qcow2,size=40,bus=virtio,format=qcow2

Pogledajmo sada ponovo listu dostupnih mašina:

virsh -c qemu:///sistemska lista

Za pokretanje virtuelne mašine možete koristiti naredbu:

sudo virsh start machinename

Zaustaviti:

sudo virsh shutdown machinename

Za prebacivanje u stanje mirovanja:

sudo virsh suspend machinename

Za ponovno pokretanje:

sudo virsh ime mašine za ponovno pokretanje

sudo virsh reset machinename

Za potpuno uklanjanje virtuelna mašina:

sudo virsh uništi ime mašine

Kreiranje virtuelnih mašina u GUI\

Ako imate pristup GUI, onda nema potrebe za korištenjem terminala, možete koristiti potpuni GUI virtuelnog menadžera Virtuelne mašine Menadžer. Program se može pokrenuti iz glavnog menija:

Da kreirate novu mašinu, kliknite na ikonu sa ikonom monitora. Zatim ćete morati odabrati ISO slika vaš sistem. Možete koristiti i pravi CD/DVD drajv:

Na sljedećem ekranu odaberite količinu memorije koja će biti dostupna virtuelnoj mašini, kao i broj procesorskih jezgara:

Na ovom ekranu morate odabrati veličinu tvrdi disk, koji će biti dostupan na vašoj mašini:

On poslednji korak Kao čarobnjak, moraćete da proverite da li su podešavanja mašine ispravna i da unesete njen naziv. Također morate navesti mrežni most preko kojeg će se mašina povezati na mrežu:

Nakon toga, mašina će biti spremna za upotrebu i pojavit će se na listi. Možete ga pokrenuti pomoću zelenog trokuta na traci sa alatkama menadžera.

zaključci

U ovom članku smo pogledali kako da instaliramo KVM Ubuntu 16.04, pogledali smo kako u potpunosti pripremiti ovo okruženje za rad, kao i kako kreirati virtuelne mašine i koristiti ih. Ako imate pitanja, pitajte u komentarima!

Da zaključimo, predavanje Yandexa o tome što je virtualizacija u Linuxu:

Lično, najlakše mi je da KVM (virtuelna mašina zasnovana na kernelu) smatram nivoom apstrakcije nad Intel VT-x i AMD-V hardverskim tehnologijama virtuelizacije. Uzimamo mašinu sa procesorom koji podržava jednu od ovih tehnologija i kladimo se na ovo Linux mašina, u Linuxu instaliramo KVM, kao rezultat dobijamo priliku da kreiramo virtuelne mašine. Otprilike ovako funkcionira hosting u oblaku, na primjer, Amazon Web Services. Uz KVM, Xen se također ponekad koristi, ali rasprava o ovoj tehnologiji je izvan okvira ovog posta. Za razliku od tehnologija virtualizacije kontejnera, na primjer, Docker, KVM vam omogućava da pokrenete bilo koji OS kao gostujući sistem, ali također ima O Veći troškovi za virtuelizaciju.

Bilješka: Korake opisane u nastavku sam testirao na Ubuntu Linux 14.04, ali u teoriji će biti u mnogo čemu istiniti kao i za druge Ubuntu verzije, i drugi Linux distribucije. Sve bi trebalo da radi i na desktopu i na serveru, pristupa se preko SSH-a.

Instaliranje KVM-a

Provjeravamo da li naš procesor podržava Intel VT-x ili AMD-V:

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

Ako se nešto zagrije, to znači da je podržano i možete nastaviti dalje.

Instalacija KVM-a:

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

Šta se obično skladišti gde:

  • /var/lib/libvirt/boot/ - ISO slike za instaliranje gostujućih sistema;
  • /var/lib/libvirt/images/ - slike tvrdi diskovi sistemi za goste;
  • /var/log/libvirt/ - ovdje treba tražiti sve dnevnike;
  • /etc/libvirt/ - direktorij sa konfiguracijskim datotekama;

Sada kada je KVM instaliran, napravimo našu prvu virtuelnu mašinu.

Kreiranje prve virtuelne mašine

Odabrao sam FreeBSD kao sistem za goste. Preuzmite ISO sliku sistema:

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

Virtualnim mašinama se u većini slučajeva upravlja pomoću uslužnog programa virsh:

sudo virsh --pomoć

Prije pokretanja virtuelne mašine, moraćemo da prikupimo neke dodatne informacije.

Gledamo listu dostupnih mreža:

sudo virsh net-list

Pogledajte informacije o specifične mreže(nazvan default):

sudo virsh net-info default

Pogledajmo listu dostupnih optimizacija za gostujuće operativne sisteme:

sudo virt-install --os-varijanta lista

Dakle, sada kreiramo virtuelnu mašinu sa 1 CPU, 1 GB RAM-a i 32 GB prostora na disku, povezanu na podrazumevanu mrežu:

sudo virt-install\
--virt-type =kvm\
--name freebsd10\
--ram 1024\
--vcpus=1\
--os-varijanta =freebsd8 \
--hvm\
--cdrom =/ var/ lib/ libvirt/ boot/ FreeBSD-10.2 -RELEASE-amd64-disc1.iso \
--mrežna mreža =zadano,model =virtio \
--grafika vnc\
--putanja diska =/ var/ lib/ libvirt/ images/ freebsd10.img, veličina =32 ,bus =virtio

Mozes da vidis:

UPOZORENJE Nije moguće povezati se na grafičku konzolu: virt-viewer nije
instaliran. Molimo instalirajte paket "virt-viewer".

Instalacija domene je još u toku. Možete se ponovo povezati na konzolu
da dovršite proces instalacije.

Ovo je normalno, tako treba da bude.

Zatim pogledajte svojstva virtuelne mašine u XML formatu:

sudo virsh dumpxml freebsd10

Evo ih najviše pune informacije. Ovo uključuje, na primjer, MAC adresu, koja će nam kasnije trebati. Za sada nalazimo informacije o VNC-u. U mom slučaju:

Koristeći vaš omiljeni klijent (ja lično koristim Ramminu), prijavljujemo se preko VNC-a, koristeći SSH prosljeđivanje portova ako je potrebno. Ulazimo direktno u FreeBSD instalater. Onda je sve kao i obično - Next, Next, Next, dobijamo instalirani sistem.

Osnovne komande

Pogledajmo sada osnovne komande za rad sa KVM.

Dobivanje liste svih virtuelnih mašina:

sudo virsh lista --sve

Dobijanje informacija o određenoj virtuelnoj mašini:

sudo virsh dominfo freebsd10

Pokrenite virtuelnu mašinu:

sudo virsh start freebsd10

Zaustavite virtuelnu mašinu:

sudo virsh shutdown freebsd10

Jedva zakucati virtuelnu mašinu (uprkos imenu, ovo Ne brisanje):

sudo virsh uništiti freebsd10

Ponovo pokrenite virtuelnu mašinu:

sudo virsh ponovno pokretanje freebsd10

Kloniraj virtuelnu mašinu:

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

Omogući/onemogući automatsko pokretanje:

sudo virsh autostart freebsd10
sudo virsh autostart --onemogući freebsd10

Pokretanje virsh-a u načinu dijaloga (sve naredbe u načinu dijaloga - kao što je gore opisano):

sudo virsh

Uređivanje svojstava virtualne mašine u XML-u, uključujući ovdje možete promijeniti ograničenje količine memorije, itd.:

sudo virsh uredi freebsd10

Bitan! Komentari iz uređenog XML-a su nažalost uklonjeni.

Kada je virtuelna mašina zaustavljena, veličina diska se takođe može promeniti:

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

Bitan! Vašem gostujućem OS vjerovatno se neće svidjeti da disk odjednom postaje veći ili manji. IN najboljem scenariju, pokrenuće se u hitnom režimu sa predlogom da se ponovo particioniše disk. Vjerovatno ne biste trebali to raditi. Možda će biti mnogo lakše kreirati novu virtuelnu mašinu i migrirati sve podatke na nju.

Sigurnosno kopiranje i vraćanje su prilično jednostavni. Dovoljno je sačuvati negdje izlaz dumpxml, kao i sliku diska, a zatim ih vratiti. Na YouTubeu uspeo da pronađe video Uz demonstraciju ovog procesa, sve zaista nije teško.

Mrežne postavke

Zanimljivo pitanje - kako odrediti koju IP adresu je virtuelna mašina dobila nakon učitavanja? KVM to radi na pametan način. Na kraju sam napisao ovu skriptu u Pythonu:

#!/usr/bin/env python3

# virt-ip.py skripta
# (c) 2016 Aleksandar Aleksejev
# http://site/

import sys
import re
import os
uvozni podproces
iz xml .etree import ElementTree

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

ako len(sys.argv)< 2 :
eprint("UPORABA: " + sys .argv [ 0 ] + " " )
eprint("Primjer: " + sys .argv [ 0 ] + " freebsd10" )
sys.exit(1)

ako os .geteuid() != 0 :
eprint("GREŠKA: trebali biste biti root")
eprint("Savet: pokrenite `sudo " + sys .argv [ 0 ] + " ...`" ) ;
sys.exit(1)

ako podproces .call ( "koji arping 2>&1 >/dev/null", shell = Tačno ) != 0 :
eprint("GREŠKA: arping nije pronađeno" )
eprint( "Savjet: pokrenite `sudo apt-get install arping`")
sys.exit(1)

Domena = sys.argv[1]

ako nije ponovno .match ("^*$" , domena):
eprint( "GREŠKA: nevažeći znakovi u nazivu domene")
sys.exit(1)

Domout = subprocess .check_output ("virsh dumpxml " +domain+" || true" ,
shell = Tačno)
domout = domout.decode("utf-8").strip()

if domout == "" :
# poruka o grešci je već ispisana od strane dumpxml
sys.exit(1)

Doc = ElementTree.fromstring(domout)

# 1. navedite sva mrežna sučelja
# 2. pokrenite `arping` na svakom interfejsu paralelno
#3.grep odgovara
cmd = "(ifconfig | cut -d " " -f 1 | grep -E "." | " + \
"xargs -P0 -I IFACE arping -i IFACE -c 1 () 2>&1 | " + \
"grep "bytes from") || true"

za dijete u doc.iter() :
if child.tag == "mac" :
macaddr = child.attrib["adresa"]
macout = podproces .check_output (cmd .format (macaddr) ,
shell = Tačno)
print(macout.decode("utf-8"))

Skripta radi i sa zadanom mrežom i sa premoštenom mrežom, čiju ćemo konfiguraciju pogledati kasnije. Međutim, u praksi je mnogo zgodnije konfigurisati KVM tako da uvek dodeljuje iste IP adrese gostujućim sistemima. Da biste to učinili, uredite mrežne postavke:

sudo virsh net-edit default

... ovako nešto:

>



>

Nakon uvođenja ovih promjena


>

... i zamijenite ga nečim poput:




>

Ponovo pokrećemo gostujući sistem i provjeravamo da li je primio IP preko DHCP-a sa rutera. Ako želite da sistem gostiju ima statička IP adresa, ovo se konfigurira kao i obično unutar samog sistema za goste.

virt-manager program

Možda će vas zanimati i virt-manager program:

sudo apt-get install virt-manager
sudo usermod -a -G libvirtd KORISNIČKO IME

Ovako izgleda njegov glavni prozor:

Kao što vidite, virt-manager nije samo GUI za virtuelne mašine koje rade lokalno. Uz njegovu pomoć možete upravljati virtualnim mašinama koje rade na drugim hostovima, kao i gledati prekrasnu grafiku u realnom vremenu. Ja lično smatram da je posebno zgodno u virt-manageru da ne morate pretraživati ​​konfiguracije da biste saznali na kojem portu VNC radi na određenom sistemu za goste. Samo pronađete virtuelnu mašinu na listi, dvaput kliknite i dobijete pristup monitoru.

Uz pomoć virt-managera također je vrlo zgodno raditi stvari koje bi inače zahtijevale naporno uređivanje XML datoteka i, u nekim slučajevima, izvršavanje dodatne komande. Na primjer, preimenovanje virtuelnih mašina, CPU postavke afinitet i slične stvari. Između ostalog, Upotreba CPU-a afinitet značajno smanjuje efekat bučnih suseda i uticaj virtuelnih mašina na sistem domaćina. Uvijek ga koristite ako je moguće.

Ako odlučite koristiti KVM kao zamjenu za VirtualBox, imajte na umu da neće moći dijeliti hardversku virtualizaciju između sebe. Da bi KVM radio na vašoj radnoj površini, ne samo da ćete morati da zaustavite sve virtuelne mašine u VirtualBox-u i Vagrantu, već i da ponovo pokrenete sistem. Ja lično smatram da je KVM mnogo zgodniji od VirtualBoxa, barem zato što ne zahtijeva da pokrenete komandu sudo /sbin/rcvboxdrv podešavanje nakon svakog ažuriranja kernela, radi adekvatno sa Unity-om i općenito vam omogućava da sakrijete sve prozore.

Najbolji članci na ovu temu