Hypervisor Virtualization Stack And Device Virtualization Architectures Mike

  • Slides: 32
Download presentation
Hypervisor, Virtualization Stack, And Device Virtualization Architectures Mike Neil Product Unit Manager Windows Virtualization

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

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

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

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

Hypervisor Design Goals Strong Isolation Security Performance Virtualization support …and … Simplicity Parent Partition Child Partition 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

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 Apps Server Core OS 1 OS 2 Windows hypervisor Hardware

Physical Hardware In Windows virtualization, the parent partition manages the rest IHV drivers Processor

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 Apps Server Core OS 1 OS 2 Windows hypervisor Hardware

Hypercalls Low level API Guests communicate with the hypervisor via hypercalls Hypervisor equivalent of

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 Win. Hv.

Hypercalls High level APIs Higher level abstractions are available in Windows partitions Win. Hv. 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 Vm. Bus. sys Win. Hv. sys Windows hypervisor Hardware

Layered Hypervisor Architecture Bm Dm Dispatch Manager Hc Hypercall Handlers Pt Virtualization System Im

Layered Hypervisor Architecture Bm Dm Dispatch Manager Hc Hypercall Handlers Pt Virtualization System Im Ic Partition Manager Syn. IC 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

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

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

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

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

Example VSP/VSC Design Parent Partition Child Partitions Applications VM Worker Process User Mode Windows File System Provided by: Windows Virtualization ISV Volume OEM Partition Disk Virtual Storage Provider (VSP) Disk Fast Path Filter (VSC) Stor. Port Miniport Hardware Virtual Storage Miniport (VSC) VMBus Windows hypervisor i. SCSIprt Kernel Mode

Agenda Architecture introduction Hypervisor architecture Device virtualization architecture Virtualization stack architecture Summary

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

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

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

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

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

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

VID Virtualization stack Virtualization Infrastructure Driver Responsibilities Mediates communication with hypervisor Provides basic and

VID Virtualization stack 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

Worker Process Virtualization stack Worker process State Machine IC Proxy Instantiated for running or

Worker Process Virtualization stack 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

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

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

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

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

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 Server

Windows Virtualization Architecture Parent Partition Child Partitions Virtualization Stack WMI Provider VM Service Server Core Windows Kernel Provided by: Windows Applications VM Worker Processes ISV User Mode Virtualization Service IHV Providers (VSPs) Drivers Windows Virtualization Service Clients (VSCs) VMBus Windows Kernel Enlightenments Kernel Mode Windows hypervisor “Designed for Windows” Server Hardware OEM

Questions?

Questions?

© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows Vista and other product names

© 2006 Microsoft Corporation. All rights reserved. Microsoft, 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.