• Welcome to Advance DreamBox Forum. Please login or sign up.
 

CPU compatibiliteit

Started by arjanhs, May 15, 2009, 10:03:27 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

arjanhs

Microsoft had – net als VMware – het probleem op te lossen van de verschillen tussen CPU's bij live migration. Deze CPU compatibility eis bewaakt dat zowel het operating systeem als de applicaties feilloos doordraaien op een andere fysieke machine na een live migration. Zijn de CPU's niet compatibel dan loop je het risico dat het operating systeem of één van de applicaties een processorinstructie uitvoert die niet op die nieuwe processor aanwezig is, met alle gevolgen van dien (denk aan BSOD).

VMware heeft bij de oplossing hiervoor gekozen voor de meest veilige en robuuste manier. Dit is namelijk een combinatie van hypervisor-software en hardware-ondersteuning: "Flex Migration" in geval van Intel en "Extended Migration" bij AMD. Door deze hardware-ondersteunde aanpak kan de hypervisor-laag de onderliggende CPU forceren om geen instructies uit te voeren die de CPU op de machine waar je via live migration naar toe gaat niet aan zou kunnen. Daardoor weet je zeker dat alle software die op de eerste machine draait ook op de migration-target zal draaien (tenminste, voor zover het potentiële CPU-compatibiliteit problemen betreft natuurlijk).



Microsoft heeft daarentegen bij de Live Migration van Server 2008 R2 gekozen voor een 100% software-aanpak. Het voordeel is duidelijk: dit ook werkt op oudere processoren die geen Flex of Extended Migration ondersteunen. Het nadeel is echter dat je nooit 100% zeker weet of er toch niet een applicatie draait op je eerste machine die niet – zoals het hoort – de capabilities van de processor vooraf heeft opgevraagd, maar gewoon instructies gebruikt die niet op alle processoren aanwezig zijn (zo'n applicatie kan bijvoorbeeld eenmalig een error-trap gebruiken om dit bij de start te detecteren). Alles gaat dan goed zolang de software op de eerste machine draait waar die instructies wel aanwezig zijn. Bij een live migration kan dit echter fatale gevolgen hebben. En helaas kan dat op elk moment in de tijd optreden, dus niet per se direct na de migratie want dan zou je wellicht nog handmatig kunnen ingrijpen.

Het argument van Microsoft hiervoor is "we zijn nog nooit software tegen gekomen die zich zo gedraagt". Pragmatisme is natuurlijk altijd goed, maar gaat dit niet net een stap te ver?

Zie Microsoft's Virtualization Team Blog voor een uitleg van Microsoft's aanpak van Live Migration in Server 2008 R2