Migreer je virtuele machines live
Gepubliceerd: Maandag 11 januari 2010
Auteur: Koen Vervloesem
Xen biedt de mogelijkheid om een hele virtuele machine van de ene naar een andere machine te migreren. Dat kan zelfs live, terwijl de virtuele machine blijft draaien. We gaan even in op de achtergrond hiervan en tonen hoe dit in de praktijk gaat.
Hoe werkt dit?
Xen begint een live migratie door een aanvraag voor een reservatie naar de doelcomputer te sturen. De doelcomputer controleert dan of hij de benodigde resources heeft om de virtuele machine aan te nemen. Accepteert hij de aanvraag, dan begint Xen geheugenpagina's van de virtuele machine naar de doelcomputer te sturen. Terwijl dit gebeurt, blijft de virtuele machine de hele tijd nog draaien op de broncomputer. Daardoor veranderen de geheugenpagina's die al gekopieerd zijn nog altijd, waarna ze telkens opnieuw gekopieerd worden.
Dit proces van kopiëren en herkopiëren bij wijzigingen blijft doorgaan tot er nog slechts een klein aantal geheugenpagina's overblijft dat frequent verandert. Op dat moment pauzeert Xen de virtuele machine en kopieert die laatste geheugenpagina's ook naar de doelcomputer. Daarna begint de virtuele machine op de doelcomputer te draaien.
De netwerkverbindingen blijven overigens behouden tijdens deze migratie, omdat de virtuele machine na de migratie een 'unsolicited ARP reply' stuurt om zijn nieuwe locatie te adverteren. Dat werkt alleen als de bron- en doelcomputer zich op hetzelfde fysieke subnet bevinden, want het IP-adres blijft identiek. Je kunt tijdens het migreren dus een ping-commando naar de virtuele machine uitvoeren, of vanaf de virtuele machine naar buiten, en normaal zou er geen packet loss mogen zijn.
Als je de optie --live van het commando xm migrate weglaat, voert Xen overigens een koude migratie uit. Dit ene commando savet de virtuele machine, zendt het naar de doelcomputer en restoret het daar. Dit vereist natuurlijk ook wel dat de storage via het netwerk bereikbaar is op beide computers.
En verder
Onder Red Hat Enterprise Linux kun je de live migratie van virtuele machines onder Xen ook uitvoeren met virsh, dat van de libvirt API gebruik maakt. Ook third-party tools zoals ConVirt maken live migratie mogelijk. Volgende week bekijken we hoe je live migratie doet in KVM en kijken we ook naar de libvirt-manier.
Bron: Techworld
