Paravirtualizarea

În calcul , paravirtualizarea este o tehnică de virtualizare care prezintă o interfață software similară hardware-ului real unei mașini virtuale, dar optimizată pentru acest tip de operație, spre deosebire de emularea unui dispozitiv hardware existent, care poate fi laborios și în mare parte lent.

Paravirtualizarea permite monitoarelor de mașini virtuale (MMV) să fie mai simple și mașinilor virtuale care rulează pe ele pentru a atinge un nivel de performanță apropiat de hardware-ul real. Cu toate acestea, sistemele de operare trebuie să fie portate explicit pentru a rula pe MMV-uri paravirtualizate. Portarea sistemelor de operare libere se face de obicei, doar că revine furnizorilor de sisteme închise să facă singuri portarea, lucru pe care ar putea să-l refuze din motive strategice.

Istorie

Cuvântul „paravirtualizare” este un cuvânt nou pentru o idee veche. Hipervizorul IBM numit VM / 370 oferea deja aceste caracteristici încă din 1972 . În lumea mașinilor virtuale, este denumit „cod de diagnostic” deoarece folosește instrucțiuni utilizate în mod obișnuit de software-ul de întreținere hardware.
Sistemul de monitorizare a conversației IBM utilizează coduri de diagnostic pentru a utiliza serviciile mașinii virtuale.

În sistemul stației de lucru Parallels , acest tip de apel este numit „hypercall” sau hiper-apel. Spre deosebire de un apel de sistem care este procesat de nucleul unui sistem de operare, apelul hiper traversează nucleul și se deplasează până la hipervizor , care îl procesează. Pe măsură ce aceste apeluri trec prin nucleul sistemului de operare pentru oaspeți, sistemul de operare pentru oaspeți trebuie să îl susțină în mod explicit pentru a-l urmări înapoi la hipervizor în loc să raporteze o anomalie.

Termenul „paravirtualizare” a fost folosit pentru prima dată în literatura științifică în asociere cu Denali Virtual Machine Monitor . Termenul descrie, de asemenea , mașina virtuală Xen , familia de micronuclei L4 și hipervizorul în timp real de la bordul TRANGO . Toate aceste proiecte utilizează tehnici de paravirtualizare pentru a realiza virtualizarea de înaltă performanță pe hardware de tip x86 prin configurarea mașinilor virtuale care nu utilizează părțile complexe ale setului de instrucțiuni x86 care trebuie virtualizate .

În urma proliferării soluțiilor de paravirtualizare în Linux , fiecare oferind o adaptare diferită a kernel-ului Linux, se dezvoltă o soluție comună în kernel-ul oficial: virtio . Debutează în versiunea 2.6.24 și multe îmbunătățiri sunt în curs în ramura 2.6.25. Această interfață este deja utilizată de unii hipervizori, cum ar fi KVM .

Paravirtualizarea este utilizată și pe hardware non- x86, cum ar fi pe platformele ARM sau PowerPC .

Ca exemplu de utilizare a paravirtualizării, putem lua cardurile de rețea pe care anumite mașini virtuale le prezintă sistemelor de operare invitate. În loc să efectueze sarcina complexă de reproducere a funcționării plăcii de rețea clasice, MMV simulează o placă foarte simplă care permite trimiterea pachetelor prin acces direct la memorie , chiar dacă placa de sistem reală nu acceptă această caracteristică.

Referințe

  1. (în) „  VM History and Heritage  ” , IBM ,10 octombrie 2007.
  2. A. Whitaker, M. Shaw și SD Gribble, „  Denali: Mașini virtuale ușoare pentru aplicații distribuite și în rețea  ” , Univ. al Raportului tehnic Washington 02-02-01 (2002). (Disponibil pe publicațiile Denali, rapoarte tehnice și discuții ).
  3. „O interfață de programare pentru I / O virtuală”: virtio .

Legături interne