ˇ ´ UCEN ´I TECHNICKE ´ V BRNE ˇ VYSOKE BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA INFORMAN´ICH TECHNOLOGI´I ´ ´ U ˚ USTAV INTELIGENTN´ICH SYSTEM FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS
ˇ ´ ´ICH TECHNIKY VIRTUALIZACE VYPO CETN PLATFOREM V LINUXU
´ RSK ˇ ´ PRACE ´ BAKALA E BACHELOR’S THESIS
´ AUTOR PRACE AUTHOR
BRNO 2008
ˇ ´I ZUPKA ˇ JIR
ˇ ´I TECHNICKE ´ V BRNE ˇ VYSOKE´ UCEN BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA INFORMAN´ICH TECHNOLOGI´I ´ ´ U ˚ USTAV INTELIGENTN´ICH SYSTEM FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS
ˇ ´ ´ICH TECHNIKY VIRTUALIZACE VYPO CETN PLATFOREM V LINUXU TECHNIQUES OF VIRTUALISATION OF COMPUTING PLATFORMS IN LINUX
´ RSK ˇ ´ PRACE ´ BAKALA E BACHELOR’S THESIS
´ AUTOR PRACE
ˇ ´I ZUPKA ˇ JIR
AUTHOR
´ VEDOUC´I PRACE SUPERVISOR
BRNO 2008
ˇ VOJNAR, Ph.D. ´S doc. Ing. TOMA
Abstrakt Pr´ace testuje a porovn´ av´ a n´ astroje pro virtualizaci v´ ypoˇcetn´ıch platforem a vysvˇetluje pojmy d˚ uleˇzit´e pro pochopen´ı problematiky virtualizace. Jej´ım hlavn´ım pˇr´ınosem je srovn´ an´ı s pohledu v´ ykonnosti, efektivnosti, ˇsk´alovatelnosti a robustnosti virtualizaˇcn´ıch n´astroj˚ u. Toto srovn´ an´ı m´ a pomoci firmˇe Red Hat rozhodnout, zda opustit XEN jako hlavn´ı virtualizaˇcn´ı n´ astroj v jejich distribuc´ıch a pˇrej´ıt na jin´ y novˇejˇs´ı, uˇzivatelsky pˇr´ıjemnˇejˇs´ı virtualizaˇcn´ı n´ astroj, jako je napˇr´ıklad KVM.
Kl´ıˇ cov´ a slova virtualizace, QEMU, KVM, XEN, VMware, XEN, VirtualBox, lmbench, ab, bonne++, netperf, pln´ a virtualizace, paravirtualizace, hybridn´ı virtualizace, hypervizor, chr´anˇen´ y reˇzim, migrace
Abstract The thesis tests and compares various existing virtualization tools for virtualization of computing platforms and explains important conceptions of virtualization technology. It’s main contribution is a performance, efficiency, scalability and robustness comparison of virtualization tools. This comparison should help the Red Hat company to make a decision whether they should leave XEN as a main virtualization tool in their distributions and move on to another newer and more user friendly virtualization tool like KVM.
Keywords virtualization, QEMU, KVM, XEN, VMware, XEN, VirtualBox, lmbench, ab, bonne++, netperf, full virtualization, paravirtualization, hybrid virtualization, hypervizor, protected mode, migration
Citace ˇ Jiˇr´ı Zupka: Techniky virtualizace v´ ypoˇcetn´ıch platforem v Linuxu, bakal´aˇrsk´e pr´ace, Brno, FIT VUT v Brn, 2008
Techniky virtualizace v´ ypoˇ cetn´ıch platforem v Linuxu Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem tuto bakal´ aˇrskou pr´aci vypracoval samostatnˇe pod veden´ım pana doc. Ing.,Tom´ aˇse Vojnara, Ph.D. ....................... ˇ Jiˇr´ı Zupka 14. kvˇetna 2008
Podˇ ekov´ an´ı T´ımto bych chtˇel podˇekovat m´emu vedouc´ımu doc. Ing,Tom´aˇsi Vojnarovi, Ph.D. za veden´ı m´e pr´ace. D´ ale bych chtˇel podˇekovat panu Ing. Radkovi Vok´alovi, kter´ y mi zprostˇredkov´aval kontakt s firmou Red Hat.
ˇ c Jiˇr´ı Zupka,
2008. Tato pr´ ace vznikla jako ˇskoln´ı d´ılo na Vysok´em uˇcen´ı technick´em v Brnˇe, Fakultˇe informan´ıch technologi´ı. Pr´ ace je chr´ anˇena autorsk´ym z´ akonem a jej´ı uˇzit´ı bez udˇelen´ı opr´ avnˇen´ı autorem je nez´ akonn´e, s v´yjimkou z´ akonem definovanch pˇr´ıpad˚ u.
Obsah ´ 1 Uvod 1.1 Virtualizace . . . . . . . . . . . . . 1.1.1 Proˇc virtualizaci vyuˇz´ıvat? 1.1.2 Pˇr´ınos pr´ ace . . . . . . . . 1.1.3 Struktura pr´ ace . . . . . . . 2 Virtualizaˇ cn´ı technologie 2.1 Dˇelen´ı virtualizaˇcn´ıch technik 2.1.1 Podpora virtualizace v 2.2 Dalˇs´ı d˚ uleˇzit´e pojmy . . . . . 2.2.1 Metody emulace . . . 2.2.2 Hypervizor . . . . . . 2.2.3 Chr´ anˇen´ y reˇzim . . . . ˇ 2.2.4 Sk´ alovatelnost . . . . 2.2.5 Robustnost . . . . . . 2.2.6 Migrace . . . . . . . . 2.2.7 Balloon driver . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
3 3 3 4 4
. . . . CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
5 5 6 7 7 8 8 12 12 12 13
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
14 14 14 15 15 15 16 16 16 17 17 17 17 19 19 19 20 20 20 21
3 Testovan´ e virtualizaˇ cn´ı n´ astroje 3.1 QEMU . . . . . . . . . . . . . . 3.1.1 Virtualizaˇcn´ı technologie 3.1.2 Uˇzivatelsk´e rozhran´ı . . ˇ alovatelnost . . . . . 3.1.3 Sk´ 3.1.4 Robustnost . . . . . . . 3.2 KVM – Kernel Virtual Machine 3.2.1 Virtualizaˇcn´ı technologie 3.2.2 Uˇzivatelsk´e rozhran´ı . . ˇ alovatelnost . . . . . 3.2.3 Sk´ 3.2.4 Robustnost . . . . . . . 3.3 Xen . . . . . . . . . . . . . . . 3.3.1 Virtualizaˇcn´ı technologie 3.3.2 Uˇzivatelsk´e rozhran´ı . . ˇ alovatelnost . . . . . 3.3.3 Sk´ 3.3.4 Robustnost . . . . . . . 3.4 VMware . . . . . . . . . . . . . 3.4.1 Virtualizaˇcn´ı technologie 3.4.2 Uˇzivatelsk´e rozhran´ı . . ˇ alovatelnost . . . . . 3.4.3 Sk´
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 1
3.5
3.4.4 Robustnost . . . . . . . VirtualBox . . . . . . . . . . . 3.5.1 Virtualizaˇcn´ı technologie 3.5.2 Uˇzivatelsk´e rozhran´ı . . ˇ alovatelnost . . . . . 3.5.3 Sk´ 3.5.4 Robustnost . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
4 Metodika testov´ an´ı 4.1 Co testovat a jak testovat? . . . . . . 4.1.1 CPU . . . . . . . . . . . . . . . 4.1.2 IO operace a zat´ıˇzen´ı procesoru 4.1.3 Syst´em . . . . . . . . . . . . . 4.1.4 Komplexn´ı testy . . . . . . . . 4.1.5 Architektura procesor˚ u . . . . 4.2 Testovac´ı program . . . . . . . . . . . 4.2.1 Paraleln´ı bˇeh . . . . . . . . . . 4.2.2 S´eriov´ y bˇeh . . . . . . . . . . . 4.2.3 V´ ystup programu . . . . . . . . 4.3 Spouˇstˇen´e benchmarky . . . . . . . . . 4.3.1 lmbench . . . . . . . . . . . . . 4.3.2 povray . . . . . . . . . . . . . . 4.3.3 bonnie++ . . . . . . . . . . . . 4.3.4 apache . . . . . . . . . . . . . . 4.3.5 MYSQL . . . . . . . . . . . . . 4.3.6 apache + MYSQL . . . . . . .
. . . . . .
. . . . . .
. . . . pˇri . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . . . . . . . . . . tˇechto operac´ıch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . .
5 Testy virtualizaˇ cn´ıch n´ astroj˚ u 5.1 Porovn´ an´ı v´ ykonnosti a efektivity virtualizaˇcn´ıch n´astroj˚ u . . . . . . . 5.1.1 S´ıt’ov´e operace . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.2 Diskov´e operace . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.3 Syst´emov´e microbenchmarky lmbench . . . . . . . . . . . . . . 5.1.4 Komplexn´ı testy . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.5 Shrnut´ı porovn´ an´ı virtualizaˇcn´ıch n´astroj˚ u. . . . . . . . . . . . 5.2 Porovn´ an´ı efektivity vyuˇzit´ı v´ yce procesor˚ u v smp . . . . . . . . . . . 5.2.1 Syst´emov´e microbenchmarky lmbench . . . . . . . . . . . . . . 5.2.2 Shrnut´ı test˚ u smp ve virtu´aln´ıch syst´emech . . . . . . . . . . . 5.3 V´ ykon a efektivita provozu v´ıce virtu´aln´ıch syst´em˚ u najednou . . . . . 5.3.1 S´ıt’ov´e operace . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.2 Syst´emov´e microbenchmarky lmbench . . . . . . . . . . . . . . 5.3.3 Komplexn´ı testy . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.4 Shrnut´ı v´ ysledk˚ u test˚ u virtualizace v´ıce virtu´aln´ıch syst´em˚ u na nom fyzick´em stroji . . . . . . . . . . . . . . . . . . . . . . . . 5.4 Porovn´ an´ı pln´e virtualizace a paravirtualizace u KVM . . . . . . . . . 5.4.1 V´ ysledky proveden´ ych test˚ u . . . . . . . . . . . . . . . . . . . . 5.5 N´ astroje potˇrebn´e pro proveden´ı vlastn´ıch test˚ u. . . . . . . . . . . . . 5.6 Ostatn´ı testy uveden´e na internetu . . . . . . . . . . . . . . . . . . . . 6 Z´ avˇ er
. . . . . .
. . . . . . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . .
. . . . . .
21 22 22 22 23 23
. . . . . . . . . . . . . . . . .
24 24 24 24 25 25 25 26 26 27 28 28 28 29 29 29 30 30
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . jed. . . . . . . . . . . . . . .
31 31 31 32 33 35 36 36 36 37 38 38 38 40 40 41 41 41 41 44
2
Kapitola 1
´ Uvod Tato bakal´ aˇrsk´ a pr´ ace se zamˇeˇruje na oblast virtualizaˇcn´ıch technologi´ı. C´ılem pr´ace je shrnout, otestovat a vysvˇetlit dostupn´e virtualizaˇcn´ı n´astroje v prostˇred´ı operaˇcn´ıho syst´emu Linux.
1.1
Virtualizace
O co vlastnˇ e jde? Kdyˇz se ˇrekne slovo virtualizace, obecnˇe si pˇredstavujeme nˇeco neexistuj´ıc´ıho, co se vytv´ aˇr´ı umˇele napˇr. virtu´aln´ı realita. V naˇsem pˇr´ıpadˇe nejde o virtualizaci reality, n´ ybrˇz jen poˇc´ıtaˇce, pˇr´ıpadnˇe jen ˇc´asti nutn´e pro bˇeh operaˇcn´ıho syst´emu.
1.1.1
Proˇ c virtualizaci vyuˇ z´ıvat?
Testov´ an´ı V´ yvoj´ aˇri ocen´ı moˇznost otestovat sv˚ uj software na jin´em operaˇcn´ım syst´emu bez nutnosti restartu fyzick´eho poˇc´ıtaˇce. Pˇri v´ yvoji j´adra je d´ıky virtu´aln´ımu stroji moˇzn´e ladit chyby, kter´e by se na re´ aln´em hardwaru hledaly opravdu obt´ıˇznˇe. Efektivita Poˇc´ıtaˇce a hlavnˇe servery v dneˇsn´ı dobˇe ˇcasto nejsou vyuˇz´ıv´any efektivnˇe. D´ıky virtualizaci je moˇzn´e na serverech rozjet nˇekolik nez´avisl´ ych syst´em˚ u, aniˇz by se navz´ajem podstatnˇe ovlivˇ novaly, a vyuˇz´ıt tak v´ ykon poˇc´ıtaˇc˚ u. Bezpeˇ cnost Virtualizace n´ am pˇrin´aˇs´ı i rozs´ahl´e moˇznosti zabezpeˇcen´ı. Pˇredstavme si situaci, kdy m´ ate napˇr. farmu webov´ ych server˚ u a chceme je zabezpeˇcit proti softwarov´emu u ´toku. Staˇc´ı n´ am vytvoˇrit virtu´ aln´ı server a nˇekolikr´at ho spustit na fyzick´em serveru a je to. Dojde-li k p´ adu jednoho virtu´aln´ı serveru, nic se nedˇeje, ostatn´ı ho zastoup´ı. Mezit´ım se nˇejak´ ym trivi´ aln´ım zp˚ usobem oprav´ı zhroucen´ y virtu´aln´ı server a klient nic nepozn´a. Pˇ renositelnost Dalˇs´ı podstatn´ y pˇr´ınos je pˇrenositelnost. Vytvoˇr´ıme poˇc´ıtaˇc, kter´ y poˇ skytuje sluˇzby v Cesk´e republice, poˇsleme ho pˇres p˚ ul svˇeta, kde ho spust´ı bez ohledu na nainstalovan´ y hardware a klienti aˇz na 1 menˇs´ı probl´em s DNS servery nic nepoznaj´ı. 1
Pˇri pˇresunu serveru pˇres cel´ y svˇet do jin´e s´ıtˇe se mus´ı zajistit, aby DNS servery, pod kter´e spad´ a pˇreklad DNS jm´ena pˇresouvan´eho serveru, ukazovaly na poˇc´ıtaˇc, kam se virtu´ aln´ı server pˇresouval.
3
1.1.2
Pˇ r´ınos pr´ ace
V r´amci t´eto pr´ ace jsou shrnuty z´ akladn´ı pojmy t´ ykaj´ıc´ı se virtualizaˇcn´ıch technologi´ı. D´ ale jsou zde podrobnˇeji rozebr´ any vybran´e virtualizaˇcn´ı n´astroje jako je QEMU, KVM, VMware, Xen a VirtualBox. Virtualizaˇcn´ı n´astroje byly porovn´any podle kvality uˇzivatelsk´eho rozhran´ı, ˇsk´ alovatelnosti a robustnosti definovan´e na z´akladˇe konzultace s odborn´ıkem z firmy Red Hat. Pro uskuteˇcnˇen´ı test˚ u, kter´e jsou souˇc´ast´ı zad´an´ı, bylo nutn´e vyvinout testovac´ı n´ astroj, jehoˇz popis je takt´eˇz souˇc´ast´ı t´eto pr´ace. V´ ysledky test˚ u virtualizaˇcn´ıch n´astroj˚ u, jejich vysvˇetlen´ı a srovn´an´ı jsou uvedeny v posledn´ı ˇc´asti pr´ace.
1.1.3
Struktura pr´ ace
V druh´e kapitole pr´ ace je uvedeno rozdˇelen´ı typ˚ u virtualizaˇcn´ıch technik a jsou zde vysvˇetleny pojmy d˚ uleˇzit´e pro pochopen´ı test˚ u a virtualizace. Ve tˇret´ı ˇc´asti jsou rozebr´any vybran´e virtualizaˇcn´ı n´ astroje na z´ akladˇe krit´eri´ı uveden´ ych v zad´an´ı a v pˇredchoz´ı ˇc´asti kapitoly 1.1.2. Kapitola ˇc´ıslo ˇctyˇri se zab´ yv´a metodikou testov´an´ı. Je zde uvedeno zamyˇslen´ı proˇc, co a jak´ ym zp˚ usobem testovat. D´ale je zde pops´an program, kter´ y bylo nutn´e vyvinout, pro testov´ an´ı paraleln´ıho bˇehu virtualizovan´ ych syst´em˚ u. V posledn´ı ˇc´asti ˇctvrt´e kapitoly jsou rozebr´ any konkr´etn´ı testovac´ı n´astroje. Pˇredposledn´ı kapitola ˇc´ıslo pˇet obsahuje porovn´ an´ı vybran´ ych virtualizaˇcn´ıch n´astroj˚ u. V dalˇs´ı ˇc´asti p´at´e kapitoly je moˇzn´e nal´ezt srovn´ an´ı efektivity vybran´eho virtualizaˇcn´ıho n´astroje pˇri spuˇstˇen´ı virtualizovan´eho syst´emu s r˚ uzn´ ym poˇctem procesor˚ u v smp (symmetric multiprocessing) reˇzimu. V posledn´ı ˇc´ asti kapitoly pˇet je uvedeno srovn´an´ı efektivity spuˇstˇen´ı v´ıce virtu´aln´ıch syst´em˚ u na jednom hostitelsk´em syst´emu. Posledn´ı kapitola ˇsest je z´avˇer pr´ace.
4
Kapitola 2
Virtualizaˇ cn´ı technologie V t´eto kapitole budou vysvˇetleny z´akladn´ı pojmy t´ ykaj´ıc´ı se virtualizaˇcn´ıch n´astroj˚ u a technologi´ı.
2.1
Dˇ elen´ı virtualizaˇ cn´ıch technik
Dˇelen´ı virtualizaˇcn´ıch technik je ˇc´asteˇcnˇe pˇrejato z wikipedie [6] a doplnˇeno o novinky. Nˇekter´e vyjmenovan´e virtualizaˇcn´ı techniky je moˇzn´e navz´ajem kombinovat. Emulace Virtu´ aln´ı stroj simuluje cel´ y hardware, dovoluje bˇeh neupraven´eho OS hosta na zcela odliˇsn´em procesoru. Tento pˇr´ıstup je dlouho pouˇz´ıv´an za u ´ˇcelem tvorby softwaru pro procesory, kter´e nejsou fyzicky dostupn´e. Pˇr´ıklady zahrnuj´ı Bochs, PearPC (verze Virtual PC pro PowerPC, QEMU bez akcelerace a emul´ator Hercula. Emulace je implementov´ana ˇsirokou ˇsk´ alou technik od stavov´ ych automat˚ u aˇz po dynamickou rekompilaci na plnˇe virtualizovan´ ych platform´ ach. Pln´ a virtualizace Virtu´ aln´ı stroj simuluje dostateˇcn´e mnoˇzstv´ı hardwaru tak, aby umoˇznil oddˇelen´ y bˇeh neupraven´eho OS hosta urˇcen´eho pro stejn´ y druh CPU. Pro vol´an´ı privilegovan´ ych instrukc´ı, ke kter´ ym nem´a virtualizovan´ y syst´em pˇr´ıstup, je vyuˇzita bud’ hardwarov´a virtualizace, nebo softwarov´e ˇreˇsen´ı v pod´an´ı dynamick´e rekompilace. Oba tyto pojmy jsou pops´ any a vysvˇetleny n´ıˇze v kapitole 2.2.3 a v kapitole 2.2.1. Obvykle je moˇzn´ y soubˇeh v´ıce instanc´ı. Tento pˇr´ıstup se objevil v roce 1966 u syst´emu CP-40 a CP[-67]/CMS (pˇredch˚ udce rodiny VM od IBM). Pˇr´ıklady zahrnuj´ı VirtualBox, Virtual Iron, Virtual PC, VMware Workstation, VMware Server (dˇr´ıve zn´am jako GSX Server), VMware ESX Server, QEMU, Parallels Desktop, Adeos, Mac-On-Linux, Win4BSD, Win4Lin Pro a z/VM. Paravirtualizace Virtu´ aln´ı stroj nemus´ı nezbytnˇe simulovat hardware, ale m´ısto toho (nebo nav´ıc) nab´ız´ı zvl´ aˇstn´ı API, kter´e m˚ uˇze b´ yt pouˇzito jen z upraven´eho virtualizovan´eho syst´emu. Toto syst´emov´e vol´an´ı hypervizoru se naz´ yv´a hypercall“ v Xenu, Parallel ” Worksations a Enomalism. Vol´ an´ı je implementov´ano hardwarovou instrukci DIAG ( di” agnose“) v CMS od IBM pod VM (kde se pojem hypervizor“ poprv´e objevil). Pˇr´ıklady ” zahrnuj´ı Win4lin 9x, logick´e dom´eny od Sunu a z/VM. Hybridn´ı virtualizace Jde o spojen´ı toho nejlepˇs´ıho z obou metod pln´e virtualizace a paravirtualizace. Pomoc´ı pln´e virtualizace je moˇzn´e na virtu´aln´ım stoji spustit neupraven´ y 5
syst´em. Pomoc´ı paravirtualizace lze urychlit vybran´ y virtu´aln´ı hardware, aby bylo doc´ıleno vˇetˇs´ı v´ ykonu a efektivity. Pˇr´ıkladem je KVM s rozhran´ım virtio. ˇ asteˇ C´ cn´ a virtualizace Virtu´ aln´ı stroj simuluje v´ıce instanc´ı mnoha (ale ne vˇsech) prostˇred´ı hardwaru, na kter´em bˇeˇz´ı hostitel, pˇredevˇs´ım adresn´ıho prostoru. Takov´e prostˇred´ı podporuje sd´ılen´ı zdroj˚ u a izolaci proces˚ u, ale neum´ı oddˇelit instance OS host˚ u. Aˇckoliv obecnˇe nelze hovoˇrit o virtu´ aln´ım stroji, jedn´a se o v´ yznamn´ y pˇr´ıstup z historick´eho hlediska. Byl pouˇzit u syst´em˚ u CTSS, pokusn´eho IBM M44/44X a zˇrejmˇe i u VMS. (Mnoho dalˇs´ıch syst´emu, jako Microsoft Windows nebo Linux a syst´emy ze zb´ yvaj´ıc´ıch kategori´ı n´ıˇze, pouˇz´ıvaj´ı tuto techniku.) Virtualizace na u ´ rovni operaˇ cn´ıho syst´ emu Virtualizuje se fyzick´ y server na u ´rovni OS, coˇz umoˇzn ˇuje bˇeh v´ıce izolovan´ ych bezpeˇcn´ ych virtu´aln´ıch server˚ u na jednom fyzick´em serveru. Prostˇred´ı OS hosta sd´ılej´ı jeden OS s hostitelsk´ ym syst´emem – tj. stejn´e j´adro OS je pouˇzito pro implementaci OS hosta. Aplikace bˇeˇz´ıc´ı v prostˇred´ı hosta jej vˇsak vn´ımaj´ı jako samostatn´ y syst´em. Mezi pˇr´ıklady patˇr´ı Linux-VServer, Virtuozzo (pro Linux nebo Windows), OpenVZ, kontejnery Solarisu a FreeBSD Jail. Aplikaˇ cn´ı virtualizace Desktopov´e nebo serverov´e aplikace bˇeˇz´ıc´ı na dan´em stroji, pouˇz´ıvaj´ı m´ıstn´ı zdroje, ale bˇeˇz´ı ve zvl´aˇstn´ım virtu´aln´ım stroji. To je rozd´ıl oproti tradiˇcn´ımu lok´aln´ımu bˇehu nativn´ıch aplikac´ı, tj. softwaru nainstalovan´em pˇr´ımo na syst´emu. Takov´ a aplikace bˇeˇz´ı v mal´em virtu´ aln´ım prostˇred´ı obsahuj´ıc´ım komponenty nutn´e ke spuˇstˇen´ı napˇr. poloˇzky registr˚ u, soubory, promˇenn´e prostˇred´ı, prvky uˇzivatelsk´eho rozhran´ı a glob´aln´ı objekty. Toto virtu´ aln´ı prostˇred´ı se chov´a jako vrstva mezi aplikac´ı a operaˇcn´ım syst´emem, kter´a zabraˇ nuje konflikt˚ um mezi aplikac´ı a OS nebo mezi aplikacemi vz´ajemnˇe. Pˇr´ıklady zahrnuj´ı Java Virtual Machine od Sunu Softricity, Thinstall, Altiris, Portable Apps a Trigence. (Tento druh virtualizace je zˇretelnˇe odliˇsn´ y od vˇsech pˇredeˇsl´ ych. Dˇel´ı je pouze tenk´ a hranice od virtu´ aln´ıch prostˇred´ı jako je Smalltalk, Forth, Tcl, P-k´od a dalˇs´ı interpretovan´e jazyky.) Hardwarov´ a virtualizace Hardware zajiˇst’uje podporu pro izolovan´ y bˇeh virtualizovan´ ych syst´em˚ u. Procesory firem Intel (Intel VT) a AMD (AMD-V) maj´ı implementov´anu hardwarovou podporu virtualizace. Mezi virtualizaˇcn´ı n´astroje vyuˇz´ıvaj´ıc´ı tuto podporu patˇr´ı KVM, VMware, Xen, VirtualBox.
2.1.1
Podpora virtualizace v CPU
U procesoru s architekturou x86 se poˇc´atky podpory pln´e virtualizace datuj´ı asi od roku 2005 a 2006, kdy intel a pak i AMD uvedli na trh procesory s rozˇs´ıˇren´ım IVT (Intel) a AMD-V (AMD). V linuxu si m˚ uˇzeme jejich pˇr´ıtomnost zjistit v souboru /proc/cpuinfo. V tˇele souboru v sekci flags je identifikov´ano jako vmx pro Intel a svm u procesoru od AMD. Virtualizaci mus´ı podporovat i z´akladn´ı deska, na kter´e je procesor provozov´an. V dneˇsn´ı dobˇe by jiˇz kaˇzd´ a deska, kter´ a obsahuje chipsety vyvinut´e v posledn´ıch nˇekolika letech, nemˇela m´ıt s podporou virtualizace probl´em.
6
Procesory podporuj´ıc´ı virtualizaci ˇ rady x86 Procesory AMD: • Athlon 64 stepping F a G • Athlon 64 X2 stepping F a G • Turion 64 Richmond • Turion 64 X2 vˇsechny • Opteron Santa Ana a novˇejˇs´ı • Phenom Zav´ ad´ı Nested Paging pro rychlejˇs´ı pˇrep´ın´an´ı kontextu virtu´aln´ıch stroj˚ u Procesory Intel: • Pentium 4 modely 662 a 672 • Core Duo aˇz na modely T2300E a T2050/T2150/T2250 • Core 2 Duo aˇz na T52x0,T530,T54x0,T5500,E2xx0,E4x00,E8190
2.2
Dalˇ s´ı d˚ uleˇ zit´ e pojmy
V t´eto ˇc´ asti jsou pops´ any kl´ıˇcov´e pojmy, kter´e umoˇzn´ı z´ıskat nad probl´emem virtualizace vˇetˇs´ı nadhled a usnadn´ı pochopen´ı test˚ u virtualizaˇcn´ıch n´astroj˚ u.
2.2.1
Metody emulace
Dynamick´ a rekompilace jedn´a se o metodu virtualizaˇcn´ıch emul´ator˚ u, d´ıky n´ıˇz jsou tyto emul´ atory schopny spouˇstˇet programy urˇcen´e pro jinou architekturu. Jak uˇz napov´ıd´ a n´azev, jde o pˇreklad za chodu, kdy pomoc´ı disassembleru analyzuje k´od spouˇstˇen´eho programu a instrukce, kter´e neum´ı spustit nebo jsou ve virtu´aln´ım prostˇred´ı zak´az´any, pˇrevede na instrukce patˇr´ıc´ı do architektury hostitelsk´eho procesoru. Kv˚ uli n´aroˇcnosti dynamick´e rekompilace se ˇcasto virtualizaˇcn´ı n´astroje snaˇz´ı spouˇstˇet k´od pˇr´ımo na hostitelsk´em procesoru. V´ ysledek dynamick´e rekompilace uveden na obr´azku 2.1.
7
Obr´ azek 2.1: V´ ysledek po uˇzit´ı disassembleru a dynamick´e rekompilaci Adaptivn´ı optimalizace Tato technika souvis´ı s pojmem dynamick´e rekompilace, kdy se pˇri rekompilaci jeˇstˇe optimalizuje k´od, aby se vykon´aval efektivnˇeji. O ˇcemˇz se m˚ uˇzeme pˇresvˇedˇcit na obr´ azku 2.2.
Obr´ azek 2.2: V´ ysledek po adaptivn´ı optimalizaci
2.2.2
Hypervizor
Hypervizor je nˇeco jako minikernel, ker´ y zajiˇstuje IO operace pˇridˇelov´an´ı pamˇeti a veˇskerou komunikaci host˚ u (virtu´ aln´ıch stroj˚ u u xenu vˇcetnˇe hlavn´ıho kernelu Dom0).
2.2.3
Chr´ anˇ en´ y reˇ zim
Chr´anˇen´ y reˇzim je operaˇcn´ı m´ od procesor˚ u ˇrady x86 a kompatibiln´ıch. V tomto reˇzimu si kaˇzd´ y proces mysl´ı, ˇze m˚ uˇze pˇristupovat k cel´e operaˇcn´ı pamˇeti, u 32b v chr´anˇen´em reˇzimu syst´em˚ u 4GB, aniˇz by byl omezov´ an jin´ ym procesem. Aby byla moˇznost kontrolovat procesy a zamezit jim v pˇr´ım´em pˇr´ıstupu k hardwaru ˇci spouˇstˇen´ı instrukc´ı, kter´e by ohroˇzovaly chod syst´emu, byly zavedeny u ´rovnˇe opr´avnˇen´ı, tvz. ringy. Spr´ ava pamˇ eti Spr´ava pamˇeti je zajiˇstˇena pomoc´ı virtu´aln´ı pamˇeti (virtual memory), proto se chr´anˇen´ y ’ reˇzim naz´ yv´ a takt´eˇz Protected virtual address mode. Syst´em zajiˇst uje mapov´an´ı virtu´aln´ı pamˇeti do fyzick´e pamˇeti. Aby mapov´an´ı virtu´aln´ı pamˇeti na fyzickou fungovalo dost rychle, je virtu´ aln´ı pamˇet’ a fyzick´ a pamˇet’ rozdˇelena na stejnˇe velk´e str´anky (segmenty o velikosti 8
4KB nebo vˇetˇs´ı v z´ avislosti na konkr´etn´ı architektuˇre a syst´emu). Tabulka namapovan´ ych 1 str´anek sloˇzen´ a z deskriptor˚ u se ukl´ad´a na zaˇc´atku fyzick´e operaˇcn´ı pamˇeti. Aby byla iluze pro spouˇstˇen´e programy dokonal´a toto nestaˇcilo. Z d˚ uvodu omezen´ı velikosti fyzick´e pamˇeti pˇribylo ukl´ ad´ an´ı ˇc´ asti pamˇeti na disk tzv. Str´ankov´an´ı(paging). Jestliˇze je fyzick´ a pamˇet’ pln´ a, str´ ankov´ an´ı zajist´ı uvolnˇen´ı ˇc´asti fyzick´e pamˇeti uloˇzen´ım na pevn´ y disk. V´ ybˇer str´anek, kter´e se pˇresunou na disk se ˇcasto ˇreˇs´ı pomoc´ı algoritmu LRU (last recently use). V pˇr´ıpadˇe, ˇze jsou poˇzadov´ ana data, kter´a jsou obsaˇzena ve str´ance uloˇzen´e na disku, je vyvol´ana v´ yjimka. Pˇri t´eto v´ yjimce syst´em zajist´ı naˇcten´ı str´anky z disku. Jestliˇze jiˇz ve fyzick´e pamˇeti nen´ı dostatek m´ısta, uloˇz´ı se jin´a str´anka na disk a naˇcte se poˇzadovan´ a str´anka z disku do pamˇeti. Cel´e sch´ema adresace je pops´ano na obr´azku 2.3.
Obr´ azek 2.3: Adresace pamˇeti v chr´anˇen´em reˇzimu Aby se pˇreklad virtu´ aln´ıch adres na fyzick´e zrychlil, vznikla nov´a hardwarov´a jednotka v procesoru MMU (memory management unit), kter´a zajiˇst’uje mapov´an´ı. Pro dalˇs´ı urychlen´ı vzniklo TLB (Translation Lookaside Buffer) tabulka deskriptor˚ u uloˇzen´a pˇr´ımo v procesoru, kde jsou uloˇzeny deskriptory na nejv´ıce pouˇz´ıvan´e str´anky. Jenˇze pro virtualizaci toho nestaˇc´ı. Bylo nutn´e vytvoˇrit jeˇstˇe jednu vrstvu, kter´a by virtualizovala fyzickou pamˇet’. Posloupnost adresov´an´ı je pops´ana na obr´azku 2.4. Pamˇet’ do kter´e se virtualizuje fyzick´ a pamˇet’ je moˇzn´e nazvat Strojov´a pamˇet’ (Machine Memory). Toto ˇreˇsen´ı bohuˇzel pˇrin´ aˇs´ı dvoji pˇreklad adres, coˇz znamen´a ztr´atu v´ ykonu. Z tohoto d˚ uvodu se zavedl shadow page tables. Princip shadow page tables spoˇc´ıv´a ve vytvoˇren´ı nov´e tabulky, kter´ a obsahuje mapovan´ı pˇr´ımo z Virtu´aln´ı pamˇeti do Strojov´e pamˇeti. T´ımto zp˚ usobem je moˇzn´e se vyhnout jednomu pˇrekladu z fyzick´e na strojovou a znovu skoro dos´ ahnout v´ ykonu obyˇcejn´eho chr´anˇen´eho reˇzimu. Jak to funguje je zobrazeno na obr´azku 2.5.
1
Deskriptor je nˇeco jako ukazatel obohaceny o dalˇs´ı parametry,kter´e jsou nutnˇe v chr´ anˇen´em m´ odu.
9
Obr´ azek 2.4: Adresace pamˇeti v chr´anˇen´em reˇzimu s podporou virtualizace
Obr´ azek 2.5: Adresace pamˇeti v chr´anˇen´em reˇzimu s shadow page tables Nev´ yhody shadow page tables: • nutnost synchronizovat z´ aznamy v prim´arn´ı mapovac´ı tabulce a v shadow page tables, • virtualizaˇcn´ı software se mus´ı starat o spr´avu shadow page tables, • u vSMP (virtual symmetric multiprocessing) je nutn´e udrˇzovat shadow page table pro kaˇzd´ y vCPU (virtual CPU), • probl´em pˇresouv´ an´ı proces˚ u mezi vSMP zahrnuje i nutnost pˇresunout shadow page tables. Tyto nev´ yhody se snaˇz´ı ˇreˇsit hardwarov´a podpora u procesor˚ u AMD Barcelona v podobˇe NPT (Nested/Extended Page Tables). MMU pˇrev´ad´ı Virtu´aln´ı adresu na fyzickou a fyzickou adresu na strojovou pˇri plnˇen´ı TLB tabulky. Pro zv´ yˇsen´ı v´ ykonnosti NPT je dobr´e pouˇz´ıvat velk´e str´ anku (large/huge page). Zmenˇs´ı se t´ım poˇcet uloˇzen´ ych str´anek v TLB. Nev´ yhoda velk´ ych str´ anek je menˇs´ı efektivita vyuˇzit´ı pamˇet’ov´eho prostoru. Opr´ avnˇ en´ı pˇ r´ıstupu Opr´avnˇen´ı pˇr´ıstupu se v chr´ anˇen´em reˇzimu dˇel´ı do 4 u ´rovn´ı tzv. Ring 0 - 3, kter´e zobrazuje obr´azek 2.6. Ring s menˇs´ım poˇradov´ ym ˇc´ıslem m´a vˇzdy vˇetˇs´ı opr´avnˇen´ı. To znamen´a ˇze 10
´ ring 0 m´ a nejvyˇsˇs´ı opr´ avnˇen´ı. Uroveˇ n opr´avnˇen´ı urˇcuje jak´e zdroje (pamˇet’, disky a jin´ y hardware) a do jak´e u ´rovnˇe bude moci proces pˇristupovat. Pro pˇr´ıstup do u ´rovnˇe s vyˇsˇs´ım opr´avnˇen´ım se pouˇz´ıv´ a speci´ aln´ı br´ any nebo vol´ an´ı.
Obr´ azek 2.6: Standardn´ı vyuˇzit´ı u ´rovn´ı opr´avnˇen´ı Bohuˇzel syst´emy ˇcasto nevyuˇz´ıvaj´ı vˇsechny u ´rovnˇe opr´avnˇen´ı, jak je vidˇet na obr´azku. T´ehle vlastnosti operaˇcn´ıch syst´em˚ u vyuˇz´ıv´a paravirtualizace. U paravirtualizace se kernel pˇresune o u ´roveˇ n v´ yˇs do ˇcasto voln´eho ringu 1. Hypervizor se zavede m´ısto p˚ uvodn´ıho kernelu do ringu 0. Tato situace je graficky zn´azornˇena na obr´azku 2.7. T´ımto je zajiˇstˇeno, ˇze j´adro nebude m´ıt pˇr´ım´ı pˇr´ıstup k hardwaru. Bohuˇzel kernel nen´ı (nebyl) standardnˇe uzp˚ usoben pro bˇeh v ringu 1. Proto se mus´ı j´adro upravit, aby bylo schopno volat hypervizor pro pˇr´ıstup k hardwaru.
Obr´ azek 2.7: Vyuˇzit´ı u ´rovn´ı opr´avnˇen´ı pˇri paravirtualizaci Pro plnou virtualizaci je potˇreba rozˇs´ıˇren´ı procesoru napˇr. AMD-V a Intel VT. Tyto rozˇs´ıˇren´ı vytvoˇr´ı Ring -1, ve kter´em se spust´ı hypervizor a nad t´ımto hypervizorem je moˇzn´e spustit neupraven´ y syst´em, coˇz je ilustrov´ano na obr´azku 2.8.
11
Obr´ azek 2.8: Vyuˇzit´ı u ´rovn´ı opr´avnˇen´ı pˇri pln´e virtualizaci
2.2.4
ˇ alovatelnost Sk´
Pojem ˇsk´ alovatelnost se rozum´ı schopnost virtualizaˇcn´ıho n´astroje reagovat na vzr˚ ustaj´ıc´ı n´aroky virtu´ aln´ıho stroje. Napˇr´ıklad moˇznosti v migraci na jin´e fyzick´e stroje, pˇr´ıpadnˇe jin´e virtualizaˇcn´ı n´ astroje, pˇrid´ av´an´ı pamˇeti a procesor˚ u za chodu atd.
2.2.5
Robustnost
Jde o zhodnocen´ı cel´eho ˇreˇsen´ı ze syst´emov´eho pohledu. Jak se dan´ y virtualizaˇcn´ı n´astroj chov´a, jak´e jsou jeho moˇznosti nasazen´ı v re´aln´em prostˇred´ı. Tato definice robustnosti byla sestavena na z´ akladˇe konzultace s odborn´ıkem na virtualizaci z firmy Red Hat.
2.2.6
Migrace
Migrace je pˇrenos aktu´ aln´ıho stavu virtualizovan´eho syst´emu z jednoho virtu´aln´ıho stroje na jin´ y. Stav virtu´ aln´ıho syst´emu je obsah operaˇcn´ı pamˇeti plus nˇejak´e drobnosti potˇrebn´e pro spr´ avnou inicializaci hardwaru virtu´aln´ıho stroje, na kter´ y se virtu´aln´ı syst´em migruje. Migrace se dˇel´ı na skupinu offline a skupinu live migration. Offline Pˇri Offline migraci se pˇren´ aˇsen´ y syst´em zastav´ı, jeho se stav uloˇz´ı na disk nebo jin´ ym zp˚ usobem pˇresune do nov´eho virtu´aln´ıho stroje. Po ukonˇcen´ı pˇrenosu, nebo naˇcten´ı stavu virtu´aln´ıho syst´emu, z disku se nov´ y virtu´aln´ı stroj spust´ı. Nev´ yhoda tohoto zp˚ usobu migrace je nutnost odstavit virtualizovan´ y syst´em. Z´astupcem offline migrace je KVM. Live migration Live migration je takzvan´ a migrace za ˇzivota (za pln´eho vˇedom´ı). Jestliˇze virtualizaˇcn´ı n´astroj podporuje tuto vymoˇzenost, je moˇzn´e za chodu pˇren´est bˇeˇz´ıc´ı syst´em, aniˇz by pˇripojen´ y klient nˇeco poznal (napˇr´ıklad u webov´eho serveru). Napˇr´ıklad KVM umoˇzn ˇuje live migration. Migrace je ˇreˇsena pomoc´ı pˇrenosu pamˇeti pˇres s´ıt’ pomoc´ı protokol TCP a jin´e. Migrovan´ y virtu´ aln´ı stroj mus´ı m´ıt identick´ y hardware jako c´ılov´ y stroj.
12
Uved’me nyn´ı pˇr´ıklad postupu migrace u KVM, ˇclenˇeny po jednotliv´ ych kroc´ıch migrace: 1. Nastaven´ı • Je nutn´e nastartovat syst´em, na kter´ y se m´a prov´est migrace, pot´e zapnout logov´ an´ı dirty page (neboli str´anky pamˇeti zmˇenˇen´e od posledn´ı synchronizace) a dalˇs´ı. 2. Pˇresun pamˇet’i • Zdrojov´ y virtualizovan´ y syst´em je st´ale v provozu a klienti mohou pˇristupovat. • Nastav´ı se limitace pˇrenosu dat. • Pˇri prvn´ım pˇresunu se pˇrenese cel´a pamˇet’ virtu´aln´ıho stroje. • Pˇresouvan´ y virtu´ aln´ı stroj loguje dirty page. v jeho syst´emu a pˇresouv´a zmˇeny do c´ılov´eho virtu´ aln´ıho syst´emu. 3. Zastaven´ı pˇresouvan´eho syst´emu • Pˇri zastaven´ı se uloˇz´ı vˇsechny rozpracovan´e soubory na pevn´ y disk, aby c´ılov´ y syst´em mˇel pˇr´ıstupn´ a vˇsechna potˇrebn´a data. 4. Pˇresun stavu virtu´ aln´ıho stroje • Pˇresun prob´ıh´ a bez limitace rychlosti. • Pˇresouvaj´ı se stavy virtu´aln´ıho hardwaru a posledn´ı dirty pages. 5. Spuˇstˇen´ı c´ılov´eho virtu´ aln´ıho syst´emu • C´ılov´ y syst´em pomoc´ı s´ıt’ov´eho rozhran´ı broadcastem ozn´am´ı, kde se nach´az´ı.
2.2.7
Balloon driver
Pomoc´ı balloon driveru je moˇzn´e za chodu virtu´aln´ıho stroje regulovat jeho zabranou fyzickou pamˇet’ virtu´ aln´ıho syst´emu. Pˇrid´av´an´ı pamˇeti pomoc´ı balloon driveru je hojnˇe pouˇz´ıvan´ a metoda. Vˇetˇsina n´ıˇze popisovan´ ych virtualizaˇcn´ıch n´astroj˚ u tuto moˇznost podporuje. Driver se jmenuje balloon, protoˇze se ˇcasto pˇrirovn´av´a k bal´onu (operaˇcn´ı pamˇeti hostitelsk´eho syst´emu) a vzduchu v nˇem (zabran´e operaˇcn´ı pamˇeti virtualizovan´ ych syst´em˚ u). Pˇri pˇretlaku je ho nutn´e vyfouknout a pˇri podtlaku do sebe nech´a vstoupit vzduch bez odporu. Metoda spoˇc´ıv´ a v ovl´ ad´ an´ı pamˇet’ov´eho managementu virtualizovan´ ych poˇc´ıtaˇc˚ u, aby bylo moˇzn´e co moˇzn´ a nejefektivnˇeji vyuˇz´ıt operaˇcn´ı pamˇet’ hostitelsk´eho syst´emu, a t´ım urychlit bˇeh vˇsech virtualizovan´ ych klient˚ u. Do klient˚ u se nainstaluje tzv. balloon driver, kter´ y vytvoˇr´ı spojen´ı mezi hostitelsk´ ym syst´emem a virtualizovan´ ymi syst´emy. Tento kan´ al umoˇzn ˇuje hostitelsk´emu syst´emu poslat virtualizovan´ ym syst´em˚ um informaci o zaplnˇen´ı pamˇeti. V pˇr´ıpadˇe, ˇze je pamˇet’ pr´azdn´a, klient˚ um je dovoleno naˇc´ıst do pamˇeti swapovan´e str´ anky, ale v pˇr´ıpadˇe pˇreplnˇen´ı pamˇeti, hostitelsk´ y syst´em klienty donut´ı odswapovat nepotˇrebn´ a data na klientsk´ y swapovac´ı disk.
13
Kapitola 3
Testovan´ e virtualizaˇ cn´ı n´ astroje V t´eto kapitole budou pˇredstaveny testovan´e virtualizaˇcn´ı n´astroje. U kaˇzd´eho shrneme pouˇzit´e virtualizaˇcn´ı metody, robustnost, ˇsk´alovatelnost a moˇznosti uˇzivatelsk´eho rozhran´ı. V´ ykonnost virtualizaˇcn´ıch n´ astroj˚ u bude uvedena v kapitole 5, nazvan´e Testy virtualizaˇcn´ıch n´astroj˚ u. 1. QEMU 2. KVM 3. Xen 4. VMware 5. VirtualBox
3.1
QEMU
QEMU [3] patˇr´ı do rodiny emulaˇcn´ıch virtualizaˇcn´ıch n´astroj˚ u.
3.1.1
Virtualizaˇ cn´ı technologie
V porovn´ an´ı s ostatn´ımi emulaˇcn´ımi n´astroji je QEMU rychl´ y. Pracuje na principu dynamick´eho pˇrekladu instrukc´ı. Proto je jednoduˇse portovateln´ y na novou hostitelskou platformu a jednoduˇse se do nˇej implementuje podpora pro nov´e procesory (architektury). QEMU pracuje ve dvou reˇzimech: 1. Pln´ a emulace syst´emu. V tomto reˇzimu QEMU plnˇe emuluje cel´ y syst´em napˇr. PC, vˇcetnˇe jednoho nebo v´ıce procesor˚ u a dalˇs´ıch potˇrebn´ ych perif´eri´ı. 2. Uˇzivatelsk´ y m´ od emulace. V tomto reˇzimu QEMU spust´ı proces kompilovan´ y pro jednu architekturu CPU na jin´e architektuˇre CPU. Je moˇzn´e ho pouˇz´ıt pro spuˇstˇen´ı Windows API ve Wine a jin´e. Z obr´ azku 3.1 je zˇrejm´e, QEMU ˇze bˇeˇz´ı ˇcistˇe v uˇzivatelsk´em reˇzimu. Z toho plyne, ˇze nepotˇrebuje ˇz´ adn´e jadern´e ovladaˇce. D´ıky tˇemto vlastnostem je vhodn´ y pro testov´ an´ı softwaru pro nedostupn´e procesory. Nev´ yhoda tohoto pˇr´ıstupu plyne z jeho pomalosti.
14
Obr´ azek 3.1: Zaˇrazen´ı QEMU do syst´emu Dosahuje pr˚ umˇernˇe 10%-20% v´ ykonu nativn´ıho stroje. Proto je pro virtualizaci server˚ u takˇrka nepouˇziteln´ y. Tuto nev´ yhodu se snaˇz´ı odstranit jadern´e moduly kqemu a QVM86, ty umoˇzn ˇuj´ı instrukce odpov´ıdaj´ıc´ıho virtu´ aln´ıho CPU spouˇstˇet pˇr´ımo na hostitelsk´em CPU napˇr. x86 guest na x86 host. Kqemu je vyuˇzit ve Win4Lin a QVM86 je uˇz´ıv´an ve VirtualBoxu. V´ ykon kqemu a QVM86 se bl´ıˇz´ı v´ ykonu re´aln´eho poˇc´ıtaˇce.
3.1.2
Uˇ zivatelsk´ e rozhran´ı
Co se t´ yˇce uˇzivatelsk´eho rozhran´ı se QEMU ˇrad´ı sp´ıˇse ke klasick´ ym linuxov´ ym program˚ um, kde je ovl´ ad´ an´ı ˇreˇseno pomoc´ı pˇr´ıkazov´e ˇr´adky a grafick´e rozˇs´ıˇren´ı je nech´ano na nˇejak´ y frontend napˇr. Qemu Launcher. O grafick´ y v´ ystup virtu´aln´ıho poˇc´ıtaˇce se star´a bud’ VNC (Virtual Network Computing), nebo std-vga importovan´a z Bochs. 1 VNC rozhran´ı se d´ as v´ yhodou pouˇz´ıt zobrazen´ı grafick´e plochy vzd´alen´eho serveru.
3.1.3
ˇ alovatelnost Sk´
ˇ alovatelnost ˇcist´eho QEMU bez akcelerac´ı nem´a v´ Sk´ yznam rozeb´ırat, protoˇze QEMU je pomal´e. I pˇresto QEMU umoˇzn ˇuje migraci. Podporuje jak offline tak live migraci. Upraven´e QEMU rozhran´ı pouˇz´ıv´ a KVM. Migrace je bl´ıˇze pops´ana v odstavci migrace 2.2.6.
3.1.4
Robustnost
Qemu je sp´ıˇse emul´ ator neˇz virtualizaˇcn´ı n´astroj, proto je pˇr´ıliˇs pomal´ y na nasazen´ı v provozn´ım prostˇred´ı.
1
Neumoˇzn ˇuje pˇr´ıstup k virtu´ aln´ı stroji pomoc´ı vzd´ alen´e plochy ˇci pˇrepos´ıl´ an´ı X. Naproti tomu zajiˇst’uje vˇetˇs´ı rozliˇsen´ı.
15
3.2
KVM – Kernel Virtual Machine
Jiˇz z n´ azvu vypl´ yv´ a, ˇze jde o virtualizaci implementovanou pˇr´ımo v kernelu. Pln´e virtualizace dosahuje pomoc´ı hardwarov´e podpory AMD-V nebo INTEL-VT. KVM vyuˇz´ıv´a jako rozhran´ı jemnˇe upraven´ y QEMU emul´ator.
3.2.1
Virtualizaˇ cn´ı technologie
´ Uprava spoˇc´ıv´ a v moˇznosti pˇripojit QEMU emul´ator na KVM rozhran´ı kernelu (j´adra syst´emu). V´ yhodou KVM v˚ uˇci QEMU je rychlost a oproti paravirtualizaci umoˇzn ˇuje bˇeh nemodifikovan´ ych syst´em˚ u Linux,Windows atd. Zaˇclenˇen´ı KVM do syst´emu je zobrazeno na sch´ematu 3.2.
Obr´ azek 3.2: Zaˇrazen´ı KVM do syst´emu Obecnˇe plat´ı, ˇze emulace hardwaru nen´ı vˇzdy to prav´e. D˚ usledkem emulace je ˇcasto velk´ a ztr´ata v´ ykonu. Proto KVM umoˇzn ˇuje i paravirtualizaci hardwaru pomoc´ı virtio popsan´eho na obr´ azku 3.3. Virtio jsou frontend moduly zabudovan´e v j´adˇre hosta, pomoci nichˇz se nav´aˇze pˇr´ımo na backend moduly hardwaru v j´adˇre hostitele a t´ım znaˇcnˇe urychl´ı pr´ aci hardwaru. Nev´ yhoda tohoto pˇr´ıstupu spoˇc´ıv´a v nutnosti nainstalovat do virtualizovan´eho syst´emu spr´ avn´e ovladaˇce. D´ıky paravirtualizaci hardwaru se rychlost s´ıt’ov´eho pˇrenosu z emulovan´ ych 361Mb/s vzroste na 805Mb/s paravirtualizovan´ ych a zpoˇzdˇen´ı klesne z 800µs na 300µs, coˇz je dobr´ y v´ ysledek.
3.2.2
Uˇ zivatelsk´ e rozhran´ı
Virtualizaˇcn´ı n´ astroj KVM lze ovl´adat z pˇr´ıkazov´e ˇr´adky pˇres upraven´e QEMU rozhran´ı, nebo grafick´e rozhran´ı virtManageru. VirtManager je grafick´e rozhran´ı nad knihovnou libvirt, kter´ a zajiˇst’uje napojen´ı grafick´eho rozhran´ı a ovl´ad´an´ı KVM. Qemu m´a v˚ uˇci virtManageru v´ yhodu detailnˇejˇs´ıho nastaven´ı. KVM spuˇstˇen´e pomoc´ı qemu pˇres sdl rozhran´ı, umoˇzn ˇuje pˇrepnut´ı do konzoly ovl´adaj´ıc´ı virtu´aln´ı stroj. Ve virtu´aln´ı konzole je moˇzn´e pˇristupovat k low-end nastaven´ım virtu´aln´ıho stroje, od zastaven´ı pˇres pˇrid´av´an´ı hardware za chodu aˇz po live migraci. 16
Obr´ azek 3.3: Zp˚ usob paravirtualizace zaˇr´ızen´ı v KVM. [1]
3.2.3
ˇ alovatelnost Sk´
Co se t´ yˇce ˇsk´ alovatelnosti je na tom virtualizaˇcn´ı n´astroj KVM dobˇre. Podporuje snapshoty, offline i live migraci, pˇrid´av´an´ı a odeb´ır´an´ı zaˇr´ızen´ı za chodu a jin´e. V novˇejˇs´ıch verz´ıch, pˇresnˇeji od verze 62, um´ı KVM za chodu pˇrid´avat ˇci odeb´ırat procesory pˇridˇelen´e virtu´aln´ımu syst´emu. Pˇrid´ av´ an´ı pamˇeti a odeb´ır´an´ı pamˇeti je ˇreˇseno pomoc´ı balloon driver, kter´ y je pops´ an v kapitole 2.2.7. Postup migrace je pops´an u definice pojmu migrace 2.2.6
3.2.4
Robustnost
Z pohledu robustnosti si KVM tak´e nevede ˇspatnˇe. Sice jeho uˇzivatelsk´e rozhran´ı pˇr´ıvˇetivost´ı neopl´ yv´ a, ale pro zbˇehl´e linuxov´e uˇzivatele to nebude pˇredstavovat ˇz´adn´ y probl´em. KVM je integrov´ ano pˇr´ımo do kaˇzd´eho novˇejˇs´ıho kernelu (od verze 2.6.20), takˇze jeho pouˇzit´ı je bezprobl´emov´e. Na rozd´ıl od Xenu takˇrka ˇz´adn´ ym zp˚ usobem neovlivˇ nuje bˇeh norm´ aln´ıho operaˇcn´ıho syst´emu, coˇz je hlavnˇe pro obyˇcejn´e uˇzivatele obrovsk´a v´ yhoda. Grafick´e rozhran´ı KVM lze tunelovat pˇres SSH X nebo pˇr´ımo pomoc´ı VNC. KVM je z pohledu uˇzivatele velice pˇr´ıjemn´ y virtualizaˇcn´ı n´astroj, je zadarmo a jak jiˇz bylo ˇreˇceno takˇrka neovlivˇ nuje chod hostitelsk´eho syst´emu. Pro firemn´ı vyuˇzit´ı je tento n´astroj asi jeˇstˇe moc mlad´ y, i kdyˇz s trochou dobr´e v˚ ule by mohl nahradit t´emˇeˇr jak´ ykoliv z testovan´ ych virtualizaˇcn´ıch n´ astroj˚ u.
3.3
Xen
Jedn´a se o virtualizaˇcn´ı n´ astroj zaloˇzen´ y na paravirtualizaci, d´ıky ˇcemuˇz z´ıskal velk´ y v´ ykon za cenu u ´pravy virtualizovan´eho syst´emu.
3.3.1
Virtualizaˇ cn´ı technologie
S pˇr´ıchodem podpory virtualizace pomoc´ı instrukc´ı procesoru i Xen umoˇzn ˇuje plnou virtualizaci. Diky tomuto rozˇs´ıˇren´ı je moˇzn´e na Xenu rozjet i Windows a jin´e syst´emy bez nutnosti u ´pravy operaˇcn´ıho syst´emu. Zaˇclenˇen´ı Xenu do operaˇcn´ıho syst´emu je zobrazeno na obr´ azku 3.4
17
Obr´ azek 3.4: Zaˇrazen´ı virtualizaˇcn´ıho n´astroje Xen do syst´emu V paravirtualizaˇ cn´ım reˇzimu se hypervizor zavede do tvz. ringu 0, kde by mˇel b´ yt norm´alnˇe zaveden kernel. Kernel syst´emu se pak zavede do vyˇsˇs´ıho ringu 1. D´ıky tomuto se kernel mus´ı pro pˇr´ıstup k hardwaru dotazovat hypervizor. Protoˇze, klasick´ y kernel nen´ı na dotazy vybaven mus´ı se pˇredem upravit. Kernel a pod n´ım spuˇstˇen´e aplikace se naz´ yvaj´ı domain. Grafick´ y popis paravirtualizace v pod´an´ı Xenu je zobrazen na obr´azku 3.5
Obr´ azek 3.5: Um´ıstˇen´ı Xenu ve vrstv´ach chr´anˇen´eho reˇzimu pˇri paravirtualizaci
V plnˇ e virtualizovan´ em reˇzimu, kdy je nutn´e zajistit bˇeh closesource klientu napˇr. Windows atd., se vyuˇzije hardwarov´e rozˇs´ıˇren´ı AMD-V ˇci Intel VT. Rozˇs´ıˇren´ı vytv´aˇr´ı tzv. ring -1. V tomto ringu se spust´ı hypervizor, kter´ y m˚ uˇze jednoduˇse odchyt´avat poˇzadavky nemodifikovan´ ych syst´em˚ u. Nemodifikovan´e syst´emy bˇeˇz´ı klasicky od ringu 0 do ringu 3, 18
jak je zobrazeno na obr´ azku 2.8 Domain0 je hlavn´ı dom´ena, kter´a jako jedin´a m´a pˇr´ıstup pˇr´ımo k fyzick´emu zaˇr´ızen´ı i pˇresto mus´ı b´ yt upraven´ a. V domain0 se nav´ıc spouˇst´ı xen daemon (xend). Tento d´emon umoˇzn ˇuje ovl´ ad´ an´ı samotn´eho xenu (hypervizoru) napˇr. nastavov´an´ı mnoˇzstv´ı pamˇeti pˇridˇelen´e klient˚ um aj. Ostatn´ı dom´ eny DomainU jsou virtu´aln´ı poˇc´ıtaˇce. Od verze 3.0 Xen umoˇzn ˇuje i plnou virtualizaci pomoc´ı virtualizace hardwaru pˇrevzat´e z QEMU. Pro plnou virtualizaci je nutn´e m´ıt podporu pomoc´ı procesoru.
3.3.2
Uˇ zivatelsk´ e rozhran´ı
Xen m´ a stejnˇe jako KVM hlavn´ı rozhran´ı realizov´ano pomoc´ı pˇr´ıkazov´e ˇr´adky a virtManageru popˇr´ıpadˇe dalˇs´ıch rozhran´ı. Vzd´alen´ y pˇr´ıstup k virtu´aln´ım syst´em˚ um je realizov´ an pomoc´ı VNC, bohuˇzel ne v pˇr´ıliˇs poveden´e formˇe. Po instalaci syst´emu je v´ yhodnˇejˇs´ı pˇrej´ıt na vzd´ alenou spr´ avu realizovanou pomoc´ı nainstalovan´eho syst´emu.
3.3.3
ˇ alovatelnost Sk´
V oblasti ˇsk´ alovatelnosti se Xen opravdu nenech´a zahanbit. Umoˇzn ˇuje migraci offline i live migraci. V pˇr´ıpadˇe nutnosti je bez probl´em˚ u moˇzn´e mˇenit poˇcet pˇridˇelen´ ych procesor˚ u i velikost pˇridˇelen´e pamˇeti. Vytv´ aˇren´ı a pr´ace se snapshoty je skoro samozˇrejmost´ı.
3.3.4
Robustnost
V pˇr´ıpadˇe ˇze nevlastn´ıme nˇejakou enterprise verzi je Xen stejnˇe jako KVM uˇzivatelsky m´enˇe pˇr´ıvˇetiv´ y. Podstatn´ a nev´ yhoda Xenu je v nutnosti instalovat a spouˇstˇet i hostitelsk´ y syst´em pod hypervizorem. To pˇrin´aˇs´ı ˇradu nev´ yhod i pˇr´ıjemn´ ych vlastnost´ı. Mezi z´akladn´ı nev´ yhody patˇr´ı ˇcast´ a nekompatibilita ovladaˇc˚ u hardwaru s Xen domain0. Protoˇze ovladˇce Xenu typu domain0 nejsou pˇr´ımo obsaˇzeny v kernelu, je nutn´e pro hostitelsk´ y syst´em pouˇz´ıvat pouze kernel pro kter´ y byl vyd´an patch. V´ yhodou ovlivnˇen´ı cel´eho hostitelsk´eho syst´emu je moˇznost zamaskovat pˇred re´aln´ ym syst´emem fyzick´e zaˇr´ızen´ı a pot´e ho pˇr´ımo namapovat do virtu´ aln´ıho syst´emu. Pro nasazen´ı do ostr´eho provozu je Xen vybaven vˇs´ım potˇrebn´ ym, a proto je ho moˇzn´e doporuˇcit hlavnˇe pro firemn´ıho aplikace. Pro norm´aln´ı uˇzivatel´e je Xen sp´ıˇse pˇr´ıtˇeˇz´ı neˇz uˇziteˇcn´ y virtualizaˇcn´ı n´astroj, a to hlavnˇe kv˚ uli ovlivnˇen´ı hostitelsk´eho syst´emu.
19
3.4
VMware
Komerˇcn´ı sada virtualizaˇcn´ıch n´ astroj˚ u vyuˇz´ıvaj´ıc´ıch pro sv˚ uj bˇeh dynamick´ y pˇreklad a pˇr´ım´e spouˇstˇen´ı k´ odu. Zahrnuje v sobˇe n´astroje zamˇeˇren´e pro v´ yvoj´aˇre, IT profesion´aly a bˇeˇzn´e uˇzivatele VMware Workstation, tak i pro servery VMware ESX Server. Dalˇs´ı informace je moˇzn´e nal´ezt na str´ ank´ ach firmy VMware [5].
3.4.1
Virtualizaˇ cn´ı technologie
VMware Workstation zajiˇst’uje jak plnou virtualizaci, tak experiment´aln´ı podporu paravirtualizace pro linuxov´e syst´emy. Po instalaci VMware tools je moˇzn´e uˇz´ıvat interakci mezi hostitelsk´ ym syst´emem a virtu´ aln´ım strojem. Napˇr´ıklad copy/paste. Zaˇclenˇen´ı do syst´emu je popsan´e na obr´ azku 3.6.
Obr´ azek 3.6: VMware workstation, server, player VMware ESX Server bˇeˇz´ı jako Bare-metal architektura, proto nepotˇrebuje pro sv˚ uj bˇeh hostitelsk´ y operaˇcn´ı syst´em, protoˇze VMware ESX Server je operaˇcn´ım syst´emem. Server obsahuje hypervizor, kter´ y zajiˇst’uje vysok´ y v´ ykon virtu´aln´ıch stroj˚ u. Pro jeho instalaci je nutn´e m´ıt procesor, kter´ y podporuje plnou virtualizaci. Zaˇclenˇen´ı do syst´emu je zn´azornˇeno na obr´ azku 3.7 VMware nab´ız´ı i dva volnˇe pouˇziteln´e n´astroje VMware Server a VMware Player. Voln´e n´astroje jsou sice volnˇe ke staˇzen´ı, ale je to vykoupeno menˇs´ım v´ ykonem hlavnˇe v IO operac´ıch s diskem, s´ıt´ı atd. I pˇresto jsou velmi kvalitnˇe zpracovan´e a na z´akladn´ı pr´aci a testov´an´ı postaˇcuj´ı.
3.4.2
Uˇ zivatelsk´ e rozhran´ı
Uˇzivatelsk´e rozhran´ı je na rozd´ıl od pˇredeˇsl´ ych n´astroj˚ u takˇrka dokonal´e. Jen pomoc´ı klik´ an´ı ’ myˇsi je moˇzn´e udˇelat skoro cokoliv co virtualizaˇcn´ı n´astroj umoˇzn ˇuje, at uˇz se jedn´ a o VMware Server, Player nebo Workstation zamˇeˇren´e na uˇzivatele, nebo VMware ESX Server pro firmy. D´ ale podporuje rozˇs´ıˇren´ı pracovn´ı plochy virtu´aln´ıho stroje o dalˇs´ı obrazovku.
20
Obr´ azek 3.7: VMware ESX server
3.4.3
ˇ alovatelnost Sk´
Pokud uvaˇzujeme komerˇcn´ı verze, jakou je napˇr. VMware ESX Server, je na tom VMware se ˇsk´alovatelnost´ı v´ ybornˇe. Pro migrov´an´ı m´a speci´aln´ı n´astroj zvan´ y VMotion, kter´ y um´ı stejnˇe jako u jin´ ych virtualizaˇcn´ıch n´astroj˚ u migrovat spuˇstˇen´ y virtu´aln´ı syst´em on live. VMotion zajiˇst’uje migrov´ an´ı virtu´aln´ıho stoje v pˇr´ıpadˇe, ˇze pevn´e disky virtualizovan´eho syst´emu jsou pˇr´ıstupny ve vˇsech stroj´ıch u ´ˇcastn´ıc´ıch se migrace. Pro migraci disku m´ a VMware dalˇs´ı n´ astroj nazvan´ y VMFS (Virtual Machine File System), kter´ y takˇrka za bˇehu migruje pevn´e disky. Dalˇs´ı v tomto pˇr´ıpadˇe jsou snapshoty, kter´e um´ı VMware pˇres pˇekn´e grafick´e menu spravovat. Pˇrid´ av´ an´ı a odeb´ır´an´ı hardwaru za bˇehu je u VMwaru probl´em aspoˇ n v n´ astroj´ıch zamˇeˇren´ ych na uˇzivatele (VMware Workstation), ˇci volnˇe dostupn´ ych n´astroj´ıch (VMware Server). Jedin´e, co je moˇzn´e mˇenit za bˇehu virtualizovan´eho syst´emu (v VMware Wokrstation a Server) je pˇripojen´ı k vnˇejˇs´ı s´ıti a v´ ymˇenn´a zaˇr´ızen´ı.
3.4.4
Robustnost
VMware se d´ a povaˇzovat za velice robustn´ı a propracovan´ y n´astroj. Pokud m´ate dostatek penˇez nen´ı probl´emem t´emˇeˇr ˇz´adn´a administrativn´ı operace, jakou si vymysl´ıte. Pokud hovoˇr´ıme o VMwaru Workstation, nebo free verz´ıch, je instalace jednoduch´a. Jedin´ y probl´em nastane v pˇr´ıpadˇe, ˇze m´ate novˇejˇs´ı kernel, do kter´eho nen´ı moˇzn´e pˇriloˇzen´e moduly nainstlovat. Tento probl´em ˇreˇs´ı patch tˇret´ı strany. Po instalaci t´emˇeˇr nepozn´ate, ˇze se syst´em zmˇenil. VMware si pˇrid´ a nˇekolik driver˚ u a vˇetˇsinou podle voleb instalace vytvoˇr´ı ’ bridge a virtu´ aln´ı s´ıt ovou kartu, pˇres kterou pˇripojuje virtualizovan´e syst´emy do hostitelsk´eho syst´emu. Vzhledem k uveden´ ym skuteˇcnostem je moˇzn´e VMware doporuˇcit jak pro firemn´ı, tak soukrom´e uˇzit´ı. Ani jeden z n´astroj˚ u by nemˇel z´akazn´ıka zklamat. Jedin´ y probl´em je cena produkt˚ u od VMware. VMware sice nab´ız´ı free verze, ale ty jsou v´ ykonnostnˇe limitov´ any, jak bude uk´az´ano na testech.
21
3.5
VirtualBox
Virtualizaˇcn´ı n´ astroj s uˇzivatelsky pˇr´ıjemn´ ym rozhran´ım, zamˇeˇren´ y na bˇeˇzn´e uˇzivatele.
3.5.1
Virtualizaˇ cn´ı technologie
Virtualbox je zaloˇzen´ y na QEMU. Pro z´ısk´an´ı rychlosti vych´az´ı z upraven´eho jadern´eho modulu QVM86. Snaˇz´ı se spouˇstˇet vˇsechen k´od pˇr´ımo na fyzick´em procesoru a rekompilaci vyuˇz´ıv´ a jen ve v´ yjimeˇcn´ ych situac´ıch. Avˇsak rekompilace nen´ı nejvˇetˇs´ı probl´em, t´ım je mnoˇzstv´ı chyb generovan´ ych napˇr. pˇri pˇr´ıstupu k IO z ring 3 nebo spouˇstˇen´ı ring 0 aplikac´ı (kernel) v ring 1, kv˚ uli privilegovan´ ym instrukc´ım, kter´e se v ringu 1 nedaj´ı spustit. V tˇechto pˇr´ıpadech mus´ı pˇrij´ıt na ˇradu emulace. K odstranˇen´ı tˇechto probl´em˚ u se pouˇz´ıv´a Patch Ma” nager“ (PATM) a Code Scanning and Analysis Manager“ (CSAM). Pˇred spuˇstˇen´ım k´odu ” standardnˇe bˇeˇz´ıc´ıho v ring 0 se nejprve provede rekurzivn´ı scan k vyhled´an´ı problematick´ ych instrukc´ı a pot´e se nahrad´ı in-situ(bez potˇreby dalˇs´ı pamˇeti) skokem na hypervizor, kde je pˇripraven k´ od, kter´ y jiˇz chybu nevyvol´a. Pˇri kaˇzd´e chybˇe se zkouˇs´ı vytvoˇrit patch, aby se jiˇz pˇri dalˇs´ım vol´ an´ı ˇc´ asti k´ odu chyba neopakovala. Zaˇclenˇen´ı do syst´emu je realizov´ano zp˚ usobem popsan´ ym na obr´ azku 3.8
Obr´azek 3.8: VirtualBox
3.5.2
Uˇ zivatelsk´ e rozhran´ı
Virtualbox m´ a pˇekn´e a jednoduch´e klikac´ı uˇzivatelsk´e rozhran´ı. I naprost´ y zaˇc´ateˇcn´ık si spust´ı sv˚ uj virtu´ aln´ı syst´em. Protoˇze je virtualBox m´ıˇren na uˇzivatelsk´e pouˇzit´ı, pˇrich´az´ı v tomto ohledu se zaj´ımav´ ymi vylepˇsen´ımi, jako je napˇr´ıklad bezeˇsv´ y m´od. V bezeˇsv´em m´odu se vˇse, aˇz na pozad´ı pracovn´ı plochy virtualizovan´eho syst´emu, zobraz´ı na plochu hostitelsk´eho syst´emu. To umoˇzn´ı m´ıt na jednom monitoru spuˇstˇen´e dva plnˇe funkˇcn´ı syst´emy bez toho, aby se v´ yraznˇe ovlivˇ novaly. Doporuˇcuji vyzkouˇset. Virtualbox m´a i ovl´adan´ı pˇr´ıkazovou ˇr´ adkou, pomoc´ı n´ıˇz jde dˇelat ˇrada vˇec´ı, kter´e by v grafick´eho rozhran´ı nebyly v˚ ubec moˇzn´e. Pro spouˇstˇen´ı virtu´aln´ıho poˇc´ıtaˇce z jin´eho poˇc´ıtaˇce je vyuˇz´ıv´an RDP (Remote desktop protokol). RDP protokol je podporov´an ve Windows, Linuxech (rdesktop) a jin´ ych syst´emech. Pro vzd´ alen´ y pˇr´ıstup je RDP vhodnˇejˇs´ı neˇz VNC, protoˇze i pˇri menˇs´ım datov´em toku jsou reakce na povely uˇzivatele takˇrka okamˇzit´e.
22
3.5.3
ˇ alovatelnost Sk´
Vzhledem k zamˇeˇren´ı VirtualBox v ohledu ˇsk´alovatelnosti pˇr´ıliˇs nevynik´a. Jedinou vymoˇzenost, kterou z´ıskal, je pr´ ace se snapshoty.
3.5.4
Robustnost
VirtualBox se vydal smˇerem uˇzivatelsk´e pˇr´ıvˇetivosti a jednoduchosti pouˇz´ıv´an´ı. Pˇri instalaci si do j´ adra nainstaluje pouze jeden driver. Podstatnou nev´ yhodou je moˇznost virtualizovat jen x86 procesory a maxim´alnˇe 2GB pamˇeti. K virtualboxu je moˇzn´e pˇristupovat ze vzd´ alen´eho poˇc´ıtaˇce. Do firemn´ıho prostˇred´ı, kde je potˇreba spolehlivost a variabilita, bych virtualbox v ˇz´ adn´em pˇr´ıpadˇe nedoporuˇcoval. VirtualBox je ide´aln´ı pro uˇzivatele, kteˇr´ı potˇrebuj´ı na sv´em poˇc´ıtaˇci nainstalovat dalˇs´ı operaˇcn´ı syst´em s pomˇernˇe rychlou odezvou a pokroˇcilejˇs´ımi grafick´ ymi funkcemi.
23
Kapitola 4
Metodika testov´ an´ı Na zaˇc´ atku kapitoly jsou rozebr´ any kategorie, ve kter´ ych budou virtualizaˇcn´ı n´astroje testov´any. D´ ale je zde pops´ an program vyvinut´ y pro testov´an´ı paraleln´ıho bˇehu virtu´aln´ıch syst´em˚ u a pro usnadnˇen´ı samotn´eho pr˚ ubˇehu testov´an´ı. V posledn´ı ˇc´asti t´eto kapitoly jsou pops´any benchmarky vybran´e pro testov´an´ı.
4.1
Co testovat a jak testovat?
Jak se rozhodnout, kter´ y virtualizaˇcn´ı n´astroj je ten nejlepˇs´ı? Vzhledem k probl´em˚ um, napˇr´ıklad mal´ a efektivita a v´ ykon IO operac´ı, ˇci pˇreplnˇen´ı TLB tabulky a dalˇs´ıch, rozebran´ ych v kapitole 2.2.3, se pˇri virtualizaci zamˇeˇr´ıme pr´avˇe na nˇe. Bohuˇzel ne vˇzdy tyto testy budou objektivn´ı v˚ uˇci re´ aln´emu nasazen´ı virtualizaˇcn´ıch syst´em˚ u. Nˇekdy se m˚ uˇze st´ at, ˇze virtualizaˇcn´ı n´ astroj v testech propadne, ale v re´aln´em nasazen´ı bude ostatn´ı n´astroje pˇrekon´ avat. Konkr´etn´ı popis oblast´ı testov´an´ı bude n´asledovat.
4.1.1
CPU
Efektivita zpracov´ an´ı k´ odu je pˇri virtualizaci jeden z hlavn´ıch faktor˚ u, i kdyˇz ne ve vˇsech pˇr´ıpadech. Napˇr´ıklad QEMU, kde je na u ´kor v´ ykonu moˇzno emulovat skoro jak´ ykoliv procesor. Testovat lze pomoc´ı operac´ı, kter´e ˇr´adnˇe zat´ıˇz´ı procesor, ale ostatn´ı ˇc´asti virtu´aln´ıho stroje zat´ıˇz´ı jen minim´ alnˇe. Pro tyto u ´ˇcely je dobr´e vyuˇz´ıt testy, kter´e jsou volnˇe dostupn´e na internetu, napˇr´ıklad Povray. Povray sice nen´ı program urˇcen´ y pˇr´ımo pro testov´an´ı, ale obsahuje i testovac´ı m´ od.
4.1.2
IO operace a zat´ıˇ zen´ı procesoru pˇ ri tˇ echto operac´ıch
D´a se ˇr´ıct, ˇze kaˇzd´ y virtualizaˇcn´ı n´astroj m´a IO operace ˇreˇsen´e jin´ ym zp˚ usobem, at’ uˇz se jedn´a o KVM ˇci VMware a jin´e. Ot´azka zn´ı, jak mˇeˇrit efektivitu IO operac´ı. Pro tento u ´ˇcel byl v r´ amci t´eto pr´ ace vyvinut testovac´ı n´astroj, kter´ y umoˇzn ˇuje mˇeˇrit zat´ıˇzen´ı testovan´eho syst´emu a z´ aroveˇ n zat´ıˇzen´ı syst´emu, na kter´em bˇeˇz´ı virtualizovan´ y syst´em. Testovac´ı n´astroj je pops´ an v n´ asleduj´ıc´ı kapitole 4.2. Disk Pro bˇeh syst´emu je nutn´e m´ıt i efektivn´ı pˇr´ıstup k dat˚ um. Bohuˇzel pˇri pln´e virtualizaci je nutn´e emulovat i hardware nutn´ y pro pˇr´ıstup k disku. Pro srovn´an´ı zvol´ıme virtualizaˇcn´ı n´ astroj KVM, ve kter´em nen´ı probl´em pˇrej´ıt mezi reˇzimem pln´e virtualizace a 24
paravirtualizace disk˚ u. Pro testov´an´ı pouˇzijeme virtualizaˇcn´ı n´astroj bonnie++. Bonnie++ n´am umoˇzn´ı otestovat sekvenˇcn´ı i n´ahodn´ y pˇr´ıstup k disku a souˇcasnˇe uk´aˇze zat´ıˇzen´ı CPU pˇri testovac´ıch operac´ıch. Network Jestliˇze chceme vyuˇz´ıt virtu´aln´ı stroj jako server napˇr. pro webov´e sluˇzby, bude n´as zaj´ımat rychlost a efektivita s´ıt’ov´ ych zaˇr´ızen´ı. I v tomto pˇr´ıpadˇe pro uk´az´an´ı rozd´ılu mezi plnou virtualizac´ı a paravirtualizac´ı pouˇzijeme virtualizaˇcn´ı n´astroj KVM. V KVM je zmˇena virtualizace s´ıt’ov´ ych zaˇr´ızen´ı jen ot´azkou u ´pravy startovac´ıho skriptu. Pro testov´ an´ı prostupnosti s´ıtˇe pouˇzijeme testovac´ı n´astroj netperf. Grafika Bylo by kr´ asn´e, kdyby se dala na virtu´aln´ıch stroj´ıch provozovat i 3D grafika. Je to sice moˇzn´e, ale zat´ım je to ˇreˇseno jen pomoc´ı VGML [4], kter´e umoˇzn´ı podporu openGL ve verzi 1.5. Tato moˇznost je dostupn´a jen pro operaˇcn´ı syst´em Linux, FreeBSD, OpenSolaris, protoˇze je nutn´e vyuˇz´ıt speci´aln´ı ovladaˇc v klientsk´em i hostitelsk´em syst´emu. Tyto testy vynech´ ame, protoˇze problematika je teprve v poˇc´atku v´ yvoje.
4.1.3
Syst´ em
Je sice dobr´e otestovat kaˇzdou ˇc´ ast syst´emu zvl´aˇst’, ale nen´ı to dostaˇcuj´ıc´ı ˇreˇsen´ı. Z tohoto d˚ uvodu je nutn´e pˇristoupit i ke komplexn´ım test˚ um. Pro tento u ´ˇcel je ide´aln´ı n´astroj lmbench, kter´ y v sobˇe obsahuje ˇradu syntetick´ ych test˚ u. Napˇr´ıklad test lat ctx n´astroj pro testov´an´ı doby nutn´e k pˇrepnut´ı kontextu a dalˇs´ı.
4.1.4
Komplexn´ı testy
Komplexn´ımi testy je moˇzn´e otestovat syst´em jako celek, to znamen´a pamˇet’ov´e operace, diskov´e operace, s´ıt’ov´e operace a v´ ykon ˇci efektivita zpracov´av´an´ı k´odu. Syntetick´e testy ˇ ˇcasto neukazuj´ı v´ ykon syst´emu jako celku, ale jen jeho konkr´etn´ıch ˇc´ast´ı. Casto se m˚ uˇze st´at, ˇze syst´em m´ a po ˇc´ astech velk´ y v´ ykon, ale jakmile se spoj´ı v´ıce ˇcinnost´ı dohromady zaˇcne se hroutit. Pro tyto testy byly vybr´any testy serveru Apache a MYSQL serveru pˇr´ıpadnˇe jejich kombinac´ı. Pˇri pouˇzit´ı Apache serveru je vyuˇzit procesor a pamˇet’, disk i s´ıt’ov´e rozhran´ı. MYSQL server zase zajist´ı z´atˇeˇz disku, pamˇeti, procesoru. Zat´ıˇzen´ım obou tˇechto server˚ u najednou pomoc´ı benchmarku ab, kter´ y je standardnˇe obsaˇzen v instalaci apache serveru, bylo dosaˇzeno nejvˇetˇs´ıho re´aln´eho zat´ıˇzen´ı. Pˇres benchmark ab se dotazovalo na php str´ anku, kter´ a obsahovala php k´od, pomoc´ı nˇehoˇz se pˇristupovalo na MYSQL server. Server MYSQL obsahuje s´ am o sobˇe tak´e benchmark, kter´ y otestuje vˇsemoˇzn´e SQL operace, jako je vytv´ aˇren´ı a maz´ an´ı tabulek, z´aznam˚ u atd.
4.1.5
Architektura procesor˚ u
Chod virtualizovan´ ych syst´em˚ u nez´avis´ı jen na virtualizaˇcn´ım n´astroji, ale podstatnou mˇerou se o efektivitu virtualizace zasluhuje i architektura hardwaru, na kter´em se virtualizace prov´ ad´ı. Procesory jako takov´e je obt´ıˇzn´e porovnat, proto je nutn´e otestovat v´ ykon syst´emu jen relativnˇe. To znamen´a, zjistit v´ ykon re´aln´eho syst´emu, na kter´em je virtualizovan´ y syst´em spuˇstˇen. Pro zjiˇstˇen´ı v´ ykonu hostitelsk´eho syst´emu byly pouˇzity stejn´e testy, jako pro zjiˇst’ov´ an´ı v´ ykonu virtualizovan´ ych syst´em˚ u.
25
4.2
Testovac´ı program
Testovac´ı program byl v r´ amci t´eto pr´ace navrˇzen za u ´ˇcelem testov´an´ı efektivity virtualizaˇcn´ıch n´ astroj˚ u. Je naprogramov´an ve skriptovac´ım jazyce Python. Zdrojov´e k´ody je moˇzn´e nal´ezt na pˇriloˇzen´em DVD v adres´aˇri benchmark. Volbou Pythonu je zajiˇstˇena pˇrenositelnost a jednoduchost psan´ı k´odu. Aplikace je navrˇzena jako Klient/Server. Komunikace je zajiˇstˇena pˇres TCP/IP spojen´ı. TCP/IP komunikace byla zvolena, protoˇze bylo nutn´e zajistit pˇrenositelnost i mezi virtualizaˇcn´ımi n´astroji. Obˇe ˇc´asti jsou ovl´ad´any pomoc´ı pˇr´ıkazov´e ˇr´ adky. Cel´e testov´ an´ı ˇr´ıd´ı serverov´ a strana, kter´a obsahuje kontrolu potˇrebn´ ych program˚ u pro testov´an´ı, zad´ an´ı test˚ u a ˇr´ıd´ı poˇrad´ı prov´adˇen´ı test˚ u. Testy je moˇzn´e spustit s´eriovˇe, nebo paralelnˇe. Pro kaˇzd´eho klienta se vytvoˇr´ı samostatn´e vl´akno. Pˇri spuˇstˇen´ı testu na klientovi se vytvoˇr´ı dalˇs´ı vl´ akno, kter´e nez´avisle na ˇcinnosti serveru monitoruje zat´ıˇzen´ı poˇc´ıtaˇce, na kter´em bˇeˇz´ı server. Po ukonˇcen´ı testu klient poˇsle serveru v´ ystup z testu. V tuto chv´ıli server ukonˇc´ı monitorovac´ı vl´ akno a sejme v´ ystup. Pro kaˇzd´eho klienta se pro ukl´ad´ an´ı v´ ysledk˚ u vytvoˇr´ı speci´ aln´ı soubor, jehoˇz jm´eno je urˇceno parametrem zadan´ ym pˇri spuˇstˇen´ı klientsk´e ˇc´ asti programu.
Obr´ azek 4.1: Uk´azka paraleln´ıho spuˇstˇen´ı benchmarku Jedin´ a podstatn´ a slabina testovac´ıho progamu je v urˇcen´ı z´atˇeˇze hostitelsk´eho syst´emu, kdy pˇri velice kr´ atk´ ych testech, v urˇcit´ ych pˇr´ıpadech neodpov´ıd´a namˇeˇren´a hodnota re´ aln´emu zat´ıˇzen´ı CPU.
4.2.1
Paraleln´ı bˇ eh
Pˇri paraleln´ım spuˇstˇen´ı server ˇcek´a na pˇripojen´ı zadan´eho poˇctu klient˚ u, aby byla zajiˇstˇena synchronizace test˚ u. To je uk´ az´ ano na obr´azku 4.1. V pˇr´ıpadˇe, ˇze by nˇekter´ y z test˚ u byl spuˇstˇen na rychlejˇs´ım stroji, je zajiˇstˇena synchronizace zaˇc´atk˚ u test˚ u na vˇsech testovan´ ych stroj´ıch. Paraleln´ı prov´ adˇen´ı test˚ u bylo navrˇzeno pro test zahlcen´ı hostitelsk´eho syst´emu velk´ ym poˇctem virtu´ aln´ıch syst´em˚ u. Zahlcen´ı hostitelsk´eho syst´emu je nutn´e pro zjiˇstˇen´ı
26
efektivity pˇrep´ınan´ı kontext˚ u virtu´aln´ıch syst´em˚ u. Tento probl´em je pops´an v odstavci spr´ava pamˇeti 2.2.3.
4.2.2
S´ eriov´ y bˇ eh
Pˇr´ı s´eriov´em spuˇstˇen´ı serveru se na server m˚ uˇze pˇripojit urˇcen´e mnoˇzstv´ı klient˚ u a server je postupnˇe odstartuje. Uk´ azka s´eriovˇe spuˇstˇen´eho benchmarku je 4.2.
Obr´ azek 4.2: Uk´azka s´eriov´eho spuˇstˇen´ı benchmarku
27
4.2.3
V´ ystup programu
V´ ystup programu je ˇciteln´ y z obr´azku 4.3. Obsahuje tyto ˇc´asti: • pˇr´ıkaz, kter´ y byl posl´ an na klienta, • v´ ystup prov´ adˇen´eho benchmarku, • ˇcas a zat´ıˇzen´ı procesoru na stranˇe klienta, • informace i zat´ıˇzen´ı na stranˇe serveru.
Obr´ azek 4.3: Uk´azka v´ ystupu z programu
4.3
Spouˇ stˇ en´ e benchmarky
V t´eto kapitole bude rozebr´ an u ´ˇcel benchmarku volan´ ych z testovac´ıho programu popsan´eho v pˇredchoz´ı kapitole 4.2. Pro testov´an´ı byly vybr´any volnˇe dostupn´e, ˇci integrovan´e benchmarky, u kter´ ych nen´ı probl´em otestovat t´emˇeˇr jak´ ykoliv syst´em.
4.3.1
lmbench
Lmbench je komplexn´ı n´ astroj uzp˚ usoben´ y pro testov´an´ı z´akladn´ıch syst´emov´ ych operac´ı a hardwaru. Skl´ ad´ a se ze s´erie micro benchmark˚ u. Je zamˇeˇren´ y na tˇri z´akladn´ı skupiny: latenci, pˇrenosov´e p´ asmo a ostatn´ı. Budou zde probr´any benchmarky pouˇzit´e v testech. Dalˇs´ı podrobn´ y popis je moˇzn´e nal´ezt v manu´alov´ ych str´ank´ach nebo na internetu [2]. Latence Virtualizovan´ y syst´em m´ a mezi sebou a re´aln´ ym svˇetem urˇcitou vrstvu softwaru, kter´ a ’ zajiˇst uje virtualizaci. Tato vrstva s nejvˇetˇs´ı pravdˇepodobnost´ı zp˚ usob´ı zpoˇzdˇen´ı. Z tohoto d˚ uvodu bude dobr´e toto zpoˇzdˇen´ı otestovat. Seznam pouˇzit´ ych benchmark˚ u je zde:
28
• lat ctx je benchmark testuj´ıc´ı zpoˇzdˇen´ı pˇri pˇrep´ın´an´ı kontext˚ u. Jako vstupn´ı parametry pro spuˇstˇen´ı m´ a velikost a mnoˇzstv´ı proces˚ u, mezi nimiˇz se m´a pˇrep´ınat kontext. V´ ystup testu je uveden v mikrosekund´ach. • lat proc zjist´ı zpoˇzdˇen´ı v mikrosekund´ach pˇri vytv´aˇren´ı procedur a proces˚ u pomoc´ı fork a exec. • lat pagefault je benchmark vracej´ıc´ı ˇcas v mikrosekund´ach, kter´ y je tˇreba pro naˇcten´ı str´ anky pamˇeti odloˇzen´e pˇri swapov´an´ı na pevn´ y disk. pˇ renosov´ e p´ asmo U velk´ ych datov´ ych pˇrenos˚ u, kter´e mus´ı ˇreˇsit procesor, m˚ uˇze doj´ıt k pˇret´ıˇzen´ı procesoru, nebo jin´e kritick´e ˇc´ asti a zp˚ usobit omezen´ı datov´eho toku. U virtualizace toto tvrzen´ı plat´ı dvojn´asobnˇe, protoˇze pˇr´ıstup k hardwaru je ˇcasto jeˇstˇe odst´ınˇen softwarovou vrstvou. • bw mem je testovac´ı n´ astroj na testov´an´ı rychlosti pˇr´ıstupu k pamˇeti. V´ ystup je uveden v MB/s. • bw file rd je benchmark zjiˇst’uj´ıc´ı rychlost ˇcten´ı dat ze souborov´eho syst´emu v MB/s. • bw pipe je n´ astroj na zjiˇstˇen´ı rychlosti pˇrenosu pomoc´ı pipe, jehoˇz v´ ystup je uv´adˇen v MB/s. Ostatn´ı Ostatn´ı benchmarky obsahuj´ı r˚ uzn´e n´astroje, napˇr´ıklad n´ahradu za program dd (z operaˇcn´ıho syst´emu linux) nazvanou lmdd.
4.3.2
povray
Povray je program prim´ arnˇe urˇcen´ y pro renderov´an´ı sc´en napˇr. pomoc´ı raytracingu a ostatn´ıch metod. Ale vzhledem k tomu, ˇze povray vyuˇz´ıv´a procesor na 100% a ostatn´ı zdroje syst´emu t´emˇeˇr nevyuˇz´ıv´ a, je to ide´aln´ı n´astroj pro testov´an´ı procesorov´eho v´ ykonu v re´aln´e z´atˇeˇzi. Pro spuˇstˇen´ı povray v benchmark reˇzimu staˇc´ı pˇridat jako parametr –benchmark.
4.3.3
bonnie++
Bonnie++ je benchmark vyvinut´ y pro testov´an´ı rychlosti a efektivnosti diskov´ ych operac´ı. Zahrnuje v sobˇe sekvenˇcn´ı a n´ ahodn´e testy pro ˇcten´ı a z´apis na disk. Tyto testy prov´ ad´ı po znac´ıch, po bloc´ıch a r˚ uzn´ ymi pˇrepisy. D´ale otestuje rychlost vytv´aˇren´ı objektu ve filesyst´emu.
4.3.4
apache
Apache byl zvolen, protoˇze je hojnˇe pouˇz´ıvan´ y webov´ y server a obsahuje integrovanou testovac´ı utilitu. Testovac´ı utilita se jmenuje ab. Utilita pracuje na principu kladen´ı dotaz˚ u na poˇzadovan´ y server. Apache je velice komplexn´ı server, proto i touto jednoduchou utilitou jde testovat velk´e mnoˇzstv´ı typ˚ u z´atˇeˇze webov´eho serveru. Pˇri samotn´em testov´an´ı je pak apache serverem moˇzn´e zat´ıˇzit s´ıt’ov´e, diskov´e a pamˇet’ov´e rozhran´ı, v neposedn´ı ˇradˇe i procesor. 29
4.3.5
MYSQL
MYSQL obsahuje utilitu na testov´an´ı z´atˇeˇze SQL serveru. Tato utilita se naz´ yv´a sql-bench. Nejedn´ a se ani tak o utilitu, ale sp´ıˇse o soubor benchmark˚ u zamˇeˇren´ ych na konkr´etn´ı z´aleˇzitosti. Vzhledem k tomu, ˇze netestujeme MYSQL server jako takov´ y, n´ ybrˇz ho pouˇz´ıv´ ame jen jako test na v´ ykon cel´eho syst´emu, pro spuˇstˇen´ı pouˇzijeme obecnˇe nakonfigurovan´ y benchmark run-all-tests.
4.3.6
apache + MYSQL
Spojen´ım obou tˇechto server˚ u dostaneme test, kter´ y simuluje takˇrka re´aln´e zat´ıˇzen´ı cel´eho syst´emu. Testov´ an´ı prob´ıh´ a opˇet pomoc´ı utility ab, kterou se dotazujeme apache serveru na php str´ anku, jejiˇz obsahem je dotaz na MYSQL datab´azi. V tomto pˇr´ıpadˇe uˇz jde o komplexn´ı test, kter´ y by mohl uk´azat, jak na tom jsou virtualizaˇcn´ı n´astroje v re´aln´em prostˇred´ı.
30
Kapitola 5
Testy virtualizaˇ cn´ıch n´ astroj˚ u V t´eto kapitole budou uvedeny v´ ysledky test˚ u popsan´e v pˇredeˇsl´e kapitole 4, proveden´e na virtualizaˇcn´ıch n´ astroj´ıch popsan´ ych v kapitole 3, jako je KVM verze 65, VirtualBox 1.56, VMware Server 1.0.5, Xen 3.1.0. V´ ysledky test˚ u jsou uvedeny vˇzdy od nejlepˇs´ıho na lev´e stranˇe aˇz po nejhorˇs´ı na stranˇe prav´e.
5.1
Porovn´ an´ı v´ ykonnosti a efektivity virtualizaˇ cn´ıch n´ astroj˚ u
V t´eto ˇc´ asti bude porovn´ an v´ ykon v´ yˇse popsan´ ych virtualizaˇcn´ıch n´astroj˚ u. Bude zde srovn´an´ı v´ ykonnosti v s´ıt’ov´ ych aplikac´ıch. D´ale zde bude porovn´an v´ ykon operac´ı souborov´eho syst´emu, konkr´etnˇe sekvenˇcn´ı i n´ahodn´e ˇcten´ı a z´apis. Virtualizaˇcn´ı n´astroje zde budou srovn´ any i podle v´ ykonnosti cel´eho syst´emu. Pro tuto ˇc´ast testu budou pouˇzity testy prov´adˇen´e na procesoru Intel Xeon 2x1,6GHz. Pro testov´an´ı byl pouˇzit Linux, distribuce Fedora8, do kter´eho byl nainstalov´an kernel 2.6.25. Kernel 2.6.25 m´a plnˇe implementovan´ y nov´ y pl´ anovaˇc CFQ (Completely Fair Queuing) a integrovanou podporu virtio popsan´e v kapitole 3.2.1. Pro virtualizaˇcn´ı n´astroj Xen bylo nutn´e pˇri paravirtualizaci pouˇz´ıt Kernel 2.6.21. V´ ysledky zat´ıˇzen´ı procesoru mohou pˇres´ahnout 100%, to je zp˚ usobeno pouˇzit´ım dvou j´adrov´eho procesoru a programu vyhodnocuj´ıc´ıho zat´ıˇzen´ı procesoru, uv´adˇen´eho jako souˇcet zat´ıˇzen´ı vˇsech procesor˚ u. I kdyˇz tento zp˚ usob vyj´adˇren´ı m˚ uˇze ze zaˇc´atku p˚ usobit zmateˇcnˇe, je z nˇej v´ıce patrn´e, kolik procesor˚ u se dan´eho testu u ´ˇcastnilo.
5.1.1
S´ıt’ov´ e operace
V tˇechto testech je testov´ an pˇr´ıstup smˇerem od klientsk´ ych virtu´aln´ıch stroj˚ u do hostitelsk´eho syst´emu. Tento postup byl zvolen, protoˇze je mˇeˇren´ı nez´avisl´e na ciz´ım provozu na s´ıti a ukazuje maxim´ aln´ı v´ ykon s´ıt’ov´eho rozhran´ı. Pro kontrolu, zda hostitelsk´ y syst´em ’ neomezuje s´ıt ov´ y pˇrenos, byl vˇzdy ovˇeˇren i samotn´ y hostitelsk´ y syst´em. V tomto pˇr´ıpadˇe byl na hostitelsk´em syst´emu namˇeˇren tok 8195 Mb/s pˇri zat´ıˇzen´ı procesoru 102%. Z toho vypl´ yv´ a, ˇze prov´ adˇen´e testy ani v nejmenˇs´ım nedos´ahnou maxim´aln´ıho s´ıt’ov´eho toku hostitele. V grafech je zobrazena i efektivita. Efektivita je vyj´adˇrena jako pomˇer datov´eho toku a zat´ıˇzen´ı procesoru. Testy zobrazen´e na obr´ azku 5.1 ukazuj´ı pˇrevahu virtualizaˇcn´ıho n´astroje Xen v reˇzimu paravirtualizace, kdy vˇsechny ostatn´ı n´astroje daleko pˇredˇcil, jeˇstˇe ke vˇsemu s menˇs´ım zat´ıˇzen´ım procesoru. Na druh´em m´ıstˇe skonˇcilo KVM, kter´e pro s´ıt’ov´ y provoz pouˇz´ıvalo paravirtualizovan´e drivery. Ostatn´ı virtu´aln´ı stroje mˇely nainstalovan´e drivery z pˇriloˇzen´ ych virtu´aln´ıch CD. 31
Obr´ azek 5.1: Porovn´an´ı v´ ykonnosti s´ıt’ov´ ych operac´ı
5.1.2
Diskov´ e operace
Do t´eto sekce se daj´ı zaˇradit v´ ysledky benchmarku bonnie++ i microbenchmarku lmdd obsaˇzen´ y v bal´ıku benchmark˚ u lmbench. V pod´an´ı lmdd jde jen o test z´apisu na disk. Z´apis je prov´ adˇen po bloc´ıch o velikosti 1MB. V´ ysledky testu jsou uvedeny v grafu 5.2.
Obr´ azek 5.2: lmdd porovn´an´ı v´ ykonu blokov´eho z´apisu na disk Benchmark lmdd by jako benchmark diskov´eho provozu nestaˇcil, proto bylo nutn´e pouˇz´ıt i benchmark bonnie++. Z v´ ysledk˚ u bonnie++, kter´e jsou uvedeny v grafu 5.3, je sice moˇzn´e vyˇc´ıst v´ ykonnost, ale s urˇcen´ım efektivity m˚ uˇze b´ yt probl´em. Proto bylo nutn´e zav´est dalˇs´ı veliˇcinu vyj´ adˇrenou pomˇerem pr˚ umˇern´e rychlosti a zat´ıˇzen´ım procesoru.
32
Obr´ azek 5.3: V´ ysledky testu bonnie++ U diskov´ ych operac´ı bylo pro zmˇenu prvn´ı KVM. KVM vyhr´alo hlavnˇe d´ıky sekvenˇcn´ım ’ operac´ım, at uˇz se jedn´ a o ˇcten´ı, z´apis, nebo pˇrepis. Jedin´a v´ yrazn´a slabost KVM je jeho pomalost v z´ apisu po znac´ıch. V pˇr´ıpadˇe, ˇze by se do hodnocen´ı poˇc´ıtala i efektivita, zv´ıtˇezil by opˇet Xen, protoˇze pˇri o trochu menˇs´ım v´ ykonu diskov´ ych operac´ı byl efektivnˇejˇs´ı. Na posledn´ım m´ıstˇe se um´ıstil VMware server, jehoˇz efektivita je v˚ uˇci KVM jen ˇctvrtinov´a.
5.1.3
Syst´ emov´ e microbenchmarky lmbench
Po otestov´ an´ı IO operac´ı zb´ yv´ a otestovat syst´emov´e operace. Lmbench je pro to ide´aln´ı n´astroj, jak jiˇz bylo naps´ ano v´ yˇse v kapitole 4.3.1. Nejprve bylo provedeno testov´an´ı zpoˇzdˇen´ı, n´aslednˇe pak testy datov´eho toku. Zpoˇ zdˇ en´ı Prvn´ı test je pˇrep´ın´ an´ı kontext˚ u pomoc´ı lat ctx. V grafu 5.4 je z testu patrn´e, ˇze opˇet zv´ıtˇezil Xen, zat´ımco nejh˚ uˇre, podle pr˚ umˇeru namˇeˇren´ ych hodnot, dopadl VirtualBox. Pˇresto pˇri velk´em mnoˇzstv´ı pˇrep´ınan´ ych kontext˚ u je na posledn´ım m´ıstˇe Xen HVM. Dalˇs´ı nepˇr´ıjemnou z´ aleˇzitost´ı je pagefault obzvl´aˇstˇe u virtu´aln´ıch syst´em˚ u, kdy se odloˇzen´a str´ anka mus´ı naˇc´ıtat z virtu´aln´ıho disku, coˇz je jeˇstˇe pomalejˇs´ı, neˇz u norm´aln´ıho syst´emu. Graf 5.5 ukazuje jak si virtualizaˇcn´ı n´astroje vedou. D´ale byla testov´ ana rychlost vytv´aˇren´ı procedur a proces˚ u. Z grafu 5.5 je patrn´e, ˇze pˇrekvapivˇe jeden z nejhorˇs´ıch v´ ysledk˚ u mˇel KVM spoleˇcnˇe s VirtualBoxem.
33
Obr´ azek 5.4: Latence pˇrep´ın´an´ı kontext˚ u
Obr´ azek 5.5: Zpoˇzdˇen´ı pˇri pagefault, vytv´aˇren´ı procesu atd.. Pˇ renosov´ e p´ asmo V t´eto ˇc´ asti budou virtualizaˇcn´ı n´astroje srovn´any z pohledu jejich datov´e prostupnosti vyj´ımaje diskov´ ych a s´ıt’ov´ ych operac´ı, jeˇz byly otestov´any v´ yˇse 5.1.1. P˚ ujde hlavnˇe o prostupnost pamˇeti, prostupnost rozhran´ı pro ˇcten´ı z disku, ale ne pˇr´ımo o ˇcten´ı z disku. D´ ale bude otestov´ ana propustnost obl´ıben´eho linuxov´eho n´astroje pipe. Pokud se jedn´ a o datov´ a rozhran´ı vˇetˇsinou paravirtualizovan´ y Xen nem´a takˇrka konkurenci. To je patrn´e z obr´ azku 5.6. Zaj´ımav´ yu ´kaz vznikl na grafu bw pipe, kde d´ıky sv´e rychlosti a menˇs´ı chybˇe mˇeˇren´ı pˇredbˇehl nativn´ı syst´em.
34
Obr´ azek 5.6: pˇrenosov´e p´asmo syst´emov´ ych rozhran´ı
5.1.4
Komplexn´ı testy
V t´eto ˇc´ asti bude testov´ an syst´em jako celek. Pro tento test byl vybr´an program ab, kter´ y je instalov´ an jako souˇc´ ast apache serveru.
Obr´ azek 5.7: Poˇcet vyˇr´ızen´ ych dotaz˚ u a zat´ıˇzen´ı procesoru Jak je viditeln´e z graf˚ u 5.7, na prvn´ım m´ıstˇe se um´ıstil paravirtualizovan´ y Xen, coˇz se dalo pˇredpokl´ adat z pˇredchoz´ıch test˚ u. Na dalˇs´ıch dvou m´ıstech se um´ıstili KVM a Xen HVM. Nejh˚ uˇre se um´ıstil VirtualBox.
35
5.1.5
Shrnut´ı porovn´ an´ı virtualizaˇ cn´ıch n´ astroj˚ u
Co se v´ ykonnosti t´ yˇce, na prvn´ım m´ıstˇe se um´ıstil Xen, protoˇze mˇel nejlepˇs´ı v´ ysledek v 14 z 16 test˚ u. Na druh´em m´ıstˇe se um´ıstil KVM s paravirtualizovan´ ym ovladaˇcem disku a s´ıt’ov´e karty a na tˇret´ım Xen HVM. Jak je patrn´e z test˚ u, v dneˇsn´ı dobˇe je paravirtualizace nejv´ ykonnˇejˇs´ım ˇreˇsen´ım, ale jen do doby, kdy pˇrijde Hybridn´ı virtualizace, kter´a by mˇela paravirtualizaci pˇrekonat.
5.2
Porovn´ an´ı efektivity vyuˇ zit´ı v´ yce procesor˚ u v smp
Porovn´ an´ı efektivity procesor˚ u bylo testov´ano na n´astroji KVM. KVM bylo vybr´ano, protoˇze dopadl nejl´epe z plnˇe virtualizovan´ ych n´astroj˚ u, a tak´e kv˚ uli jeho jednoduch´e konfiguraci a spr´avˇe virtu´ aln´ıch syst´em˚ u. Testy byly prov´adˇen´e na virtualizovan´em syst´emu, kter´ y obsahoval paravirtualizovan´e disky a s´ıt’ov´a rozhran´ı. Virtu´aln´ı syst´emy byly testov´any stejn´ ym zp˚ usobem jako v minul´e ˇc´ asti. Aby se otestoval symetrick´ y multiprocesing, byly testy v paraleln´ım reˇzimu. Poˇcet paraleln´ıch bˇeh˚ u odpov´ıdal poˇctu pˇridˇelen´ ych fyzick´ ych procesor˚ u. Nˇekter´e testy nemˇely ˇz´ adnou vypov´ıdac´ı hodnotu (z v´ ysledk˚ u nebylo nic poznat), proto byly vypuˇstˇeny. Dalˇs´ı testy byly vypuˇstˇeny z ˇcasov´ ych d˚ uvod˚ u. Pˇr´ıkladem za vˇsechny je netperf, jehoˇz v´ ykon zmˇena poˇctu procesor˚ u v˚ ubec neovlivnila. Tyto testy byly mˇeˇreny na poˇc´ıtaˇci, kter´ y obsahoval dva 4 j´ adrov´e procesory Intel Xeon na frekvenci 2.6GHz.
5.2.1
Syst´ emov´ e microbenchmarky lmbench
Na testech latence z grafu 5.8 nen´ı nic zvl´aˇstn´ıho, jedin´e co stoj´ı za zm´ınku je nedokonalost n´astroje KVM s osmi pˇridˇelen´ ymi procesory. V grafech je vidˇet obrovsk´ y n´ar˚ ust zpoˇzdˇen´ı, kter´ y neodpov´ıd´ a zdvojn´ asoben´ı z´atˇeˇze procesoru. 1
Obr´ azek 5.8: Efektivita pˇrep´ın´an´ı kontext˚ u Velkou latenci je moˇzn´e vysvˇetlit i pˇreplnˇen´ım tlb tabulky v procesoru, kter´a musela 1
Zajimav´e je sledovat v´ ysledky test˚ u spuˇstˇen´ ych na nativn´ıch procesorech. Jestliˇze nen´ı zat´ıˇzeno vˇsech 8 procesor˚ u je n´ ar˚ ust v´ ykonu odpov´ıdaj´ıc´ı pˇredpoklad˚ um. V pˇr´ıpadˇe z´ atˇeˇze vˇsech 8 procesor˚ u se d´ a vypozorovat aˇz nˇekolikan´ asobn´ y n´ ar˚ ust v´ ykonu. Jedin´e vysvˇetlen´ı, kter´e mˇe napad´ a je bud’ nˇejak´ a optimalizaˇcn´ı technika v procesorech intel, nebo vˇsechny procesory zpracov´ avaj´ı jedin´ y program. V pˇr´ıpadˇe ˇc´ıslo dvˇe procesor nen´ı obtˇeˇzov´ an jin´ ymi procesy a proto nemus´ı ˇcekat na sbˇernici a jin´e ˇca ´sti poˇc´ıtaˇce.
36
udrˇzovat velk´e mnoˇzstv´ı informac´ı o pamˇeti mapovan´e virtu´aln´ımi syst´emy. Tento probl´em by mohla vyˇreˇsit dalˇs´ı generace virtualizace, kter´a je obsaˇzen´a v procesorech od AMD s k´odov´ ym oznaˇcen´ım j´ adra barcelona. Barcelona, jak uˇz bylo zm´ınˇeno v pˇredchoz´ıch kapitol´ach 2.2.3, podporuje tzv. nested paging. U test˚ u datov´eho toku, jak je vidˇet v grafu 5.9, si KVM vede o pozn´ an´ı l´epe a efektivita pˇrenosu pomoc´ı pipe je dokonce lepˇs´ı jak u nativn´ıho syst´emu.
Obr´ azek 5.9: Efektivita vyuˇzit´ı v´ıce procesor˚ u Efektivita je opˇet vyj´ adˇrena jako pomˇer datov´eho toku a z´atˇeˇze procesoru v %. Pˇrekvapivˇe nejlepˇs´ı efektivitu pˇrep´ın´ an´ı kontext˚ u v˚ uˇci nativn´ımu syst´emu m´a virtualizovan´ y syst´em, kter´emu byly pˇridˇeleny 4 procesory. Je to zp˚ usobeno poklesem v´ ykonu v nativn´ım syst´emu a pˇrekvapiv´ ym udrˇzen´ım v´ ykonnosti ve virtu´aln´ım stroji.
5.2.2
Shrnut´ı test˚ u smp ve virtu´ aln´ıch syst´ emech
V pˇr´ıpadˇe, ˇze je potˇreba, aby virtu´aln´ı syst´em umoˇzn ˇoval zpracov´avat velk´e datov´e toky, je dobr´e virtu´ aln´ımu syst´emu pˇridˇelit vˇetˇs´ı mnoˇzstv´ı procesor˚ u. Naproti tomu v pˇr´ıpadˇe, kdy n´am jde o zpoˇzdˇen´ı syst´emu, nem´a pˇridˇelov´an´ı velk´eho mnoˇzstv´ı procesor˚ u v´ yznam. Nev´ yhodou virtu´ aln´ıch syst´em˚ u je jejich n´aroˇcnost na TLB. Kaˇzd´ y virtu´aln´ı syst´em m´ a sv´e mapov´ an´ı do fyzick´e pamˇeti a t´ım pˇret´ıˇz´ı TLB. Vyˇreˇsit tento probl´em je moˇzn´e pomoc´ı nov´ ych generac´ı virtualizac´ı, kter´e vn´aˇs´ı do procesor˚ u dalˇs´ı prvek virtualizace, a to lepˇs´ı podporu virtualizace pamˇeti, pˇr´ıpadnˇe pouˇzit´ım hugepage. Hugepage hostitelsk´emu syst´emu umoˇzn´ı vytvoˇrit vˇetˇs´ı pamˇet’ov´e segmenty, ˇc´ımˇz se zmenˇs´ı jejich poˇcet a uvoln´ı se tolik potˇrebn´ y prostor v TLB.
37
5.3
V´ ykon a efektivita provozu v´ıce virtu´ aln´ıch syst´ em˚ u najednou
V t´eto ˇc´ asti bude porovn´ ana v´ ykonnost a efektivita spuˇstˇen´ı jednoho aˇz 6 virtu´aln´ıch syst´em˚ u na jednom fyzick´em. Testy byly prov´adˇeny na sestavˇe obsahuj´ıc´ı procesor Intel Xeon s dvˇema j´ adry o frekvenci 1.6GHz a 8GB RAM. Byla vybr´ana sestava se dvˇema procesory i pˇres to, ˇze byla k dispozici sestava s osmi j´adry, protoˇze na sestavˇe s m´enˇe procesory je l´epe patrn´e pˇret´ıˇzen´ı. Testy byly prov´adˇen´e na virtualizaˇcn´ım n´astroji KVM, kter´e obsahovalo paravirtualizovan´e disky a s´ıt’ov´a rozhran´ı.
5.3.1
S´ıt’ov´ e operace
V´ ykon s´ıt’ov´ ych operac´ı byl testov´an v˚ uˇci hostitelsk´emu syst´emu, aby se zamezilo vlivu okol´ı a bylo moˇzn´e dos´ ahnout maxim´ aln´ıho v´ ykonu.
Obr´ azek 5.10: Efektivita a propustnost s´ıt’ov´eho rozhran´ı Z test˚ u uveden´eho v grafu 5.10 je zˇrejm´a stabilita v´ ykonu s´ıt’ov´ ych operac´ı. Sice na u ´kor efektivity, ale to jen minim´ alnˇe. Pˇri spuˇstˇen´ı v´ıce virtu´aln´ıch syst´em˚ u je moˇzn´e dos´ahnout dokonce vˇetˇs´ıho datov´eho toku.
5.3.2
Syst´ emov´ e microbenchmarky lmbench
Prvn´ı z kategorie test˚ u zab´ yvaj´ıc´ı se zpoˇzdˇen´ım je opˇet lat ctx, jehoˇz v´ ysledky jsou uvedeny v grafu 5.11. Pˇri provozov´ an´ı jedn´e aˇz tˇr´ı virtu´aln´ıch syst´em˚ u souˇcasnˇe nen´ı s pˇrep´ın´an´ım kontext˚ u probl´em, probl´em opˇet nast´av´a pˇri alokaci velk´eho mnoˇzstv´ı pamˇeti, kde uˇz se TLB tabulka um´ıstˇen´ a v procesoru dost´av´a do probl´em˚ u. Procesor je nucen tabulky mapov´ an´ı z virtu´ aln´ı pamˇeti na fyzickou a z fyzick´e na strojovou pamˇet’ naˇc´ıtat pˇr´ımo ze strojov´e operaˇcn´ı pamˇeti. Zpoˇ zdˇ en´ı Obecnˇe u test˚ u t´ ykaj´ıc´ıch se latence nen´ı probl´em provozovat 3-4 plnˇe vyt´ıˇzen´e virtu´aln´ı syst´emy na jednom dvou j´ adrov´em procesoru.
38
Obr´ azek 5.11: Latence pˇrep´ın´an´ı kontextu Pˇ renosov´ e p´ asmo I z test˚ u propustnosti pamˇeti, uveden´ ych v grafu 5.12 nen´ı s testovanou sestavou probl´em provozovat 3-4 plnˇe vyt´ıˇzen´e virtu´aln´ı syst´emy. Pˇri zvˇetˇsov´an´ı poˇctu virtu´aln´ıch syst´em˚ u se mus´ı dˇelit o pamˇet’ovou prostupnost a kles´a efektivita.
Obr´ azek 5.12: Propustnost pamˇet´ı
Diskov´ e operace Rychlost diskov´ ych operac´ı byla mˇeˇrena jen zbˇeˇznˇe. Proto byla vyuˇzita utilita lmdd, kter´ a je schopna otestovat z´ apis na disk. Mˇeˇren´ı ale poskytlo zaj´ımav´e v´ ysledky, jak je uvedeno v grafu 5.13. Pˇri z´ apisu jednoho virtu´ aln´ıho syst´emu na disk dosahuje sv´ ych standardn´ıch 57MB/s z moˇzn´ ych 160MB/s. Po spuˇstˇen´ı druh´eho virtu´aln´ıho stroje bylo provedeno bud’ chybn´e mˇeˇren´ı nebo doˇslo k nˇejak´e v´ yjimeˇcn´e situaci v syst´emu, proto tento test nebudeme br´at v u ´vahu. Zaj´ımav´e to zaˇc´ın´ a b´ yt pˇri spuˇstˇen´ı tˇret´ıho virtu´aln´ıho syst´emu. Celkov´a propustnost
39
Obr´ azek 5.13: Prostupnost blokov´eho ˇcten´ı z disku z´apisu na disk je r´ azem 135MB/ s, coˇz uˇz je skoro srovnateln´e s nativn´ım syst´emem. Pˇri zvyˇsov´ an´ı poˇctu virtu´ aln´ıch syst´em˚ u propustnost s menˇs´ım kol´ıs´an´ım nad´ale roste. Skoro to vypad´ a, jako by mˇelo KVM chybn´ y virtu´aln´ı ovladaˇc, nebo bylo umˇele limitov´ano.
5.3.3
Komplexn´ı testy
Komplexn´ı testy syst´emu jen potvrdily to co napov´ıdaly pˇredeˇsl´e syntetick´e testy. Speci´alnˇe u apache serveru je v´ yhodnˇejˇs´ı na jednom fyzick´em syst´emu provozovat v´ıce virtu´aln´ıch syst´em˚ u.
Obr´ azek 5.14: Apache server benchmark ab Optim´ aln´ı vyuˇzit´ı serveru s dvouj´adrov´ ym procesorem je 2-3 virtu´aln´ı syst´emy s webov´ ym serverem, coˇz je zˇrejm´e z graf˚ u 5.14.
5.3.4
Shrnut´ı v´ ysledk˚ u test˚ u virtualizace v´ıce virtu´ aln´ıch syst´ em˚ u na jednom fyzick´ em stroji
Jestliˇze chceme efektivnˇe vyuˇz´ıt server pomoc´ı virtualizace, je t´emˇeˇr vˇzdy v´ yhodnˇejˇs´ı spustit v´ıce virtu´ aln´ıch syst´em˚ u na jednom fyzick´em, a to i za cenu toho, ˇze jednotliv´e virtu´aln´ı 40
stoje budou pomalejˇs´ı. V pˇr´ıpadˇe, ˇze bychom chtˇeli provozovat jen jeden virtu´aln´ı syst´em, ˇcasto ztrat´ıme podstatnou ˇc´ ast v´ ykonu.
5.4
Porovn´ an´ı pln´ e virtualizace a paravirtualizace u KVM
V t´eto ˇc´ asti bude porovn´ an v´ ykon KVM s plnˇe emulovan´ ym hardwarem a KVM pro jehoˇz ’ diskov´e a s´ıt ov´e operace je pouˇzit paravirtualizovan´ y hardware. V tomto pˇr´ıpadˇe takt´eˇz na virtualizaˇcn´ım n´ astroji KVM. KVM bylo testov´ano na AMD AthlonX2 j´adra o frekvenci 2.5GHz a operaˇcn´ı pamˇeti o velikosti 8GB. Pˇri tomto porovn´an´ı bude postupov´ano trochu jin´ ym zp˚ usobem, protoˇze jsou porovn´av´any jen tˇri v´ ysledky. Nebudou zde uvedeny grafy, ale jen souhrnn´e v´ ysledky test˚ u uveden´e v tabulce 5.15, kter´e by mˇely b´ yt jen prost´ ym pohledem rozliˇsiteln´e.
5.4.1
V´ ysledky proveden´ ych test˚ u
Po prohl´ednut´ı test˚ u uveden´ ych v tabulk´ach v obr´azku 5.15 je zˇrejm´e, ˇze paravirtualizovan´ y ’ s´ıt ov´ y ovladaˇc funguje naprosto bez probl´emu, dosahuje dvakr´at vˇetˇs´ıho v´ ykonu a pˇritom vyuˇz´ıv´ a procesor stejnˇe jak plnˇe virtualizovan´ y s´ıt’ov´ y ovladaˇc. V diskov´ ych operac´ıch testovan´ ych pomoc´ı bonnie++ dosahuje paravirtualizovan´ y pˇr´ıstup takˇrka stejn´ ych v´ ysledk˚ u jako plnˇe virtualizovan´ y syst´em. Jedin´ y podstatn´ y rozd´ıl je v sekvenˇcn´ım ˇcten´ı, kde paravirtualizovan´ y pˇr´ıstup na disk dosahuje o 1/3 vˇetˇs´ı v´ ykon. Podstatn´a v´ yhoda je v efektivitˇe IO operac´ı, kde jsou paravirtualizovan´a zaˇr´ızen´ı 2x efektivnˇejˇs´ı at’ uˇz jde o rychlost nebo spotˇrebu procesorov´eho ˇcasu. V sekci micro benchmarku z lmbench, syst´em s paravirtualizovan´ ym zaˇr´ızen´ım dopadl t´emˇeˇr srovnatelnˇe s plnˇe virtualizovan´ ym syst´emem, coˇz se dalo oˇcek´avat, protoˇze j´ adro virtu´ aln´ıho syst´emu bˇeˇz´ı v reˇzimu pln´e virtualizace. Propad v´ ykonu paravirtualizovan´eho KVM v syntetick´ ych benchmarc´ıch si nedovedu rozumˇe vysvˇetlit.
5.5
N´ astroje potˇ rebn´ e pro proveden´ı vlastn´ıch test˚ u
Pro vlastn´ı testov´ an´ı je na DVD v adres´aˇri image pˇribalen i obraz disku virtualizovan´eho operaˇcn´ıho syst´emu Fedora8. Obrazy diku jsou uloˇzeny ve form´atu raw pro zajiˇstˇen´ı jednoduch´e pˇrenositelnosti mezi virtualizaˇcn´ımi n´astroji. Soubor fedora.img nese syst´em s plnˇe virtualizovan´ ym hardwarem, kter´ y je vhodn´ y pro pˇrevod do jin´eho virtualizaˇcn´ıho n´astroje a obraz fedoraio.raw obsahuje syst´em, do kter´eho byly pˇrid´any virtio moduly, kter´e zajiˇst’uj´ı paravirtualizovan´ y chod vybran´eho hardwaru pod virtualizaˇcn´ım n´astojem KVM. Na DVD jsou jeˇstˇe v adres´ aˇri tools pˇribalen´e virtualizaˇcn´ı n´astroje KVM, VMware Server, VirtualBox. N´ astroj Xen na DVD nen´ı, protoˇze jeho instalace pˇr´ıliˇs zasahuje do syst´emu a je lepˇs´ı ho nainstalovat s bal´ıˇcku distribuce. V´ ysledky test˚ u jsou uvedeny v souboru s n´azvem test.xls
5.6
Ostatn´ı testy uveden´ e na internetu
V t´eto ˇc´ asti budou shrnuty dalˇs´ı testy uveden´e na internetu. Prvn´ı z uveden´ ych, Linux KVM Virtualization Performance, je moˇzn´e nal´ezt na str´ank´ach serveru Phoronix, kter´ y se z velk´e ˇc´asti zab´ yv´ a problematikou Linuxu. V jednom ve sv´em ˇcl´anku na str´ance http://www. phoronix.com/scan.php?page=article&item=623&num=1 porovn´av´a QEMU + kqemu, Xen 3.0.3 a KVM Linux 2.6.20-rc3. V´ ysledky test˚ u uveden´e v ˇcl´anku odpov´ıdaj´ı v´ ysledk˚ um
41
uveden´ ym v t´eto pr´ aci. Za zm´ınku stoj´ı snad jen zlepˇsen´ı v´ ykonu KVM pˇri pamˇet’ov´ ych operac´ıch, oproti verzi KVM uveden´e na str´ank´ach. Dalˇs´ı test je uveden v ˇcl´anku na str´ance http://www.linuxinsight.com/finally-user-friendly-virtualization-for-linux. html. V tomto ˇcl´ anku byly srovn´any virtualizaˇcn´ı n´astroje zaloˇzen´e na QEMU, jako je KVM, samotn´e QEMU a QEMU + kqemu. Testy vyˇsly takt´eˇz podle pˇredpoklad˚ u, kde KVM skonˇcilo na prvn´ım m´ıstˇe, na druh´em QEMU + kqemu a na posledn´ım samotn´e QEMU. Dalˇs´ı str´ anka, kter´ a je k dosaˇzen´ı na odkazu http://www.cmg.org/measureit/ issues/mit41/m_41_1.html, neukazuje ani tak v´ ysledky test˚ u, ale ukazuje, jak je boj o prvn´ı pˇr´ıˇcky virtualizaˇcn´ıch n´ astroj˚ u siln´ y. V ˇcl´anku jsou srovn´any Xen a VMware ESX Server 2x v jednom testu, kaˇzd´ y od jin´e firmy a pokaˇzd´e s jin´ ym v´ ysledkem. Firm´am asi stoj´ı za to, zfalˇsovat v´ ysledky test˚ u.
42
Obr´azek 5.15: V´ ysledky test˚ u KVM s emulovan´ ym a KVM s paravirtualizovan´ ym hardwarem
43
Kapitola 6
Z´ avˇ er V t´eto pr´ aci jsem se snaˇzil o shrnut´ı d˚ uleˇzit´ ych pojm˚ u t´ ykaj´ıc´ı se virtualizace na platformˇe x86 a metod´ ach virtualizace vybran´ ych virtualizaˇcn´ıch n´astroj˚ u. Vybran´e n´astroje byly otestov´ any, a pokud to bylo moˇzn´e, navz´ajem porovn´any. Testy byly prov´adˇeny ve spolupr´ aci s firmou Red Hat, kter´a zajistila potˇrebn´e hardwarov´e vybaven´ı nutn´e pro testov´an´ı. Virtualizaˇcn´ı n´ astroje byly porovn´av´any v n´asleduj´ıc´ı oblastech: v´ ypoˇcetn´ı v´ ykon a efektivita prov´ adˇen´ı z´ akladn´ıch i komplexn´ıch syst´emov´ ych operac´ı, moˇznosti ˇsk´alovatelnosti a robustnosti, nebylo opomenuto ani na srovn´an´ı moˇznost´ı administrace a pˇr´ıvˇetivost uˇzivatelsk´eho rozhran´ı. V´ ysledky test˚ u jsou vˇzdy uvedeny pˇr´ımo v m´ıstˇe, kde je dan´a problematika testov´ ana, aby bylo zˇrejm´e jak´ ym zp˚ usobem, a proˇc se k dan´ ym v´ ysledk˚ um doˇslo. Testov´ an´ı bylo rozˇs´ıˇreno o porovn´an´ı v´ ykonnosti paravirtualizace a pln´e virtualizace u virtualizaˇcn´ıho n´ astroje KVM. D´ale je moˇzn´e pr´ aci rozˇs´ıˇrit o dalˇs´ı virtualizaˇcn´ı n´astroje, popˇr´ıpadˇe dalˇs´ı architektury poˇc´ıtaˇc˚ u umoˇzn ˇuj´ıc´ıch virtualizaci. V budoucnu by bylo moˇzn´e v pr´aci pokraˇcovat, otestovat a srovnat nov´e virtualizaˇcn´ı n´ astroje pomoc´ı dalˇs´ıch, l´epe c´ılen´ ych testovac´ıch n´astroj˚ u.
44
Literatura [1] WWW str´ anky. Kvm homepage. http://kvm.qumranet.com/kvmwiki. [2] WWW str´ anky. manualove stranky lmbench. http://www.bitmover.com/lmbench/lmbench.8.html. [3] WWW str´ anky. Qemu documentation. http://fabrice.bellard.free.fr/qemu/qemu-doc.html#SEC1. [4] WWW str´ anky. vmgl homepage. http://www.cs.toronto.edu/ andreslc/xen-gl/. [5] WWW str´ anky. Vmware homepage. http://www.vmware.com. [6] WWW str´ anky. Wikipedie internetov´a encyklopedie. http://en.wikipedia.org/wiki/Virtualization.
45