6.2 Virtualizačné techniky

Pri virtualizácií výpočtovej platformy sa používajú nasledovné virtualizačné techniky:

  • plná virtualizácia,
  • paravirtualizácia,
  • virtualizácia HW vrstvy,
  • kontajnerová virtualizácie.

Počítačový systém bez virtualizácie

Na Obr. 7 je znázornený spôsob riadenia prístupu k hardvérovým zdrojom na počítačovom systéme s architektúrou x86 bez virtualizácie. CPU poskytuje OS na vykonanie kódu 4 úrovne ochrany nazývané Ring 0 až Ring 3. Jadro OS je spúšťané na úrovni Ring 0 a môže vykonávať inštrukcie priamo na hardvéri a spracovávať tzv. privilegované inštrukcie. Používateľské aplikácie bežia na  úrovni Ring 3 (najmenej privilegovane). Úrovne Ring 1 a Ring 2 sa spravidla nevyužívajú.

Počítačový systém bez virtualizácie

Obr. 7 Počítačový systém bez virtualizácie

Plná virtualizácia

V prípade plnej virtualizácie je na hostiteľskom operačnom systéme spustený tzv. Manažér virtuálneho stroja, ktorý je podobný používateľskej aplikácii. Jedným zo spôsobov, ktorým Manažér virtuálneho stroja realizuje virtualizáciu je emulácia.

Plná virtualizácia

Obr. 8 Plná virtualizácia

Emulácia je pôsob virtualizácie, pri ktorom je celá hardvérová architektúra vytvorená softvérovo. Softvérovo sa replikuje funkcionalita hardvérového procesora aj súvisiacich hardvérových systémov. Emulácia poskytuje veľkú flexibilitu tým, že hosťujúci operačný systém nemusí byť upravený tak, aby fungoval na inak nekompatibilnej architektúre. Jej nevýhodnou je pokles výkonu, nakoľko každá inštrukcia hosťovaného systému musí byť preložená tak, aby jej hostiteľský systém rozumel. Emulácia používa techniku Trap and emulate, t.j. každá požiadavka na prístup k hardvéru je zachytená manažérom virtuálneho stroja a vykonaná softvérovou emuláciou na virtuálnom hardvéri (viď Obr. 9). Vďaka emulácií môžu všetky operačné systémy a aplikácie, ktoré môžu natívne bežať na hardvéri bežať aj vo virtuálnom stroji. Výhodou je tiež, že hosťujúci OS nemusí byť modifikovaný a nevie o existencií VM. Naviac, každý VM je nezávislý od ostatných VM.

Princíp techniky zachyť a emuluj

Obr. 9 Princíp techniky zachyť a emuluj

Nevýhodou plnej virtualizácie je degradácia výkonu a chýbajúca podpora pre real-time OS. Tieto nevýhody sa snaží eliminovať tzv. binárny preklad žiadostí OS, pri ktorom manažér virtuálneho stroja beží na úrovni na Ring 0 a hosťovaný OS na Ring 1 (s vyššími právami ako aplikácie vykonávané v používateľskom priestore). Manažér virtuálneho stroja dynamicky prekladá privilegované inštrukcie hosťovaného  OS na postupnosť inštrukcií schopných vykonania na reálnom hardvéri. Inštrukcie používateľskej úrovne vykonáva priamo (viď. Obr. 10).

Virtualizácia s binárnym prekladom žiadostí OS

Obr. 10 Virtualizácia s binárnym prekladom žiadostí OS

Paravirtualizácia

Pri paravirtualizácií sa vykonáva len čiastočná abstrakcia na úrovni virtuálneho počítača. Paravirtualizácia ponúka virtuálne prostredie, ktoré je podobné fyzickému, na ktorom sa VM prevádzkuje.

Paravirtualizácia

Obr. 11 Paravirtualizácia

Niektoré vlastnosti hosťovaného OS môžu byť obmedzené a OS môže rozpoznať, že beží vo virtuálnom prostredí. Naviac, pri paravirtualizácií sa vyžaduje modifikovanie jadra hosťovaného OS.  Hosťovaný OS obsahuje modifikované (paravirtualizované)
I/O ovládače pre hardvér. Na rozdiel od binárneho prekladu nemusí hypervízor zachytávať a prekladať všetky inštrukcie privilegovanej vrstvy medzi hosťovaným OS a hardvérom, lebo hosťovaný OS volá virtualizované I/O služby priamo (viď. Obr. 12).  

Vykonávanie privilegovaných a neprivilegovaných inštrukcií pri paravirtualizácií

Obr. 12 Vykonávanie privilegovaných a neprivilegovaných inštrukcií pri paravirtualizácií

Hardvérovo asistovaná virtualizácia

Hardvérovo asistovaná virtualizácia nevyžaduje modifikovanie jadra hosťovaného OS, namiesto toho vyžaduje, aby bol hardvér navrhnutý pre virtualizáciu. V prípade Intel procesorov sa jedná o technológiu označovanú ako VT-x, v prípade AMD je to technológia AMD-V.

Virtualizácia HW vrstvy

Obr. 13 Virtualizácia HW vrstvy

Procesory s podporou Intel VT-x/AMD-V majú nove, rozširujúce inštrukcie umožňujúce beh hosťovaného OS v Ring-0. Výhodou takéhoto riešenia je vyšší výkon, nevýhodou je, že sú podporované len vybrané typy hardvéru (procesorov).

Vykonávanie privilegovaných a neprivilegovaných inštrukcií pri
hardvérovo asistovanej virtualizácií

Obr. 14 Vykonávanie privilegovaných a neprivilegovaných inštrukcií pri hardvérovo asistovanej virtualizácií

Kontajnerová virtualizácia

Pri kontajnerovej virtualizáciu musia byť všetky hosťované VM rovnakého základného obrazu, ako hostiteľský počítač. Každý kontajner zdieľa jadro hlavného operačného systému, a niektoré zdroje, ako napríklad systémové knižnice a spustiteľné súbory, pričom používateľský priestor je plne izolovaný.

Kontajnerová virtualizácia

Obr. 15 Kontajnerová virtualizácia