VirtualBox - messze vagyunk még... sajnos :(

Előrevetem, hogy ez nem egy VirtualBox-fikázó topic. Nem kell ajánlani VirtualBox helyett VMware-t, Xen-t, KVM-et, akármit, mert magam is használom ezen termékeket (mondjuk KVM-et nem) és ismerem jóságaikat - rosszaságaikat.

A VirtualBox egyszerűen érdekelt, mert önmagában szimpatikus, kellemesen nyílt forrású, és oly' sokmindent hall róla az ember innen-onnan.

Ez itten egy egyszerű termékteszt.

Fogtam tehát egy vasat (a történeti hűség kedvéért: HP Proliant ML350 G6, 2x Xeon E5504, 16GB ECC RAM, HP P410i SAS RAID, 6x300GB SAS RAID6) és pattintottam rá egy minimál-linux alaprendszert (nyomokban Squeeze-t tartalmazhat) és arra 4.x-es VirtualBox-ot. A történet a 4.0.4-es verzióval kezdődött, időközben frissítgettem, és most, a 4.0.14-nél húztam le végleg a rolót.

Az hamar kiderült, hogy nem úszom meg a GPL berkein belül, hiszen szerver környezetben nyilván headless kell futtatnom a guesteket, akkor pedig (V)RDP-re van szükségem. Na sebaj, most épp így jártunk.

Létrehoztam négy virtuális gépet. Mivel a guest-eknek itt-ott szükségük volt némi CPU-kraftra, ezért guestenként 2-4 processzormagot osztottam ki, 1-2-4 giga memória, egy virtuális LSI SCSI vezérlő, és Intel Pro/1000 ethernet társaságában.

Megkezdtem az első guest telepítését: 32 bites, Windows Server 2003 Standard formájában. Már a telepítés során jöttek érdekességek: intenzívebb I/O műveleteknél a guest néha meg-megakadt, sőt, egyszer mintha teljesen le is fagyott volna. Ekkor játszottam a VM beállításaival, kikapcsoltam a virtuális SCSI vezérlőnél a "host cache" opciót, és aztán - most vagy ennek köszönhetően, vagy véletlen egybeesés - végigment a telepítés, és első blikkre minden jónak is látszódott.

Az első napokban a guesteket néha újra kellett indítanunk különböző szoftverek telepítése miatt. Ekkor általános tapasztalattá vált, hogy az esetek nagy részében a guest OS nem tudott szabályosan leállni, hanem a poweroff előtti utolsó(?) fázisban megakadt, és ilyenkor már VBoxManage segítségével sem lehetett a virtuális gépet kikapcsolni/resetelni, hanem "kill -9" kellett a VM processznek.

További tapasztalat volt, hogy óriási az overhead - amikor a négy guest az idle loopon kívül nem csinált semmit, akkor is összesen több, mint egy processzormagnyi system time ment a levesbe. Ekkor a host gép kernelében átállítottam a CONFIG_HZ értékét 1000-re, és látványosan javult a dolog.

Még csemege, hogy az 1-nél több processzormaggal rendelkező VM-ek esetében, a Windows guest-ek órája össze-vissza járt. Hiába volt ntp kliens, egyik pillanatról a másikra nagyokat ugrált az óra - hogy összességében sietett 20 perc alatt fél napot :) - az még hagyján, de hogy visszafelé is ment az idő, az néhány guest-ben futó programot kiakasztott. Azon már csak mosolyogtunk, amikor az éjjel 03:00:00-ra beállított backup nem futott le - mert a guest egyszerűen átugrotta ezt az időpontot :) Ezen a host kernel commandline-ba illesztett "divider=10 clocksource=acpi_pm" opció segített, de teljesen tökéletes sosem lett a dolog.

Egyszer szóltak a fejlesztők, hogy valamit köhög a guest-be telepített SQL Server 2005, és hibásak egyes adattáblák. Megnéztem, masszívan sérült volt alatta az NTFS fájlrendszer. Hümm. Megjavítottam, majd a későbbiekben még egyszer előfordult fájlrendszer korrupció. Ekkor - jobb ötlet híján - átállítottam a virtuális LSI SCSI vezérlőt egy "mezei" PIIX4 ATA vezérlőre, hátha ott a probléma - mivel ezt kínálja alapból a VirtualBox is, gondoltam, lehet, hogy csak én vagyok olyan barom, hogy a default helyett mást választok, és esetleg nincs tesztelve megfelelően az LSI SCSI emuláció.

Hogy ez segített-e valamit, az már nem fogjuk megtudni. Meguntuk ugyanis, hogy összességében a rendszer állandó meglepetésekkel szolgált. Az volt az utolsó csepp a pohárban, hogy nagyobb I/O műveleteknél néha olyan szinten belassult a VM-ben minden, hogy pl. egy 3GB-os ZIP kicsomagolásakor a VM még pingre sem válaszolt.

Csalódott vagyok, és szurkolok a fejlesztőknek, hogy rövidesen a VirtualBox valóban olyan "Enterprise" termék legyen, mint ahogy az a weboldalának kezdőlapján kiírva szerepel.

A pórul járt VM-eket pedig addig is betoltuk vCenter-be.
Brühühü :(

Hozzászólások

Azért a két szoftver nem egy súlycsoportba tartozik ezt lássuk be. Ha meg nem csak játszótérnek használod, akkor jobb lenne egy storage-t is beújjítani és oda migrálni a gépeket majd iscsi-vel felcsatolni a lunokat, bár a fibre channel sokkal megbízhatóbb. 6x2TB-s diskekkel, darabja 2500€ körül van+fc kartyak es a storage maga -nem olcso mulattság, az tény - főleg ha EMC a hw, de megéri!

-
Debian Squeeze

azt remelem te sem gondolod komolyan, hogy a storage hibajabol volt szar neki a vbox?
mar a vboxot igy hasznalni is komoly WTF-okat valtott ki belolem, ez a komment meg meginkabb :)

az FC -vel baromira nem ertek egyet, mind a bekerulesi, mind a fenntartasi koltsege nagyobb, mint az iSCSI -nak, es cserebe nem nyujt annyit. tudok boven nagy helyrol (>>100 VM), ahol jo az IO terheles, es iSCSI -val boldogan elvannak. a 10g meg mindig olcsobb, foleg, hogy az osszes uj szerver azzal jon.

Azt hiszem egyertelmű volt hogy komoly megoldást javasoltam. VBox vállalati környezetben valo NEM felhasználása nem volt kérdés.

Én is tudok helyekről ahol iSCSI van használva, jópár álmatlan éjszakát okoztak a másik földrészről exportált, nagy terhelés alatt kieső lun-ok.

-
Debian Squeeze

Hirtelen volt egyszer szuksegeunk nagyon gyorsan virtualizaciora.
OpenVZ -t lottunk fel, es hirtelen azota is nyugodt vagyok. (8 VM, 16G RAM, szabadon garazdalkodhatnak a VM -ek, nem kis terheles alatt...)

Gusztustalan modon egy oreg PowerVault 221S -at raktunk egy S5000PAL hatara, 2*HW raid5 -el, + ezt osszetaknyoltam raid0 -ba, s ez lett xfs alatt bemountolva.
Koszoni szepen, minden szempontbol jol van (pedig lehetne iowait boven). Gepenkent 1 core lett dedikalva; ram -ban nincs megkotes.

Tehat nem eromu a cucc, de az OpenVZ remekul teszi a dolgat. Eszembe se jutna valtani.

VirtualBox viszont tenyleg nem erre valo.