Klonovanie tučniaka alebo virtualizácia v Linuxe: ďalšie projekty

11. 10. 2005
Doba čtení: 7 minut

Sdílet

V druhej časti sa pozrieme na ďalšie projekty virtualizácie: UML – User Mode Linux, Xen, Bochs, Openvirtuozzo, PearPC, QEMU a LVS – Linux Virtual Server. Nestačí vám jeden tučniak? Tak si ho naklonujte!

UML – User Mode Linux [11],[12]

User Mode Linux 1
User Mode Linux 2

Tento projekt vytvoril Jeff Dike. UML zastupuje strednú cestu medzi projektami typu VServer a projektami, ktoré emulujú hardware (Bochs). UML na rozdiel od VServera vytvára virtuálny hardvér, pod ktorým je možné spustiť ľubovolný OS, ktorý tento hardware podporuje, no v súčastnosti je to „len“ kernel samotný. Výhodou je spustenie rôznych kernelov naraz – napríklad 2.4 a 2.6. UML označuje kernel, pod ktorým sa spúšťajú ostatné virtuálne kernely ako host kernel. (Virtuálne kernely budem označovať skratkou pre virtual machine – VM). VM používajú host kernel iba na emuláciu hardvéru, inak sú procesy v jednotlivých VM úplne izolované od ostatných VM ako aj od host kernelu. UML poskytuje lepšiu kontrolu zdrojov (CPU, pamäť, súborový systém) ako VServer. Veľmi dobrý článok o UML napísaný jeho autorom vyšiel v Redhat magazíne [13]. Ako perličku spomeniem to, že UML podporuje vnáranie (nesting), čiže ak si túto vlastnosť zakompilujete, tak pod jedným VM môžete spúšťať ďalšie VM …

Výhody:

  • Podpora – Nemusíte patchovať kernel 2.6, od tejto vetvy (presnejšie od 2.5) je UML zahrnutý do kernelu (Pre 2.4.x si ale musíte stiahnuť a zakompilovať patch).
  • Bezpečnosť – na rozdiel od VServeru vytvára virtualizovaný stroj (Virtual Machine) čím lepšie izoluje virtuálne systémy
  • Umožňuje spustiť virtuálny kernel aj pod obyčajným používateľom (root nie je potrebný, dokonca nie je žiadúci)
  • Rýchlosť – UML je na rozdiel od hardwarových emulátorov výrazne rýchlejší
  • Prístup k súborom host kernelu – ak to administrátor povolí, VM kernel môže pristupovať priamo na súbory host kernelu

Nevýhody:

  • Neumožňuje spustiť iný OS bez toho, aby bol pred tým upravený (patchnutý), a v súčasnosti je portovaný iba na kernel 2.4 a 2.6
  • Nepodporuje iné architektúry ako x86 a x86_64
  • Jednotlivé VM swapuje na /tmp, preto potrebujete použiť tmpfs alebo /dev/anon patch [14]
  • Projekt má na prvý pohľad neprehľadnú web-stránku
  • Ak chcete dosiahnuť zvýšenie rýchlosti emulácie, musíte použiť ďalší patch pre „skas“ mód [34]

Xen [15], [16]

Xen

Je projektom univerzity v Cambdridge a sám seba pomenováva ako virtual machine monitor (VMM) alebo hypervisor. XEN vyžaduje modifikáciu (patchovanie) OS, ktorý chcete virtualizovať, a podobne ako UML vytvára pre VM virtuálny hardvér. Tento postup označuje pojmom paravirtualizácia [17].

XEN pomenúva VM ako domény (domains). Na rozdiel od UML XEN má vlastný privilegovaný kernel (nazývaný xen0), ktorý sa zavádza po zapnutí počítača z boot loadera (GRUB). Xen0 potom zavedie hlavnú doménu nazývanú ako domain0. Z hlavnej domény je potom možné spúštať a ovládať ostatné užívateľom definované domény (domainU). DomainU pristupujú k hardvéru počítača cez upravené volania do xen0. Xen0 potom používa ovládače Domain0, ktoré pristupujú k skutočnému hardvéru. Aj napriek tomuto zložitému systému prístupu k hardvéru sa jedná o efektívny spôsob a zníženie výkonu oproti nevirtualizovanému systému je v najhoršom prípade menej ako 10% [35] (legenda k odkazu: L-systém bez virtualizácie, X-Xen, U-UML, V-VMWare), [36] (odkazy v odstavci documents).

Aj keď sa vo februári tohto roku objavili správy o zahrnutí XENu do zdrojového kódu linuxového kernelu [18] a zatiaľ sa tak nestalo, stále sa o tom uvažuje.

XEN na svojej stránke potvrdzuje budúcu podporu pre systém okien od firmy zaoberajúcej sa mikrosoftvérom [19]. Táto podpora bude len pre nové procesory s hardwarovou podporou virtualizácie. Firme XenSource [20] zaobrejúcej sa komerčným využitím XENu sa už podarilo spustiť okná a tučniaka naraz na vzorke budúceho procesora Intel [21] (viac informáci v poslednej časti, v odseku Budúcnosť je v CPU).

Ak sa vám nechce čakať, môžete si vyskúšať komerčné riešenie od firmy Win4Lin [22].

Manuál k tomuto projektu je tu na stránke [23] a ak si chcete xen bezbolestne vyskúšať, stiahnite si demo CD [37].

Výhody:

  • Podporuje beh viacerých OS súčasne – momentálne sú podporované Linux (2.4 a 2.6) a NetBSD.
  • Podporuje rôzne linuxové distribúcie [24]
  • Má širokú používateľskú podporu a podporu veľkých firiem
  • Má kvalitnú dokumentáciu a dobre spracovanú web stránku
  • Vo vývojovej verzii 3.0 podporuje presunutie VM z jedného fyzického stroja na druhý za behu (live migration)
  • Intenzívne sa pracuje na portovaní ďalších systémov – ako sú FreeBSD a OpenSolaris

Nevýhody:

  • Zatiaľ podporuje len architektúru x86 od radu P6 (Pentium PRO), no v príprave je už podpora pre x86/64, IA64, PPC a ARM

Bochs [25]

Bochs 1

(vyslovuje sa ako slovo box – krabica)

Bochs 2

Bochs je open-source projekt založený na emulácii hardvéru podobne ako komerčný produkt VMware [26]. Keďže tento projekt (para)virtualizáciu nepoužíva, rýchlosť emulovaných systémov sa nemôže vyrovnať vyššie uvedeným projektom. Na druhej strane ponúka prenositeľnosť a podporu rôznych procerosorov a operačných systémov.

Bochs používa vlastný BIOS a BIOS pre VGA, emuluje procesor, pamäť a hardvér – emuluje teda celé PC. Emulácia inštrukcií virtuálneho procesora spočíva v interpretácii každej inštrukcie. To znamená, že Bochs prekladá inštrukciu za inštrukciou, čo spôsobuje značné spomalenie najmä v cykloch. Aj keď Bochs nepoužíva (para)virtualizáciu a hosťovský a emulovaný systém nemusí byť Linux, zaradil som ho sem, pretože vytvára virtuálny systém – virtuálne PC.

Výhody:

  • Nie je potrebné upravovať operačný systém, ktorý beží na emulovanom PC
  • Bochs je možné spustiť pod procesormi x86, x86/64 a IA64
  • Možno ho spustiť pod platformami Linux, Mac OS a aj Win32
  • Bochs dokáže emulovať rôzne CPU: 386, 486, Pentium, Pentium Pro, AMD64
  • Emuluje aj CPU rozšírenia MMX, SSE, SSE2 a 3DNow!
  • Dokáže emulovať viacprocesorový systém
  • Možno pod ním spustiť operačné systémy Linux, Unix, Mac OS aj okná

Nevýhody:

  • Rýchlosť, alebo skôr pomalosť – na rozdiel od vyššie uvedených projektov je Bochs kvôli hardvérovej emulácii a spôsobu jej implementácie výrazne pomalší

Ďalšie projekty

V tejto časti veľmi stručne spomeniem projekty menej rozšírené, zastavené alebo tie, ktoré sú len čiastočne open-source:

Openvirtuozzo [30]

OpenVirtuozzo

Projekt typu VServer – nie je úplne open source projektom, jeho kernel je vydaný pod GNU GPL, ale používateľské nástroje sú už pod obmedzenou licenciou. Podporuje len Fedoru a CentOS.

PearPC [29]

PearPC

Zaujímavý a živý projekt zaoberajúci sa emuláciou PowerPC na architekúre x86.

Podporuje iba Mac OS X (Darwin), staršie verzie Mac OS nie sú podporované.

QEMU [31]

QEMU

Je podobný projektu Bochs, no na rozdiel od neho používa dynamickú emuláciu, preto by mal poskytnúť vyšší výkon. Dynamická emulácia sa od interpretácie každej inštrukcie (ktorú používa Bochs) líši tým, že sa preloží viac inštrukcií naraz (napríklad celý cyklus) a tie sa potom natívne vykonajú. Aj keď je projekt open-source, jeho akceleračný modul, ktorý výrazne zvyšuje výkon emulátora, je žiaľ closed source so špeciálnou licenciou.

LVS – Linux Virtual Server [27]

LVS

Nenechajte sa zmiasť názvom – tento projekt nemá veľa spoločného s vyššie uvedenými projektami, pretože na virtualizáciu ide naopak – z niekoľkých fyzických počítačov (serverov) vytvorí jeden virtuálny. Od roku 2002 ale nebola vydaná nova verzia :( Existuje ale port pre BSD, ktorý je stale aktívny [28]. Obrázok v úvode v prvej časti príspevku je zo stránky tohto projektu.

Ďaľší prehľad projektov virtualzácie môžete nájsť na stránke kernelthread.com [32], alebo na Wikipédii [33], kde sú aj s ich vlastnosťami prehľadne zhrnuté v tabuľke.

V ďalšej časti sa pozrieme na to, čo nás čaká v blízkej budúcnosti v oblasti CPU …

Použité zdroje:

[11] user-mode-linux.sourcefor­ge.net – domáca stránka projektu User Mode Linux (UML)

[12] www.usermodeli­nux.org – User Mode Linux Community site

[13] www.redhat.com/ma­gazine/001nov04/­features/user­mode – Autor UML Jeff Dike opisuje svoj produkt

[14] user-mode-linux.sourcefor­ge.net/devanon­.html – Popis ako optimalozovať využite RAM v UML

[15] www.cl.cam.ac­.uk/Research/SRG/ne­tos/xen – domáca stránka projektu XEN

[16] www.xensource­.com/xen/abou­t.html – stránka firmy XEN source – about XEN

[17] en.wikipedia.or­g/wiki/Paravir­tualization – definícia paravirtualizácie na Wikpédii

[18] www.itnews.com­.au/newsstory­.aspx?CIaNID=17726&e­id=3&edate=20050203 – správa o pláne zahrnúť projekt XEN do kernelu

[19] wiki.xensource­.com/xenwiki/Xen­Faq#head-fcb85a149da66­907086cc8ba4f0793ad01769­b92 – XEN potvrdzuje podporu pre okná

[20] www.xensource­.com – domáca stránka firmy XEN source

[21] www.xensource­.com/news/pr082305­.html – firma XenSource úspšne spustila okná na procesore Intel s HW podporou virtualizácie

[22] www.win4lin.com/con­tent/view/175/202 – Win4lin ohlasuje podporu okien pod XENom

[23] www.xensource­.com/files/xen_u­ser_manual.pdf – manuál k projektu XEN

[24] wiki.xensource­.com/xenwiki/Dis­tributionSuppor­t – Zoznam distribúcií podporovaných XENom

[25] bochs.sourcefor­ge.net – domáca stránka projektu Bochs

[26] www.vmware.com – stránka komerčného produktu VMWARE

[27] wwwcache.ja.net/LVS – stránka projektu Linux Virtual Server (LVS)

[28] www.linuxvirtu­alserver.org – stránka portu LVS pre BSD

[29] http://pearpc­.sourceforge.net – domáca stránka projektu PEARPC

[30] openvirtuozzo­.org – domáca stránka projektu OpenVirtuozzo

[31] fabrice.bellar­d.free.fr/qemu – domáca stránka projektu QEMU

[32] www.kernelthre­ad.com/publica­tions/virtuali­zation – úvod do virtualizácie a zoznam projektov

[33] en.wikipedia.or­g/wiki/Compari­son_of_virtual_machi­nes – tabuľka projektov virtualizácie na Wiki

[34] user-mode-linux.sourcefor­ge.net/skas.html – zvýšenie výkonu UML pomocou „skas“ módu

[35] veillard.com/Tal­ks/2005LinuxTag/sli­de5–0.html – porovnanie výkonnosti XENu a iných projektov

ict ve školství 24

[36] wiki.xensource­.com/xenwiki/Xe­nArchitecture – dokumenty o architektúre projektu XEN

[37] www.cl.cam.ac­.uk/Research/SRG/ne­tos/xen/downlo­ads.html – XEN download page (demo CD)

Autor článku