De eerste versie van Hyper-V is al bijzonder populair en steeds meer organisaties gebruiken deze technologie om hun servers te virtualiseren. Kostenbesparing op het gebied van hardware en energie is daarbij vaak een belangrijk argument. In dit artikel zullen we bekijken welke vernieuwingen er zijn toegevoegd in Hyper-V 2.0 en wat ze voor u kunnen betekenen. Wat dacht u bijvoorbeeld van Live Migration?

De eerste versie van Hyper-V is al bijzonder populair en steeds meer organisaties gebruiken deze technologie om hun servers te virtualiseren. Kostenbesparing op het gebied van hardware en energie is daarbij vaak een belangrijk argument. In dit artikel zullen we bekijken welke vernieuwingen er zijn toegevoegd in Hyper-V 2.0 en wat ze voor u kunnen betekenen. Wat dacht u bijvoorbeeld van Live Migration?
Voor bedrijven is de keuze voor Hyper-V als virtualisatieplatform prijstechnisch erg interessant. Maar ook een functie als het maken van Snapshots is een geweldige feature. Hiermee is het bijvoorbeeld mogelijk om allerlei configuraties eerst te testen, met de garantie dat al die wijzigingen daarna ook weer volledig ongedaan gemaakt kunnen worden. En nu komt Hyper-V 2.0 met nog meer features. Live Migration is zonder twijfel de meest besproken feature in Hyper-V 2.0.
In dit artikel doen we daarom uitgebreid verslag van Live Migration, maar eerst gaan we kijken naar wat Hyper-V 2.0 ons nog meer gaat brengen. Enjoy the ride!
VHD- en pass-through disks kunnen nu zonder reboot toegevoegd worden aan een VM.
Figuur 1: VHD- en pass-through disks kunnen nu zonder reboot toegevoegd worden aan een VM.
Live storage toevoegen
Vanaf nu is het mogelijk om VHD- en passthrough disks toe te voegen aan een VM zonder deze uit te zetten of te rebooten (zie Figuur 1). VHD-disks zijn in werkelijkheid bestanden en pass-through disks zijn fysieke schijven die volledig worden toegekend aanéén VM. Deze disks moeten SCSI-disks zijn en geen IDE. Een virtuele SCSI-controller is default al aanwezig in een VM en dit kan uitgebreid worden tot vier controllers. Iedere SCSI-controller ondersteunt zestien SCSI-disks, dus dit biedt een totaal van maar liefst 64 disks. Helaas is het alfabet te kort om deze allemaal van een driveletter te voorzien. Let er wel op dat je nu SCSI-disks live (hot add) kunt toevoegen, maar de controllers niet. In de fysieke wereld is dit overigens niet anders.
Nadat u een SCSI-disk hebt toegevoegd, zult u deze in de VM aantreffen onder Disk Management. Hier kunt u de nieuwe disk initialiseren en formateren. Wanneer u deze disk live verwijdert uit de VM en later weer toevoegt, zal de disk niet langer als foreign disk worden gezien, wederom net als in de fysieke wereld.
SLAT
In een Windows-besturingssysteem wordt onderscheid gemaakt tussen de physical address space en de virtual address space. De virtual address space wordt gebruikt door Windows-applicaties die draaien in usermode. De lees- en schrijfacties die plaatsvinden in het virtuele geheugen worden door de kernel vertaald in fysieke adressen. Virtuele machines maken net zo goed gebruik van deze techniek, hoewel de fysieke adressen in een VM in feite niet echt fysiek zijn.
Als een VM een voor hem fysiek adres aanspreekt, wordt deze door de hypervisor alsnog vertaald naar een daadwerkelijk fysiek adres. Dat betekent dat virtuele adressen in een VM eerst vertaald worden naar een fysiek adres volgens het OS, waarna ze nog een keer vertaald worden door de hypervisor naar een echt fysiek adres. Deze extra vertaalslag is een zware taak voor de hypervisor en neemt veel geheugen in beslag voor de vertaaltabellen.
SLAT is een techniek die daarbij kan helpen. SLAT staat voor Second Level Address Translation en dit zorgt ervoor dat de hypervisor niet langer hoeft te vertalen. Deze tweede vertaalslag kan namelijk ook in hardware worden gedaan. SLAT moet echter wel door de processor ondersteund worden. Is dat het geval, dan zal de hypervisor van Hyper-V 2.0 dit automatisch opmerken en hier gebruik van maken. Dit resulteert dus in een zuiniger Hyper-V host met betrekking tot processorbelasting en geheugengebruik. Let bij aanschaf van nieuwe servers dus op SLAT-ondersteuning. Bij AMD-processors wordt hiervoor de term Enhanced Page Tables (EPT) gebruikt en Intel noemt dit Nested Page Tables (NPT).
Logische processorverdubbeling
Het aantal logische processors waar Hyper-V 2.0-VM’s mee overweg kunnen is 32. Dat is een verdubbelling ten aanzien van Hyper-V 1.0. Een fysieke installatie van Windows Server 2008 R2 ondersteunt 256 logische processors, wat ook een verdubbeling is. Ter verduidelijking: het aantal logische processors is gelijk aan het aantal fysieke processors vermenigvuldigd met het aantal cores per processor, vermenigvuldigd met het aantal threads per core.
Dynamisch geheugen
Met Hyper-V 2.0 is het mogelijk om het totale geheugen van een host dynamisch te verdelen over de virtuele machines die daarop draaien. Dit betekent dat VM’s tijdelijk meer geheugen kunnen gebruiken als dat nodig is en ook weer geheugen moeten inleveren als de noodzaak weg is. Je configureert je VM’s daarvoor met een minimum en maximum hoeveelheid geheugen. In de VM zelf draait hiervoor een Balloon driver. Zo’n ballon heeft invloed op het geheugen dat is toegewezen aan de VM. Een goed gevulde ballon zorgt ervoor dat er minder geheugen overblijft voor de VM omdat de ballon een groot deel van het geheugen aan zichzelf toewijst. Dit geheugen kan door de hypervisor aan een andere VM worden toegekend.
Een nagenoeg lege ballon zorgt dus voor meer geheugen in de VM. De ballon zal zichzelf vullen als de VM op een bepaald moment met minder geheugen uit de voeten kan. Met deze techniek kan de optelsom van het geheugen van alle VM’s hoger zijn dan het totale fysieke geheugen. Dat resulteert in hogere serverconsolidatie, oftewel meer VM’s op een host. Het is op het moment van schrijven nog onduidelijk of deze techniek tijdens de release van Windows Server 2008 R2 ook daadwerkelijk gereed is.
Importverbetering
De mogelijkheid om een export van een VM te doen om deze later weer te importeren bestond uiteraard al. Het was echter nog niet mogelijk om VM’s te klonen zonder ze eerst handmatig te generaliseren (voor sommigen beter bekend als syspreppen). De importfunctie kan nu een nieuw ID toekennen aan de VM tijdens het importeren. Een dergelijke optie zagen we al eerder in System Center Virtual Machine Manager 2008.
Enlightenment voor Linux
Besturingssystemen met kernelenlightenment, zoals Windows Vista SP1, weten dat ze virtueel draaien op een Microsofthypervisor. Zij hebben een hogere performance omdat zij rechstreeks met de VMBus kunnen communiceren. VM’s zonder kernel-enlightenment maken gebruik van de device emulation layer. Speciaal voor de Linux-community heeft Microsoft een device driver ontwikkeld om Linuxdistributies van Enlightenment te voorzien. Op 20 juli 2009 heeft Microsoft deze code gelicenseerd onder GPLv2, wat dezelfde vrije licentie is waaronder de Linux-kernel zelf valt. Bovendien is dit de eerste keer dat Microsoft de GPLv2 gebruikt.
Live Migration
Voor velen zit de grote magie van Hyper-V 2.0 toch echt in Live Migration. Voor hen is dit vaak de belangrijkste reden om over te stappen naar Windows Server 2008 R2. Maar wat is Live Migration nu precies? Een migratie van een virtuele machine is het verhuizen van een virtuele machine van de ene node (ofwel host) naar de andere node. Dit is echter reeds mogelijk in Hyper-V 1.0 en dit wordt ook wel quick migration genoemd.
Quick migration werkt redelijk snel, maar afhankelijk van de bandbreedte en de hoeveelheid geheugen van de VM duurt dit nog wel seconden tot minuten. Live Migration is beduidend sneller. Sneller betekent in dit geval vooral dat connecties naar een virtuele machine niet verloren zullen gaan. Anders gezegd: er zal geen TCP/IP timeout optreden en eindgebruikers ervaren geen downtime! VM-migraties vinden enkel plaats op nodes die samen in een failover cluster zitten.
De Failover Cluster Manager is dan ook de tool om migraties mee uit te voeren. Er bestaan twee vormen van failover, een doelbewuste failover en een failover die geschiedt omdat een node crasht. Een migratie is een doelbewuste failover van een virtuele machine. Tijdens zo’n failover wordt het geheugen van een VM verplaatst naar een andere node. De bits op de disk hoeven niet te worden verplaatst omdat deze op een shared storage staan. Laten we eens nader kijken naar de verschillen tussen een Quick Migration en Live Migration.
De werking van Quick Migration.
Figuur 2: de werking van Quick Migration.
De werking van Live Migration.
Figuur 3: de werking van Live Migration.
Quick Migration failover
  1. Een draaiende VM wordt opgeslagen in ‘save state’ mode, wat betekent dat de inhoud van het geheugen wordt opgeslagen op disk. Vanaf dat moment is de machine onbereikbaar (down). Save state is dezelfde techniek als hibernation.
  2. De geheugendump wordt gekopieerd naar de andere node. Dit proces betreft het grootste gedeelte van de downtime.
  3. De VM wordt weer gestart op de anderenode. Alle voorheen draaiende processen gaan weer verder met hun taken. De VM is weer bereikbaar.
Live Migration failover
  1. Het geheugen van de machine wordt gekopieerd naar de andere node. Dit gebeurt terwijl de machine op de originele node blijft draaien. Tijdens het kopieren blijft de machine draaien en daarom zullenpagina’s in het geheugen veranderen. De veranderde pagina’s worden dirty pages genoemd.
  2. Er vindt opnieuw een kopieeractie plaatst, maar nu worden enkel de dirty pages gekopieerd. Omdat dit beduidend minder zal zijn dan de eerste kopieerslag gaat dit veel sneller. Ook nu blijft de VM gewoon draaien en zullen er weer dirty pages onstaan. Je begrijpt dat we nu in een loop zijn terechtgekomen. Na iedere kopieerslag zijn er immers weer nieuwe dirty pages. Maar omdat iedere volgende kopieerslag korter is, zullen er minder pages veranderen. En dat resulteert in een nog kortere kopieerslag. Dit proces herhaalt zich tot er een bepaalde minimumwaarde (ofwel threshold) is bereikt.
  3. Omdat het aantal dirty pages nu minimaal is, wordt de machine gestopt, op dezelfde manier als bij quick migration. De werkelijke migratie gaat nu echter enorm snel omdat er vrijwel niets meer hoeft te worden gekopieerd.
  4. Op de andere node wordt de machine weer gestart. Ook hier geldt dat alle voorheen draaiende processen weer verder gaan met hun taken.
Na de migratie
Als een migratie, quick of live, is afgerond, moet er nog een kleine update gedaan worden. De netwerkswitch weet immers niet beter dan dat een bepaalde computer (de VM) te bereiken is via een bepaalde poort. Dat is niet meer zo; een eenvoudig ARPpakketje naar de switch zorgt ervoor dat de switch zijn tabel weer in orde heeft. Deze migratie en de update van de switch kunnen gedaan worden voordat er een TCP/ IP-connectie time out plaatstvindt. Dat betekent dat de clients geen weet hebben van de migratie naar de andere node. Een migratie kun je handmatig starten vanuit de Failover Cluster Manager. En in Hyper-V 2.0 heb je dan de keuze tussen Quick en Live Migration (zie Figuur 4).
Vanuit de Failover Cluster Manager kun je handmatig een migratie starten.
Figuur 4: vanuit de Failover Cluster Manager kun je handmatig een migratie starten.
System Center VMM
Gebruikt u System Center Virtual Machine Manager 2008 R2 (SCVMM), dan is het ook mogelijk hier een Live Migration te starten. Maar het wordt pas echt mooi als u er ook nog System Center Operations Manager (SCOM) bij heeft. SCOM is namelijk in staat om te detecteren dat een bepaalde Hyper-V-host zijn resources (processor, geheugen, netwerk en/of harddisk) zwaar belast heeft, terwijl een andere Hyper-V-host zijn resources nauwelijks gebruikt. SCOM kan dan besluiten om een ‘schop’ tegen SCVMM te geven, die vervolgens door middel van Live Migration een VM van de ene host naar de andere host verhuist. Volledig automatisch dus! Het gevolg is dat de resources in een cluster beter verdeeld worden. Het gevolg is natuurlijk ook dat wij beheerders niet meer weten waar onze virtuele machines draaien. Maar ja, als het werkt, moeten we daarvan wakkerliggen?
Maar wacht even, wat gebeurt er eigenlijk als je een VM verhuist van de ene naar de andere node als de processors daarvan niet hetzelfde zijn? Dat was in het verleden inderdaad een probleem. Als een bepaalde applicatie gebruikmaakt van een bepaalde instructieset op een processor, dan wordt het schrikken als die instructies na de migratie plots niet meer uitgevoerd kunnen worden. Met behulp van Processor Compatibility kan een genormaliseerde instructieset worden aangeboden aan de VM. De extra instructies op een processor worden dan niet zichtbaar voor de VM. Let wel op dat het hier slechts gaat om verschillende versies van processors. Met andere woorden, Intel- en AMD-processors gaan niet samen in een failover cluster met Hyper-V virtuele machines.
Clustered Shared Volumes
Zoals gezegd is Live Migration snel, maar er is nog één factor waar nog ruimte is voor verbetering. De shared storage waar gebruik van gemaakt wordt is namelijk enkel toegankelijk voor de actieve node. Dat is de node waar de VM op een bepaald moment op draait. Tijdens een migratie wordt een andere node actief en zal ook de LUN waar de VHD op staat toegankelijk moeten worden voor deze node. Je begrijpt dat dit wat tijd kost, ook dit zal hooguit enkele seconden zijn.
NTFS is out-of-the-box geen clustered file system. Dat betekent dat het niet mogelijk is dat meerdere nodes tegelijkertijd gebruikmaken van een LUN. Maar met de komst van Clustered Shared Volumes (CSV’s) kunnen LUN’s worden aangesproken door meerdere nodes tegelijkertijd! De tijdwinst tijdens een migratie is niet het enige voordeel van een CSV. Zonder CSVs ben je namelijk ook verplicht om niet meer dan één VHD op een LUN te plaatsen. U wilt immers niet dat tijdens de migratie van een VM andere VM’s toegang tot hun VHD verliezen. Op een LUN in een CSV kunnen wel meerdere VHD-bestanden staan.
Sterker nog, dat is veel gunstiger. U maakt immers ook geen aparte partitie aan voor ieder bestand dat u wilt wegschrijven. Een CSV wordt geconfigureerd in de Failover Cluster Manager. Na het inschakelen van deze feature ontstaat er een nieuwe container in de tree genaamd Cluster Shared Volumes (zie Figuur 5). Hierin heeft u de mogelijkheid om Storage toe te voegen. De keuzes hier zijn de LUN’s die u al eerder in uw cluster hebt opgenomen. Deze nieuwe storage verschijnt echter niet als nieuwe disk in Disk Management, maar als subfolder in je systeemdrive. Hierdoor bent u niet langer beperkt door de
26 driveletters uit het alfabet.
Na het inschakelen van Clustered Shared Volumes is dit ook te zien in de tree.
Figuur 5: na het inschakelen van Clustered Shared Volumes is dit ook te zien in de tree.
Zelf aan de slag
Heeft u de smaak te pakken gekregen en wilt u graag zelf aan de slag met Live Migration? Hier volgen dan enkele tips voor een evaluatie. Zorg ervoor dat u drie of vier fysieke machines hebt waarvan er twee hardwarevirtualisatie ondersteunen. Deze twee machines worden de nodes in de failover cluster. Een failover cluster werkt enkel als de nodes lid zijn van een domein. Het derde systeem wordt dan je domain controller. Daarnaast heb je ook een SAN nodig. Hiervoor kun je gebruikmaken van de Windows Storage Server 2008 en Microsoft iSSCI-target software.
Bent u niet in het bezit van Windows Storage Server 2008, dan is Starwind iSCSI target trial software een goed alternatief. In dat geval kunnen uw SAN- en DC-rol op hetzelfde systeem worden geïnstalleerd. Voor de nodes hoeft u geen iSCSI-initiator te installeren omdat dit sinds Windows Server 2008 een standaardfeature is. In een productieomgeving gebruikt u bij voorkeur een apart netwerk voor het SAN, heartbeat en het bedrijfsnetwerk. In een testomgeving is dit wenselijk, maar niet noodzakelijk. De cluster validatiewizard zal u hier op attenderen.
Gebruik een Gbit Switch voor uw proefstelling. 100 Mbit is niet voldoende voor Live Migration. Het zou mooi zijn als u de VM voorziet van een fileshare met een videobestand. Dit videobestand kunt u dan streamen terwijl u de Live Migration laat plaatsvinden. Als de video zonder hapering blijft doorspelen, dan kun u zichzelf feliciteren.
Voorbeeld van een testopstelling voor Live Migration.
Figuur 6: voorbeeld van een testopstelling voor Live Migration.
Ten slotte
We hopen dat u met dit artikel meer duidelijkheid heeft gekregen over de vernieuwingen in Hyper-V 2.0 en de werking ervan. Met name Live Migration is een belangrijke nieuwe feature waarmee nog beter een stabiele uptime gegarandeerd kan worden. Dit maakt een upgrade naar Windows Server 2008 R2 nog een stuk waardevoller.