Ce reprezinta virtualizarea? Simplificata, virtualizarea este o metoda ce permite rularea a unuia sau mai multor „calculatoare” pe o singura platforma hardware, sau si mai usor, a doua sisteme de operare diferite pe un singur PC; de exemplu, pe un PC putem rula atat o masina Windows cat si una Linux, sau o instalare de Windows 98 si una de XP. O explicatie mai complexa ar fi urmatoarea: virtualizarea elibereaza utilizatorii si aplicatiile de caracteristicile hardware specifice sistemelor pe care opereaza.
Odata definita trecem la tipurile de virtualizare; desi acestea se aplica in special la servere, incet incet vom vedea evolutia acestia si in sistemele casnice.
Exista trei tipuri mai de virtualizare: virtualizarea sistemelor de operare, emularea hardware si paravirtualizarea.
Virtualizarea sistemelor de operare implica rularea peste un sistem de operare gazda a unor containere in care ruleaza alte sisteme de operare; pe acestea din urma (deci in containere) ruleaza aplicatiile. Ce trebuie inteles este ca aceste aplicatii interactioneaza doar cu OS-ul din container si il considera singurul existent pe acea masina, deci singurul care controleaza resursele sistemului; din aceasta cauza aplicatiile nu pot vedea alte aplicatii sau resurse ale altui container.
Avantajul acestui tip de virtualizare il prezinta usurinta cu care se poate instala si folosi software-ul necesar virtualizarii; de asemenea, consumul de resurse al aplicatiei de virtualizare este redus ceea ce inseamna ca acestea sunt disponibile aproape in totalitate sistemelor de operare oaspete (cele din containere).
Dezavantajul este acela ca se limiteaza tipurile de sisteme de operare. Sistemul de containere implica ca sistemele oaspete sa fie identice cu cel gazda, uneori chiar si pana la nivel de patch ceea ce poate cauza probleme cand se doreste folosirea unor programe ce au cerinte stricte in privinta OS-ului. Pentru sistemele omogene insa este cea mai buna solutie.
In emularea hardware softwareul de virtualizare (numit de obicei hypervisor) prezinta un sistem hardware emulat pe care sistemele de operare oaspete lucreaza; acest hardware emulat se numeste de obicei virtual machine monitor (VMM).
VMM-ul ofera un hardware standard cu care OS-ul oaspete interactioneaza. Deoarece OS-ul si VMM-ul formeaza un tot unitar, acestea pot fi mutate de pe un sistem pe altul chiar daca configuratiile hardware reale ale acestora sunt diferite (unul din avantajele majore). Hypervisorul, ce se afla intre VMM si hardware-ul fizic, traduce instructiunile de la VMM catre resurse specifice ale masinii fizice.
Aceasta metoda da posibilitatea aplicatiilor sa ruleze intr-un OS cu adevarat izolat. Astfel, datorita faptului ca toate VMM-urile se bazeaza pe un singur hypervisor sistemul permite folosirea unor OS-uri oaspete diferite, atat la nivel mic (nivel de patch) cat si la nivel mare (pot fi rulate SO-uri total diferite precum Windows si Linux simultan).
Dezavantajul il reprezinta faptul ca aplicatiile ruleaza mai incet pe un sistem virtual decat pe unul normal. De asemenea, un alt dezavantaj este legat tocmai de interfata hardware standardizata (VMM-ul); hypervisor-ul ofera o interfata directa VMM-ului si apoi traduce comenzile catre resursele fizice ale sistemlui. Asta inseamna ca hypervisor-ul trebuie sa contina interfete catre resursele masinii pe care este rulat; aceste interfete sunt numite drivere. Daca ati instalat vreodata un sistem de operare sau o componenta noua intr-un PC stiti ca de cele mai multe ori a trebuit sa instalati si un driver pentru ca noul hardware si SO-ul sa poata comunica. Problema apare cand hypervisor-ul nu contine drivere pentru dispozitivele din sistem deoarece nu se pot instala driere noi intr-un hypervisor cum se poate la un sistem de operare. Astfel, daca masina are resurse hardware pentru care hypervisor-ul nu are drivere software-ul de virtualizare nu va rula pe acel sistem. Problema este si mai acuta cand se doreste un upgrade la o componenta nou aparuta si pentru care nu exista drivere in hypervisor.
Cel mai cunoscut software de virtualizare de acest tip este VMware, insa MS ofera alternativa sa si anume Virtual Server.
Despre paravirtualizare vom vorbi intr-un articol viitor cand vom discuta si despre motivele pentru care din ce in ce mai multe companii aleg sa-si virtualizeze sistemele.