Wosa
Wosa
Wosa
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
VM 1 VM 1
VM 2 VM 3 (“Parent”)
(“Admin”)
Virtual- VM 2 VM 3
ization (“Child”) (“Child”)
Stack
Drivers
Drivers Drivers
Drivers Drivers
Drivers
Hypervisor 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 • Exposes simple programmatic interface called
Windows) “hypercalls”
Hypervisor
Hard Ethernet
CPU RAM
Drive NIC
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
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
Storage
• Run within the partition that owns the
VSP
corresponding physical device
• Virtualization service clients (VSCs)
Storage Storage
• Consume virtualized hardware service
Stack Stack
• VMBus
• Software “bus” (enumeration, hot plug,
Storage
Port VSC etc.)
Driver • Enables VSPs and VSCs to communicate
efficiently
Parent VMBus VMBus
Partition • Uses memory sharing and hypervisor IPC
messages
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-u