Via virtualisatie is het mogelijk een complete pc in een venster op uw desktop op te roepen. Zo'n pc-in-een-venster heet een virtuele machine. Die gedraagt zich echt als een pc en start dus ook op met een BIOS POST, net als een fysieke pc. In zo'n virtuele pc moet u dan ook een besturingssysteem installeren voordat u er iets mee kunt doen. En het neemt natuurlijk wel wat systeembronnen in beslag, want die virtuele pc en het daarop draaiende besturingssysteem draaien als een applicatie binnen uw normale desktopomgeving. Zoiets doet u dus alleen als u daar een grondige reden voor hebt. De meest voorkomende reden is nieuwe software of een nieuw besturingssysteem testen. Met zo'n virtuele omgeving kunt u namelijk snel een testsysteem opzetten en daar de nieuwigheden of wijzigingen mee uitproberen. Een andere reden is zogenaamde 'legacy software' aan de praat krijgen: software die bestemd is voor een platform uit het verleden en niet of niet behoorlijk draait onder uw huidige desktopbesturingssysteem. Het kost wel aardig wat geheugen en processorkracht, maar dan kunt u tenminste verder.
...

Via virtualisatie is het mogelijk een complete pc in een venster op uw desktop op te roepen. Zo'n pc-in-een-venster heet een virtuele machine. Die gedraagt zich echt als een pc en start dus ook op met een BIOS POST, net als een fysieke pc. In zo'n virtuele pc moet u dan ook een besturingssysteem installeren voordat u er iets mee kunt doen. En het neemt natuurlijk wel wat systeembronnen in beslag, want die virtuele pc en het daarop draaiende besturingssysteem draaien als een applicatie binnen uw normale desktopomgeving. Zoiets doet u dus alleen als u daar een grondige reden voor hebt. De meest voorkomende reden is nieuwe software of een nieuw besturingssysteem testen. Met zo'n virtuele omgeving kunt u namelijk snel een testsysteem opzetten en daar de nieuwigheden of wijzigingen mee uitproberen. Een andere reden is zogenaamde 'legacy software' aan de praat krijgen: software die bestemd is voor een platform uit het verleden en niet of niet behoorlijk draait onder uw huidige desktopbesturingssysteem. Het kost wel aardig wat geheugen en processorkracht, maar dan kunt u tenminste verder. Als u zelf werkt met een Linux of Mac OS X desktop, kunt u een virtuele XP of Windows 7 opstarten om specifieke Windows-applicaties die u nodig hebt toch te draaien als dat niet anders kan. En als u Windows 7 draait, maar graag een keer Linux wilt uitproberen zonder dat u meteen uw systeem moet veranderen, dan kan dat dus prima virtueel. Als u jaren geleden wel eens virtualisatie uitgeprobeerd had maar teleurgesteld was over de prestaties, dan is er wel een en ander veranderd op dat vlak. Moderne 64-bit processoren hebben immers speciale ondersteuning voor virtualisatie aan boord: dat noemen we ook wel hypervisorfunctionaliteit. Een hypervisor type 1 is een virtualisatiemotor die rechtstreeks op de hardware draait, zonder tussenliggend besturingssysteem. Een hypervisor type 2 draait als een applicatie op een onderliggend besturingssysteem, maar kan dankzij de virtualisatie-instructies in de processor een werksnelheid bieden voor de virtuele machine (vm), die bijna de echte pc benadert. Bij een type 1 hypervisor draait de vm effectief zo snel als de fysieke pc zou toelaten, alleen kunt u meerdere vm's op één fysieke pc draaien. Moderne virtualisatieapplicaties bestaan in twee varianten: 32-bit software en 64-bit software. Alleen bij de 64-bit software draaiend op een 64-bit systeem kunt u de hypervisorfunctionaliteit gebruiken en haalt u de grootst mogelijke werksnelheid. 32-bit software kan dat niet en moet dus werken met de fysieke processor voor zover het onderliggende OS dat toelaat en mogelijk maakt. Dat veroorzaakt overhead en werkt dus veel trager. Maar het is uiteraard nog altijd beter dan niets als u iets nieuws wilt testen of iets ouds wilt draaien. Er zijn enkele gratis virtualisatieproducten op de markt die alle benodigde functionaliteit bieden. De belangrijkste en bekendste zijn Microsoft Virtual PC en Virtual Server, VMware Workstation en Server en de VirtualBox-oplossing van Oracle. Omdat we praten over een virtualisatieoplossing voor de desktop, bekijken we Microsoft Windows Virtual PC, Oracle VM VirtualBox, RedHat KVM en VMware Workstation. Alleen VMware Workstation kost geld, de andere drie zijn gratis. We hebben de vier pakketten getest op dezelfde desktop-pc (Pentium DualCore E6700 3,2 GHz met 6 GiB ram). We installeerden twee besturingssystemen: 64-bit Windows 7 SP1 Ultimate en 64-bit Ubuntu Linux 10.04.2 LTS 'Lucid Lynx'. Oracle en VMware werken op zowel Windows als Linux, maar Microsoft VirtualPC draait alleen op Windows 7 en RedHat KVM alleen op Linux. Oracle VirtualBox bestaat trouwens ook voor de Mac, maar bij VMware moet u niet Workstation, maar Fusion hebben voor de Mac. Die bespreken we hier niet specifiek. De conclusies van dit artikel zijn geldig voor Windows 7, Linux en Mac OS X. Microsoft nam Connectix over, dat VirtualPC voor de Mac maakte. Dat is dus dezelfde VirtualPC waar ook Oracle VM VirtualBox op gebaseerd is. De twee afstammelingen konden echter niet méér verschillend zijn. Microsoft maakte van Virtual PC iets dat alleen onder Windows werkt en alleen Windows vm's ondersteunt. Microsoft heeft van de oorspronkelijke host- en gastondersteuning van Connectix niet veel overgelaten. Microsoft Windows Virtual PC of kortweg VPC draait alleen op een Windows 7 host en ondersteunt als gast alleen werkstations vanaf XP of servers vanaf 2003. (De beperktere voorganger Virtual PC 2007 is nog steeds verkrijgbaar voor Vista of XP.) U kunt een 32-bit gast in een 64-bit host draaien, maar niet omgekeerd. En in een 64-bit host kunt u alleen een 32-bit gast draaien, Microsoft ondersteunt geen 64-bit gasten. Er zijn ook geen drivers om integratie met de fysieke onderliggende Windows-desktop van de Windows 7 host mogelijk te maken. Eigenlijk moeten we dus zeggen dat VPC alleen compatibel is met Windows 7 als host en met 32-bit Windows XP of 2003 of hoger als gast. Er is een 'XP Mode' beschikbaar om snel en naadloos specifieke XP-applicaties te draaien die weigeren in Windows 7 te draaien. Er is geen multiprocessor- of multicore-ondersteuning en de vm kan maar maximaal 3,6 GiB werkgeheugen toegewezen krijgen. Dat is het normale maximum voor een 32-bit Windows XP. De vm kan niet op afstand bediend worden, maar de gast-Windows kan natuurlijk wel de bureaublad-op-afstandfunctie gebruiken. Microsoft ondersteunt zowel usb als audio in een vm en tot vier virtuele netwerkadapters. Er is geen snap- shot-functionaliteit, maar via een 'undo-disk' kunt u wel een eenmalige terugrol (rollback) uitvoeren. Scripting is zo goed als onmogelijk en vm's kunnen niet gekopieerd of gekloond worden. Er zijn geen import- of export- of conversiemogelijkheden voorzien van virtuele media of de vm's zelf naar andere formaten. Microsoft Windows Virtual PC werkt zoals de leverancier zegt. U kunt een 32-bit XP of een latere Windows desktop of server in een vm installeren en dat werkt prima. Dit is echter duidelijk bedoeld als een noodoplossing voor legacy Windows-software die niet werkt onder een modernere Windows. Oracle kreeg VirtualBox in handen bij de overname van Sun. En Sun kreeg het zelf in handen bij de overname van het Duitse Innotek, dat VirtualPC voor OS/2 en Windows maakte. Innotek had een licentie verworven van Connectix, dat VirtualPC voor de Mac maakte. En zo wordt meteen duidelijk dat Microsoft Windows Virtual PC en Oracle VM VirtualBox een gemeenschappelijke voorouder hebben. Ze zijn alleen héél anders uitgedraaid. Sun heeft indrukwekkend werk verricht op basis van de Innotek-code voor VirtualPC. De code is namelijk volledig vernieuwd en op de klassieke Unix-manier opgebouwd als een client/serversysteem. Oracle VM VirtualBox ondersteunt heel wat hostplatformen: naast Windows bijna alle versies van Linux, Solaris en Mac OS X op een Intel-cpu. Aan de gastkant komen we ook niets tekort: 32- en 64-bit Windows-versies vanaf Windows NT 4.0 (maar dus geen Windows 9x), OS/2 Warp 4.5x (MCP2-versie), bijna alle Linux-varianten, FreeBSD, Solaris, en zelfs Mac OS X is aan de gang te krijgen in een vm. Voor de meest uitgebreide functionaliteit en integratie in de reële gebruikersdesktop moet in een gastsysteem de VirtualBox Guest Additions geïnstalleerd worden (alleen Windows XP of hoger en Linux). Maar ook zonder die Guest Additions kunt u allerlei platformen toch wel aan de gang krijgen in een vm. VirtualBox ondersteunt usb en audio en naast zijn eigen virtuele-hardeschijfformaat vdi ook dat van de concurrenten: vhd (Microsoft) en vmdk (VMware). Daarnaast kan het ovf-appliances importeren en exporteren. U kunt verder snap-shots van vm's maken en die op datum terugzetten. Vm's op afstand besturen via rdp is ook mogelijk. VirtualBox ondersteunt tot 32 cpu's; vier virtuele netwerkadapters zijn mogelijk. Er is in totaal maximaal 16 GiB ram mogelijk en dat kan dan ook vrijelijk toegewezen worden aan gasten. Helaas biedt VirtualBox momenteel geen dynamische geheugentoewijzing, waardoor elke vm ook evenveel geheugen verbruikt als in zijn configuratie gedefinieerd staat. Er is bij VirtualBox voorlopig alleen experimentele ondersteuning voor Aero en DirectX 3D beschikbaar. Oracle VM VirtualBox blijkt de meest uitgebreide ondersteuning voor legacy platformen te hebben van allemaal. DOS, Windows NT, NetWare en zelfs OS/2 zijn mogelijk binnen een vm. De headless-functionaliteit van VirtualBox is overigens zo uitgebreid, dat die prima bruikbaar is voor scripting. Vm's kunnen overigens gekopieerd of gekloond worden en de virtuele harde schijven kunnen omgezet worden naar andere formaten. VirtualBox ondersteunt sinds versie 4 het maken van een snapshot van een draaiende vm. Zelfs 'levende' migratie naar een andere host is mogelijk, maar niet vanuit de gui - dat moet met terminalbevelen gebeuren. De grafische applicatie waarmee u VirtualBox beheert, heet officieel VM VirtualBox Manager en ziet er exact hetzelfde uit voor Windows, Linux en Mac OS. Links is er een afrollijst van alle gedefinieerde virtuele machines, rechts daarvan de detailinformatie van de gekozen vm en bovenaan een knoppenbalk met de meest gebruikte functies: Nieuw, Instellingen, Start of Weergeven, en Verwerpen. Deze interface dient uitsluitend voor het beheer van vm's. Er is een wizard voor het aanmaken van een nieuwe vm en voor het definiëren van opslagruimte. Instellingen opent een nieuw venster met tabs waarin alle configuratieopties te vinden zijn. VirtualBox gebruikt in tegenstelling tot Microsoft en VMware geen bedrijfseigen netwerk, geluids- en grafische kaarten, maar emuleert standaardhardware. (In de laatste versie is er wel een generieke netwerkdriver voorzien.) Daardoor hebben de meeste besturingssystemen geen speciale drivers nodig voor deze hardware en kan VirtualBox platformen virtualiseren waarvoor bij de concurrentie geen ondersteuning bestaat. Niettemin hebt u dan wel de VirtualBox 'Guest Additions' nodig. De vm's van VirtualBox werken snel op voorwaarde dat uw systeem genoeg fysieke ram heeft. Bij het aanmaken van een vm valt op dat het creëren van een nieuwe virtuele harde schijf langzaam gaat, het langzaamste van allemaal. Maar als dat eenmaal achter de rug is en er voldoende geheugen aanwezig is, werkt alles pijlsnel. KVM staat voor 'kernel-based virtual machines'. Het werd oorspronkelijk ontworpen door de grootste Amerikaanse producent van Linux: Red Hat. Dat bedrijf gaf de code echter vrij in open source en volgens de GPL2-licentie. De benodigde KVM-code is standaard in de Linux-kernel opgenomen sinds versie 2.6.20. KVM zit alleen in de 64-bit kernel, uiteraard, aangezien het de hypervisorfunctionaliteit van moderne 64-bit processoren vereist. Aan de gastzijde ondersteunt KVM alles wat zijn virtuele hardware kan herkennen. KVM-hosts kunnen 64-bit Linux of FreeBSD zijn. Aan de gastkant emuleert KVM een Cirrus CLGD 5446 PCI VGA-kaart, i440FX host PCI bridge en PIIX3 PCI-naar-ISA-brug, als geluidskaart naar keuze een Sound Blaster 16, Ensoniq AudioPCI ES1370, Gravis ultrasound GF1 of CS4231A-compatibele geluidskaart; als netwerkkaart AMD Am79C970A, E1000 (Intel 82540EM, 82573L, 82544GC), Novell NE2000, en Realtek 8139. Bijna alle ons bekende besturingssystemen hebben wel drivers voor een of meerdere van deze hardware-onderdelen. Er kan maximaal 32 TiB ram gebruikt worden en KVM ondersteunt tot 64 cpu's of cores, maar minder in een vm (zie verder). Qua functionaliteit krijgt u binnen een KVM-vm veel, maar niet alles wat een doorsnee Linux doorgaans biedt. Zo heeft een vm audio en usb, maar geen grafische 3D. Een vm kan wel 'levend' gesnapshot worden en ook 'levend' gemigreerd naar een andere KVM-host voor zover die van dezelfde opslagruimte gebruik maakt. Er is geen voorziening om hostfolders te delen met een vm en een klemborddeling is ook niet mogelijk. KVM ondersteunt maximaal 16 cpu's of cores binnen een vm. Het ondersteunt alle versies vanaf Windows NT 4.0 als gast, maar geen Windows 9x. Ook geen OS/2, maar wel Netware 4.1 onder FreeDOS 7. Alles kan headless draaien en vm's kunnen dan bereikt worden via vnc of tls. Het hele systeem is ontworpen voor scripting en werkt standaard eigenlijk zonder beheer-gui. Er zijn meerdere beheerconsoles voor KVM beschikbaar, maar voor desktopgebruik raden wij virt-manager aan. Die kan trouwens ook gebruikt worden voor de Xen-virtualisatiemodule die eveneens aanwezig is in de kernel van Linux. Standaard zit KVM in de 64-bit Linux-kernel, maar de meeste Linux-distributies hebben standaard niets geïnstalleerd om daarvan gebruik te kunnen maken. U moet dus eerst QEMU-KVM-pakketten installeren plus een gui om het geheel mee te beheren. Wij kozen daarvoor het virt-manager-pakket. Vervolgens komt u een struikelblok tegen dat aantoont dat KVM eigenlijk ontworpen is voor Linux-servers. De hele omgeving veronderstelt namelijk dat u de vm's als root wil uitvoeren. Dat is wat ons betreft totaal ongewenst. Daardoor krijgt u een foutmelding zodra u een virtuele machine in virt-manager probeert aan te maken, want die probeert te schrijven in /var/lib/libvirt/images en daar heeft alleen de root schrijfrechten voor. U moet dus eerst in de voorkeuren van virt-manager een andere doeldirectory voor de virtuele harde schijven opgeven waar u als gewone gebruiker wél schrijfrechten toe hebt. Een andere optie is de /var/lib/libvirt/images-directory eerst met chmod een rechtenwaarde van 755 mee te geven, zodat gewone gebruikers er ook mee kunnen werken. Pas daarna lukt het aanmaken van een vm. Dat aanmaakproces gaat erg vlug en ook de resulterende vm maakt een snelle indruk. Er zijn opties beschikbaar om virtuele harde schijven van concurrerende virtualisatieproducten of zelfs beeldkopieën van fysieke systemen om te vormen tot het img-formaat dat KVM zelf gebruikt. VMware is natuurlijk het bekendst als het om virtualisatie gaat. Het is bijna de koning op dat gebied en eigenlijk ook de norm waaraan de concurrentie zich noodgedwongen spiegelt. VMware Workstation zal zo ongeveer het oudste product van VMware zijn. Het is ook een van de weinige die niet gratis zijn. Wat ons betreft zien we eigenlijk niet goed in waarom VMware voor de Workstation-versie geld blijft vragen terwijl alle concurrentie gratis is. Het grote geld zal VMware hiermee sowieso niet verdienen. Overigens kunt u de functionaliteit van Workstation wel gratis krijgen door voor VMware Server te kiezen. Dat neemt wat meer resources in beslag, maar kan wel op afstand met een webbrowser beheerd worden. Workstation is bedoeld voor een desktop-pc. Een andere mogelijkheid is voor de gratis VMware Player te kiezen. Daarmee kunt u sinds versie 3 namelijk ook vm's aanmaken. Maar VMware positioneert de Player eerder als 'beter' alternatief voor Microsofts XP Mode. Workstation biedt ook meer functionaliteit. We concentreren ons hier dus op dat product, maar vinden wel dat VMware zijn desktopaanbod nodeloos versnipperd heeft. VMware Workstation kan draaien op 32-bit of 64-bit hosts met Windows XP of hoger of Linux. Voor de beste prestaties kiest u natuurlijk best voor een 64-bit host met Intel VT of AMD-V ondersteuning in de cpu. Als gast kunt u bijna alle versies van Windows, Linux, *BSD of Solaris draaien. Een VMware-vm gebruikt een min of meer standaard hardware-omgeving voor de schijfcontroller, de audiohardware en de netwerkkaart, maar niet voor de virtuele grafische kaart. Dus als u een hogere resolutie wenst dan vga en een fatsoenlijke integratie met de host-desktop, dan moet u de VMware Tools in de gast installeren. Voor een vm ondersteunt VMware Workstation hooguit twee virtuele cpu's of cores en tot 8 GiB werkgheugen per vm. Voor meer dan dat moet u overstappen naar VMware Server of de ESXi hypervisor. Er is ondersteuning voor snapshots, maar die zijn alleen bruikbaar in Workstation. Als u in een vm Windows 7 installeert, dan kan de Aero-functionaliteit van Microsoft daarin draaien. Een vm is op afstand bestuurbaar via vnc. VMware Workstation ondersteunt het 'headless' werken en biedt dan ook allerlei functies die binnen scripts gebruikt kunnen worden. Het is mogelijk meerdere VMware Workstations in teamverband te laten samenwerken voor lastenverdeling, maar als u dat wilt doen, raden wij toch het gebruik van VMware Server of hoger aan. Een 'levende' migratie van vm's naar andere Workstation-hosts is niet voorzien, maar een snapshot van een draaiende vm wel. Workstation ondersteunt tot tien virtuele netwerkkaarten. VMware laat u naast ide en sata ook voor scsi kiezen voor de virtuele harde schijven en cd- of dvd-drives. VMware biedt voor Workstation dezelfde grafische omgeving aan onder alle besturingssystemen waarvoor Workstation beschikbaar is. De basis is een tabbladinterface, waarin elke vm zijn eigen tab heeft. Daarboven bevinden zich bedieningsknopjes om de vm's snel mee te beheren en helemaal bovenaan is er een uitrolmenu. Daar zien we 'File', 'Edit', 'View', 'VM', 'Team', 'Windows' en 'Help'. Die 'Windows' slaat niet op het besturingssysteem, maar op de diverse Workstation-vensters die geopend zijn. Een vm kan binnen Workstation draaien in zo'n tabblad, maar kan ook losgekoppeld worden en een eigen venster krijgen op de hostdesktop. Headless is ook mogelijk en dan kan de vm bediend worden via VNC. VMware heeft nog altijd een voorsprong inzake systeembronnengebruik, omdat het dynamische geheugentoewijzing ondersteunt. Hierbij krijgt een vm slechts zoveel werkgeheugen als hij werkelijk nodig heeft, en niet zoals bij de concurrentie wat hij vraagt. VMware is daarmee de enige producent waarbij u bijvoorbeeld 6 vm's van elk 1 GiB werkgeheugen kunt draaien in een host met maar 3 of 4 GiB fysieke ram. Voorwaarde is natuurlijk dat die vm's elk maar een paar honderd MiB werkgeheugen vereisen. Qua prestaties moeten we zeggen, dat een VMware-vm sneller aanvoelt dan diezelfde vm bij de concurrentie. Ook het aanmaken van een vm lijkt sneller te gaan. Het voornaamste nadeel van Microsoft Windows Virtual PC en KVM is dat ze alleen op hun eigen platform draaien, respectievelijk Windows 7 en 64-bit Linux. Microsoft ondersteunt bovendien geen andere virtuele besturingssystemen dan zijn eigen Windows-varianten. Oracle VM VirtualBox en VMware Workstation bieden ontegenzeggelijk de meeste functionaliteit en naar we zelf konden vaststellen ook de hoogste prestaties. Maar omdat VirtualBox gratis is, geven we daaraan uiteraard de voorkeur, ook al duurt het aanmaken van een virtuele harde schijf bij VirtualBox wat langer.Johan ZwiekhorstAls u jaren geleden wel eens virtualisatie uitgeprobeerd had maar teleurgesteld was over de prestaties, dan is er wel een en ander veranderd op dat vlak. Er zijn meerdere beheerconsoles voor KVM beschikbaar, maar voor desktop-gebruik raden wij virt-manager aan.