Benjamin Armstrong Program Manager Microsoft Corporation SVR318.

Post on 21-Dec-2015

220 views 2 download

Tags:

Transcript of Benjamin Armstrong Program Manager Microsoft Corporation SVR318.

Microsoft Server Virtualization Architecture & DirectionsBenjamin ArmstrongProgram ManagerMicrosoft Corporation

SVR318

Related Sessions, HOLs, Certifications etc.

SVR310 - Up-close and personal with Virtual Machines and SCVMMSVR314 - High Availability for physical and virtual environments with Windows Server 2008SVR301 - How Windows Server 2008 Impacts IT InfrastructureCLI319 - Pulling Microsoft Virtualization Products Together to Create a Virtualized DataCenter

Agenda

Microsoft virtualization roadmapVirtualization Architectures

CPU virtualizationMemory virtualizationDevice virtualizationNetworkingKernel EnlightenmentManagement

XenSource Collaboration

Virtualization Benefits

Improve UtilizationConsolidation increases hardware utilizationScales on MP/multi-core systems

Lower Operational CostsManagement tools reduce costsWorkloads can be hardware agnostic

Increase AvailabilityFor planned and unplanned downtimeBuilding block for business continuity

Increase ResponsivenessRapid and self provisioning of services

Virtualization Roadmap

Microsoft Virtual Server 2005 R2 Virtual Server MOM Management Pack

System Center Virtual Machine Manager Virtual Server 2005 R2 SP1

2005

Microsoft Virtual Server 2005 R2 SP1 BetaVirtual Server MOM Management Pack R2System Center: Virtual Machine Manager Beta

2006

Windows ServerVirtualization

Within 6 monthsof Windows Server 2008

2007

Virtual Server 2005 R2

Improved performance and scalability100% improvement on transactional workloads64-bit (x64) host support for greater scalability

High availabilityHost clustering for both planned and unplanned downtime

Linux guest supportFree

Virtual Server 2005 R2 SP1

Intel Virtualization Technology / AMDV support

Increased reliability and performanceMuch better experience when consolidating Linux

VSS supportImproved Backup and DR scenarios

VHD Mounting on host

Windows Server Virtualization

Hypervisor based solution for WindowsIntegrated virtualization “role”New IO sharing model for better performanceStandards based management APIWindows virtualization platform for partners

Windows Virtualization Scenarios

Production Server ConsolidationBusiness Continuity ManagementTest and Development

Production Server Consolidation

Physical consolidationImprove and maximize hardware utilizationConsolidate workloads onto fewer highly scalableand reliable enterprise class servers

Reduce TCOPhysical plant

Reduce electrical costs for cooling and serverpower consumptionReduce datacenter physical footprint

Server managementEase management and reduce operational costsby moving to a standardized platformIncrease business agility by moving to dynamic platform

Server consolidation is the fundamental drivingforce behind the virtualization of servers

Business Continuity Management

Business continuity is a comprehensiveprocess that includes

Disaster and business recoveryBusiness resumption and contingency planningFor a global organization, this is particularly difficultas they provide “follow the sun” services

Ensure continuity or uninterrupted provisionof operations and services

Reduce service interruptionsProvide scalable, high-availability solutionsImprove disaster and business recoveryProvide robust enterprise management

Business Continuity Management is the ability to minimize scheduled and unscheduled downtime

Test And DevelopmentPhysical consolidation

Improve and maximize hardware utilizationConsolidate workloads onto fewer servers

Reduce TCOPhysical plant

Reduce electrical costs for cooling and server power consumptionReduce physical footprint

Lifecycle managementReduce time to migrate new software from Dev to Test to ProductionIncrease business agility by moving to a dynamic platform

Streamline test and development effortsReduce time provisioning test/development environmentsRapid duplication of a production environment

Maximizing test hardware, reducing costs, improvinglifecycle management, and improving test coverage

Why Windows Server Virtualization?

Building a new platform for virtualization in Windows

Designed to be flexible and extensibleDesigned for long term developmentDesigned for use outside of pure virtualization scenarios

Architectures

Virtualization poses many problemsCPU, Memory, Devices, etc…

Each problem has multiple potential solutionsPros and cons not always obvious

Nor are they necessarily significant

VMM Arrangements

Host OS

VMM

Guest 1 Guest 2

VMM

Guest 1 Guest 2

Host OS VMM

Guest 1 Guest 2

Type-2 VMM Type-1 VMM(Hypervisor)

Hybrid VMM

Examples: JVMCLR

Examples: Virtual PCVirtual Server

Examples: Windows Virtualization

Hardware Hardware Hardware

Monolithic vs. Microkernelized

Monolithic hypervisorSimpler than a modern kernel, but still complexContains its own drivers model

Microkernelized hypervisor

Simple partitioning functionalityNo third-party codeDrivers run within guests

VM 1(Admin)

VM 3

Hardware

Hypervisor

VM 2(“Child”)

VM 3(“Child”)

Virtual-ization Stack

VM 1(Parent)

DriversDriversDrivers DriversDriversDrivers DriversDriversDriversHypervisor

VM 2

Hardware

DriversDriversDrivers

The Hypervisor

Very thin layer of softwareHighly reliableMuch smaller Trusted Computing Base (TCB)

No built-in driver modelLeverage the large base of Windows driversDrivers run in a partition

Will have a well-defined, published interfaceAllow others to create support for their OS’s as guests

Hardware virtualization assists are requiredIntel Virtualization TechnologyAMDv

Physical Hardware

The hypervisor restricts itself to managing a minimum set of hardware

ProcessorsLocal APICsConstant-ratesystem counterSystem physicaladdress space

Focus is on scheduling and isolation

Hardware

Windows hypervisor

Parent Partition

ServerCore

Apps

OS 1 OS 2

Apps Apps

Child Partition

Child Partition

Hardware

Windows hypervisor

Parent Partition

ServerCore

Apps

OS 1 OS 2

Apps Apps

Child Partition

Child Partition

Physical Hardware

In Windows virtualization, the parent partition manages the rest

IHV driversProcessor power managementDevice hot add and removal

New drivers are not required

HypercallsLow level API

Guests communicate with the hypervisor via hypercalls

Hypervisor equivalent of a syscallDetected via CPUIDConfigured via MSR

Simple formatOne input page, one output pageSpecify pages by physical address,then jump to known address

HypercallsHigh level APIs

Higher level abstractions are available in Windowspartitions

WinHv.sys providesa C language wrapper

WindowsServer Core

VirtualizationStack

WMI Provider

WinHv.sys

Hardware

Windows hypervisor

VmBus.sys

Windows

WinHv.sys

VmBus.sys

CPU Virtualization

User mode code on x86 / x64 processors can be natively virtualizedKernel mode code is more problematic

Emulation / Binary TranslationRing compression

This is not possible on x64 due to lack of ring 1 and 2

Hardware virtualization support

Virtual Server 2005: Software

Windows Server 2003 or XP

Kernel VMM

Kernel ModeUser Mode

Virtual ServerService

IIS

Virtual ServerWebApp

Provided by:

Microsoft

ISV

OEM

Virtual Server

“Designed for Windows” Server Hardware

Guest Kernel

VMM

GuestApplications

Host OS Guest OS

Virtual Server 2005: Additions

Windows Server 2003 or XP

Kernel VMM

Kernel ModeUser Mode

Virtual ServerService

IIS

Virtual ServerWebApp

Provided by:

Microsoft

ISV

OEM

Virtual Server

“Designed for Windows” Server Hardware

Ring 1: Guest Kernel

Windows (NT4, 2000, 2003)

VM Additions

Ring 0: Kernel Mode VMM

Ring 3: User Mode

GuestApplications

Host OS Guest OS

Virtual Server 2005: Hardware

Windows Server 2003 or XP

Kernel VMM

Kernel ModeUser Mode

Virtual ServerService

IIS

Virtual ServerWebApp

Provided by:

Microsoft

ISV

OEM

Virtual Server

“Designed for Windows” Server Hardware

GuestApplications

Host OS Guest OS

GuestKernel

Windows Virtualization: ArchitectureParent Partition Child Partitions

Kernel Mode

User Mode

VirtualizationService

Providers(VSPs)

WindowsKernel

Server Core

IHVDrivers

VirtualizationServiceClients(VSCs)

WindowsKernel

EnlightenmentsVMBus

Windows hypervisor

Virtualization Stack

VM WorkerProcessesVM

Service

WMI ProviderApplications

“Designed for Windows” Server Hardware

Provided by:

Windows

ISV

OEM

Windows Virtualization

Memory Virtualization

Relatively easy due to MMUMemory block allocated by virtualization software and access to memory is then ‘swizzled’ through the MMUMMU operations inside virtualized environment now become very costly

Device Virtualization

Access to I/O is the performance ‘Achilles heel’ of virtual machines todaySome approaches are:

Device EmulationDevice AbstractionDevice Assignment

Device Emulation

Virtual machine “sees” real hardware devicesEach access to the “device” involves an intercept, sent to the parent virtual machine

Performance is sub-optimal

Compatibility with existing software can be perfectMicrosoft provides emulations

The hardware that is emulated is from ~1997, providingin-box compatibility with old OSes

Requires a “monitor” partition that contains software for emulating the devicesPhysical devices can be shared amongmultiple guests

Virtual Server 2005

Windows Server 2003 or XP

Kernel VMM

Kernel ModeUser Mode

Virtual ServerService

IIS

Virtual ServerWebApp

Provided by:

Microsoft

ISV

OEM

Virtual Server

“Designed for Windows” Server Hardware

Ring 1: Guest Kernel

Windows (NT4, 2000, 2003)

VM Additions

Ring 0: Kernel Mode VMM

Ring 3: User Mode

GuestApplications

Host OS Guest OS

I/O Enlightenment

Uses abstract protocols to describe I/OUseful protocols already exist

SCSI, iSCSIRNDISRDP

New device stack implementations in thesecondary guests can be written that usethese abstract protocolsProtocol servers exist in a primary guest(parent), which is the partition that controlsthe physical devicesMultiple secondary guests can share the servicesof a single hardware deviceDoesn’t require an emulatorDoesn’t require a monitor partition

Virtualization I/O DefinitionsVirtual 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 systemCan pass I/O requests directly to physical devicesCan 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

VMBusA system for sending requests and data between virtual machines

VMBus – What Is It?

A protocol for transferring data through a ring buffer

A means of mapping a ring buffer into multiple partitionsA definition for the format of the ring bufferA means of signaling that a ring buffer has gone non-empty

A protocol for offering/discovering servicesA protocol for managing guest physical addressesA protocol for enumerating WDM device objectsthat represent a data channelA bus driver which implements all of those protocolsA data transfer library which can be linked intoa user-mode service or applicationA data transfer library which can be linked intoa kernel-mode driver

How Is Data Moved Between Partitions?

Commands are placed in ring buffersSmall data is placed in ring buffersLarger data is placed in pre-arranged pages shared between partitions

Described by commands in ring buffersLargest data is mapped into another partition without copying

Bus Driver

VMBus acts as a bus driverIt can form the bottom of a device stackVSCs can be instantiated on top of VMBus

(Names of components not finalized)

Example VSP/VSC DesignParent Partition Child Partitions

Kernel Mode

User Mode

Windows hypervisor

Applications

Provided by:

Windows

ISV

OEM

Windows Virtualization

VMBus

Windows File System

Volume

Partition

Disk

Fast Path Filter (VSC)

iSCSIprtVirtual StorageMiniport (VSC)

Virtual StorageProvider (VSP)

StorPort

Hardware

StorPortMiniport

VM Worker Process

Disk

Networking

How to get a network packet from the virtual machine to the wire

Virtual Server uses a switched hubSimple, but not common

Windows Server virtualization uses a full switch implementation

Extensible through WMI interface

Kernel Enlightenments

Windows kernel detects and communicates with hypervisor

Avoids expensive calls and uses faster services provided by the hypervisor

E.g. MMU

Not ring compressionNot kernel patching

Windows uses a unified kernelAll Windows kernels have enlightenments in placeWindows Vista shipped with enlightenments

Management

Virtual Server uses a single process space

Virtual machines are separate threadsManaged through COM API

Windows Server virtualization uses a process per virtual machine

Managed by a central serviceUse a WMI API

Virtualization StackComponent View

ConfigComponent

VMMS

WMI

Worker process

StateMachine

IC Proxy

RDPEncoder

VDev

VirtualMotherboard

VID VSPKernel Mode

User Mode

VMMS

WMI

VMMSVirtual Machine Management Service

ResponsibilitiesControls all virtual machines

WMI provider receives control commands from Management Console

Creates one Worker Process for each VM instance

Collaborates withConfig component to configure VMs and VNSs – Virtual Network SwitchesWorker process to control VM

Virtualization stack

Config Component

ResponsibilitiesPersistent configurationstore for VMs and VNSs Key/value pairs

Hierarchical organization

Collaborates withVMMS

Receives commands/send results

Worker ProcessCommunicates configuration changes

ConfigComponent

Virtualization stack

VIDVirtualization Infrastructure Driver

ResponsibilitiesMediates communicationwith hypervisorProvides basic and advanced guest memory virtualization

MMIO emulation, ROM emulation

Provides instruction completion

Collaborates withHypervisor

Makes requests to hypervisorby using the hypercall protocol

VID

Virtualization stack

Worker process

StateMachine

IC Proxy

RDPEncoder

VDev

VirtualMotherboard

Worker Process

Instantiated for running or configuring one instance of a VMContains

VMB VDevsState MachineIC ProxyRDP Encoder

Virtualization stack

Worker process

StateMachine

IC Proxy

RDPEncoder

VDev

VirtualMotherboard

Microsoft and XenSource Collaboration

Microsoft and XenSource to develop Interoperable Virtualization Solutions

Microsoft and XenSource will cooperate on the development of technology that will provide interoperability between Xen-enabled Linux and Microsoft’s hypervisor-based Windows Server virtualizationBy supporting heterogeneous environments, Microsoft is continuing its commitment to make Windows Server the most flexible virtualization solution

ArchitectureParent Partition

Kernel Mode

User Mode

VirtualizationService

Providers(VSPs)

WindowsKernel

Longhorn ServerXen-enabledLinux Kernel

VMBus

Windows hypervisor

“Designed for Windows” Server Hardware

Xen-enabled Linux Guest Partition

Applications

LinuxVirtualizationServiceClients(VSCs)VMBus

Virtualization Stack

VMService

WMI ProviderVM WorkerProcesses

Hypercall Adapter

Provided by:

OS

MS/XenSource

ISV/IHV/OEM

Windows virtualization

Resources

Windows virtualization information

http://www.microsoft.com/windowsserversystem/virtualization/default.mspx

Microsoft Virtualization Blogshttp://blogs.msdn.com/Virtual_PC_Guyhttp://blogs.technet.com/virtualization/http://blogs.technet.com/jhoward

BookProfessional Microsoft Virtual Server 2005 http://tinyurl.com/3y33v9

Related Sessions, HOLs, Certifications etc.

SVR310 - Up-close and personal with Virtual Machines and SCVMMSVR314 - High Availability for physical and virtual environments with Windows Server 2008SVR301 - How Windows Server 2008 Impacts IT InfrastructureCLI319 - Pulling Microsoft Virtualization Products Together to Create a Virtualized DataCenter

Evaluation Forms

Questions?

© 2007 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.