Virtualizare – definitie și utilizare, tipuri de virtualizare, soluții de virtualizare
Virtualizare – Definiție
Virtualizarea unui proces informatic presupune separarea arhitecturii logice, de configuraţia suportului fizic pe care acesta este realizat. Prin virtualizare, elementele din logica unui proces informatic nu sesizează componentele fizice ce fac posibilă execuţia acestuia. Prin virtualizare, execuţia unei aplicaţii software nu va depinde de configuraţia hardware.
Începuturile virtualizării
Virtualizarea ca şi principiu, a fost utilizată în domeniul tehnologiei informaţiei odată cu apariţia compilatoarelor de nivel înalt. Calculul funcţiei sinus în cod maşină pe o arhitectură x86 necesită peste 100 de linii de cod specifice procesoarelor x86. Pentru aceeaşi funcţie, în C++ este nevoie de o singură linie de cod:
b==sin(α);
Mai mult, compilarea acestei secvenţe de cod scrise în C++ pe diferite platforme hardware va produce acelaşi rezultat pentru α = π/6 -> b=0,5 (1/2). Ceea diferă de la o platformă hardware la alta este implementarea funcţiei sinus în cod maşină funcţie de instrucţiunile specifice procesorului respectiv.
Portabilitatea codului sursă C++ de pe o platformă hardware pe alta poate fi considerată ca fiind un exemplu de virtualizare timpurie. Rezultatul matematic al procesului sin(π/6) în C++ va fi acelaşi (0,5) indiferent de arhitectura hardware utilizată pentru calculul acestuia.
Virtualizarea astăzi
În prezent, prin virtualizare se doreşte ca finalitatea unui proces informatic să nu depindă de suportul fizic al acestuia. Mai precis, un utilizator trebuie să poată utiliza aplicaţia de calcul tabelar Excel (scrisă special pentru sistemul de operare Windows şi arhitecturi x86 ) atât pe calculatorul de la locul de muncă cât şi pe o tabletă cu sistem de operare Android atunci când se află la sediul clienţilor. Acest lucru este posibil prin utilizarea atât pe sistemul desktop cât şi pe tabletă a unui aplicaţii client RDP (Remote Desktop Protocol) care să permită conectarea utilizatorului la un server pe care ruleză aplicaţia Excel. Acest model de virtualizare este denumit în literatura de specialitate şi ca virtualizarea accesului.
Din punct de vedere operaţional (al procesului), utilizatorul poate utiliza aplicaţia Excel pe orice configuraţie hardware atâta timp cât există o aplicaţie RDP client proiectată special pentru acea arhitectură.
Din punct de vedere al implementării, cele două aplicaţii client RDP pentru Windows şi Android vor diferi radical. Acest lucru nu îl interesează pe utilizator atât timp cât îşi îndeplineşte sarcinile cu succes.
Virtualizare – Tipuri
Dan Kusnetzky propune un model de referinţă compus din 5 domenii distincte de virtualizare :
- virtualizarea accesului;
- virtualizarea aplicaţiilor;
- virtualizarea proceselor;
- virtualizarea reţelei de date;
- virtualizarea spaţiului de stocare.
Într-o organizaţie pot fi utilizate toate cele 5 domenii de virtualizare sau numai unul singur. Conform modelului Kusnetzky, pentru fiecare din cele 5 domenii de virtualizare trebuie să existe un domeniu de management precum şi un domeniu de securitate. Cele două domenii (de management şi securitate) sunt comune pentru toate cele 5 forme de virtualizare, ele fiind astfel tratate unitar în cadrul modelului de referinţă.
Virtualizarea accesului
Virtualizarea accesului se realizează prin tehnologii hardware şi software ce permit utilizatorului să acceseze oricând, orice aplicaţie informatică de pe orice tip de dispozitiv (desktop, laptop, smartphone, tabletă, etc.).
Prin virtualizarea accesului, utilizatorul poate efectua intrări de la tastatură sau mouse în interfaţa unei aplicaţii rulate la distanţă.
Virtualizarea accesului permite membrilor unei organizaţii să acceseze datele şi aplicaţiile din orice loc şi în orice moment (agilitate). Prin virtualizare, accesul la aplicaţii şi resurse este independent de dispozitiv. Prin virtualizarea accesului creşte securitatea. Utilizatorul nu va mai putea introduce (accidental sau intenţionat) cod malware în reţeaua organizaţională. Răspândirea acestuia va fi limitată atâta vreme cât pe dipozitivul utilizatorului nu sunt procesate informaţii.
Virtualizarea accesului presupune disponibilitatea resurselor de calcul precum şi a datelor stocate 24/24, 7/7, indiferent de locaţia utilizatorului sau a resurselor şi utilizând orice dispozitiv. Mai precis, utilizatorul poate accesa în orice moment date şi resurse de calcul situate la sute sau mii de kilometri depărtare utilizând o gamă variată de dispozitive : sisteme de tip desktop, laptop, notebook, tabletă sau smartphone prin intermediul unor aplicaţii software de tip remote-desktop care preiau intrările utilizatorului şi afişează ieşirile sistemului aflat la distanţă. Pe dispozitivul local nu se stochează şi nu se procesează informaţii. Acesta are rolul strict de a iniţia şi menţine conexiunea la sistemul îndepărtat precum şi de a prelua intrările utilizatorului şi de a afişa ieşirile server-ului.
Virtualizarea aplicaţiilor
Virtualizarea unei aplicaţii se realizează cu tehnologii software ce permit rularea acesteia pe platforme hardware şi/sau sisteme de operare diferite. Virtualizarea unei aplicaţii presupune încapsularea acesteia într-un mediu virtual ce îi oferă posibilitatea să ruleze pe un sistem de operare fără a fi instalată în prealabil şi independent de configuraţia software a acestuia.
Virtualizarea aplicaţiilor este deosebit de utilă atunci când :
- se doreşte utilizarea simultană a două aplicaţii incompatibile pe acelaşi sistem informatic;
- se doreşte rularea unei aplicaţii pe un sistem de operare incompatibil (o versiune mai nouă);
- se doreşte rularea unei aplicaţii fără a fi fost instalată în prelabil;
- limitarea accesului şi protecţia informaţiilor rulate de o anumită aplicaţie. Aplicaţiile virtualizate se pot configura astfel încât să poată fi rulate de anumite persoane, într-un interval specific de timp şi numai de pe anumite staţii de lucru.
Virtualizarea proceselor
Procesele sunt virtualizate prin tehnologii hardware şi software ce ascund configuraţia hardware faţă de serviciile de sistem, faţă de sistemele de operare sau faţă de aplicaţiile software. Virtualizarea unui proces are loc la nivelul sistemului de operare sau direct la nivelul hardware.
Procesele pot fi virtualizate în două moduri :
- încapsularea unui sistem de operare astfel încât pe o singură platformă hardware să ruleze simultan mai multe sisteme de operare;
- rularea unui sistem folosind resurse de calcul distribuite (procesoare, memorie RAM, spaţiu de stocare). Indisponibilitatea unei resurse nu provoacă indisponibilitatea întregului sistem.
Pentru virtualizarea proceselor se utilizează aşa numiţii hypervisors. Un hypervisor translatează procesul virtualizat către platforma hardware şi controlează modul în care sunt alocate resursele pentru acel proces. Hypervisorii sunt de două tipuri :
- hypervisor de tip 1 – rulează direct pe platforma hardware. Nu necesită un sistem de operare gazdă pentru virtualizare. Pe o singură platformă hardware pot rula simultan mai multe sisteme de operare (sisteme oaspete – guest).
- hypervisor de tip 2 – necesită un sistem de operare (sistem gazdă) pentru a rula. Sistemele de operare virtualizate sunt văzute ca procese ale sistemului de operare gazdă. Interfaţa cu platforma hardware se realizează prin intermediul sistemului de operare gazdă.
Virtualizarea proceselor generează creează două situaţii :
- un sistem fizic este sesizat ca mai multe sisteme (one to many). Acesta este cazul virtualizării mai multor sisteme de operare pe o singură platformă hardware.
- mai multe sisteme fizice sunt văzute ca unul singur (many to one). Această situaţie apare atunci când o aplicaţie este rulată simultan pe mai multe sisteme în scopul creşterii vitezei de procesare (calcul paralel) sau pentru alocarea eficientă a resurselor (echilibrarea sarcinii – load balancing). Aceeaşi situaţie apare şi atunci când este nevoie de o disponibilitate ridicată sau de recuperarea rapidă în caz de dezastru.
Virtualizarea reţelei de date
În această situaţie, arhitectura funcţională (logică) percepută de utilizator diferă de arhitectura fizică a reţelei de date. Virtualizarea are loc la nivelele 2 şi 3 OSI – nivelul legătură de date şi nivelul transport. Virtualizarea se realizează cu dispozitive de tip switch respectiv router.
Infrastructura reţelei INTERNET este un exemplu de virtualizare a structurii unei reţele de date. Serverele şi staţiile de lucru ce compun o reţea de date aparţinând unei organizaţii pot fi dispuse oriunde în lume. Din punct de vedere logic, utilizatorii percep conexiunile acestei reţele ca fiind unele dintr-o reţea clasică dintr-o clădire de birouri. Din punct de vedere fizic, interconectarea elementelor dispuse în diferite zone geografice se face prin legături punct la punct – VPN. Datorită virtualizării, un utilizator care accesează fişierele stocate pe un server dispus într-o altă locaţie geografică, nu trebuie să efectueze operaţiuni suplimentare faţă de cele normale. Utilizatorul nu va conştientiza niciodată traseul geografic al pachetelor de date prin reţeaua VPN, pachete care pot trece printr-un număr destul de mare de routere sau switch-uri de la staţia de lucru la server-ul de fişiere respectiv.
Virtualizarea spaţiului de stocare
Implică tehnologii software şi hardware ce ascund locaţia şi tipul mediilor de stocare pe care sunt memorate aplicaţiile şi informaţiile. Stocarea informaţiilor se poate face pe harddisk-uri, pe discuri SSD, sau pe memorii dinamice DRAM. Prin virtualizarea spaţiului de stocare, o bază de date poate fi memorată distribuit pe mai multe tipuri de medii de stocare dispuse în mai multe locaţii geografice.
Virtualizarea spaţiului de stocare permite unor sisteme informatice diferite (şi implicit aplicaţiilor care rulează pe acestea) să utilizeze simultan spaţiul de stocare pus la dispoziţie, independent unele de altele. Virtualizarea spaţiului de stocare se face prin următoarele metode :
- sisteme de fişiere distribuite – spaţiul de stocare este accesat prin intermediul reţelei de date. Utilizatorul percepe sistemul de fişiere ca şi când mediul de stocare este ataşat fizic sistemului informatic;
- spaţii de stocare artificiale – mai multe dipozitive de stocare sunt văzute ca unul singur (many to one);
- matrice de spaţii de stocare – permit alocarea dinamică a spaţiului de stocare în scopul creşterii performanţei. Aplicaţiile şi datele sunt rulate şi memorate pe medii de stocare diferite dispuse în locaţii diferite.
- acesarea spaţiului de stocare simultan de către sisteme de operare ce utilizează sisteme de fişiere incompatibile. Prin virtualizare, sistemele de operare Linux, Windows, UNIX pot accesa simultan aceleaşi fişiere.