Windows Virtualization Architecture Mark Kieffer Group Program Manager Windows Virtualization markkie @ microsoft.com Microsoft Corporation.

Download Report

Transcript 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.