Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Programe
  • Instalarea consolei ubuntu server kvm. Utilizarea KVM pentru a crea mașini virtuale pe server

Instalarea consolei ubuntu server kvm. Utilizarea KVM pentru a crea mașini virtuale pe server

KVM sau Kernel Virtual Module este un modul de virtualizare pentru nucleul Linux care vă permite să vă transformați computerul într-un hypervisor pentru gestionarea mașinilor virtuale. Acest modul funcționează la nivel de kernel și acceptă tehnologii de accelerare hardware, cum ar fi Intel VT și AMD SVM.

Software-ul KVM în sine nu virtualizează nimic în spațiul utilizatorului. În schimb, folosește fișierul /dev/kvm pentru a configura spațiile de adrese virtuale pentru oaspete în kernel. Fiecare aparat pentru oaspeți va avea propria sa placa video, retea si placa de sunet, hard disk și alte echipamente.

De asemenea, sistemul invitat nu va avea acces la componentele sistemului de operare real. Mașina virtuală rulează într-un spațiu complet izolat. Puteți utiliza kvm atât pe un sistem GUI, cât și pe servere. În acest articol ne vom uita la cum să instalați kvm Ubuntu 16.04

Înainte de a continua cu instalarea KVM în sine, trebuie să verificați dacă procesorul dvs. acceptă accelerarea virtualizării hardware de la Intel-VT sau AMD-V. Pentru a face acest lucru, rulați următoarea comandă:

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

Dacă rezultatul returnează 0, atunci procesorul dumneavoastră nu acceptă virtualizarea hardware, dacă este 1 sau mai mult, atunci puteți utiliza KVM pe mașina dvs.

Acum putem trece la instalarea KVM, un set de programe poate fi obținut direct din depozitele oficiale:

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

Am instalat nu numai utilitarul kvm, ci și biblioteca libvirt, precum și managerul mașini virtuale. Odată ce instalarea este finalizată, trebuie să adăugați utilizatorul în grupul libvirtd, deoarece numai root și utilizatorii din acest grup pot folosi mașinile virtuale KVM:

sudo gpasswd -a USER libvirtd

După ce rulați această comandă, deconectați-vă și conectați-vă din nou. Apoi, să verificăm dacă totul a fost instalat corect. Pentru a face acest lucru, utilizați comanda kvm-ok:

INFORMAȚII: /dev/kvm există
Se poate folosi accelerația KVM

Dacă totul a fost făcut corect, veți vedea același mesaj.

Utilizarea KVM pe Ubuntu 16.04

Ați finalizat sarcina de a instala kvm în Ubuntu, dar încă nu puteți utiliza acest mediu de virtualizare, dar încă trebuie configurat. În continuare, ne vom uita la modul în care este configurat kvm Ubuntu. Mai întâi trebuie să vă configurați rețeaua. Trebuie să creăm o punte cu care mașina virtuală se va conecta la rețeaua computerului.

Configurarea unui bridge în NetworkManager

Acest lucru se poate face în mai multe moduri, de exemplu, puteți utiliza programul de configurare a rețelei NetworkManager.

Faceți clic pe pictograma NetworkManager din panou, apoi selectați schimba conexiunile, apoi faceți clic pe butonul Adăuga:

Apoi selectați tipul de conexiune Podși apăsați Crea:

În fereastra care se deschide, faceți clic pe butonul Adăuga, pentru a conecta puntea noastră la conexiunea la internet:

Din listă, selectați Ethernetși apăsați Crea:

În fereastra următoare, selectați în câmp dispozitiv, interfata retea, cu care ar trebui conectat podul nostru:

Acum pe listă conexiuni de retea iti vei vedea podul. Tot ce rămâne este să reporniți rețeaua pentru a aplica complet modificările, pentru a face acest lucru, rulați:

Configurare manuală a podului

Mai întâi trebuie să instalați setul de utilitare bridge-utils dacă nu ați făcut deja acest lucru:

sudo apt install bridge-utils

Apoi, folosind programul brctl, putem crea puntea de care avem nevoie. Pentru a face acest lucru, utilizați următoarele comenzi:

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

Prima comandă adaugă dispozitivul bridge br0, cu a doua trebuie să determinați care interfață de rețea este conexiunea principală la care rețea externă, în cazul meu este eth0. Și cu ultima comandă conectăm bridge-ul br0 la eth0.

Acum trebuie să adăugați câteva linii la setările de rețea, astfel încât totul să pornească automat după pornirea sistemului. Pentru a face acest lucru, deschideți fișierul /etc/network/interfaces și adăugați următoarele linii acolo:

sudo gedit /etc/network/interfaces

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

Când setările sunt adăugate, reporniți rețeaua:

sudo systemctl reporniți rețeaua

Acum instalarea și configurarea KVM sunt complet finalizate și vă puteți crea prima mașină virtuală. După aceasta, puteți vizualiza podurile disponibile folosind comanda:

Crearea de mașini virtuale KVM

Setări KVM Ubuntu finalizat și acum putem trece la folosirea lui. Mai întâi, să ne uităm la lista de mașini virtuale existente:

virsh -c qemu:///listă de sistem

E gol. Puteți crea o mașină virtuală prin terminal sau în interfața grafică. Pentru a crea prin terminal, utilizați comanda virt-install. Mai întâi să mergem la folderul libvirt:

cd /var/lib/libvirt/boot/

Pentru a instala CentOS, comanda va arăta astfel:

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

Să aruncăm o privire mai atentă la ceea ce înseamnă parametrii acestei comenzi:

  • tip virt- tip de virtualizare, în cazul nostru kvm;
  • Nume- Nume mașină nouă;
  • RAM- cantitatea de memorie în megabytes;
  • vcpus- numărul de nuclee de procesor;
  • varianta os- tip de sistem de operare;
  • CD ROM - imaginea de instalare sisteme;
  • punte-rețea- puntea de rețea pe care am configurat-o mai devreme;
  • grafică- o modalitate de a obține acces la interfața grafică;
  • calea discului- adresa noului hard disk pentru această mașină virtuală;

După finalizarea instalării mașinii virtuale, puteți afla parametrii conexiunii VNC folosind comanda:

sudo virsh vncdisplay centos7

Acum puteți introduce datele primite în clientul VNC și vă puteți conecta la mașina virtuală chiar și de la distanță. Pentru Debian comanda va fi ușor diferită, dar totul arată similar:

Accesați folderul pentru imagini:

cd /var/lib/libvirt/boot/

Puteți descărca imaginea de instalare de pe Internet dacă este necesar:

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

Apoi să creăm o mașină virtuală:

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\
--graphics vnc\
--disk path=/var/lib/libvirt/images/debian8.qcow2,size=40,bus=virtio,format=qcow2

Acum să ne uităm din nou la lista de mașini disponibile:

virsh -c qemu:///listă de sistem

Pentru a porni mașina virtuală puteți folosi comanda:

sudo virsh start machinename

A opri:

sudo virsh shutdown machinename

Pentru a comuta în modul de repaus:

sudo virsh suspend nume mașină

Pentru a reporni:

sudo virsh reporniți nume mașină

sudo virsh resetează numele mașinii

Pentru îndepărtarea completă mașină virtuală:

sudo virsh distruge nume mașină

Crearea de mașini virtuale în GUI\

Dacă aveți acces la o interfață grafică, atunci nu este nevoie să utilizați un terminal, puteți utiliza unul cu drepturi depline GUI manager virtual Mașini virtuale Administrator. Programul poate fi lansat din meniul principal:

Pentru a crea o mașină nouă, faceți clic pe pictograma cu pictograma monitorului. Apoi, va trebui să selectați imaginea ISO a sistemului dvs. De asemenea, puteți utiliza o unitate CD/DVD reală:

Pe ecranul următor, selectați cantitatea de memorie care va fi disponibilă pentru mașina virtuală, precum și numărul de nuclee de procesor:

Pe acest ecran, trebuie să selectați dimensiunea hard disk-ului care va fi disponibil pe mașina dvs.:

La ultimul pas al expertului, trebuie să verificați dacă setările aparatului sunt corecte și să introduceți și numele acestuia. De asemenea, trebuie să specificați puntea de rețea prin care mașina se va conecta la rețea:

După aceasta, mașina va fi gata de utilizare și va apărea în listă. Îl puteți lansa folosind triunghiul verde din bara de instrumente manager.

concluzii

În acest articol, ne-am uitat la cum să instalăm KVM Ubuntu 16.04, ne-am uitat la cum să pregătim pe deplin acest mediu pentru lucru, precum și cum să creăm mașini virtuale și să le folosim. Dacă aveți întrebări, întrebați în comentarii!

Pentru a încheia, o prelegere de la Yandex despre ce este virtualizarea în Linux:

Personal, este cel mai ușor pentru mine să mă gândesc la KVM (Mașină virtuală bazată pe kernel) ca la un nivel de abstractizare față de tehnologiile de virtualizare hardware Intel VT-x și AMD-V. Luăm o mașină cu un procesor care acceptă una dintre aceste tehnologii și mizăm pe aceasta mașină Linux, în Linux instalăm KVM, ca urmare avem posibilitatea de a crea mașini virtuale. Cam așa funcționează găzduirea în cloud, de exemplu, Amazon Web Services. Alături de KVM, Xen este uneori folosit, dar o discuție despre această tehnologie depășește scopul acestei postări. Spre deosebire de tehnologiile de virtualizare a containerelor, de exemplu, Docker, KVM vă permite să rulați orice sistem de operare ca sistem invitat, dar are și O Suplimentar mai mare pentru virtualizare.

Notă: Pașii descriși mai jos au fost testați de mine pe Ubuntu Linux 14.04, dar în teorie vor fi în multe privințe la fel de adevărate ca și pentru altele versiuni Ubuntu, si altii distribuții Linux. Totul ar trebui să funcționeze atât pe desktop, cât și pe server, accesat prin SSH.

Instalarea KVM

Verificăm dacă Intel VT-x sau AMD-V este acceptat de procesorul nostru:

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

Dacă ceva se încinge, înseamnă că este acceptat și poți continua.

Instalarea KVM:

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

Ce este de obicei stocat unde:

  • /var/lib/libvirt/boot/ - imagini ISO pentru instalarea sistemelor guest;
  • /var/lib/libvirt/images/ — imagini ale hard disk-urilor sistemelor invitate;
  • /var/log/libvirt/ - aici ar trebui să căutați toate jurnalele;
  • /etc/libvirt/ - directorul cu fișierele de configurare;

Acum că KVM este instalat, să creăm prima noastră mașină virtuală.

Crearea primei mașini virtuale

Am ales FreeBSD ca sistem invitat. Descărcați imaginea ISO a sistemului:

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

Mașinile virtuale sunt gestionate în majoritatea cazurilor folosind utilitarul virsh:

sudo virsh --help

Înainte de a lansa mașina virtuală, va trebui să colectăm câteva informații suplimentare.

Ne uităm la lista de rețele disponibile:

sudo virsh net-list

Vizualizați informații despre o anumită rețea (numită implicită):

sudo virsh net-info implicit

Să ne uităm la lista de optimizări disponibile pentru sistemele de operare invitate:

sudo virt-install --os-variant list

Deci, acum creăm o mașină virtuală cu 1 CPU, 1 GB RAM și 32 GB spațiu pe disc, conectată la rețeaua implicită:

sudo virt-install\
--virt-type =kvm\
--name freebsd10\
--ram 1024\
--vcpus=1\
--os-variant =freebsd8 \
--hvm\
--cdrom =/ var/ lib/ libvirt/ boot/ FreeBSD-10.2 -RELEASE-amd64-disc1.iso \
--network network =implicit,model =virtio\
--graphics vnc\
--disk path =/ var/ lib/ libvirt/ images/ freebsd10.img,size =32 ,bus =virtio

Poti sa vezi:

AVERTISMENT Nu se poate conecta la consola grafică: virt-viewer nu
instalat. Vă rugăm să instalați pachetul „virt-viewer”.

Instalarea domeniului este încă în curs. Vă puteți reconecta la consolă
pentru a finaliza procesul de instalare.

Este normal, așa ar trebui să fie.

Apoi uitați-vă la proprietățile mașinii virtuale în format XML:

sudo virsh dumpxml freebsd10

Cele mai complete informații sunt furnizate aici. Aceasta include, de exemplu, o adresă MAC, de care vom avea nevoie mai târziu. Deocamdată găsim informații despre VNC. În cazul meu:

Folosind clientul tău preferat (eu personal folosesc Rammina) ne logăm prin VNC, dacă este necesar folosind SSH port forwarding. Intrăm direct în programul de instalare FreeBSD. Apoi totul este ca de obicei - Next, Next, Next, obținem sistemul instalat.

Comenzi de bază

Să ne uităm acum la comenzile de bază pentru lucrul cu KVM.

Obținerea unei liste cu toate mașinile virtuale:

sudo virsh list --all

Obținerea de informații despre o anumită mașină virtuală:

sudo virsh dominfo freebsd10

Lansați mașina virtuală:

sudo virsh start freebsd10

Opriți mașina virtuală:

sudo virsh shutdown freebsd10

Cu greu dau în cuie mașina virtuală (în ciuda numelui, aceasta Nu stergere):

sudo virsh distruge freebsd10

Reporniți mașina virtuală:

sudo virsh reporniți freebsd10

Clonează mașina virtuală:

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

Activați/dezactivați rularea automată:

sudo virsh autostart freebsd10
sudo virsh autostart --dezactivați freebsd10

Rularea virsh în modul dialog (toate comenzile în modul dialog - așa cum este descris mai sus):

sudo virsh

Editarea proprietăților mașinii virtuale în XML, inclusiv aici puteți modifica limita cantității de memorie etc.:

sudo virsh edit freebsd10

Important! Comentariile din XML-ul editat sunt, din păcate, eliminate.

Când mașina virtuală este oprită, discul poate fi, de asemenea, redimensionat:

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

Important! Sistemul dumneavoastră de operare invitat probabil că nu va plăcea că discul devine brusc mai mare sau mai mic. În cel mai bun caz, se va încărca în modul de urgență cu o propunere de repartizare a discului. Probabil că nu ar trebui să vrei să faci asta. Poate fi mult mai ușor să creați o nouă mașină virtuală și să migrați toate datele către ea.

Backup și restaurare sunt destul de simple. Este suficient să salvați undeva ieșirea dumpxml, precum și imaginea de disc și apoi să le restaurați. Pe Youtube a reusit sa gasesc videoclipul Cu o demonstrație a acestui proces, totul nu este cu adevărat dificil.

Setari de retea

O întrebare interesantă - cum să determinați ce adresă IP a primit mașina virtuală după încărcare? KVM face acest lucru într-un mod inteligent. Am ajuns să scriu acest script în Python:

#!/usr/bin/env python3

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

import sys
import re
import os
subproces de import
din xml .etree import ElementTree

def eprint(str) :
print(str, fișier = sys.stderr)

dacă len(sys.argv)< 2 :
eprint("UTILIZARE: " + sys .argv [ 0 ] + " " )
eprint("Exemplu: " + sys .argv [ 0 ] + " freebsd10 " )
sys.exit(1)

dacă os .geteuid() != 0 :
eprint("EROARE: ar trebui să fii root" )
eprint("Sugestie: rulați `sudo " + sys .argv [ 0 ] + " ...`" ) ;
sys.exit(1)

dacă subproces .call ( „care arping 2>&1>/dev/null”, shell = True ) != 0 :
eprint("EROARE: arping nu a fost găsit" )
eprint( „Sugestie: rulați `sudo apt-get install arping`”)
sys.exit(1)

Domeniu = sys.argv[1]

dacă nu re .match ("^*$", domeniu):
eprint( „EROARE: caractere nevalide în numele domeniului”)
sys.exit(1)

Domout = subproces .check_output ("virsh dumpxml " +domeniu+" || adevărat" ,
coajă = adevărat)
domout = domout.decode("utf-8").strip()

if domout == "" :
# mesaj de eroare imprimat deja de dumpxml
sys.exit(1)

Doc = ElementTree.fromstring(domout)

# 1. enumerați toate interfețele de rețea
# 2. rulați `arping` pe fiecare interfață în paralel
#3.răspunsuri grep
cmd = "(ifconfig | cut -d " " -f 1 | grep -E "." | " + \
"xargs -P0 -I IFACE arping -i IFACE -c 1 () 2>&1 | " + \
„grep „octeți de la”) || adevărat”

pentru copil în doc.iter() :
dacă child.tag == „mac”:
macaddr = child.attrib[„adresa”]
macout = subproces .check_output (cmd .format (macaddr) ,
coajă = adevărat)
print(macout.decode("utf-8"))

Scriptul funcționează atât cu rețeaua implicită, cât și cu rețeaua în punte, a cărei configurație o vom analiza mai târziu. Cu toate acestea, în practică, este mult mai convenabil să configurați KVM astfel încât să atribuie întotdeauna aceleași adrese IP sistemelor oaspeților. Pentru a face acest lucru, editați setările de rețea:

sudo virsh net-edit implicit

... ceva de genul:

>



>

După efectuarea acestor modificări


>

... și înlocuiți-l cu ceva de genul:




>

Repornim sistemul oaspete și verificăm dacă a primit un IP prin DHCP de la router. Dacă doriți să sistem invitat a avut adresa IP statica, aceasta este configurată ca de obicei în sistemul oaspeților însuși.

programul virt-manager

Ați putea fi interesat și de programul virt-manager:

sudo apt-get install virt-manager
sudo usermod -a -G libvirtd NUME DE UTILIZATOR

Iată cum arată fereastra sa principală:

După cum puteți vedea, virt-manager nu este doar o interfață grafică pentru mașinile virtuale care rulează local. Cu ajutorul acestuia, puteți gestiona mașinile virtuale care rulează pe alte gazde, precum și să vă uitați la o grafică frumoasă în timp real. Personal, mi se pare deosebit de convenabil în virt-manager că nu trebuie să căutați prin configurații pentru a afla pe ce port rulează VNC pe un anumit sistem invitat. Doar găsiți mașina virtuală în listă, faceți dublu clic și obțineți acces la monitor.

Cu ajutorul virt-manager, este, de asemenea, foarte convenabil să faci lucruri care altfel ar necesita o editare laborioasă a fișierelor XML și, în unele cazuri, execuția comenzi suplimentare. De exemplu, redenumirea mașinilor virtuale, setări CPU afinitate și lucruri asemănătoare. Apropo, Utilizarea procesorului afinitatea reduce semnificativ efectul vecinilor zgomotoși și impactul mașinilor virtuale asupra sistemului gazdă. Folosiți-l întotdeauna dacă este posibil.

Dacă decideți să utilizați KVM ca înlocuitor pentru VirtualBox, rețineți că aceștia nu vor putea partaja virtualizarea hardware între ei. Pentru ca KVM să funcționeze pe desktop, nu numai că va trebui să opriți toate mașinile virtuale din VirtualBox și Vagrant, ci și să reporniți sistemul. Eu personal consider KVM mult mai convenabil decât VirtualBox, cel puțin pentru că nu necesită să rulați o comandă setare sudo /sbin/rcvboxdrv după fiecare actualizare a nucleului, funcționează adecvat cu Unity și, în general, vă permite să ascundeți toate ferestrele.

Ca pasionat de Linux, verific multe Sursa deschisași aplicații Linux, precum și distribuții în fiecare zi. Practic folosesc Oracle VirtualBox pentru testarea și reproducerea diferitelor sisteme de operare. VirtualBox este un instrument de virtualizare popular pentru implementarea sau testarea diferitelor tipuri de distribuții. La fel ca Oracle VirtualBox, există multe produse de virtualizare, cum ar fi , OpenVZ, KVM, Proxmox etc. Astăzi vom discuta despre QEMU.

QEMU este un emulator și un virtualizator de mașini care vine cu open cod sursa, care permite utilizatorilor să creeze și să gestioneze mașini virtuale în interiorul sistemului de operare.

Când este utilizat ca mașină, emulatorul QEMU poate rula sisteme de operare și programe create pentru o mașină pe o altă mașină (de exemplu, propriul computer). Prin utilizarea traducerii dinamice, se obține performanțe foarte bune.

Când este utilizat ca virtualizator, QEMU atinge performanțe foarte asemănătoare prin rularea codului pentru oaspeți direct pe procesorul gazdă. QEMU acceptă virtualizarea atunci când rulează sub hypervisorul Xen sau se utilizează modulul kernel KVM pe Linux.

QEMU are două moduri de operare:

Emulare completă a sistemului: în acest mod, QEMU emulează un sistem complet (de exemplu un PC), inclusiv procesorul și diverse periferice. Poate fi folosit pentru a rula diverse sisteme de operare fără a fi nevoie să reporniți computerul sau să depanați codul de sistem.
Emulare modul utilizator: În acest mod, QEMU poate rula procesele Linux, compilat pentru un procesor pe alt procesor. De exemplu, poate fi folosit pentru a rula vin sau pentru a facilita compilarea încrucișată și depanarea încrucișată.

QEMU poate rula fără un driver de gazdă a nucleului și poate oferi totuși performanțe acceptabile.

Instalați QEMU pe Ubuntu 16.04

În acest exemplu, să vedem cum să instalați și să configurați QEMU pe Ubuntu 16.04 LTS, precum și cum să creați și să gestionați mașinile virtuale.

QEMU este disponibil implicit în depozitele Ubuntu. Deci îl putem instala cu instrumentul Virt Manager, folosind comanda:

Sudo apt install qemu-kvm qemu qemu-system virt-manager virt-viewer libvirt-bin

După instalarea pachetelor de mai sus, reporniți sistemul.

Crearea de mașini virtuale

Acum, să creăm o nouă mașină virtuală.

Mai întâi trebuie să creați imagine virtuală hard disk pentru noua mașină virtuală. De exemplu, să creăm o imagine de hard disk de 20 GB.

Qemu-img creați ubuntu.img 20G

Apoi descărcați imaginea de instalare a serverului Ubuntu 15.04 de pe site-ul oficial.

Pentru a porni mașina virtuală, executați următoarea comandă:

Pentru sisteme pe 64 de biți

Qemu-system-x86_64 -hda ubuntu.img -boot d -cdrom /home/linuxthebest/Downloads/ubuntu-15.04-server-i386.iso -m 1024

Pentru sisteme pe 32 de biți

Qemu-system-i386 -hda ubuntu.img -boot d -cdrom /home/linuxthebest/Downloads/ubuntu-15.04-server-amd64.iso -m 1024

Unde „/home/linuxthebest/Downloads/ubuntu-15.04-server-i386.iso” este directorul de unde a fost descărcată imaginea, iar 1024 este dimensiunea memoriei RAM alocate pentru mașină.

La pornire, va apărea ecranul de instalare, faceți clic Introduce cheiași continuați instalarea ca de obicei.

După finalizarea instalării, sistemul poate fi pornit folosind comanda:

Qemu -hda ubuntu.img -m 1024

Asta e tot.

Nu-ți place linia de comandă? Creați și gestionați mașini virtuale din Linie de comanda, poate fi puțin dificil pentru unii utilizatori. Nu vă faceți griji, putem crea și mașini virtuale folosind un instrument GUI numit Virtual Machine Manager (Virt Manager).

Dacă nu l-ați instalat înainte, îl puteți instala folosind comanda

Sudo apt install virt-manager qemu-system libvirt-bin

Creați și gestionați mașini virtuale folosind Virt Manager

Lansați Virtual Machine Manager

Sudo virt-manager

În mod implicit, interfața Virt Manager va arăta ca mai jos.

Acum vom crea și instala Ubuntu 16.10 pe o mașină virtuală.

Pentru a crea o mașină virtuală, accesați Fișier -> Mașină virtuală nouă.

Selectați ce sistem de operare doriți să instalați.

Puteți instala sistemul de operare invitat folosind o imagine locală ISO/CD-ROM, Instalare în rețea, server PXE sau importați imagini de disc existente. În plus, puteți selecta arhitectura OS invitat din parametri suplimentari.

Selectați cantitatea de RAM și procesoare.

Introduceți dimensiunea hard diskului dvs. virtual. Implicit este 8 GB.

Introduceți numele sistemului de operare invitat. Și, selectați tipul de rețea din opțiunile avansate. În cele din urmă, faceți clic pe Terminare.

După ce faceți clic pe butonul Terminare, sistemul de operare invitat va începe să se încarce automat.

Asta e tot. Acum, instalați sistemul de operare invitat așa cum ați proceda pe un sistem obișnuit.

Am instalat Ubuntu 16.10 în virt manager și, apropo, unity 8 funcționează acolo, în comparație cu virtualbox, în care nu funcționează, deci dacă vrei să testezi noul mediu de lucru, apoi puteți instala virt manager și rulați Unity 8 acolo.


KVM este unul dintre soluții software pentru a oferi vizualizare într-un mediu Linux. Recent, RedHat a abandonat dezvoltarea mai multor sisteme de virtualizare Xen și KVM simultan și, începând cu filiala RHEL/CentOS 6, KVM a devenit sistemul principal. Principala cerință a KVM este ca procesorul să accepte vizualizarea hardware. Și modulele KVM sunt disponibile numai pentru arhitectura x86_64.

1. Instalare

Să verificăm suportul pentru virtualizarea hardware:

# egrep ‘(svm|vmx)’ /proc/cpuinfo
steaguri: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperscmper2 monitor p_good aperscmper2 estxm tx_tm sse sse2 sse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm tpr_shadow vnmi flexpriority

Dacă ieșirea este goală, atunci procesorul nu acceptă virtualizarea hardware și kvm nu va funcționa, dar dacă ieșirea este similară cu cea de mai sus, atunci puteți continua cu instalarea. Instalați componentele și porniți serviciul libvirt:

# yum install kvm libvirt virt-manager
# service libvirtd start
Pornirea demonului libvirtd: [OK]

Verificăm dacă au fost încărcate modulele KVM necesare - ar trebui să existe două module, primul kvm, al doilea kvm_intel sau kvm_amd pentru tipul de procesor corespunzător.

# lsmod | grep kvm
kvm_intel 55496 4
kvm 337900 1 kvm_intel

În unele cazuri, în ciuda prezenței suportului de virtualizare hardware pe procesor, trebuie să activați suplimentar suportul de virtualizare în BIOS sau să actualizați BIOS-ul cu cea mai recentă versiune.

2. Configurarea rețelei
Primul lucru pe care trebuie să-l faceți este să configurați o punte de rețea cu interfața principală și să ștergeți rețeaua implicită. O punte de rețea va permite computerelor amplasate în rețea fizică este ușor să comunicați cu serverul virtual ca și cum ar fi în aceeași rețea și este la fel de ușor și transparent pentru serverul virtual să comunice cu computerele din rețeaua fizică.

2.1. Configurarea bridge0
De exemplu, să presupunem că pe serverul nostru de virtualizare există o singură interfață eth0 cu adresa IP 172.17.1.249 și Fișier de configurare interfața /etc/sysconfig/network-scripts/ifcfg-eth0 arată astfel.

DEVICE=”eth0″
BOOTPROTO="static"
HWADDR="78:24:AF:3C:C5:B5″
IPADDR=172.17.1.249
NETMASK=255.255.0.0
GATEWAY=172.17.1.30
ONBOOT="da"
Aducem fișierul /etc/sysconfig/network-scripts/ifcfg-eth0 în următorul formular.

DEVICE=”eth0″
BOOTPROTO="static"
HWADDR="78:24:AF:3C:C5:B5″
POD = pod0
ONBOOT="da"
Creați /etc/sysconfig/network-scripts/ifcfg-bridge0 și completați-l.

DEVICE=”bridge0″
TYPE=Pont
BOOTPROTO="static"
IPADDR=172.17.1.249
NETMASK=255.255.0.0
GATEWAY=172.17.1.30
ONBOOT="da"
Reporniți serviciul de rețea

# repornire rețea de servicii
Închiderea interfeței eth0: bridge bridge0 nu există!
[BINE]
Închiderea interfeței loopback: [OK]
Se afișează interfața loopback: [OK]
Se afișează interfața eth0: [OK]
Se afișează interfața bridge0: [OK]
Dacă se dorește, această procedură se poate face de la distanță, de exemplu prin ssh - în acest caz, repornirea serviciului de rețea va provoca o întârziere de două secunde, după care conexiunea va fi restabilită fără reconectare. Verificarea podului creat:

Acum să ștergem virbr0 implicit

# virsh net-list
Nume Stat Autostart
——————————————
implicit activ da
# implicit virsh net-destroy
Rețea implicită distrusă
# virsh net-undefine implicit
Rețeaua implicită a fost nedefinită

Puteți utiliza utilitarul brctl pentru a verifica starea podului. Acest utilitate standard pentru a lucra cu poduri ethernet:

# brctl show
numele podului ID pod Interfețe activate STP
bridge0 8000.7824af3cc5b5 nu eth0

3. Instalarea și managementul mașinilor virtuale.
Există multe opțiuni pentru instalarea și gestionarea mașinilor virtuale. program convenabil Virtual Machine Manager (Virt-Manager) pentru un mediu grafic. Are o interfață destul de clară pe care orice persoană obișnuită o poate înțelege fără probleme. Administrator de sistem. De asemenea, puteți gestiona și crea mașini virtuale folosind consola, va fi puțin mai complicat, dar mai multe posibilitati pentru reglaj fin.

3.1. Instalarea mașinilor virtuale.
Ca semn, să încercăm să instalăm CentOS 6.0:

# virt-install -n vm01 -r 2048 -l http://mirror.yandex.ru/centos/6.0/os/x86_64 -f /vmstore/vm01.img -s 10 —network bridge=bridge0 —vnc
Parametri de lansare:

N - numele mașinii virtuale
-r - cantitatea de memorie RAM
-l - locația fișierului pentru instalarea în rețea
-f — calea către fișierul container care conține discul mașinii virtuale
-s — dimensiunea fișierului container în gigaocteți
—network bridge — conectați o interfață de rețea virtuală la un bridge de rețea
--vnc - utilizați afișajul VNC
Pentru a continua instalarea, va trebui să ne conectăm la ecranul mașinii virtuale prin VNC. Pentru a face acest lucru, verificăm ce port a fost selectat pentru conectare; acesta poate varia de la 5900 în sus.

# virsh dumpxml vm01 | grep vnc

Ne conectăm prin portul 5900 și finalizam instalarea.

dacă în timpul retragerii

apoi du-te și editează qemu.conf:

# nano /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0"
….
vnc_password = "xxxx"
# /etc/init.d/libvrtd reporniți

3.2. Controlul mașinii
Instrumentul principal de consolă pentru gestionarea mașinilor virtuale este programul virsh. Primul lucru pe care îl putem face este să vedem o listă cu toate mașinile virtuale și starea acestora:

# lista virsh — toate
ID Nume Stat
———————————-
- vm01 oprit
Să pornim mașina virtuală vm01:

# virsh start vm01
Domeniul vm01 a început

Oprirea este echivalentă cu deconectarea computerului de la priză.

# virsh destroy vm01
Domeniul vm01 a fost distrus

Parametrii mașinii virtuale pot fi modificați prin editare fișiere xml. O opțiune este să salvați configurația în format xml.

# virsh dumpxml vm01 > vm01.xml

Editați vm01.xml și încărcați-l înapoi:

# virsh define vm01.xml
Domeniul vm01 definit din vm01.xml
O alta este sa folosesti functia virsh edit, acesta va deschide automat editorul configurat in sistem implicit, iar la finalizarea editarii va salva configuratia.

# virsh edit vm01

În majoritatea sistemelor, vim este instalat ca editor implicit; dacă nu vă place, îl puteți înlocui cu ușurință, de exemplu, cu mcedit sau nano:

# echo "export EDITOR=mcedit" >> .bash_profile
Pentru a aplica setările, trebuie să vă reconectați.

Pentru a gestiona prin consola grafică virt-manager:

Descărcați Xming X Server pentru Windows, instalează-l, rulează-l.
Instalare:
yum instalează xorg-x11-server-Xorg
yum instalează xauth
yum instalează liberation-sans-fonts
În PuTTY: Connection - SSH - X11, activați „Enable X11 forwarding” și introduceți „X display location” 127.0.0.1:0.0
Hai sa lansam:
# virt-manager
Și trecem prin fața X :)

Scriu această notă pentru a demonstra instalarea și configurarea pas cu pas a unei mașini virtuale bazate pe KVM în Linux. Am scris anterior despre virtualizare, unde am folosit minunatul .

Acum mă confrunt cu o problemă de închiriere. server bun cu o cantitate mare de RAM și voluminos hard disk. Dar nu vreau să rulez proiecte direct pe mașina gazdă, așa că le voi separa în servere virtuale mici separate care rulează containere Linux sau Docker (voi vorbi despre ele într-un alt articol).

Toate găzduirile cloud moderne funcționează pe același principiu, adică. hoster pe glandă bună ridică o grămadă servere virtuale, pe care îl numim VPS/VDS și le distribuie utilizatorilor sau automatizează acest proces (bună ziua, DigitalOcean).

KVM (mașină virtuală bazată pe kernel) este software pentru Linux, folosind procesor hardware compatibil x86 pentru a lucra cu tehnologia de virtualizare Intel VT/AMD SVM.

Instalarea KVM

Voi efectua toate mașinațiunile de a crea o mașină virtuală pe Ubuntu 16.04.1 LTS OS. Pentru a verifica dacă procesele dvs. acceptă virtualizarea hardware activată Bazat pe Intel VT/AMD SVM, executați:

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

Dacă terminalul nu este gol, atunci totul este în ordine și KVM poate fi instalat. Ubuntu acceptă oficial doar hypervisor-ul KVM (parte a nucleului Linux) și recomandă utilizarea bibliotecii libvirt ca instrument de gestionare, ceea ce vom face în continuare.

De asemenea, puteți verifica suportul pentru virtualizarea hardware în Ubuntu folosind comanda:

Dacă aveți succes, veți vedea ceva de genul acesta:

INFORMAȚII: /dev/kvm există Accelerația KVM poate fi utilizată

Instalați pachete pentru lucrul cu KVM:

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

Dacă aveți acces la înveliș grafic sistem, puteți instala libvirt GUI manager:

Sudo apt-get install virt-manager

Utilizarea virt-manager este destul de simplă (nu mai dificilă decât VirtualBox), așa că în acest articol vom vorbi despre opțiunea de consolă pentru instalarea și configurarea unui server virtual.

Instalarea și configurarea unui server virtual

În versiunea de consolă de instalare, configurare și gestionare a sistemului, un instrument indispensabil este utilitarul virsh (un supliment pentru biblioteca libvirt). Are un număr mare de opțiuni și parametri, descriere detaliata se poate obtine astfel:

Omul virsh

sau apelați standardul „ajutor”:

Virsh ajutor

Mă țin mereu de urmând reguli atunci când lucrați cu servere virtuale:

  1. eu pastrez imagini iso OS în directorul /var/lib/libvirt/boot
  2. Stochez imagini de mașină virtuală în directorul /var/lib/libvirt/images
  3. Asignez în mod explicit fiecărei noi mașini virtuale propria sa adresă IP statică prin serverul DHCP al hypervisorului.

Să începem să instalăm prima mașină virtuală (server pe 64 de biți Ubuntu 16.04 LTS):

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

După descărcarea imaginii, începeți instalarea:

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

Traducerea tuturor acestor parametri în „ limbajul uman„, se dovedește că creăm o mașină virtuală cu OS Ubuntu 16.04, 1024 MB RAM, 1 procesor, o placă de rețea standard (mașina virtuală va accesa Internetul ca datorită NAT), HDD de 20 GB.

Merită să acordați atenție parametrului --os-variant, îi spune hypervisorului la ce sistem de operare ar trebui să fie adaptate setările.
Listă Optiuni Disponibile Sistemul de operare poate fi obținut rulând comanda:

Osinfo-query os

Dacă un astfel de utilitar nu este pe sistemul dvs., atunci instalați:

Sudo apt-get install libosinfo-bin

După pornirea instalării, în consolă va apărea următorul mesaj:

Instalarea domeniului este încă în curs. Vă puteți reconecta la consolă pentru a finaliza procesul de instalare.

Aceasta este o situație normală, vom continua instalarea prin VNC.
Să ne uităm la ce port a fost creat pe mașina noastră virtuală (în următorul terminal, de exemplu):

Virsh dumpxml ubuntu1604... ...

Portul 5900, activat adresa locala 127.0.0.1. Pentru a vă conecta la VNC, trebuie să utilizați Port Forwarding prin ssh. Înainte de a face acest lucru, asigurați-vă că redirecționarea tcp este activată în demonul ssh. Pentru a face acest lucru, accesați setările sshd:

Cat /etc/ssh/sshd_config | grep AllowTcpForwarding

Dacă nu s-a găsit nimic sau vedeți:

AllowTcpForwarding nr

Apoi edităm configurația la

AllowTcpForwarding da

și reporniți sshd.

Configurarea redirecționării portului

Executăm comanda pe mașina locală:

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

Aici am configurat redirecționarea portului ssh de la portul local 5900 la portul server 5900. Acum vă puteți conecta la VNC folosind orice client VNC. Prefer UltraVNC datorită simplității și comoditatii sale.

După conectarea cu succes, se va afișa ecranul fereastra standard salutări pentru pornirea instalării Ubuntu:

După finalizarea instalării și repornirea obișnuită, va apărea fereastra de autentificare. După conectare, determinăm adresa IP a mașinii virtuale nou create pentru a o face ulterior statică:

Ifconfig

Ne amintim și mergem la mașina gazdă. Scoatem adresa mac a cartelei de „rețea” a mașinii virtuale:

Virsh dumpxml ubuntu1604 | grep "adresa mac"

Să ne amintim adresa noastră mac:

Editare setari de retea hypervisor:

Sudo virsh net-edit implicit

Căutăm DHCP și adăugăm asta:

Ar trebui să arate cam așa:

Pentru ca setările să aibă efect, trebuie să reporniți serverul DHCP al hypervisorului:

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

După aceasta, repornim mașina virtuală, acum va avea întotdeauna adresa IP atribuită - 192.168.122.131.

Există și alte modalități de a seta un IP static pentru o mașină virtuală, de exemplu, prin editarea directă a setărilor de rețea în interiorul sistemului invitat, dar aici este orice dorește inima ta. Tocmai am arătat opțiunea pe care prefer să o folosesc.

Pentru a vă conecta la terminalul mașinii virtuale, rulați:

Ssh 192.168.122.131

Mașina este gata de luptă.

Virsh: lista de comenzi

Să văd alergând gazde virtuale(toate cele disponibile pot fi obținute adăugând --all):

Sudo virsh list

Puteți reporni gazda:

Sudo virsh reporniți $VM_NAME

Opriți o mașină virtuală:

Sudo virsh stop $VM_NAME

Executați oprirea:

Sudo virsh distruge $VM_NAME

Sudo virsh start $VM_NAME

Dezactivați:

Închiderea Sudo virsh $VM_NAME

Adăugați la rulare automată:

Sudo virsh pornire automată $VM_NAME

De foarte multe ori este necesară clonarea unui sistem pentru a-l utiliza în viitor ca cadru pentru alte sisteme de operare virtuale; pentru aceasta se folosește utilitarul virt-clone.

Virt-clone --ajutor

Clonează o mașină virtuală existentă și modifică datele sensibile la gazdă, de exemplu, adresa mac. Parolele, fișierele și alte informații specifice utilizatorului din clonă rămân aceleași. Dacă adresa IP de pe mașina virtuală clonată a fost înregistrată manual, atunci pot apărea probleme cu accesul SSH la clonă din cauza unui conflict (2 gazde cu același IP).

Pe lângă instalarea unei mașini virtuale prin VNC, este și posibil să utilizați X11Forwarding prin utilitarul virt-manager. Pe Windows, de exemplu, puteți folosi Xming și PuTTY pentru asta.

Cele mai bune articole pe această temă