This is an old revision of the document!


01. Kernel-based Virtual Machine (KVM)

Virtualizarea este folosită pe scară largă în centrele de date întrucât oferă flexibilitate foarte mare în managementul resurselor. Pentru a nu afecta perfomanța, producătorii de procesoare au introdus facilități virtualizare pentru a permite sistemelor de operare să ruleze nemodificate. Entitatea software care folosește aceste facilități se numește hypervisor. KVM este un hypervisor ce oferă suport pentru virtualizarea nativă (implementează facilități de virtualizare). În continuare vom prezenta modul de lucru cu soluția implementată de KVM.

Trebuie să verificăm dacă hardware-ul are suport pentru virtualizare nativă (mai poartă denumirea și de extensie de virtualizare). Numele extensiilor de virtualizare diferă de la un producător la altul astfel:

  • INTEL - vmx (Virtual Machine eXtensions)
  • AMD - svm (Secure Virtual Machine)

Pentru a verifica prezența extensiilor de mai sus trebuie să ne uităm în /proc/cpuinfo dacă câmpul Flags conține numele extensiei (vmx pentru Intel sau svm pentru AMD):

root@saisp:~$ cat /proc/cpuinfo |grep vmx
flags           : ... ds_cpl **vmx** smx...

Pentru a folosit KVM trebuie să instalăm pachetul qemu-kvm, qemu fiind utilitarul din userspace folosit pentru a porni mașinile virtuale și a transmite parametri doriți hypervisorului:

root@saisp:~# apt-get install qemu-kvm
[...]

Înainte de a porni o mașina virtuală bazată pe KVM, trebuie să verificăm dacă modulul de kernel este încărcat:

root@saisp:~# lsmod|grep kvm
kvm_intel             121968  0
kvm                   287572  1 kvm_intel

Observați în acest caz folosirea unei arhitecturi Intel. Pentru fiecare arhitectură există un modul separat. Încărcarea modului de kernel atrage după sine crearea unui device /dev/kvm prin care se controlează modulul de kernel folosind operații de tip ioctl:

root@saisp:~# ls -l /dev/kvm
crw-rw---T 1 root kvm 10, 232 Jan  5 21:34 /dev/kvm

Pentru a porni o mașină virtuală vom folosi comanda kvm. Utilizatorul care execută comanda (dorește să pornească o mașină virtuală) trebuie să fie cel privilegiat (root) sau să facă parte din grupul kvm:

root@vmx:~# id mihai
uid=1001(mihai) gid=1001(mihai) groups=1001(mihai)
root@vmx:~# usermod -G kvm mihai
root@vmx:~# id mihai
uid=1001(mihai) gid=1001(mihai) groups=1001(mihai),107(kvm)

root@saisp:~# kvm -hda sda.qcow2 -m 256 -smp 2 </code>

  • Tutorial - exemplu masina virtuala si porniți-o
    • modificand diferiti parametri: ram, cpu, parametri)
    • pornire masina in background si conectare prin VNC
saisp/labs/04/contents/01.1390567055.txt.gz · Last modified: 2014/01/24 14:37 by mihai.carabas
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0