Кіріспе
Виртуализация техникасы
Есептеулерде, паравиртуализация – виртуалды машиналарға бағдарламалық интерфейсті ұсынатын виртуализация техникасы, ол негізгі аппараттық-бағдарламалық интерфейске ұқсас, бірақ толықтай сәйкес келмейді. Өзгертілген интерфейстің мақсаты – виртуалды ортада, виртуалды емес ортаға қарағанда орындалуы қиын операцияларды орындауға жұмсалатын қонақтың орындалу уақытының үлесін азайту. Паравиртуализация, қонақтарға (және хостқа) осы тапсырмаларды сұрауға және растауға мүмкіндік беретін арнайы анықталған «құбылыстарды» ұсынады, әйтпесе олар виртуалды доменде орындалатын болар еді (онда орындалу өнімділігі нашарлайды). Сәтті паравиртуализацияланған платформа виртуалды машина мониторының (ВММ) қарапайым болуына мүмкіндік береді (виртуалды доменнен хост доменіне маңызды тапсырмаларды көшіру арқылы) және/немесе виртуалды қонақтың ішіндегі машинаның орындалуының жалпы өнімділігін төмендетуді азайтады. Паравиртуализация, қонақ операциялық жүйені пара API үшін тікелей бейімдеуді талап етеді – паравиртуализацияға бейімделмеген стандартты операциялық жүйе таратуын паравиртуализациялық ВММ-нің үстінде іске асыруға болмайды. Алайда, операциялық жүйені өзгерту мүмкін болмаған жағдайларда да, паравиртуализацияның маңызды артықшылықтарын қамтамасыз ететін компоненттер болуы мүмкін. Мысалы, Xen Windows GPLPV жобасы, Xen гипервизорында жұмыс істейтін Microsoft Windows виртуалды қонағына орнатуға арналған паравиртуализацияға бейімделген құрылғы драйверлерінің жиынтығын ұсынады. Мұндай қолданбалар паравиртуалды машина интерфейсі арқылы қол жетімді болады. Бұл бірнеше шифрлау алгоритмдерінің модельдерінде орындалу режимінің үйлесімділігін қамтамасыз етеді, паравиртуализация шеңберінде үздіксіз интеграцияға мүмкіндік береді.
In computing, paravirtualization or para virtualization is a virtualization technique that presents a software interface to the virtual machines which is similar, yet not identical, to the underlying hardware–software interface. The intent of the modified interface is to reduce the portion of the guest's execution time spent performing operations which are substantially more difficult to run in a virtual environment compared to a non virtualized environment. The paravirtualization provides specially defined 'hooks' to allow the guest(s) and host to request and acknowledge these tasks, which would otherwise be executed in the virtual domain (where execution performance is worse). A successful paravirtualized platform may allow the virtual machine monitor (VMM) to be simpler (by relocating execution of critical tasks from the virtual domain to the host domain), and/or reduce the overall performance degradation of machine execution inside the virtual guest. Paravirtualization requires the guest operating system to be explicitly ported for the para API – a conventional OS distribution that is not paravirtualization aware cannot be run on top of a paravirtualizing VMM. However, even in cases where the operating system cannot be modified, components may be available that enable many of the significant performance advantages of paravirtualization. For example, the Xen Windows GPLPV project provides a kit of paravirtualization aware device drivers, that are intended to be installed into a Microsoft Windows virtual guest running on the Xen hypervisor. Such applications tend to be accessible through the paravirtual machine interface environment. This ensures run mode compatibility across multiple encryption algorithm models, allowing seamless integration within the paravirtual framework.
Тарих
Паравиртуализация – бұл ескі идеяның жаңа атауы. IBM-нің VM операциялық жүйесі мұндай мүмкіндікті 1972 жылдан бері ұсынды (алдыңғы CP 67 нұсқасынан бастап). VM әлемінде бұл "DIAGNOSE коды" деп аталады, себебі ол әдетте тек аппараттық техникалық қызмет көрсету бағдарламалық жасақтамасымен ғана қолданылатын нұсқаулық кодын пайдаланады және сондықтан анықталмаған. Parallels Workstation операциялық жүйесі өзінің баламасын "гипершақыру" деп атайды. Олардың барлығы бірдей нәрсе: төмендегі гипервизорға жүйелік шақыру. Мұндай шақырулар "қонақ" операциялық жүйеде қолдауды қажет етеді, ол мұндай шақыруларды жасау үшін гипервизорға тән кодты қамтуы керек. "Паравиртуализация" термині алғаш рет ғылыми әдебиетте Denali Virtual Machine Manager бағдарламасымен байланысты қолданылған. Бұл термин сондай-ақ Xen, L4, TRANGO, VMware, Wind River және XtratuM гипервизорларын сипаттау үшін де қолданылады. Бұл жобалардың барлығы x86 аппараттық жабдықтағы жоғары өнімділікке ие виртуалды машиналарды қолдау үшін паравиртуализация әдістерін қолданады немесе қолдана алады, x86 нұсқаулар жиынтығының виртуалдастыруға қиын бөліктерін іске асырмайтын виртуалды машинаны жүзеге асыру арқылы. Гипервизор негізгі компьютерлік жүйенің виртуалдануын қамтамасыз етеді. Толық виртуалдауда, қонақ операциялық жүйе гипервизорда өзгертілмеген күйінде жұмыс істейді. Дегенмен, қонақ операциялық жүйенің гипервизормен байланысуы арқылы өнімділік пен тиімділікті жақсартуға қол жеткізіледі. Қонақ операциялық жүйеге гипервизорға өзінің ниетін білдіруге мүмкіндік беру арқылы, олардың әрқайсысы виртуалды машинада жұмыс істегенде жақсы өнімділікке қол жеткізу үшін ынтымақтаса алады. Мұндай байланыс паравиртуализация деп аталады. 2005 жылы VMware паравиртуализация интерфейсін, яғни Виртуалды машина интерфейсін (VMI) қонақ операциялық жүйе мен гипервизор арасындағы байланыс механизмі ретінде ұсынды. Бұл интерфейс операциялық жүйенің бір-бір бинарлық нұсқасының жергілікті аппараттық құралдарда немесе паравиртуализацияланған режимде гипервизорда жұмыс істеуіне мүмкіндік беретін ашық паравиртуализацияны қамтамасыз етеді.
Жабдықтық қолдау
AMD және Intel процессорлары жақсырақ аппараттық көмекпен виртуализацияны қолдау мүмкіндігін алғанда, бұл стандарт қолданыстан шығып, VMI қолдауы Linux ядросының 2.6.37 нұсқасынан және 2011 жылы VMware өнімдерінен алынып тасталды.
Операциялық жүйелерді қолдау
2008 жылы Red Hat KVM және Linux үшін VirtIO паравиртуализациясын жариялады, сондай-ақ Microsoft Windows үшін VirtIO драйвері де бар. 2008 жылы Microsoft Hyper-V паравиртуализациясын жариялады.
Linux жүйесі
Linux-та паравиртуализация қолдауының алғашқы пайда болуы 2002 жылы ppc64 портының қосылуымен болды, ол Linux-ты IBM pSeries (RS/6000) және iSeries (AS/400) аппараттық құралдарында паравиртуализацияланған қонақ ретінде іске қосуға мүмкіндік берді. 2006 жылы Массачусетс штатының Бостон қаласында өткен USENIX конференциясында IBM, VMware, Xen және Red Hat сияқты бірнеше Linux әзірлеушілері Xen тобы бастап әзірлеген, "paravirt ops" деп аталатын паравиртуализацияның балама түрімен бірлесіп жұмыс істеді. Paravirt ops коды (көбінесе pv ops деп қысқартылады) 2.6.23 нұсқасынан бастап Linux ядросының негізгі бөлігіне енгізілді және гипервизор мен қонақ ядролары арасындағы гипервизордан тәуелсіз интерфейсті қамтамасыз етеді. Pv ops қонақ ядроларына дистрибутивтік қолдау Ubuntu 7.04 және Red Hat 9 нұсқаларынан бастап қолжетімді болды. Кез келген 2.6.24 немесе одан кейінгі ядроға негізделген Xen гипервизорлары pv ops қонақтарын қолдайды, сондай-ақ VMware Workstation өнімі 6 нұсқасынан бастап қолдайды.
Бағдарламалық қамтамасыз ету
VirtualBox сонымен қатар 5.0 нұсқасынан бастап қолдайды.