Klonovanie tučniaka alebo virtualizácia v Linuxe: budúcnosť je v CPU

20. 10. 2005
Doba čtení: 5 minut

Sdílet

V tretej, záverečnej časti sa pozrieme na to, čo pre nás v blízkej budúcnosti v oblasti virtualizácie pripravujú výrobcovia procesorov AMD a Intel. Dovolím si predvídať, že virtualizácia nahradí témy ako 64bit alebo dual-core. Určite sa je načo tešiť. Nestačí vám jeden tučniak? Tak si ho naklonujte!

Budúcnosť je v CPU

Intel a AMD predstavili hardvérovú podporu virtualizácie v ďalšej generácii svojich procesorov. Aj keď oba návrhy nie sú kompatibilné, ich funkcia bude rovnaká: mali by uľahčiť beh viacerých operačných systémov na jednom počítači bez potreby ich modifikácie. Virtualizácia nie je cudzia iným (serverovým) platformám, ale v rodine x86 je to novinka, ktorá prekvapuje najmä u desktopov. Intel ponúkne svoje riešenie nazývané Vanderpool (alebo VT) [38], [39], [40], [41] dokonca skôr u desktopových ako u serverových procesorov. Pre desktopy to bude koncom tohto roka a pre servery v prvej polovici budúceho roka. AMD ponúkne riešenie Pacifica [42], [43], [44] v prvej polovici budúceho roka pre desktopy ako aj servery.

Na vysvetlenie princípu oboch projektov by sa dal napísať samostatný seriál, preto sa tu pokúsim len o stručný popis.

Ako sú postavené súčasné procesory a čo prinesie hardvérová virtualizácia?

Z dôvodov bezpečnosti a stability majú súčasné procesory x86 implementované v chránenom móde 4 privilegované úrovne – ringy. Sú označené číslami 0 až 3, pričom čím menšie číslo, tým vyššie privilégiá. Operačný systém (OS) beží v ringu 0, zatiaľ čo používateľské programy bežia s nižšími právami v ringu 3. Preto sa nemôže stať (alebo aspoň by sa nemalo), že spadnutie používateľského programu zhodí celý OS. Vzhľadom na bezpečnosť a stabilitu systému musia dnešné čisto softvérové implementácie virtualizácie presunúť OS do vyššieho ringu, ako je nula. Reálne sa OS presunie buď do ringu 1, alebo do ringu 3 (XEN), zatiaľ čo v ringu 0 beží virtuálny monitor. Ten, ako už bolo spomenuté, koordinuje súčasný beh viacerých OS. Pri open-source systémoch je úprava systému uľahčená, lebo sú k dispozícii zdrojové kódy, a tak možno použiť paravirtualizáciu. Problém nastáva pri closed-source systémoch, tie chcú bežať v ringu 0 a donútiť ich prejsť na vyšší ring si vyžaduje použitie množstva trikov a kľučiek. To v konečnom dôsledku znižuje výkon virtualizovaných systémov.

Ako nám teda pomôže hardvérová virtualizácia? Jednoducho – vlk bude sýty a ovca celá – vznikne nový ring –1, ktorý bude mať ešte vyššiu prioritu ako ring 0. V ringu –1 bude bežať virtuálny monitor a v ringu 0 bude môcť ostať nemodifikovaný operačný systém. To prinesie menšie nároky na zložitosť virtuálneho monitora a vyšší výkon celého systému, čo platí hlavne pre closed-source systémy. Paravirtualizo­vaných open-source projektov sa výrazné zvýšenie výkonu netýka, pretože tie už teraz bežia na (takmer) natívnej rýchlosti.

Vanderpool alebo Pacifica?

Kým Vanderpool virtualizuje iba CPU, Pacifica ponúka viac: Keďže u AMD je pamäťový radič integrovaný do čipu, Pacifica virtualizuje pamäťový radič a pridáva dva ďalšie pamäťové módy (Shadow Page Tables a Nested Page Tables), funcia ktorých musí byť u Vanderpoolu nahradená softvérom. Tieto dva módy výrazne zrýchľujú výkon systému. Ďalší mód, ktorý Pacifica ponúka, je Paged Real Mode, ktorý umožňuje ľahšie virtualizovať programy vyžadujúce reálny mód. Pacifica zároveň uľahčuje virtualizáciu periférií vyžadujúcich priamy prístup do pamäti (DMA) pomocou funkcie označenej ako Device Exclusion Vector (DEV).

Intel ale nespí a vydal už revíziu špecifikácie Vanderpoolu označovanú ako VT2 [45]. Intel sa rozhodol nevirtualizovať pamäťový radič, ale pamäť samotnú (presnejšie stránky pamäti). Toto riešenie sa nazýva Extended Page Tables (EPT).

Výhoda EPT spočíva v tom, že pamäťový radič je potrebné upraviť len veľmi málo alebo vôbec. Intel tiež plánuje pridať virtualizáciu DMA ako aj ďalšie vylepšenia. Budúcnosť ukáže, ktoré riešenie poskytne vyšší výkon.

Až VT2 bude obsahovať funkcie vyrovnávajúce sa riešeniu od AMD, ale tieto Intel ešte nezahrnie do procesorov vydaných koncom tohto roka. Keďže nové generácie procesorov podpourujúcich virtualizáciu budú určite dual-core, vzhľadom na [46] a [47] by som (minimálne v roku 2006) stavil na virtualizáciu od virtuálnej gorily [52].

Záver

V prvej a druhej časti tohto krátkeho seriálu boli popísané rôzne projekty virtualizácie. Výber konkrétneho projektu záleží len na vás. Treba zohľadniť požiadavky na systém – či bude stačiť virtualizovať iba server, alebo aj operačný systém, aký hardvér máte k dispozícii, a tiež sa treba pozrieť na výhody a nevýhody vybraného riešenia. Dúfam, že vám tento príspevok rozhodovanie uľahčí. Ak plánujete kúpu nového PC, tak sa oplatí počkať a vybrať si procesor podporujúci virtualizáciu. Čakanie si môžete spríjemniť prečítaním trocha teórie o požiadavkách na virtualizovaný systém [48], [49].

Dovolím si predvídať, že virtualizácia sa v blízkej dobe dostane do hlavných titulkov. Marketingovo ju pretlačia výrobcovia procesorov, a nahradí tak témy ako 64bit alebo dual-core. Rivalita medzi dvoma procesorovými tábormi prinesie výhody pre prívržencov oboch strán – okrem ceny sú to aj technologické vylepšenia, ktoré sa v blízkej dobe určite budú týkať virtualizácie. Virtualizácia by mala priniesť nezávislosť operačných systémov na hardvéri a ich prenositeľnosť [50]. V každom prípade – máme sa načo tešiť.

K napísaniu tohto príspevku som bol motivovaný po zdĺhavom hľadaní projektu virtualizácie, o ktorom som sa dočítal v dokumente wonderful world of kernel 2.6 [51], pričom som zistil, že existuje veľa projektov, no chýbal mi ich prehľad. Tento článok vznikol z odkazov a z poznámok, ktoré som pri tomto hľadaní nazbieral.

Dúfam, že som vás inšpiroval a že sa budete touto témou zaoberať a niektorý z projektov si vyskúšate alebo ho podporíte.

Použité zdroje:

[38] www.theinquirer­.net/?article=21448 – popis technológie Vanderpool (VT) od Intelu, časť 1.

[39] www.theinquirer­.net/?article=21449 – popis technológie Vanderpool, časť 2.

[40] www.theinquirer­.net/?article=21450 – popis technológie Vanderpool, časť 3.

[41] www.theinquirer­.net/?article=21451 – popis technológie Vanderpool, časť 4.

[42] www.theinquirer­.net/?article=23721 – popis technológie Pacifica od AMD, časť 1.

[43] www.theinquirer­.net/?article=23772 – popis technológie Pacifica, časť 2.

[44] www.theinquirer­.net/?article=23840 – popis technológie Pacifica, časť 3.

[45] www.theinquirer­.net/?article=25576 – Intel predstavuje Vanderpool2 (alebo VT2)

[46] www.svethardwa­re.cz/art_doc-FC1BD920D09D7­CE8C1256FE6006B5412­.html – Dual-core: proč nemůže uspět

[47] www.networkwor­ld.com/news/2005/081705-intel.html – Dual core u Intelu bola práca chvatná …

[48] en.wikipedia.or­g/wiki/Popek_an­d_Goldberg_vir­tualization_re­quirements – odkaz na prácu Popeka a Goldberga popisujúcu požiadavky na virtualizovaný sys­tém

[49] www.logos.ic.i.u-tokyo.ac.jp/~tau­/lecture/os/gen/ar­ticles/p412-popek.pdf – Samotná práca Popeka a Goldberga

[50] www.networkwor­ld.com/columnis­ts/2004/111504bac­kspin.html – budúcnosť s virtualizáciou

bitcoin_skoleni

[51] www.kniggit.net/wwol26­.html – Báječný svet kernelu 2.6

[52] en.wikipedia.or­g/wiki/AMD#At­hlon_.2F_K7 – vysvetlenie termínu virtuálna gorila

Autor článku