Device Virtualization Architecture. Jake Oshins Architect Windows Virtualization Microsoft Corporation

Similar documents
Cooperation of Operating Systems with Hyper-V. Bartek Nowierski Software Development Engineer, Hyper-V Microsoft Corporation

The Microsoft Windows Hypervisor High Level Architecture

Chapter 14 Virtual Machines

Windows Server Virtualization & The Windows Hypervisor

I/O Virtualization Using Mellanox InfiniBand And Channel I/O Virtualization (CIOV) Technology

Virtualization with Windows

Course Syllabus. Implementing and Managing Windows Server 2008 Hyper-V. Key Data. Audience. At Course Completion. Prerequisites

Intel Ethernet and Configuring Single Root I/O Virtualization (SR-IOV) on Microsoft* Windows* Server 2012 Hyper-V. Technical Brief v1.

IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft Hyper-V Server Agent Version Fix Pack 2.

Thomas Fahrig Senior Developer Hypervisor Team. Hypervisor Architecture Terminology Goals Basics Details

Best Practices for Installing and Configuring the Hyper-V Role on the LSI CTS2600 Storage System for Windows 2008

The Xen of Virtualization

Plug and Play for Windows 2000

Implementing and Managing Windows Server 2008 Hyper-V

Dell Solutions Overview Guide for Microsoft Hyper-V

Basics in Energy Information (& Communication) Systems Virtualization / Virtual Machines

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Security Overview of the Integrity Virtual Machines Architecture

Outline. Outline. Why virtualization? Why not virtualize? Today s data center. Cloud computing. Virtual resource pool

Virtualization. Pradipta De

Virtualization and the U2 Databases

HBA Virtualization Technologies for Windows OS Environments

Microsoft Windows Common Criteria Evaluation

Introducing. Markus Erlacher Technical Solution Professional Microsoft Switzerland

Virtual Machines. COMP 3361: Operating Systems I Winter

Setup for Failover Clustering and Microsoft Cluster Service

Windows8 Internals, Sixth Edition, Part 1

Virtualization. Jia Rao Assistant Professor in CS

Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu

Full and Para Virtualization

VIRTUALIZATION 101. Brainstorm Conference 2013 PRESENTER INTRODUCTIONS

Setup for Failover Clustering and Microsoft Cluster Service

Virtualization Technologies

Best Practices for SAP on Hyper-V

APPLICATION VIRTUALIZATION TECHNOLOGIES WHITEPAPER

Red Hat Linux Internals

Windows Server Virtualization & The Windows Hypervisor. Background and Architecture Reference

Windows Server 2008 Hyper-V Backup and Replication on EMC CLARiiON Storage. Applied Technology

Using Multipathing Technology to Achieve a High Availability Solution

HyperV_Mon 3.0. Hyper-V Overhead. Introduction. A Free tool from TMurgent Technologies. Version 3.0

Windows Server 2008 R2 Hyper V. Public FAQ

Setup for Failover Clustering and Microsoft Cluster Service

Virtual Switching Without a Hypervisor for a More Secure Cloud

Sun xvm VirtualBox Product Overview

Broadcom Ethernet Network Controller Enhanced Virtualization Functionality

WHAT IS THE DIFFERENCE BETWEEN SAN AND NAS AND HOW CAN I USE THEM IN MY QLIKVIEW ENVIRONMENT?

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Setup for Failover Clustering and Microsoft Cluster Service

Microsoft Windows Common Criteria Evaluation

SharePoint Server SharePoint 2010 Virtualization Guidance and Recommendations

Virtualization Technology. Zhiming Shen

Operating System Components

COS 318: Operating Systems. Virtual Machine Monitors

Introduction to the NI Real-Time Hypervisor

Chapter 5 Cloud Resource Virtualization

Setup for Failover Clustering and Microsoft Cluster Service

Virtual machines and operating systems

Chapter 11 I/O Management and Disk Scheduling

SAN Conceptual and Design Basics

Advanced Computer Networks. Network I/O Virtualization

HyperV_Mon. Introduction. A Free Tool From TMurgent Technologies

High-Availability Using Open Source Software

Distributed Systems. Virtualization. Paul Krzyzanowski

Windows Server 2012 Hyper-V Virtual Switch Extension Software UNIVERGE PF1000 Overview. IT Network Global Solutions Division UNIVERGE Support Center

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

Outline SSS Microsoft Windows Server 2008 Hyper-V Virtualization

RED HAT ENTERPRISE VIRTUALIZATION

Windows Server 2008 R2 Hyper-V Live Migration

Virtual Machine Monitors. Dr. Marc E. Fiuczynski Research Scholar Princeton University

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

Windows Server 2008 R2 Hyper-V Live Migration

Memory Forensics with Hyper-V Virtual Machines.

M.Sc. IT Semester III VIRTUALIZATION QUESTION BANK Unit 1 1. What is virtualization? Explain the five stage virtualization process. 2.

Abstract. Microsoft Corporation Published: August 2009

Analysis on Virtualization Technologies in Cloud

COS 318: Operating Systems. I/O Device and Drivers. Input and Output. Definitions and General Method. Revisit Hardware

PCI-SIG SR-IOV Primer. An Introduction to SR-IOV Technology Intel LAN Access Division

Virtual Machine Security

Windows Azure Security

Best practices for a Microsoft Hyper-V Dynamic Data Center in an HP BladeSystem environment

Hypervisors. Introduction. Introduction. Introduction. Introduction. Introduction. Credits:

Oracle Database 10g Performance on Windows Server 2008 Hyper-V Virtual Machine. By: Gary W Parker Performance Tuning Corporation

Virtualization for Cloud Computing

Installation Guide. Step-by-Step Guide for clustering Hyper-V virtual machines with Sanbolic s Kayo FS. Table of Contents

CPET 581 Cloud Computing: Technologies and Enterprise IT Strategies. Virtualization of Clusters and Data Centers

Integrating HP Insight Management WBEM (WMI) Providers for Windows with HP System Insight Manager

Basics of Virtualisation

Storage Protocol Comparison White Paper TECHNICAL MARKETING DOCUMENTATION

Configuring RemoteFX on Windows Server 2012 R2

EXPLORING LINUX KERNEL: THE EASY WAY!

Network Function Virtualization Using Data Plane Developer s Kit

6422: Implementing and Managing Windows Server 2008 Hyper-V (3 Days)

Enterprise Storage Solution for Hyper-V Private Cloud and VDI Deployments using Sanbolic s Melio Cloud Software Suite April 2011

Networking for Caribbean Development

M6422A Implementing and Managing Windows Server 2008 Hyper-V

InfiniBand Software and Protocols Enable Seamless Off-the-shelf Applications Deployment

I/O Device and Drivers

Transcription:

Device Virtualization Architecture Jake Oshins Architect Windows Virtualization Microsoft Corporation

Goals! Participants will leave with an understanding of! How Microsoft intends to enable efficient I/ O virtualization! How others I/O solutions interact with Microsoft s virtualization systems! Which I/O virtualization strategies will be available with Windows Server virtualization and which must wait

Agenda! General strategies for I/O virtualization! Technical overview of Virtual Device Framework! Technical overview of VMBus

Device Emulation! Virtual machine sees real hardware devices! Each access to the device involves an intercept, sent to the parent virtual machine! Performance is sub-optimal! Compatibility with existing software can be perfect! Microsoft provides emulations! The hardware that is emulated is from ~1997, providing in-box compatibility with old OSes! Requires a monitor partition that contains software for emulating the devices! Physical devices can be shared among multiple guests

I/O Enlightenment! Uses abstract protocols to describe I/O! Useful protocols already exist! SCSI, iscsi! RNDIS! RDP! New device stack implementations in the secondary guests can be written that use these abstract protocols! Protocol servers exist in a primary guest (parent), which is the partition that controls the physical devices! Multiple secondary guests can share the services of a single hardware device! Doesn t require an emulator! Doesn t require a monitor partition

Device Assignment! Guest OSes control their devices directly! Parent OS gives up control of these devices! Ownership of a device is exclusive! Performance can match that of a non-virtualized machine! Interdependence of partitions can be minimized! Strong isolation of partitions can be achieved

Windows Virtualization Will Provide! Device emulation! Provides migration path for Microsoft Virtual Server users! ~1997 era virtual motherboard! Good for compatibility with old OSes! I/O enlightenment! Storage! Networking! Video! USB

Agenda! General strategies for I/O virtualization! Overview of Virtual Device Framework! Technical overview of VMBus

Virtualization I/O 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! VMBus! Sends requests to a VSP! A system for sending requests and data between virtual machines

Virtual Devices (VDevs)! Come in two varieties! Core: Device emulators! Written by Microsoft! Plug-in: Enlightened I/O! Written by Microsoft and industry! Management is through WMI! Packaged as COM objects! Run within the VM Worker Process! Often work in conjunction with a VSP

VDev Environment Virtual Machine Worker Process Virtual Hardware Guest Memory IRQ Generation Memory and Port-Mapped IO State Machine Active Powering Up Saving Powering Down Timers Current Time Create Timer Configuration Activation Save Repositories Core Only Virtual Motherboard COM State Changes COM Core Core VDevs Emulated Devices Core VDevs Vdevs Emulated Devices & Hybrid - Hybrid Devices Emulated Devices Devices Plug-In VDevs To VSP To VSP State Changes State Changes

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 Child Viridian Virtualization Stack Worker Process User Mode Kernel Mode User Mode Kernel Mode File System Volume File System Parition Volume Disk Parition Disk Image Parser Virtual Storage Server (VSP) FastPath filter iscsiprt StorPort Storport Miniport VM SRBs Virtual Storage Miniport (VSC) VM SRBs VMBUS Hardware

Agenda! General strategies for I/O virtualization! Technical overview of Virtual Device Framework! Technical overview of VMBus

VMBus What Is It?! A protocol for transferring data through a ring buffer! A means of mapping a ring buffer into multiple partitions! A definition for the format of the ring buffer! A means of signaling that a ring buffer has gone non-empty! A protocol for offering/discovering services! A protocol for managing guest physical addresses! A protocol for enumerating WDM device objects that represent a data channel! A bus driver which implements all of those protocols! A data transfer library which can be linked into a user-mode service or application! A data transfer library which can be linked into a kernel-mode driver

VMBus Definitions! Endpoint! A module that reads or writes data through VMBus! Channel! Two endpoints one server, one client! Two ring buffers! Transfer Page! Pre-allocated page of memory that is mapped into both endpoints partitions! Not part of a ring buffer! Used as a target for DMA or for other operations that may take a long time to complete

VMBus Definitions! Guest Physical Address Descriptor List (GPADL)! Memory descriptor list that can be passed to another partition! Allows a device to do DMA to or from a child partition directly! Pipe! A default channel protocol that allows a client to use ReadFile or WriteFile to send data between partitions! Serves as the basis for cross-partition Remote Procedure Call

How Is Data Moved Between Partitions?! Commands are placed in ring buffers! Small data is placed in ring buffers! Larger data is placed in pre-arranged pages shared between partitions! Described by commands in ring buffers! Largest data is mapped into another partition without copying! Described by GPADLs placed in ring buffers

Hypervisor Involvement! When is it necessary?! Channel setup! Signaling another partition! Modeled as a hardware interrupt! When is it not necessary?! When placing packets in a ring buffer! When removing packets from a ring buffer! When reading or writing Transfer Pages! When translating guest memory maps

Guest Physical Address Space GPADLs! Allow transactions to refer to guest buffers! No data copying required! Built within the Virtualization Stack in the parent partition! Allows I/O to be handled without switching into and out of the hypervisor! Allows child partitions VSCs to use their own physical addresses in requests to VSPs! Allows VSPs easy access to translations! Particularly if VSP is a driver in kernel-mode! Typical transaction can involve no hypercalls

Request Packet Structure Parent Partition Child Partition 1 3 2 Application Buffers Header GPADL Describes Application Buffers Protocol Device Specific

What Does Traffic Look Like?! VMBus underlying protocol is very simple! Packets are sent asynchronously! Primitives exist to allow synchronization! Packets have very little structure! Packet may reference Transfer Pages! Packet may reference a GPADL! Other protocols must be defined by the users of the channel

Request Packet Flow Parent Partition Child Partition VSP VSC

Request Packet Flow Parent Partition Child Partition VSP VSC Interrupt through Hypervisor

Request Packet Flow Parent Partition Child Partition VSP VSC

Data Flow Parent Partition Child Partition VSP VSC

Interrupt Management! Can be sent between partitions to signal VSP or VSC code to start running! Avoids software polling! Cost of an interrupt is a hypercall and maybe a partition context switch! Only necessary when VSP/VSC wouldn t already be running! When ring buffer was previously empty! When ring buffer was previously full! Multiple channels interrupts can be coalesced! VMBus can track latency requirements! Allows requests to be batched

Bus Driver! VMBus acts as a bus driver! It can form the bottom of a device stack! VSCs can be instantiated on top of VMBus (Names of components not finalized)

Call To Action! Please attend the following session on Virtual Networking and Storage! Participate in future Windows Server virtualization Beta programs

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.