De geschiedenis van virtualisatie binnen Microsoft gaat terug naar begin 2003 als Microsoft Connectix Virtual PC overneemt. Al snel wordt dit product Microsoft Virtual PC en in juli 2004 komt Microsoft met Virtual Server 2005. Beiden producten worden doorontwikkeld tot Virtual PC 2007 en Virtual Server 2005 R2. Zowel Virtual PC als Virtual Server zijn een emulatieproduct. De Virtual Machines die beide varianten bedienen maken 100% gebruik van emulatie hetgeen beide producten minder geschikt maar voor een zware workload.
Met de komst van Windows Server 2008 heeft Microsoft ook een Hypervisor Virtualisatie pakket genaamd Windows Server 2008 Hyper-V. Een Hypervisor is een dunne laag software die tussen de fysieke hardware en het besturingssysteem wordt geïnstalleerd. De omvang van de Hypervisor is niet groot, in het geval van Hyper-V is dit zelfs minder dan 1 MB. De Hypervisor zorgt voor de verdeling van de resources over de verschillende Virtual Machines op de betreffende server.
Als eerste wordt Windows geïnstalleerd op “Designed for Windows” hardware. Deze hardware moet aan een aantal eisen voldoen:
· De hardware moet 64-bits zijn (X64, geen Itanium);
· De processor moet of Intel VT of AMD-V enabled zijn;
· NoExecute bit moet in BIOS enabled worden;
Een volledige lijst kan gevonden worden op de Windows Server Catalog
Daarnaast moet de X64 versie van Windows Server 2008 gebruikt worden, een X86 (32-bits) versie van Hyper-V is niet beschikbaar.
Zodra Windows Server 2008 volledig is geconfigureerd kan Hyper-V geïnstalleerd worden. Hyper-V is binnen Windows Server 2008 een role. Deze wordt derhalve via de Server Manager via de optie “Add Role” geïnstalleerd. Aangezien Hyper-V tussen het besturingssysteem en de hardware wordt geïnstalleerd is een reboot van Windows Server 2008 noodzakelijk.
Na de reboot zijn er een aantal zaken wezenlijk veranderd. De reeds geïnstalleerde versie van Windows Server 2008 is nu ook een Virtual Machine geworden. Deze Virtual Machine wordt de “parent partition” genoemd. Vanuit deze Parent Partition worden de overige Virtual Machines aangestuurd, deze worden “child partition” genoemd. Het moge duidelijk zijn dat de Parent Partition extra beveiliging nodig heeft door deze verandering. Het beste is om op de Parent Partition geen applicaties te installeren, maar de Parent Partition moet bijvoorbeeld ook niet voor Internet browsen gebruikt worden. Het beste alternatief is om voor de Parent Partition Windows Server 2008 Server Core te gebruiken. Dit is een “uitgeklede” versie van Windows Server 2008 waarop ook de Hyper-V role geïnstalleerd kan worden. Omdat deze versie van Windows Server 2008 veel minder functionaliteit heeft is de attack surface ook veel kleiner geworden en het risico op besmetting van buitenaf ook veel minder.
Binnen de Parent Partition wordt bij de installatie van Hyper-V ook een Virtual Storage Provider of VSP geïnstalleerd. Dit is als het ware een multiplexer die de communicatie tussen de Child Partitions en de fysieke hardware coördineert. Een Child Partition met Windows Server 2008 of met Windows Server 2003 SP2 maakt gebruikt van een Virtual Storage Client ofwel VSC. De VSC communiceert met de VSP over de nieuwe VMBus. Dit is een point-to-point in memory bus waarmee een Child Partition met een Parent Partition communiceert. Hiervoor zijn nieuwe “synthetic drivers” door Microsoft geschreven. Zowel de VSP, de VSC als de VMBus draaien in de kernel mode van Windows Server 2008 waardoor deze opzet extreem snel is.
Oudere besturingssystemen als Windows Server 2000 en Windows NT4 maken geen gebruik van deze VMBus techniek. Om deze toch goed te laten functioneren wordt standaard hardware geëmuleerd zoals een 440-chipset moederbord, een Adaptec SCSI Controller card en een DEC Ethernet controller. Deze hardware wordt door 95% van de beschikbare besturingssystemen herkend en er zijn ook voldoende drivers voor beschikbaar.
Deze hardware wordt geëmuleerd door de VMWorker processes in de Parent Partition. Voor elke Virtual Machine draait een apart VMWorker process. De VMWorker processen draaien echter in User Mode op Windows Server 2008. Dus naast het emuleren van de hardware zal er bij communicatie tussen het betreffende Child Partition en de VMWorker process ook “context switching” (communicatie tussen kernel en user mode) plaats moeten vinden en dat kost relatief veel processor kracht. Dit is de reden dat emulatie veel minder effectief is dan de nieuwe VMBus structuur.
Hyper-V werkt niet alleen goed met Windows Child Partitions, ook Linux wordt geschikt gemaakt voor Hyper-V. Een Xen-enabled Linux kernel kan gebruik maken van nieuwe Integration Components welke door Microsoft beschikbaar zijn gemaakt. Met deze Integration Components kan ook de Linux Child Partition gebruiken maken van een de VSC’s en de VMBus structuur. Voorlopig is dit echter alleen te gebruiken voor SUSE Linux. Andere Linux Virtual Machines zullen gebruik moeten maken van de emulatietechniek.
Windows Server 2008 Hyper-V is uitermate geschikt om in een high-available omgeving te draaien. Voor een High Available omgeving wordt gebruik gemaakt van de fail-over cluster mogelijkheden van Windows Server 2008. De Virtual Machine bestanden worden in een fail-over cluster op een shared storage geplaatst. Dit kan een iSCSI of een fiber channel oplossing zijn. Bij een fail-over wordt de Virtual Machine tijdelijk opgeslagen (save) en wordt het .VHD bestand afgesloten. Dit wordt naar de andere node gebracht en vervolgens opnieuw opgestart. Dit proces duurt van enkele seconden tot een halve minuut, afhankelijk van de hoeveelheid geheugen van de Virtual Machine en de snelheid van de storage backbone. Dit gehele process wordt “quick migration” genoemd.
Windows Server 2008 Hyper-V is een onderdeel van de virtualisatielijn van Microsoft. System Center Virtual Machine Manager 2008 is de applicatie die samen met Hyper-V ingezet kan worden. Met VMM 2008 is het mogelijk om
· Een library met VM images te maken;
· Host configuratie te doen;
· P2V en V2V te doen;
· Powershell scripting toe te passen (erg krachtig!);
· “Delegation of Control” toe te passen.
De meest krachtige optie van VMM 2008 is om naast Hyper-V servers en fail-over clusters ook VMWare VI3 server volledig te beheren!
Zowel Windows Server 2008 Hyper-V als Virtual Machine Manager 2008 zullen in de tweede helft van 2008 op de markt gaan komen. Ga gerust eens aan de slag in een test omgeving met Hyper-V en kom zelf achter de bijzonder krachtige mogelijkheden van Hyper-V.
Meer informative over Hyper-V:
· Windows Virtualization Team Blog: http://blogs.technet.com/virtualization/
· Microsoft Virtualzation: http://www.microsoft.com/virtualization
· Nederlandse Virtualisatie site: http://www.hyper-v.nu
Jaap Wesselius is een MCSE, MCT en MVP (Exchange Server). Hij is werkzaam bij DM consultants (www.dm-consultants.nl)