230 likes | 590 Views
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
E N D
Windows Virtualization Architecture Mark Kieffer Group Program Manager Windows Virtualizationmarkkie @ 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 Hybrid VMM Type-1 VMM(Hypervisor) Guest 1 Guest 2 VMM Guest 1 Guest 2 Guest 1 Guest 2 Host OS Host OS VMM VMM Hardware Hardware Hardware Examples: JVMCLR Examples: Virtual PC & Virtual Server Examples:Windows Virtualization What we have today What we’re buildingfor the future
Monolithic vs. Microkernelized Monolithic hypervisor Simpler than a modern kernel, but still complex Contains its own drivers model Microkernelized hypervisor Simple partitioning functionality Increase reliability and minimize TCB No third-party code Drivers run within guests Drivers Drivers Drivers Drivers Drivers Drivers Drivers Drivers Drivers Drivers Drivers Drivers VM 1 (“Admin”) VM 2 VM 3 VM 2 (“Child”) VM 3 (“Child”) VM 1(“Parent”) Virtual- ization Stack Hypervisor 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 • Messages appear as interrupts • Exposes simple programmatic interface called “hypercalls” Parent Partition (Minimum Footprint Windows) 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 • 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” • Manages memory for child partitions • Virtualizes devices for child partitions • Exposes a management interface VM Worker Process VM Worker Process VM Service WMI Provider VM Worker Process VirtualizationInfrastructureDriver VMBus Bus Driver Hypervisor API & Message Library Parent Partition Child Partition 1 Child Partition 2 Hypervisor
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 • Virtualization service clients (VSCs) • Consume virtualized hardware service • VMBus • Software “bus” (enumeration, hot plug, etc.) • Enables VSPs and VSCs to communicate efficiently • Uses memory sharing and hypervisor IPC messages Storage VSP Storage Stack Storage Stack Storage VSC Port Driver Parent Partition VMBus VMBus Hypervisor Disk
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-us/default.aspx • 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.