Hypervisor, Virtualization Stack, and Device

Download Report

Transcript Hypervisor, Virtualization Stack, and Device

Hypervisor, Virtualization
Stack, And Device
Virtualization Architectures
Mike Neil
Product Unit Manager
Windows Virtualization
Microsoft Corporation
Agenda
Architecture introduction
Hypervisor architecture
Device virtualization architecture
Virtualization stack architecture
Summary
Windows Virtualization
Architecture
Parent Partition
Child Partitions
Windows
Virtualization Stack
WMI Provider
VM
Service
Server Core
Windows
Kernel
Provided by:
Applications
VM Worker
Processes
ISV
User Mode
Virtualization
Service
IHV Providers
(VSPs)
Drivers
Windows
Virtualization
Virtualization
Service
Clients
(VSCs)
VMBus
Windows
Kernel
Enlightenments
Kernel Mode
Windows hypervisor
“Designed for Windows” Server Hardware
OEM
Agenda
Architecture introduction
Hypervisor architecture
Device virtualization architecture
Virtualization stack architecture
Summary
Hypervisor Design Goals
Strong Isolation
Security
Performance
Virtualization support
…and …
Simplicity
Parent
Partition
Child
Partition
Child
Partition
Apps
Apps
Apps
Server
Core
OS 1
OS 2
Windows hypervisor
Restrict activities to monitoring
and enforcing
Where possible, push policy up
Hardware
Physical Hardware
The hypervisor restricts
itself to managing a
minimum set of hardware
Processors
Local APICs
Constant-rate
system counter
System physical
address space
Focus is on scheduling
and isolation
Parent
Partition
Child
Partition
Child
Partition
Apps
Apps
Apps
Server
Core
OS 1
OS 2
Windows hypervisor
Hardware
Physical Hardware
In Windows virtualization,
the parent partition
manages the rest
IHV drivers
Processor power
management
Device hot add
and removal
New drivers are
not required
Parent
Partition
Child
Partition
Child
Partition
Apps
Apps
Apps
Server
Core
OS 1
OS 2
Windows hypervisor
Hardware
Hypercalls
Low level API
Guests communicate with the hypervisor
via hypercalls
Hypervisor equivalent of a syscall
Detected via CPUID
Configured via MSR
Simple format
One input page, one output page
Specify pages by physical address,
then jump to known address
Hypercalls
High level APIs
Higher level abstractions
are available in Windows
partitions
WinHv.sys provides
a C language wrapper
VMBus.sys provides
cross-partition communication
services
Virtualization stack provides
WMI interfaces for
configuring children
Windows
2000 and
later
Windows
Server Core
WMI Provider
Virtualization
Stack
VmBus.sys
VmBus.sys
WinHv.sys
WinHv.sys
Windows hypervisor
Hardware
Layered Hypervisor Architecture
Bm
Dm
Dispatch Manager
Hc
Hypercall Handlers
Pt
Virtualization
System
Im
Ic
Partition Manager
SynIC
Am
Address Manager
Vp
Virtual Processor
Val
Rme
Vm
Th
Sch
Ti
Memory Manager
Mm
Hypervisor
Kernel
Ke
Tr
Dbg
Rtl
St
Hal
Cpu
Hk
Scheduler / Threads
CPU Management
Agenda
Architecture introduction
Hypervisor architecture
Device virtualization architecture
Virtualization stack architecture
Summary
Device Virtualization
Definitions
Virtual Device (VDev)
A software module that provides a point of configuration and control over
an I/O path for a partition
Virtualization Service Provider (VSP)
A server component (in a parent or other partition) that handles
I/O requests
Can pass I/O requests on to native services like a file system
Can pass I/O requests directly to physical devices
Can be in either kernel- or user-mode
Virtualization Service Consumer (VSC)
A client component (in a child partition) which serves as the bottom of an
I/O stack within that partition
Sends requests to a VSP
VMBus
A system for sending requests and data between virtual machines
Virtual Devices (VDevs)
Come in two varieties
Core: Device emulators
Plug-in: Enlightened I/O
Management is through WMI
Packaged as COM objects
Run within the VM Worker Process
Often work in conjunction with a VSP
Virtualization Service
Providers (VSPs)
Communicate with a VDev for
configuration and state management
Can exist in user- or kernel-mode
COM object
Service
Driver
Use VMBus to communicate
with a VSC in the child partition
Example VSP/VSC Design
Parent Partition
Child Partitions
Applications
VM Worker Process
User Mode
Windows File System
Provided by:
Windows
Windows
Virtualization
ISV
Volume
OEM
Partition
Disk
Virtual Storage
Provider (VSP)
Disk
Fast Path Filter (VSC)
StorPort
Virtual Storage
Miniport (VSC)
StorPort
Miniport
VMBus
Windows hypervisor
Hardware
iSCSIprt
Kernel Mode
Agenda
Architecture introduction
Hypervisor architecture
Device virtualization architecture
Virtualization stack architecture
Summary
Virtualization Stack
Overview
Collection of software components
that work together to support
virtual machines
Creation, configuration, lifetime
management, IO management
Works in conjunction with
Management console
Device virtualization
Hypervisor
Virtualization Stack
Management Console Interaction
Management Console
Basic ‘in-box’ user interface
Sends commands and control to
Virtualization Stack via WMI
Interacts with guest using RDP
Virtualization Stack mediates communication
Virtualization Stack
Component View
Worker process
Config
Component
State
Machine
Virtual
Motherboard
User
Mode
WMI
VMMS
Kernel
Mode
Virtualization
stack
IC
RDP
Proxy
Encoder
VID
VDev
VSP
VMMS
Virtualization stack
Virtual Machine
Management Service
Responsibilities
Controls all virtual machines
WMI provider receives control commands
from Management Console
Creates one Worker Process for each
VM instance
Collaborates with
Config component to configure VMs
and VNSs – Virtual Network Switches
Worker process to control VM
WMI
VMMS
Config Component
Virtualization stack
Responsibilities
Persistent configuration
store for VMs and VNSs
Key/value pairs
Hierarchical organization
Collaborates with
VMMS
Receives commands/send results
Worker Process
Communicates configuration changes
Config
Component
Virtualization stack
VID
Virtualization
Infrastructure Driver
Responsibilities
Mediates communication
with hypervisor
Provides basic and advanced guest
memory virtualization
MMIO emulation, ROM emulation
Provides instruction completion
Collaborates with
Hypervisor
Makes requests to hypervisor
by using the hypercall protocol
VID
Virtualization stack
Worker Process
Worker process
State
Machine
IC
Proxy
Instantiated for
running or configuring
one instance of a VM
Contains
VMB
VDevs
State Machine
IC Proxy
RDP Encoder
Virtual
Motherboard
RDP
Encoder
VDev
Worker process
State
Machine
IC
Proxy
Virtual
Motherboard
RDP
Encoder
VDev
State Machine
Virtualization stack
Responsibilities
Drives instantiation and runtime
state of a VM
Enforces valid state transitions
in response to
Management Console-initiated commands
Guest-initiated operations
Host events – like power management, shutdown,
and hardware errors
Provides save-state and snapshot
functionality
Collaborates with
VID, VMB, and VDevs to control virtual
hardware state
State
Machine
Virtual Motherboard
Virtualization stack
Responsibilities
Instantiates all virtual devices
Collaborates with
Config component
Obtains device configuration
State machine
Controls virtual hardware state
Virtual
Motherboard
Virtual Devices
Virtualization stack
Responsibilities
Legacy device emulation
OR
VSP control
Collaborates with
VMB
VSP
Control virtual hardware state
VDev
IC Proxy/RDP
Encoder
Virtualization stack
Responsibilities
Manage communication link between
guest and remote
UI on Management Console
Collaborates with
Management console
Receives/sends RDP commands
Integration components
in guest
Remote UI from/to guest
IC
Proxy
RDP
Encoder
Agenda
Architecture introduction
Hypervisor architecture
Device virtualization architecture
Virtualization stack architecture
Summary
Windows Virtualization
Architecture
Parent Partition
Child Partitions
Virtualization Stack
WMI Provider
VM
Service
Provided by:
Windows
Applications
VM Worker
Processes
Windows
Virtualization
ISV
User Mode
OEM
Server Core
Windows
Kernel
Virtualization
Service
IHV Providers
(VSPs)
Drivers
Virtualization
Service
Clients
(VSCs)
VMBus
Windows
Kernel
Enlightenments
Kernel Mode
Windows hypervisor
“Designed for Windows” Server Hardware
Questions?
© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.