Virtualizáció ahogy (nekem) tetszik.

Fórumok

Bocsi a címért, de nem jutott eszembe, hogy tudnám tömören leírni azt amit akarok, ezért inkább csattanósra kanyarítottam. :-{)E
A lényeg, hogy szeretnék egy gazda Linuxot telepíteni, és azon több (nem feltétlenül egyszerre futó) virtuális gépet létrehozni. Arra gondoltam, hogy a gazda oprendszer az lenne amit a legjobban ismerek, tehát Fedora vagy CentOS, de az Ubuntu is elég kezelhetőnek tűnik. A virtuális gépeken, meg több fajta Linux (Ubuntu, UHU, Debian Frugalware, meg ami jön), amiket lehet próbálgatni, megismerni. Mostanában szeretnék alaposabban ismerkedni a Linux alatti programozással. Főleg a több platformon is (Win., Linux, BSD, stb..) használható programok fejlesztése irányában gondolkodom. Ezért gyakran előfordul, hogy contibuted, azaz idegen repositorykból származó programokat is telepítek, aminek elég gyakran nemkívánatos következményei is lehetnek (rendszer összeomlás). Arra gondoltam, hogy mielőtt veszelyes műveleteket végzek egy Linuxon, elmentem az egész virtuális gép imaget vagy könyvtárat és ha nem jól sül el valami, akkor nem a helyreállításra pazarolom az időmet (bár ezzel sokat lehet tanulni), hanem visszatöltöm a mentést és folytatom a "katasztrófa előtti" állapotból.
A hardver ami erre a célra rendelkezésemre áll: Intel P4 Celeron 2.4GHz, 1,5GB RAM, 2 db 120GB HDD, nVIDIA GeF4 MX440 64 MB RAM. Mindez egy Intel chipsetes P4i65G ASRock alaplapon ami eddig eléggé stabilnak bizonyult. Tudom jobb lenne egy valódi P4, a Celeron helyett, de ha nem muszáj nem ruháznék most be több 10 eFt-okat.

Szóval a kérdésem az lenne, hogy milyen virtuális gépet javasoltok?
Kézenfekvő gondolat a VMWare-Player vagy VMWare-Server, de ha Linux gazdagépen Linuxot futtatok, akkor arra nem alkalmasabb a Xen, vagy valami másik virtualizációs technika? Esetleg elég lehet egy jail, sandbox azaz egy chrootolt környezet is?
Egy másik fontos kérdés. Van-e arra lehetőség, hogy a virtuális gép fizikailag ne egy hdd image-n legyen (fix vagy folyamatosan növekvő helyet elfoglalva), hanem egy a gazdagép alól is látható alkönyvtárban, mert így pont annyi helyet foglal amennyi a benne lévő fájlok mérete. (Hangsúlyozom, hogy több virtuális gépről van szó.) A chrootolt módszerrel ez adott, de "valódi" virtuális gépek esetén melyik ad erre lehetőséget?
Hát így elsőre ennyi kérdésem lenne, de ha nektek már van tapasztalatotok, akkor nyugodtan hívjátok fel a figyelmemet olyan dolgokra is, ami majd menetközben adódik.
Amíg jönnek a válaszok elkezdem olvasni ezt: http://www.avaxio.hu/virttech_intro
:-{)E

Hozzászólások

VMware Player csak "lejátszik" azaz már kész rendszert futtat. Létrehozni vele nem tudsz környezetet.
Jail FreeBSD-n van, így a Linux-on nem tudsz ilyet csinálni (csak hasonlót).
Xen (3) alakul, játszani lehet vele (bár nem érdemes :D )
Én VMware Server-t használnék, mert ingyenes, legális, sokféle guest-et támogat, és a felsorolt host Linuxok mindegyikén fut.
Nem image módra csak annyi kérdésem volna hogy ext3-re hogyan akarsz mondjuk NTFS-t "rakni".
Esetleg a 2. HDD-t szétparticionálod és egy-egy guestnek adsz egy-egy particiót. De rosszabbul jársz vele helyigény szempontjából. Én image-et javaslok.
És végül: egy 3GHz P4-es ~ 14-15e Ft ma már.

Én qemut ajánlom kqemu kernel modullal. Így egyrészt linuxot szinte 100% teljesítménnyel virtualizálhatsz, másrészt a qcow image format tömörítő lemezformátum (pl. 2G-s virtuális vinyót tárolhatsz akár 1,5-ön is). (Bár szerintem qcow nem mountolható mount-tal) További előny, hogy segítségével rengeteg architektúrán lefordíthatod és kipróbálhatod a progid (pl. ppc, sparc).

azert az a 100% joval kevesebb szerintem, a prociido meg eleg jo, az I/O eleg gyatra (ebben mondjuk mindegyik az, meg a sajat driverkeszlet sem hoz jo eredmenyt, bar segit)
tovabbi ervek a qemu mellett/ellen:
+nyilt, hackelheto (ez mondjuk debug-kor hasznos, en mar volt, hogy hasznaltam ezt a tulajdonsagat)
+cross-platform, mondjuk ezt eleg kevesen hasznaljak ki (mas processzor-architekturaju programot/rendszert is futtathatsz)
+ext2/3 eseten tamogatott a "lyukas" file, azaz pl egy 2GB-os image csak 500MB helyet foglal, ha a tobbi teruletre a guest OS nem irt meg semmit (filetorleskor viszont nullakkal felul kell irni ahhoz, hogy fizikailag is torlodjon.. erre a devel listan volt regen valamilyen eszkoz)
+snapshot opcio, csak akkor irja vissza a winchester valtozasait az eredeti image-be, ha erre kulon megkered.. irhatja elvileg kulon file-ba is, de ezt meg nem probaltam
+qcow nem csak tomoritest tud, hanem titkositast is (bar nem szokas ezt hasznalni, teljesen jo a raw formatum, es ismeri nehany konkurens formatumat is)
+"mount filenev.img hova -o loop,offset=32256 -t vfat" paranccsal felmountolhatsz egy raw image-et egy konyvtarra, teljesen nativan (jo, az offset particios tablatol fugg, de altalaban ennyi)
+filerendszerbol vett konyvtarat is tud kulon image-kent kezelni (fat filerendszerrel), bar ez nem mukodik egyutt par opcioval (snapshot peldaul)
fontos megemliteni, hogy ez utobbi kettot esszel kell hasznalni, ha egyszerre hasznalja ugyanazt a host es a guest, akkor barmi megeshet (persze ha epp fut a guest, egyszerubb ahhoz csatlakozni, es azon keresztul irni a sajat filerendszeret)
+a virtualis gep allapota elmentheto/visszatoltheto (gyakorlatilag a memoriat irja ki lemezre), eleg hasznos funkcio
+"monitor", ami a regi gepek mernoki pultjanak felel meg, megfelelo atiranyitasok eseten akar meg scriptelheto is lehet bizonyos mukodes
-soros port emulacional hajlamos hulyeseget csinalni
-nem olyan hatekony, mint a xen (bar teljesen mas a celja), es valoszinu a vmware is raver par %-ot
-legutobb meg nem tamogatta a hardware-es virtualis gepes gyorsitast (azota lehet, hogy valtozott)

ez csak par erdekes funkcio.. vmware-t csak mezei felhasznalokent lattam, valoszinu annak is van legalabb ennyi plusz szolgaltatasa.. egy probat mindenesetre meger szerintem
---------------------
Time is like a drug. Too much of it kills you. - Pratchett

Hello,

szerintem ruhazz be par tizezret, megeri, hosszabb tavom meg foleg (vagy alternativ megoldaskent tolts le trialt). A virtualizaciora nekem eddig a legjobb alapnak a VMWare Workstation bizonyult, foleg ha kvazi laborkörnyezetet (szijjelhekkelos gepek) akarsz csinalni.

Azert VMWare, mert van GUI, kiforrott es könnyen kezelhető, emellett platformfuggetlen, hordozhatok az image-ek es vannak olyan funkcioi amik tudtommal masban nincsenek meg.

Azért Workstation, mert az ingyenes szerverben csak egy snapshotra van lehetoseg visszagörgetni, mig a workstationben több, sőt elégazó snapshotot is tud kezelni (pl. alaprendszer -> snapshot, utana gnome -> snapshot, majd vissza az elsore, KDE -> elagazo snapshot, es maris van ket kulonbozo rendszered amik kozott tetszes szerint valtogathatsz); lehet klonozni, linkelt VM-eket csinalni, stb. A snapshotokkal jelentos mennyisegu helyet lehet megtakaritani, mivel gyakorlatilag nem kell menteni ha valami rizikos dologba vagsz bele, csak csinalsz egy uj snapshotot amit legrosszabb esetben eldobsz.

A szerver ugyan nem rossz, de volt már rá példa hogy agyonvágtam benne VM-et mert hiányzott a WS-ből megszokott menü és azonnal kérdés nélkül csinált valamit. Mondjuk ha nem akarsz WS-t venni akkor még mindig a szerver a legjobb megoldas szerintem, kis trukkozessel meg olvasgatassal kezzel meg lehet csinalni ugyanazt... de azert az mecera.

A Xen-t és társait nem ismerem, de az én esetemben a VMWare-ben mindig megtalaltam ami kellett. Mondjuk engem erdekelne hogy ehhez kepest mit tudnak mas rendszerek nyujtani teszkörnyezet epitesehez. A chroot-okat meg szerintem felejtsd el. Jailben nem tudod ugyanazt megcsinalni mint VM-ben (barmilyenben), mert pl. adott a kernel, adottak bizonyos szolgaltatasok amiknek futniuk kell a gazdaoprendszeren, es utkoznek, adott a proc, a dev, a sys, stb... Amit a solaris zónái adni tudnak az hasonlít erre, és egész jól használható, de az meg nem linux ugye.

De. Ha Linuxot futtatsz Linuxon, kezenfekvobb lehet mas lehetosegeket is megvizsgalni. Ott van meg az OpenVZ is, valahol feluton a jail es a Xen kozott.
Mig a Xennel minden virtualis kornyezet egy sajat kulon (Xenre adaptalt) kernelen megy, az OpenVZ-nel egy kozos kernelen elnek a virtualis kornyezetek (kulonbozo Linux disztrok), es a host is. Ez adott esetben kenyelmesebbe teheti a hasznalatat, es kevesebb eroforrast igenyel.
A tobbinel nem tudom, mennyire kivitelezheto, de ennel a megoldasnal a virt. kornyezetek fajlai alapertelmezesben rendes fajlkent vannak jelen a gazda fajlrendszeren.
Ha altalanos megoldas kell, akkor en is a VMWare mellett teszem le a voksom, legyen az barmelyik kiadas. Nagyon kedvelem a qemut is, de Windowshoz nem a legfurgebb.
Nem utolso sorban ott van meg az UML is, ot sem kell leirni, sot.

Még tanulmányozom a témát és nem döntöttem. Windows gest esetén azt hiszem a a VMWare Player vagy Server lehet a jó választás.
Mindenestre a VMWare Player használata esetén jól jöhet ez az oldal: http://www.easyvmx.com/ ahol a virtuális diskeket (vmdk) és magát virtuális gép beállításait (vmx) lehet legeneráni, ha szükséges eléggé részletesen hangolva.
A Linux gestekhez, pedig valószínűleg többet is ki kell próbálnom. A qemu +kqemu biztosan közte lesz, szerintem ezzel fogom kezdeni.
Aki használt már Linux gazdán futó vendégként is Linuxot futtató virtualis gépeket azt kérem, továbbra is ossza meg velem a tapasztalatait!

Qemu-t a Linux on Linux esetben ajánlom nagyon alacsonyszintű hegesztésekre. Pl. szerintem semmi más nem tudja command line-ból, hogy adott a kernel image-t (normal file) adott initRD-vel X MB memóriával és adott a raw image-el mint hda inditsa el.

Chroot-ban software telepítések következményeit lehet hatékonyan vizsgálni, de egy qemu kell már annak eldöntésére, hogy az adott környezetet root filerendszernek véve felbootol-e. Persze a spéci hardware nem lesz meg, de szerintem az egyik virualizalt környezetben sem triviális.

Ja, egy raw image-et bármikor fel lehet loopback mountolni, ezzel a többi formátum már nem büszkélkdehet. És az se baj, ha egyik shell-ben chroot-olsz rá, máshol meg nem. Azaz te belátsz a cuccba, de a chroot környezetből indított dolgok nem látnak ki normális esetben. (kitörni ki lehet belőle, de gondolom elsősorban nem az érdekel)

Erdekes lehet meg a Linux-Vserver is. Regebben hasznaltam es nem rossz. Itt 1 kernel fut es azon belul vannak contextek ill. kihasznalja a namespaceket is. http://linux-vserver.org/