Differences

This shows you the differences between two versions of the page.

Link to this comparison view

saisp:labs:04:contents:01 [2014/01/24 14:55]
mihai.carabas [01. Kernel-based Virtual Machine (KVM)]
saisp:labs:04:contents:01 [2014/03/16 23:55] (current)
razvan.deaconescu
Line 1: Line 1:
-==== 01. Kernel-based Virtual Machine (KVM) ====+==== 01. [10p] Investigare LVM ====
  
-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+Dorim să investigăm o configurație existentă LVM. Pentru ​aceasta pornim mașina virtuală aferentă KVM:<​code ​bash
- +student@mjolnir:~/saisp./lvm-start-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):<​code>​ +
-root@saisp:~$ cat /proc/​cpuinfo |grep vmx +
-flags           : ... ds_cpl **vmx** smx...+
 </​code>​ </​code>​
- +și ne conectăm peste SSH pentru a lucra în mașina virtuală:<​code ​bash
-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:<​code>​ +student@mjolnir:~/saisp$ ssh -l root 192.168.0.2
-root@saisp:~# apt-get install qemu-kvm +
-[...]+
 </​code>​ </​code>​
  
-Înainte de a porni o mașina virtuală ​bazată pe KVMtrebuie să verificăm dacă modulul ​de kernel este încărcat:<​code>​ +Mașina virtuală ​conține o configurație LVM; pachetul ''​lvm2''​necesar configurării, este instalat. Pentru a o investiga listăm volumele fizice, grupurile ​de volume și volumele logice folosind, respectiv comenzile ''​pvs'',​ ''​vgs'',​ ''​lvs''​:<​code ​bash
-root@saisp:~# lsmod|grep kvm +root@lvm:~# pvs 
-kvm_intel ​            ​121968 ​ 0 +  ​PV         ​VG ​     Fmt  Attr PSize    PFree 
-kvm                   ​287572 ​ 1 kvm_intel +  /dev/​sdb1 ​ azeroth lvm2 a--  1020.00m    0 
-</code> +  ​/dev/sdc1  azeroth lvm2 a--  1020.00m ​   0 
-Observați în acest caz folosirea unei arhitecturi IntelPentru 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''​:<​code>​ +root@lvm:~# vgs 
-root@saisp:~# ls -l /dev/kvm +  VG      #PV #LV #SN Attr   VSize VFree 
-crw-rw---T 1 root kvm 10, 232 Jan  5 21:34 /dev/kvm+  azeroth ​  ​2 ​  ​3 ​  0 wz--n- 1.99g    0 
 +root@lvm:~# lvs 
 +  LV        VG      Attr       ​LSize ​  Pool Origin Data%  Move Log Cpy%Sync Convert 
 +  arathor ​  ​azeroth ​-wi-a----- 700.00m 
 +  ​dalaran ​  ​azeroth ​-wi-a----- 840.00m 
 +  lordaeron azeroth -wi-a----- 500.00m
 </​code>​ </​code>​
  
-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'':<​code>​ +Detalii aflăm folosind comenzile ​''​pvdisplay''​''​vgdisplay'' ​și ''​lvdisplay'':<​code ​bash
-root@saisp:~# id mihai +root@lvm:~# pvdisplay ​ 
-uid=1001(mihai) gid=1001(mihai) groups=1001(mihai) +  --- Physical volume --- 
-root@saisp:~# usermod ​-G kvm mihai +  PV Name               /​dev/​sdb1 
-root@saisp:~# id mihai +  [...] 
-uid=1001(mihai) gid=1001(mihai) groups=1001(mihai),​107(kvm)+  --- Physical volume --- 
 +  PV Name               /​dev/​sdc1 
 +  [...] 
 +root@lvm:~# vgdisplay 
 +  ​--- Volume group --- 
 +  VG Name               ​azeroth 
 +  [...] 
 +root@lvm:~# lvdisplay 
 +  --- Logical volume --- 
 +  LV Path                /​dev/​azeroth/​lordaeron 
 +  [...] 
 + 
 +  --- Logical volume --- 
 +  LV Path                /​dev/​azeroth/​arathor 
 +  [...] 
 + 
 +  --- Logical volume --- 
 +  LV Path                /​dev/​azeroth/​dalaran 
 +  [...]
 </​code>​ </​code>​
-Vom crea o mașină virtuală având 256M (parametrul ''​-m''​) și 2 procesoare (numărul este de parametrul ''​-smp''​):<​code>​ 
-root@saisp:​~#​ kvm -hda sda.qcow2 -m 256 -smp 2 
-</​code>​ 
-În acest moment se va deschide o fereastră în care se va afișa output-ul consolei mașinii virtuale (veți vedea cum bootează). 
-Parametrii comenzii ''​kvm''​ 
  
-    * Tutorial - exemplu masina virtuala si porniți-+Observăm că în cadrul infrastructurii LVM există două volume fizice (//physical volumes//): ''/​dev/​sdb1''​ ș''/​dev/​sdc1''​. Aceste două volume fizice sunt angrenate într-un grup de volume denumit ''​azeroth''​care este partiționat în trei volume logice denumite ''​arathor''​''​dalaran''​ și ''​lordaeron''​.
-      * modificand diferiti parametri: ramcpuparametri) +
-      * pornire masina in background si conectare prin VNC+
  
 +Căile către volumele logice sunt, respectiv ''/​dev/​azeroth/​arathor'',​ ''/​dev/​azeroth/​dalaran''​ și ''/​dev/​azeroth/​lordaeron''​. Calea către fiecare volum cuprinde numele grupului de volume și apoi numele volumului logic. Acestea sunt, de fapt, link-uri simbolice către fișiere de tip dispozitiv direct din ''/​dev'':<​code bash>
 +root@lvm:~# ls -l /​dev/​azeroth/​lordaeron
 +lrwxrwxrwx 1 root root 7 Mar 16 16:57 /​dev/​azeroth/​lordaeron -> ../dm-0
 +</​code>​
saisp/labs/04/contents/01.1390568115.txt.gz · Last modified: 2014/01/24 14:55 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