Op een computer staat normaal gesproken een besturingssysteem, zoals Windows of Unix. En zelfs wanneer er meerdere op staan, kan er toch maar een gelijktijdig worden opgestart. Totdat er gevirtualiseerd wordt. En dan kunnen er kosten bespaard worden!
Gevirtualiseerde machines zijn ‘machines’ (in werkelijkheid is het software) die doen alsof ze onafhankelijk werken. Een software pakket dat zich dus voordoet alsof het een onafhankelijke computer is. Dit wordt een virtuele computer genoemd.
Een virtuele computer werkt (‘draait’ in ICT jargon) in een ander besturingssysteem. Hoe moet men zich dit nu voorstellen? Laten we een praktisch voorbeeldje nemen. We kopen een server en zetten daar Microsoft Windows 2003 Server op. Dan installeren we daar een extra software pakket op. Dat heet op dit moment Microsoft Virtual Server 2005. We hebben nu de basis gecreëerd waar binnen we virtuele computers kunnen aanmaken.
In Microsoft Virtual Server 2005 kunnen we nu aangeven dat we bijvoorbeeld drie servers willen gaan aanmaken. We bepalen de harddiskgrootte per server, en kiezen een netwerkkaart. Er zijn ook nog wat andere instellingen die we kunnen, maar niet hoeven te bepalen. We installeren nu binnen deze virtualisatie software een Windows 2003 Server, waar we later bijvoorbeeld Exchange op kunnen installeren, maar ook twee FreeBSD machines, waarvan we er een als Apache webserver. En de andere als spamassassin spamfilter kunnen gaan laten werken. Nu hebben we op een fysieke machine drie servers geïnstalleerd.
De besturingssystemen die we in de virtuele computers laten draaien, hoeven dus niet hetzelfde te zijn als waarmee de server zelf geïnstalleerd is. Onderling hoeven ze ook niet hetzelfde te zijn. De virtuele computer wordt ook wel eens ‘guest’ genoemd. Vanzelfsprekend wordt de fysieke machine met het hoofdbesturingssysteem dat ‘recht op de hardware’ werd geïnstalleerd, ‘host’ genoemd.
Het besturingssysteem van de guest mag zelf niet rechtstreeks gebruik maken van de hardware, zoals de processor en de harddisk. Dat is immers al in gebruik door het host besturingssysteem. Om die reden ‘speelt’ de virtualisatie software alsof het hardware is. Het besturingssysteem in de guest weet dus helemaal niet dat het niet echt op fysieke hardware draait. Het wordt gefopt. Er is dus geen aparte besturingssysteem software voor nodig. Als kun je soms wel wat additionele zaken extra installeren, zodat de guest nog beter loopt.
In het verleden werd de virtualisatie techniek maar weinig toegepast. De guests draaiden immers naast elkaar op dezelfde host, en deelden op die manier de processorcapaciteit en het fysieke interne geheugen. Daardoor werden ze relatief langzaam. Dat is nog steeds zo, maar door de komst van nieuwe processoren worden de guests nog maar nauwelijks vertraagd. Dit niet op de laatste plaats omdat sommige servers, vooral daar waar maar weinig gebruikers met de server werken, soms 90% van de tijd ‘niets’ staan te doen.
Virtualisatie bespaart natuurlijk geld. Er is in totaal minder hardware nodig dan wanneer deze machines allemaal van eigen hardware zouden worden voorzien. Nu moet gesteld worden dat machines die voor virtualisatie ingezet moeten gaan worden, vaak wel extra geheugen nodig hebben en snellere processoren, maar dat is dan toch nog altijd goedkoper dan voor alle virtuele computers eigen hardware kopen.
Virtualisatie heeft nog een aantal andere voordelen. De belangrijkste heeft ons inziens alles te maken met beveiliging. Gevirtualiseerde computers werken in principe hardware onafhankelijk. Gaat een host kapot, en hebben we een goede kopie van de virtuele machines die daar op draaiden, dan hoeven we deze alleen maar te plaatsen en aan te zetten op een andere host. Zou de kapotte server niet gevirtualiseerd zijn, dan moet vrijwel altijd een nieuwe server helemaal van begin af aan geïnstalleerd worden. Het verschil tussen minuten en uren (soms dagen) werk voordat de server weer ‘in de lucht’ is.
Er zijn nogal wat softwarematige oplossingen in de markt gekomen waarmee virtuele computers opgezet kunnen worden. In bovengenoemd voorbeeld zien we dat Microsoft Virtual Server 2005 werd gebruikt, maar er zijn bijzonder goede (misschien wel betere) alternatieven beschikbaar. VMWare is, naast Xen, VirtualBox, Bochs en Qemu, daar een goed voorbeeld van.
VMWare is een softwarebedrijf dat in een klap het op vier na grootste softwarebedrijf ter wereld werd. Niet zo maar een speler in de markt, dus. Deze organisatie heeft zich geheel gericht op virtualisaties en is daar al een langere tijd mee bezig. Veel ICTers menen dat VMWare de betere virtuele software op de markt brengt. Interessant zijn de kosten. Voor 0 Euro mag bijvoorbeeld de VMWare Server software gedownload worden van de website van VMWare.
VMWare heeft als eerste softwareproductent iets bijzonders voor de x86-machines op de markt gebracht. We spreken hierbij over native virtualization. Hosted virtualization is niets anders als in de tekst hierboven beschreven. Hierbij draait de virtualisatie software op het hostbesturingssysteem. Bij native virtualization draait de virtualisatie software als zelfstandig besturingssysteem rechtstreeks op de host. Het wordt daarom ook wel eens aangeduid met ‘true virtualization’. Het zal vanzelfsprekend zijn dat men met de native virtualization de hoogste performance bereikt. Immers, er gaan geen onnodige kostbare resources als memory of processorcapaciteit verkloren door het aan het host besturingssysteem toe te wijzen.
Omdat native virtualization grote voordelen kent, en VMWare een krachtige concurrent is geworden, zien we dat een aantal organisaties bezig is om te onderzoeken wat ze daar aan kunnen doen of hoe ze daar gebruik van kunnen maken. Microsoft is natuurlijk een van die spelers, maar ook hardware producenten, zoals Dell en HP zijn hier mee bezig. Dell overweegt bijvoorbeeld om virtualisatie al in het moederbord mee te leveren. En HP levert al servers met VMWare producten voorgeïnstalleerd
Al klinkt het nog zo ideaal, aan virtualisatie kleven ook enkele nadelen. Immers, wanneer op een enkele host vier gevirtualiseerde computers draaien, en deze host gaat fysiek kapot, dan zijn meteen alle vier deze computers ‘down’. En machines die heel veel weg moeten schrijven naar en/of moeten inlezen van een harddisk, doen er vaak ook verstandiger aan niet te virtualiseren. Om technische redenen wordt het virtualiseren van machines die meer dan 4 GB intern geheugen nodig hebben, afgeraden. Al draaien er een paar op die manier uitermate succesvol bij Panthera. Computers waarop software draait dat gebruik maakt van bijzondere hardware componenten, is soms ook niet goed af met virtualisatie. Wie het proces van virtualisatie begrijpt, snapt meteen waarom dat zo is.