320 likes | 725 Views
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.
E N D
Hypervisor, Virtualization Stack, And Device Virtualization Architectures Mike NeilProduct Unit ManagerWindows VirtualizationMicrosoft Corporation
Agenda • Architecture introduction • Hypervisor architecture • Device virtualization architecture • Virtualization stack architecture • Summary
Virtualization Stack Provided by: Windows Windows Virtualization VM WorkerProcesses WMI Provider VMService ISV OEM WindowsKernel WindowsKernel VirtualizationServiceProviders(VSPs) Server Core IHVDrivers Windows hypervisor VirtualizationServiceClients(VSCs) Enlightenments VMBus Windows Virtualization Architecture Parent Partition Child Partitions Applications User Mode Kernel Mode “Designed for Windows” Server Hardware
Agenda • Architecture introduction • Hypervisor architecture • Device virtualization architecture • Virtualization stack architecture • Summary
Parent Partition Child Partition Child Partition Apps Apps Apps ServerCore OS 1 OS 2 Windows hypervisor Hardware Hypervisor Design Goals • Strong Isolation • Security • Performance • Virtualization support …and … • Simplicity • Restrict activities to monitoringand enforcing • Where possible, push policy up
Parent Partition Child Partition Child Partition Apps Apps Apps ServerCore OS 1 OS 2 Windows hypervisor Hardware Physical Hardware • The hypervisor restricts itself to managing a minimum set of hardware • Processors • Local APICs • Constant-ratesystem counter • System physicaladdress space • Focus is on scheduling and isolation
Parent Partition Child Partition Child Partition Apps Apps Apps ServerCore 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
HypercallsLow 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
Windows 2000 and later WindowsServer Core WMI Provider VirtualizationStack VmBus.sys VmBus.sys WinHv.sys WinHv.sys Windows hypervisor Hardware HypercallsHigh level APIs • Higher level abstractions are available in Windowspartitions • WinHv.sys providesa C language wrapper • VMBus.sys providescross-partition communication services • Virtualization stack provides WMI interfaces for configuring children
Bm Dispatch Manager Dm Hypercall Handlers Hc Partition Manager Pt Im Ic VirtualizationSystem SynIC Address Manager Am Vp Virtual Processor Val Rme Vm Layered Hypervisor Architecture Scheduler / Threads Th Sch Ti Memory Manager Mm HypervisorKernel Ke Tr Dbg CPU Management Hal St Cpu Rtl Hk
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 handlesI/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 communicatewith a VSC in the child partition
Applications User Mode Disk StorPort iSCSIprt Disk Partition Volume Windows File System StorPort Miniport Windows hypervisor VM Worker Process VMBus Virtual Storage Miniport (VSC) Virtual Storage Provider (VSP) Fast Path Filter (VSC) Example VSP/VSC Design Parent Partition Child Partitions Provided by: Windows Windows Virtualization ISV OEM Kernel Mode Hardware
Agenda • Architecture introduction • Hypervisor architecture • Device virtualization architecture • Virtualization stack architecture • Summary
Virtualization StackOverview • Collection of software componentsthat work together to supportvirtual machines • Creation, configuration, lifetime management, IO management • Works in conjunction with • Management console • Device virtualization • Hypervisor
Virtualization StackManagement 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
VDev VMMS WMI VSP Virtualization StackComponent View Virtualization stack Worker process ConfigComponent StateMachine VirtualMotherboard User Mode IC Proxy RDPEncoder VID Kernel Mode
VMMS WMI VMMSVirtual Machine Management Service Virtualization stack • 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
Config Component Virtualization stack • Responsibilities • Persistent configurationstore for VMs and VNSs • Key/value pairs • Hierarchical organization • Collaborates with • VMMS • Receives commands/send results • Worker Process • Communicates configuration changes ConfigComponent
VIDVirtualization Infrastructure Driver Virtualization stack • Responsibilities • Mediates communicationwith hypervisor • Provides basic and advanced guest memory virtualization • MMIO emulation, ROM emulation • Provides instruction completion • Collaborates with • Hypervisor • Makes requests to hypervisorby using the hypercall protocol VID
Worker process Worker process StateMachine StateMachine VirtualMotherboard VirtualMotherboard VDev VDev IC Proxy IC Proxy RDPEncoder RDPEncoder Worker Process Virtualization stack • Instantiated for running or configuring one instance of a VM • Contains • VMB • VDevs • State Machine • IC Proxy • RDP Encoder
State Machine Virtualization stack • Responsibilities • Drives instantiation and runtimestate of a VM • Enforces valid state transitionsin 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 StateMachine
Virtual Motherboard Virtualization stack • Responsibilities • Instantiates all virtual devices • Collaborates with • Config component • Obtains device configuration • State machine • Controls virtual hardware state VirtualMotherboard
VDev Virtual Devices Virtualization stack • Responsibilities • Legacy device emulation OR • VSP control • Collaborates with • VMB • VSP • Control virtual hardware state
IC Proxy RDPEncoder IC Proxy/RDP Encoder Virtualization stack • Responsibilities • Manage communication link between guest and remoteUI on Management Console • Collaborates with • Management console • Receives/sends RDP commands • Integration componentsin guest • Remote UI from/to guest
Agenda • Architecture introduction • Hypervisor architecture • Device virtualization architecture • Virtualization stack architecture • Summary
Virtualization Stack Provided by: Windows Windows Virtualization VM WorkerProcesses WMI Provider VMService ISV OEM WindowsKernel WindowsKernel VirtualizationServiceProviders(VSPs) Server Core IHVDrivers Windows hypervisor VirtualizationServiceClients(VSCs) Enlightenments VMBus Windows Virtualization Architecture Parent Partition Child Partitions Applications User Mode Kernel Mode “Designed for Windows” Server Hardware
© 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.