This shows you the differences between two versions of the page.
saisp:labs:04:contents:01 [2014/01/24 12:47] 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: | + | </code> |
- | * INTEL - **vmx** (Virtual Machine eXtensions) | + | și ne conectăm peste SSH pentru a lucra în mașina virtuală:<code bash> |
- | * AMD - **svm** (Secure Virtual Machine) | + | student@mjolnir:~/saisp$ ssh -l root 192.168.0.2 |
- | 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> | ||
- | 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 prin operații de ''ioctl'' pe device-ul ''/dev/kvm''<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:~# apt-get install qemu-kvm | + | root@lvm:~# pvs |
- | [...] | + | PV VG Fmt Attr PSize PFree |
+ | /dev/sdb1 azeroth lvm2 a-- 1020.00m 0 | ||
+ | /dev/sdc1 azeroth lvm2 a-- 1020.00m 0 | ||
+ | root@lvm:~# vgs | ||
+ | VG #PV #LV #SN Attr VSize VFree | ||
+ | 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> | ||
+ | Detalii aflăm folosind comenzile ''pvdisplay'', ''vgdisplay'' și ''lvdisplay'':<code bash> | ||
+ | root@lvm:~# pvdisplay | ||
+ | --- Physical volume --- | ||
+ | PV Name /dev/sdb1 | ||
+ | [...] | ||
+ | --- 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 | ||
+ | [...] | ||
- | * Tutorial - exemplu masina virtuala si porniți-o | + | --- Logical volume --- |
- | * modificand diferiti parametri: ram, cpu, parametri) | + | LV Path /dev/azeroth/dalaran |
- | * pornire masina in background si conectare prin VNC | + | [...] |
+ | </code> | ||
+ | Observăm că în cadrul infrastructurii LVM există două volume fizice (//physical volumes//): ''/dev/sdb1'' și ''/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''. | ||
+ | |||
+ | 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> |