Windows Virtualization Architecture Mark Kieffer Group Program Manager Windows Virtualization markkie @ microsoft.com Microsoft Corporation.
Download ReportTranscript Windows Virtualization Architecture Mark Kieffer Group Program Manager Windows Virtualization markkie @ microsoft.com Microsoft Corporation.
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 • Messages appear as interrupts Parent Partition (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-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.m spx Locate a local user group(s) http://www.microsoft.com/communities/usergroups/default.m spx 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.