Post on 21-Dec-2015
Microsoft Server Virtualization Architecture & DirectionsBenjamin ArmstrongProgram ManagerMicrosoft Corporation
SVR318
Related Sessions, HOLs, Certifications etc.
SVR310 - Up-close and personal with Virtual Machines and SCVMMSVR314 - High Availability for physical and virtual environments with Windows Server 2008SVR301 - How Windows Server 2008 Impacts IT InfrastructureCLI319 - Pulling Microsoft Virtualization Products Together to Create a Virtualized DataCenter
Agenda
Microsoft virtualization roadmapVirtualization Architectures
CPU virtualizationMemory virtualizationDevice virtualizationNetworkingKernel EnlightenmentManagement
XenSource Collaboration
Virtualization Benefits
Improve UtilizationConsolidation increases hardware utilizationScales on MP/multi-core systems
Lower Operational CostsManagement tools reduce costsWorkloads can be hardware agnostic
Increase AvailabilityFor planned and unplanned downtimeBuilding block for business continuity
Increase ResponsivenessRapid and self provisioning of services
Virtualization Roadmap
Microsoft Virtual Server 2005 R2 Virtual Server MOM Management Pack
System Center Virtual Machine Manager Virtual Server 2005 R2 SP1
2005
Microsoft Virtual Server 2005 R2 SP1 BetaVirtual Server MOM Management Pack R2System Center: Virtual Machine Manager Beta
2006
Windows ServerVirtualization
Within 6 monthsof Windows Server 2008
2007
Virtual Server 2005 R2
Improved performance and scalability100% improvement on transactional workloads64-bit (x64) host support for greater scalability
High availabilityHost clustering for both planned and unplanned downtime
Linux guest supportFree
Virtual Server 2005 R2 SP1
Intel Virtualization Technology / AMDV support
Increased reliability and performanceMuch better experience when consolidating Linux
VSS supportImproved Backup and DR scenarios
VHD Mounting on host
Windows Server Virtualization
Hypervisor based solution for WindowsIntegrated virtualization “role”New IO sharing model for better performanceStandards based management APIWindows virtualization platform for partners
Windows Virtualization Scenarios
Production Server ConsolidationBusiness Continuity ManagementTest and Development
Production Server Consolidation
Physical consolidationImprove and maximize hardware utilizationConsolidate workloads onto fewer highly scalableand reliable enterprise class servers
Reduce TCOPhysical plant
Reduce electrical costs for cooling and serverpower consumptionReduce datacenter physical footprint
Server managementEase management and reduce operational costsby moving to a standardized platformIncrease business agility by moving to dynamic platform
Server consolidation is the fundamental drivingforce behind the virtualization of servers
Business Continuity Management
Business continuity is a comprehensiveprocess that includes
Disaster and business recoveryBusiness resumption and contingency planningFor a global organization, this is particularly difficultas they provide “follow the sun” services
Ensure continuity or uninterrupted provisionof operations and services
Reduce service interruptionsProvide scalable, high-availability solutionsImprove disaster and business recoveryProvide robust enterprise management
Business Continuity Management is the ability to minimize scheduled and unscheduled downtime
Test And DevelopmentPhysical consolidation
Improve and maximize hardware utilizationConsolidate workloads onto fewer servers
Reduce TCOPhysical plant
Reduce electrical costs for cooling and server power consumptionReduce physical footprint
Lifecycle managementReduce time to migrate new software from Dev to Test to ProductionIncrease business agility by moving to a dynamic platform
Streamline test and development effortsReduce time provisioning test/development environmentsRapid duplication of a production environment
Maximizing test hardware, reducing costs, improvinglifecycle management, and improving test coverage
Why Windows Server Virtualization?
Building a new platform for virtualization in Windows
Designed to be flexible and extensibleDesigned for long term developmentDesigned for use outside of pure virtualization scenarios
Architectures
Virtualization poses many problemsCPU, Memory, Devices, etc…
Each problem has multiple potential solutionsPros and cons not always obvious
Nor are they necessarily significant
VMM Arrangements
Host OS
VMM
Guest 1 Guest 2
VMM
Guest 1 Guest 2
Host OS VMM
Guest 1 Guest 2
Type-2 VMM Type-1 VMM(Hypervisor)
Hybrid VMM
Examples: JVMCLR
Examples: Virtual PCVirtual Server
Examples: Windows Virtualization
Hardware Hardware Hardware
Monolithic vs. Microkernelized
Monolithic hypervisorSimpler than a modern kernel, but still complexContains its own drivers model
Microkernelized hypervisor
Simple partitioning functionalityNo third-party codeDrivers run within guests
VM 1(Admin)
VM 3
Hardware
Hypervisor
VM 2(“Child”)
VM 3(“Child”)
Virtual-ization Stack
VM 1(Parent)
DriversDriversDrivers DriversDriversDrivers DriversDriversDriversHypervisor
VM 2
Hardware
DriversDriversDrivers
The Hypervisor
Very thin layer of softwareHighly reliableMuch smaller Trusted Computing Base (TCB)
No built-in driver modelLeverage the large base of Windows driversDrivers run in a partition
Will have a well-defined, published interfaceAllow others to create support for their OS’s as guests
Hardware virtualization assists are requiredIntel Virtualization TechnologyAMDv
Physical Hardware
The hypervisor restricts itself to managing a minimum set of hardware
ProcessorsLocal APICsConstant-ratesystem counterSystem physicaladdress space
Focus is on scheduling and isolation
Hardware
Windows hypervisor
Parent Partition
ServerCore
Apps
OS 1 OS 2
Apps Apps
Child Partition
Child Partition
Hardware
Windows hypervisor
Parent Partition
ServerCore
Apps
OS 1 OS 2
Apps Apps
Child Partition
Child Partition
Physical Hardware
In Windows virtualization, the parent partition manages the rest
IHV driversProcessor power managementDevice hot add and removal
New drivers are not required
HypercallsLow level API
Guests communicate with the hypervisor via hypercalls
Hypervisor equivalent of a syscallDetected via CPUIDConfigured via MSR
Simple formatOne input page, one output pageSpecify pages by physical address,then jump to known address
HypercallsHigh level APIs
Higher level abstractions are available in Windowspartitions
WinHv.sys providesa C language wrapper
WindowsServer Core
VirtualizationStack
WMI Provider
WinHv.sys
Hardware
Windows hypervisor
VmBus.sys
Windows
WinHv.sys
VmBus.sys
CPU Virtualization
User mode code on x86 / x64 processors can be natively virtualizedKernel mode code is more problematic
Emulation / Binary TranslationRing compression
This is not possible on x64 due to lack of ring 1 and 2
Hardware virtualization support
Virtual Server 2005: Software
Windows Server 2003 or XP
Kernel VMM
Kernel ModeUser Mode
Virtual ServerService
IIS
Virtual ServerWebApp
Provided by:
Microsoft
ISV
OEM
Virtual Server
“Designed for Windows” Server Hardware
Guest Kernel
VMM
GuestApplications
Host OS Guest OS
Virtual Server 2005: Additions
Windows Server 2003 or XP
Kernel VMM
Kernel ModeUser Mode
Virtual ServerService
IIS
Virtual ServerWebApp
Provided by:
Microsoft
ISV
OEM
Virtual Server
“Designed for Windows” Server Hardware
Ring 1: Guest Kernel
Windows (NT4, 2000, 2003)
VM Additions
Ring 0: Kernel Mode VMM
Ring 3: User Mode
GuestApplications
Host OS Guest OS
Virtual Server 2005: Hardware
Windows Server 2003 or XP
Kernel VMM
Kernel ModeUser Mode
Virtual ServerService
IIS
Virtual ServerWebApp
Provided by:
Microsoft
ISV
OEM
Virtual Server
“Designed for Windows” Server Hardware
GuestApplications
Host OS Guest OS
GuestKernel
Windows Virtualization: ArchitectureParent Partition Child Partitions
Kernel Mode
User Mode
VirtualizationService
Providers(VSPs)
WindowsKernel
Server Core
IHVDrivers
VirtualizationServiceClients(VSCs)
WindowsKernel
EnlightenmentsVMBus
Windows hypervisor
Virtualization Stack
VM WorkerProcessesVM
Service
WMI ProviderApplications
“Designed for Windows” Server Hardware
Provided by:
Windows
ISV
OEM
Windows Virtualization
Memory Virtualization
Relatively easy due to MMUMemory block allocated by virtualization software and access to memory is then ‘swizzled’ through the MMUMMU operations inside virtualized environment now become very costly
Device Virtualization
Access to I/O is the performance ‘Achilles heel’ of virtual machines todaySome approaches are:
Device EmulationDevice AbstractionDevice Assignment
Device Emulation
Virtual machine “sees” real hardware devicesEach access to the “device” involves an intercept, sent to the parent virtual machine
Performance is sub-optimal
Compatibility with existing software can be perfectMicrosoft provides emulations
The hardware that is emulated is from ~1997, providingin-box compatibility with old OSes
Requires a “monitor” partition that contains software for emulating the devicesPhysical devices can be shared amongmultiple guests
Virtual Server 2005
Windows Server 2003 or XP
Kernel VMM
Kernel ModeUser Mode
Virtual ServerService
IIS
Virtual ServerWebApp
Provided by:
Microsoft
ISV
OEM
Virtual Server
“Designed for Windows” Server Hardware
Ring 1: Guest Kernel
Windows (NT4, 2000, 2003)
VM Additions
Ring 0: Kernel Mode VMM
Ring 3: User Mode
GuestApplications
Host OS Guest OS
I/O Enlightenment
Uses abstract protocols to describe I/OUseful protocols already exist
SCSI, iSCSIRNDISRDP
New device stack implementations in thesecondary guests can be written that usethese abstract protocolsProtocol servers exist in a primary guest(parent), which is the partition that controlsthe physical devicesMultiple secondary guests can share the servicesof a single hardware deviceDoesn’t require an emulatorDoesn’t require a monitor partition
Virtualization I/O DefinitionsVirtual Device (VDev)
A software module that provides a point of configuration and control over an I/O path for a partition
Virtualization Service Provider (VSP)A server component (in a parent or other partition) that handlesI/O requests
Can pass I/O requests on to native services like a file systemCan pass I/O requests directly to physical devicesCan be in either kernel- or user-mode
Virtualization Service Consumer (VSC)A client component (in a child partition) which serves as the bottom of an I/O stack within that partition
Sends requests to a VSP
VMBusA system for sending requests and data between virtual machines
VMBus – What Is It?
A protocol for transferring data through a ring buffer
A means of mapping a ring buffer into multiple partitionsA definition for the format of the ring bufferA means of signaling that a ring buffer has gone non-empty
A protocol for offering/discovering servicesA protocol for managing guest physical addressesA protocol for enumerating WDM device objectsthat represent a data channelA bus driver which implements all of those protocolsA data transfer library which can be linked intoa user-mode service or applicationA data transfer library which can be linked intoa kernel-mode driver
How Is Data Moved Between Partitions?
Commands are placed in ring buffersSmall data is placed in ring buffersLarger data is placed in pre-arranged pages shared between partitions
Described by commands in ring buffersLargest data is mapped into another partition without copying
Bus Driver
VMBus acts as a bus driverIt can form the bottom of a device stackVSCs can be instantiated on top of VMBus
(Names of components not finalized)
Example VSP/VSC DesignParent Partition Child Partitions
Kernel Mode
User Mode
Windows hypervisor
Applications
Provided by:
Windows
ISV
OEM
Windows Virtualization
VMBus
Windows File System
Volume
Partition
Disk
Fast Path Filter (VSC)
iSCSIprtVirtual StorageMiniport (VSC)
Virtual StorageProvider (VSP)
StorPort
Hardware
StorPortMiniport
VM Worker Process
Disk
Networking
How to get a network packet from the virtual machine to the wire
Virtual Server uses a switched hubSimple, but not common
Windows Server virtualization uses a full switch implementation
Extensible through WMI interface
Kernel Enlightenments
Windows kernel detects and communicates with hypervisor
Avoids expensive calls and uses faster services provided by the hypervisor
E.g. MMU
Not ring compressionNot kernel patching
Windows uses a unified kernelAll Windows kernels have enlightenments in placeWindows Vista shipped with enlightenments
Management
Virtual Server uses a single process space
Virtual machines are separate threadsManaged through COM API
Windows Server virtualization uses a process per virtual machine
Managed by a central serviceUse a WMI API
Virtualization StackComponent View
ConfigComponent
VMMS
WMI
Worker process
StateMachine
IC Proxy
RDPEncoder
VDev
VirtualMotherboard
VID VSPKernel Mode
User Mode
VMMS
WMI
VMMSVirtual Machine Management Service
ResponsibilitiesControls all virtual machines
WMI provider receives control commands from Management Console
Creates one Worker Process for each VM instance
Collaborates withConfig component to configure VMs and VNSs – Virtual Network SwitchesWorker process to control VM
Virtualization stack
Config Component
ResponsibilitiesPersistent configurationstore for VMs and VNSs Key/value pairs
Hierarchical organization
Collaborates withVMMS
Receives commands/send results
Worker ProcessCommunicates configuration changes
ConfigComponent
Virtualization stack
VIDVirtualization Infrastructure Driver
ResponsibilitiesMediates communicationwith hypervisorProvides basic and advanced guest memory virtualization
MMIO emulation, ROM emulation
Provides instruction completion
Collaborates withHypervisor
Makes requests to hypervisorby using the hypercall protocol
VID
Virtualization stack
Worker process
StateMachine
IC Proxy
RDPEncoder
VDev
VirtualMotherboard
Worker Process
Instantiated for running or configuring one instance of a VMContains
VMB VDevsState MachineIC ProxyRDP Encoder
Virtualization stack
Worker process
StateMachine
IC Proxy
RDPEncoder
VDev
VirtualMotherboard
Microsoft and XenSource Collaboration
Microsoft and XenSource to develop Interoperable Virtualization Solutions
Microsoft and XenSource will cooperate on the development of technology that will provide interoperability between Xen-enabled Linux and Microsoft’s hypervisor-based Windows Server virtualizationBy supporting heterogeneous environments, Microsoft is continuing its commitment to make Windows Server the most flexible virtualization solution
ArchitectureParent Partition
Kernel Mode
User Mode
VirtualizationService
Providers(VSPs)
WindowsKernel
Longhorn ServerXen-enabledLinux Kernel
VMBus
Windows hypervisor
“Designed for Windows” Server Hardware
Xen-enabled Linux Guest Partition
Applications
LinuxVirtualizationServiceClients(VSCs)VMBus
Virtualization Stack
VMService
WMI ProviderVM WorkerProcesses
Hypercall Adapter
Provided by:
OS
MS/XenSource
ISV/IHV/OEM
Windows virtualization
Resources
Windows virtualization information
http://www.microsoft.com/windowsserversystem/virtualization/default.mspx
Microsoft Virtualization Blogshttp://blogs.msdn.com/Virtual_PC_Guyhttp://blogs.technet.com/virtualization/http://blogs.technet.com/jhoward
BookProfessional Microsoft Virtual Server 2005 http://tinyurl.com/3y33v9
Related Sessions, HOLs, Certifications etc.
SVR310 - Up-close and personal with Virtual Machines and SCVMMSVR314 - High Availability for physical and virtual environments with Windows Server 2008SVR301 - How Windows Server 2008 Impacts IT InfrastructureCLI319 - Pulling Microsoft Virtualization Products Together to Create a Virtualized DataCenter
Evaluation Forms
Questions?
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after
the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.