Live Migration with AMD-V™ Extended Migration Technology

Live Migration with AMD-V™ Extended Migration Technology

amd processors,micro-processors technology

virtual machine migration is a capability increasingly used in today's enterprise environments.with live migration,a virtual machine monitor moves a running VM nearly instaneously from one server to another and seamlessly to the end user while maintaining guest up time guarantees . however if the processors running in the computer in the pre-and post - migration environment are not identical.live migration can result in expected behavior of the guest software . since the introduction of AMD 54 processor technology in 2003,AMD has worked closely with visualization software developers to define the functionality necessary to ensure that live migration and describe the functionality currently available from AMD to enable virtualization software vendors to support live migration across a broad range of AMD 64 processors.

SYSTEM VIRTUALIZATION

system virtualization is the ability to abstract and pool resources on a physical platform.This abstraction decouples software from hardware and enable multiple operating system image to run concurrently on a single physical platform without interfering each other .

system virtualization has existed for decade on mainframes.in the past industry standard x86 based machines with their limited computing resources and challenges in correctly virtualizing the instruction set architecture did not lend them self well to the technique.however with the increase in computing resources of x86 based servers in the resent year and with new processor extension such as those found in AMD V tm x86 based virtualization is seeing widespread adoption and rapidly becoming a pervasive and integral in enterprise environments.

virtualization can increase utilization of computing resource by consolidating the workloads running on many physical system in to virtual machine running on a single physical system. virtual machines can be provisioned on demand ,replicated and migrated.

VM migration , which is the ability to move a virtual machine from one physical server to other under VMM control , is a capability increasingly utilized in today's enterprise environments.

this document discuss how AMD-V tm Extended Migration Technology enables virtual machine migration between AMD64 processors.

VIRTUAL MACHINE MIGRATION

A VIRTUAL machine can be migrated in the following ways

1.STATIC MIGRATION: the VM is shut down using OS-supported methods;its static VM image is moved to another VMM and restarted.

2.COLD MIGRATION: the VM is suspected using OS-supported or VMM methods.The suspended VM image is moved to a VMM on a different machine and resumed.

3.LIVE MIGRATION:the VMM moves a running VM instance nearly instantaneously from one server to another .Live migration allows for dynamic load balancing of virtualized resource pools , hardware maintenance without downtime and dynamic fail over support.

software running in the VM called "guest software".

As long as the hardware in the pre- and post-migration environment is identical, guest software
should behave in exactly the same way before and after the migration.
Challenges can arise, however, when guest software runs in a different hardware environment after a migration.
Note that even though a VMM presents a virtual platform to guest software, there can be
certain interface , depending on the VMM design which guest software can directly use to determine underlying hardware's capabilities,

Aft
er the reboot/restart following a static migration guest software should go through it's platform
discovery phase and be able to adjust to any differences in underlying (virtual) hardware.

Following a cold migration, guest software may continue to maintain an identical view of the pre-and post-migration hardware. When suspended using OS-supported methods, some operating systems re-scan the hardware upon resume. Depending on their policies and the hardware differences between current and previous hardware, the OSes may refuse to resume and require a reboot.

After a live migration, guest software continues to maintain an identical view of the pre- and post migration hardware. This document discusses how AMD64 processors provide support for a VMM to hide differences in software-visible processor features during live and cold migration For simplicity , "live migration " is used to refer to both migration methods.

Determining Processor Features

Software should use CPUID to determine processor features and use this information to select appropriate code paths. CPUID is an x86 instruction that can be executed from kernel and applications. The following example shows CPUID called from an application.

//Example 1: Console application on Windows XP using
CPUID instruction to determine //processor revision and
feature information.
#include "stdafx.h"
#include ,stdio.h>//use < style="font-weight: bold;">controlling information returned through CPUID

when new features are introduced on AMD processors,their presence is indicated by unique bits in the information returned by the CPUID instruction , Properly written software relies only on this information to determine processor features.

to ensure proper behavior during VM migration ,a VMM must control information returned to guest software as a result of the CPUID instruction.

A VMM u
sing hardware-assisted virtualization (AMD-V tm) can use the CPUID intercept to return the appropriate bits whenever guest software executes that instruction.

A VMM using binary translation or para-virtualization may need to handle this differently depending on whether CPUID was executed by the guest kernel , guest application.In the case of CPUID instruction executed by the gust kernel, the VMM can binary-translate or para virtualize that instant of the instruction and return appropriate information to the guest.

For a CPUID instruction executed within the guest application’s context (where binary translationor para-virtualization techniques are not feasible), the VMM requires a way to return the appropriate CPUID information to that guest application. Note that with binary translation and para-virtualization, it is the user-mode CPUID features that the VMM must control. Without this ability to control the user-mode CPUID features, all processors in the resource pool must support the same features, which significantly reduces flexibility in utilizing resources in environmentssupporting Live Migration.

CPUID Override Model Specific Registers

Starting with AMD Family 0Fh revision C AMD Opteron™ processors, AMD provides CPUID Override MSRs to allow a VMM (or OS) to specify a subset of information that the CPUID instruction returns.This is accomplished by setting the appropriate MSRs .




Labels: ,