Xen vs. KVM

Fórumok

Sziasztok,

A kérdés nagyjából adott.
Próbáltam mostanában ezt is, azt is. Flame nélkül kíváncsi lennék arra h. kinek mi a tapasztalata, illetve mire esküszik. Az olyan jellegű hozzászólásokat lehet mellózni h. xen az homokozós, mert Solaris a tuti és a Vmware, stb. Nem kellene ágyúval verébre támadni, 4-5 windows (XP) vm-et szeretnék egy blade-en futtatni kisebb-nagyobb feladatokra, ehhez keresem a megoldást.

Köszi,
Zoli

Hozzászólások

Szia !

nekem a xen vált be eddig, ez adta a legjobb teljesítményt is, igaz csak paravirtualizált módban.
fut nálunk is pár windows XP, win2k3 32 meg 64bites is gond nélkül stabilan, már van driver is a windowsokhoz. XEN-t megmértem már nagy hirtelen vmware esx 4 essel de a alapbeállításoknál a xenben futó virtuális gép gyorsabb volt. Majd valamikor ha lesz időm nézek egy KVM tesztet is.

ui: valamint szombaton virtualization day :> érdemes oda is elmenned tájékozódni, lesz próbalehetőség is.

Core2Duo T7100, 4G, Ubuntu 9.04, 2.6.30

Én több évig használtam munkahelyen hivatalosan XEN-t, magán célokra (szerveren, pc-n) KVM-et is. Mindekettővel vannak pozitív és negatív tapasztalataim.
KVM-et javasolnám mert ebben fut több mint egy éve, probléma nélkül szerveren W2K3. Utóbbi időben cégnél is KVM-re kezdtzünk áttérni a XEN-ben lévő gépek upgrade gondjai miatt (upgradu után nem indult) Véleményem szerint a KVM már túl van a gyermekbetegségei és rugalmasabb is mert:

- nem kell hozzá külön speciális kernel (sima disztró vagy vanilla kernelen megy), szemben a XEN-el,
- egyszerűen forgatható, kernel modulok (3db) + módosított qemu,
- van hozzá paravirtual net driver winhez, linuxhoz block is
- kezeli a LVM partíciókat
- áttekinthető, jól szerkesztett dokumentáció,
- elég gyors (újab tesztek szerint 2-4% CPU overhead csak)
- csak egy processz, lelőhető, jogokkal korlátozható, stb...
- egyszerű, snapshot mód,
- stb....

A fentiek miatt ahol virtualizálok, csak KVM-et használok, kivéve olyan helyen ahol csak Linux-ok mennek, oda a OpenVZ vagy LVS a legjobb megoldás,...

cryp

Csak Linux-ra a Xen is tokeletes, nalunk upgrade utani nem-indulas gond nincsen (kiveve a 4.0 eseteben, de az meg egyebkent is nagyon uj).

Nekem volt KVM-em, es ami azt illeti, meg boven van hova fejlodnie. Adminisztracios eszkoz hozza alapbol semmi nem jar, a teljesitmenye a Xen-ehez kepes messze elmarad, problemaja van a diskio-val is, szoval... boven van meg hova fejleszteni. Nalam tobb hatranya volt, mint elonye.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Ha hosszabb tavra tervezel akkor kvm. Xen-hez eleg sok okossag van ahogy nezegettem, de a kvm lesz szerintem a jovo, legalabbis a Redhat nagyon ebbe az iranyba kezd menni.
Windows xp-s vm-ekhez boven jo lesz, kezelese sem nehez.

-------------------------------
“The 0 in Raid 0 stands for how many files you’re going to get back if something goes wrong” :)

amit ajánlok, az Eucalyptus. támogatja a XENt és a KVMet is:) ma már az utóbbit használnám, ezek közül. sokban több, mint egy puszta XEN vagy KVM.

Windows XP-k virtualizálására javaslom az ingyenes Hyper-V Server 2008-at. Széles hardvertámogatottság, mikrokernel alapú Type 1 virtualizáció, kiváló IO teljesítmény, online guest backup...
Bővebb info itt.
Letölthető itt.

Üdv,
mrceeka

Desktopra vagy fejleszteshez boven eleg a VMware Server 1.x valtozata.
http://www.vmware.com/download/server/

A 2.x is jo, de szerintem az 1.x eleg ha az ember csak otthon akar egy virtualis gepet simogatni.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

hali

Most meglestem egy kicsit a kvm teljesítményét is. kernelfordítás makeallyesconfiggal 40 perccel továbbtartott mint xen domU alatt.

kis apache bench is volt phpinfo() val :>

xen-el
ab -c 100 -n 10000 http://192.168.2.155/phpinfo.php
Server Software: Apache/2.2.9
Server Hostname: 192.168.2.155
Server Port: 80

Document Path: /phpinfo.php
Document Length: 48502 bytes

Concurrency Level: 100
Time taken for tests: 42.510 seconds
Complete requests: 10000
Failed requests: 9894
(Connect: 0, Receive: 0, Length: 9894, Exceptions: 0)
Write errors: 0
Total transferred: 487442414 bytes
HTML transferred: 485181736 bytes
Requests per second: 235.24 [#/sec] (mean)
Time per request: 425.104 [ms] (mean)
Time per request: 4.251 [ms] (mean, across all concurrent requests)
Transfer rate: 11197.67 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 81 345.9 44 3450
Processing: 121 341 112.0 312 1387
Waiting: 18 91 85.9 52 479
Total: 138 422 362.0 360 3795

Percentage of the requests served within a certain time (ms)
50% 360
66% 388
75% 411
80% 422
90% 471
95% 718
98% 868
99% 3321
100% 3795 (longest request)

KVM-el

ab -c 100 -n 10000 http://192.168.2.88/phpinfo.php
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.2.88 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests

Server Software: Apache/2.2.9
Server Hostname: 192.168.2.88
Server Port: 80

Document Path: /phpinfo.php
Document Length: 48495 bytes

Concurrency Level: 100
Time taken for tests: 49.997 seconds
Complete requests: 10000
Failed requests: 9896
(Connect: 0, Receive: 0, Length: 9896, Exceptions: 0)
Write errors: 0
Total transferred: 487259480 bytes
HTML transferred: 484999480 bytes
Requests per second: 200.01 [#/sec] (mean)
Time per request: 499.972 [ms] (mean)
Time per request: 5.000 [ms] (mean, across all concurrent requests)
Transfer rate: 9517.31 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 28 283.7 1 3004
Processing: 11 470 253.5 440 4730
Waiting: 2 399 130.3 423 2391
Total: 12 498 368.0 442 4731

Percentage of the requests served within a certain time (ms)
50% 442
66% 466
75% 490
80% 508
90% 708
95% 856
98% 1349
99% 3048
100% 4731 (longest request)

Itt már azért nincsen akkora különbség a két gép között, viszont a kernelforgatas nem tom miért lett annyival rosszabb. Persze ezek eléggé reprezentatív adatok, mondjuk a kernelforgatást 2x is megcsináltam mert először nem akartam hinni a szememnek :D. Hátha ezek alapján van kedve valakinek egy mélyebb komolyabb tesztre benchmarkra :>

Core2Duo T7100, 4G, Ubuntu 9.04, 2.6.30

csináltam :> de a kvm es elveszett azt tudom hogy 131 perc volt

XEN alatti forgatás
kernel forditas makeallyesconfig al:
test01:/test/fajlrendszer# time make
real 91m35.334s
user 77m42.863s
sys 12m54.124s

de holnap meglesem a gépen is, bár annó megcsináltam csak nem tom hol van az eredmény, de emlékeim szerint pár perc volt a különbség. domU és dom0 kernelforgatásnál.

Core2Duo T7100, 4G, Ubuntu 9.04, 2.6.30

nahh ma megcsináltam natívan futtatva 4G ram 4 mag bár csak make -et adtam de azért dolgozott a többi mag is

make allyesconfig
real 107m20.696s
user 96m29.974s
sys 10m1.662s

KVM el meg:

real 144m23.171s
user 105m36.108s
sys 29m28.078s

Xen alatt még jobb volt mint most natívban :D igaz az nem 2.6.30.1 es kernel volt :>
de most tolok egy xen-t és meglesem "gyorsan" :D.

Core2Duo T7100, 4G, Ubuntu 9.04, 2.6.30

Milyen eszközön/formátumban vannak az image -ek? A writeback cache -t bekapcsoltad? Paravirtualizált drivereket használsz? USB eszközök le vannak tiltva KVM -nél? CPU pinning be van állítva 1:1 -re KVM -nél?

Hirtelen ezek jutottak eszembe amik nagyban befolyásolják a KVM teljesítményt és könnyű elsiklani a rossz beállítások fölött.

Megvalaszolom: sehogy:(

-cpu

Not currently exposed in the XML configuration.

If the emulator binary is 64-bit capable, but the requested guest architecture is 32-bit, then libvirt will set "qemu32" as the CPU type

-usb

libvirt will always enable USB for all guests, allowing for hotplug of USB devices even if none were initially specified at boot time. As such there is no configuration parameter required here.
[edit]
-usbdevice

http://wiki.libvirt.org/page/QEMUSwitchToLibvirt#-cpu

Nagy szar:(

tompos

Ha linuxot akarok virtualizalni akkor mi az ajanlott hosszu tavon? Pontosabban 3 servert raknek 1 erosre virtualba.
Xen es KVM kozott vacillalok. Virtualisation day-en Xen eleg megyozo volt, viszont nem volt KVM. KVM-et meg mar hasznaltam, de nagy tapasztalatom azzal sincs. A host is linux lenne.

nahh kész egy make allyesconfig kernel kb 600megás lett :D

Mindenhol alaptelepítés, a virtualizáció is alapbeálításokkal megy szóval sehol semmi tuning :>
feltételek azonosak LVM en futott mindkét guest, 2G ramot kaptak 1-1 procit.
A vas egy quad core xeon 4G ram 3x146G sas raid5ben. Oprendszerek mindenhol lenny amd64.

Host OS 4G ram 4mag
real 107m20.696s
user 96m29.974s
sys 10m1.662s

kvm
real 144m23.171s
user 105m36.108s
sys 29m28.078s

xen domU
real 120m29.326s
user 98m30.217s
sys 14m29.618s

Core2Duo T7100, 4G, Ubuntu 9.04, 2.6.30

Nekem a Proxmox nagyon bejott. OpenVZ es KVM egyutt. OpenVZ Linux futtatashoz (rendkivul kicsi footprint) es KVM barmi egyebhez. Minek a XEN-el bonyolitani a dolgokat, szerintem tenyleg csak bonyolitas. OpenVZ alatt pl. nem kell kulon swap, disk, meg miegyebb a virtualis gepekhez, online tudom allitani az osszes eroforrast, disk, cpu, memory. Ha host-rol ra akarok nezni a virtualis gep lemezere, akkor csak cd /vz/root/VEID/... es maris latom a file-okat, nem kell LVM magic es ugy mount-olni a host-on

Futtattam mar XEN-t, OpenVZ-t, KVM-t es vmWare-t is eles kornyezetben es mindig akkor doglottek meg a host-ok amikor a memoriak nem voltak beallitva rendesen a virtualis gepeken es beindult a swap valahol. Ezert is imadom az OpenVZ-t, ugyanis be tudom allitani, hogy egy virtualis gep mennyi memoriat hasznalhat, hany process-t indithat, stb... de ugy, hogy az nem kezd majd el swappelni, mivel nincs is swap-e ;-) Szoval egy VPS nem tudja megolni az egesz host-ot az IO-n keresztul a hulye swap-el, vagy mas baromsaggal. Persze ezt is be kell rendesen loni, kulonben fabatkat sem er.

Uff

Eltelt egy kis idő, így hát csináltam egy újabb gyors összehasonlító tesztet.
Fizikai gép mindkét esetben ugyanaz volt, 2 db dual core 2216HE processzor, 8G ram 1db 76G-s disk.
Az operációs rendszer mindenhol Debian 5.0 volt. A kvm ből a legújabb backportoltat raktam fel 2.6.32-es kernel, 0.12-es kvm, míg xen-ből a 3.2-es 2.6.26-os kernellel.
A virtuális gépek 2 procit kaptak, meg 2G ramot. Nem volt finomhangolás, hanem a default beállítások mentek. minden teszt megkezdésekor csináltam egy rebootot.

Nem sok tesztet futtattam:
crafty chessengine, dd, iperf, kicsomagolás, becsomagolás majd kernelforgatás.
Eredmények: http://ventura.unsoft.hu/virtualizacio-teszt-20100627.txt

Majd ahogy időm/kedvem engedi felteszem a legújabb 4.0 xen-t.

Ubuntu 10.04, Thinkpad x60s

A default beállítások teljesítményének tesztelésére igazságos, de egyébként olyan abszurd mint pl. apache vs lighttpd benchmark -ot csinálni 1000 szálon miközben az apache default MaxClients beállítása 256....

A KVM alapból writethrough cache -t használ a maximális adatbiztonság érdekében, a Xen pedig writeback -t a teljesítmény végett.

bekapcsoltam és meglestem gyorsan dd-vel, egyelőre jobb nem lett semmivel

10737418240 bájt (11 GB) másolva, 432,153 mp, 24,8 MB/mp
10737418240 bájt (11 GB) másolva, 430,051 mp, 25,0 MB/mp

update:
kernel forgatás is hasonló eredményt adott
real 63m6.241s
user 92m50.040s
sys 25m53.053s

Ubuntu 10.04, Thinkpad x60s

En VirtualBoxra eskudok, mondjuk nem szolgaltatast uzemeltetek rolla hanem tesztelesre / demozasra kell. Valoszinu v.szervert nem VBox alol tolnek.

-------------------------------
"A gorog katolikus noknek 8 dioptria alatt nem kotelezo a bajusz!" avagy "Nozni csak muholddal lehet..." | http://lazly.hu