Windows Virtualization Architecture Mark Kieffer Group Program Manager Windows Virtualization markkie @ microsoft.com Microsoft Corporation
Session Outline Current virtualization uses and benefits Uses for virtualization today Microsoft’s current virtualization offerings
Windows Virtualization Architecture Hypervisor Virtualization stack Device virtualization
Session Goals Attendees should leave this session with the following: A solid architectural overview of Microsoft’s virtualization work A better understanding of the interaction between hardware and software virtualization
Current Virtualization Uses and Benefits Workloads that are enabled by virtualization Server Consolidation Efficient software development and test Dynamic data centers Resource Management
Application re-hosting Application compatibility High availability partitions Many others
Microsoft’s Current Virtualization Offerings Virtual PC 2004 Being deployed in production environments Application re-hosting Demos, training, helpdesk
Being deployed in test and dev environments Multiple test beds on a single piece of hardware
Virtual Server 2005 Released Q4 2004 Well received in the industry Used for production server consolidation
Remote management of virtual machine operations Great perf gains and functionality enhancement in SP1 64-bit host support, PXE support, and others
Microsoft's Next Gen Virtualization Architecture Introducing Windows virtualization for servers Hypervisor-based Separate, small management partition (parent) Takes device virtualization to the next level Targeting availability in the Longhorn wave
Definition of a couple of terms Parent partition: a partition that manages its children Child partition: any number of partitions that are started, managed, and shut down by their parent Virtualization Stack: The collection of components that runs in the parent partition for VM management
Windows Virtualization for Servers Some proposed features 32-bit and 64-bit guests x64-only hosts Guest multiprocessing Virtualized devices WMI management and control API Save & restore Snapshotting CPU and I/O resource controls Tuning for NUMA Dynamic resource addition & removal Live migration
The Hypervisor Very thin layer of software Highly reliable Much smaller Trusted Computing Base (TCB)
No built-in driver model Leverage the large base of Windows drivers Drivers run in a partition
Will have a well-defined, published interface Allow others to create support for their OS’s as guests
Hardware virtualization assists are required Intel Virtualization Technology AMD “Pacifica”
VMM Arrangements Type-2 VMM Guest 1
Hybrid VMM
Type-1 VMM (Hypervisor)
Guest 2
VMM Host OS Hardware
Examples: JVM CLR
Guest 1 Host OS
Guest 2
VMM Hardware
Examples: Virtual PC & Virtual Server
What we have today
Guest 1
Guest 2
VMM Hardware
Examples: Windows Virtualization
What we’re building for the future
Monolithic vs. Microkernelized Monolithic hypervisor Simpler than a modern kernel, but still complex Contains its own drivers model
VM 1 (“Admin”)
VM 2
Hypervisor
VM 3
Microkernelized hypervisor Simple partitioning functionality Increase reliability and minimize TCB No third-party code Drivers run within guests VM 1 (“Parent”) Virtualization Stack Drivers Drivers Drivers
VM 2 (“Child”)
VM 3 (“Child”)
Drivers Drivers Drivers
Drivers Drivers Drivers
Drivers Drivers Drivers
Hypervisor
Hardware
Hardware
The Hypervisor • Thin layer of software running on the hardware • Supports creation of partitions • Each partition is a virtual machine • Each partition has one or more virtual processors • Partitions can own or share hardware resources • Software running in partition is called a guest
• Enforces memory access rules • Enforces policy for CPU usage • Virtual processors are scheduled on real processors
• Enforces ownership of other devices • Provides simple inter-partition messaging Parent Partition
• Messages appear as interrupts
(Minimum Footprint Windows)
• Exposes simple programmatic interface called “hypercalls” Hypervisor
Hard Drive
Ethernet NIC
CPU
RAM
Virtualization Stack Will run within a parent partition Stand alone in a small footprint OS (MinWin) Full Windows OS
Multiple virtualization stacks could co-exist
Virtualization Stack • Collection of user-mode & kernel-mode components • Runs within a partition on top of a (minimal) OS • Contains all VM support not in the hypervisor
WMI Provider VM Service
VM VMWorker Worker VM Worker Process Process Process
• Interacts with hypervisor • Calls the hypervisor to perform certain actions • Responds to messages from the hypervisor or from other partitions
• Creates and manages a group of “child partitions” Virtualization Infrastructure Driver
Parent Partition
• Manages memory for child partitions • Virtualizes devices for child partitions VMBus Bus Driver
Hypervisor API & Message Library
• Exposes a management interface
Child Partition 1 Hypervisor
Child Partition 2
Device Virtualization Provides a method for sharing hardware efficiently Physical devices are still managed by their device drivers Definitions Virtualization Service Providers (VSPs) & Clients (VSCs) VSP = provider, VSC = consumer VSP typically run in a partition that “owns” a hardware resource VSP/VSC pair per device type (storage, network, etc.) May expose bandwidth resource controls Protocol is specific to device type, but is generally OS-agnostic
Device Virtualization Standard VSPs Storage: parses VHDs, supports difference drive chains Network: provides virtualized network mechanism Video: 2D for servers USB: allows a USB device to be assigned to a partition Input: keyboard & mouse Time: virtualization for RTC hardware
Device Virtualization • Physical devices • Managed by traditional driver stacks
• Virtualization service providers (VSPs) • Virtualize a specific class of device (e.g. networking, storage, etc.) • Expose an abstract device interface • Run within the partition that owns the corresponding physical device
Storage VSP Storage Stack
• Consume virtualized hardware service
• VMBus
Storage VSC
Port Driver Parent Partition
• Virtualization service clients (VSCs)
Storage Stack
VMBus
VMBus Hypervisor
Disk
• Software “bus” (enumeration, hot plug, etc.) • Enables VSPs and VSCs to communicate efficiently • Uses memory sharing and hypervisor IPC messages
Windows Enlightenments Enlightenments Modifications to an OS to make it aware that it’s running within a VM
Windows codenamed “Longhorn” enlightenments Optimizations in memory manager (MM) Win32 and kernel API: Am I running on a virtual machine?
Looking at additional enlightenments in the future
Some System Requirements Must support hardware virtualization Intel’s Virtualization Technology AMD’s “Pacifica” We are not planning on supporting any other implementations
Must support x64 extensions
Community Resources Windows Hardware & Driver Central (WHDC) www.microsoft.com/whdc/default.mspx
Technical Communities www.microsoft.com/communities/products/default.mspx
Non-Microsoft Community Sites www.microsoft.com/communities/related/default.mspx
Microsoft Public Newsgroups www.microsoft.com/communities/newsgroups
Technical Chats and Webcasts www.microsoft.com/communities/chats/default.mspx www.microsoft.com/webcasts
Microsoft Blogs www.microsoft.com/communities/blogs
Additional Community Resources Community Sites http://www.microsoft.com/communities/default.mspx
List of Newsgroups
http://communities2.microsoft.com/communities/newsgroups/en-u
Attend a free chat or webcast http://www.microsoft.com/communities/chats/default.mspx http://www.microsoft.com/seminar/events/ webcasts/default.mspx
Locate a local user group(s) http://www.microsoft.com/communities/ usergroups/default.mspx
Non-Microsoft Community Sites http://www.microsoft.com/communities/related/default.mspx
Additional Resources Email: msvirtex @ microsoft.com Web Resources http://www.microsoft.com/windowsserversystem/virtualserver http://www.microsoft.com/windowsxp/virtualpc
Related Sessions Virtualization Technology for AMD Architecture Virtualization Technology for Intel Architecture
© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.