Inside Microsoft’s Inside Microsoft’s Network and Storage Network and Storage VSP/VSCVSP/VSC
Brian HenryBrian HenryProgram ManagerProgram ManagerWindows VirtualizationWindows VirtualizationMicrosoft CorporationMicrosoft Corporation
AgendaAgenda
NetworkingNetworkingIntroductionIntroduction
ArchitectureArchitecture
ConfigurationConfiguration
Compatibility RequirementsCompatibility Requirements
Wrap-upWrap-up
StorageStorageRequirementsRequirements
ArchitectureArchitecture
Other topicsOther topics
Virtualized NetworkingVirtualized Networking
IntroductionIntroduction
ArchitectureArchitecture
ConfigurationConfiguration
Compatibility RequirementsCompatibility Requirements
Wrap-upWrap-up
Networking GoalsNetworking GoalsHigh performanceHigh performance
Avoiding copying dataAvoiding copying data
SecuritySecurityStrong isolationStrong isolation
Extensibility & CompatibilityExtensibility & CompatibilityDifferent topologiesDifferent topologies
Sharing a NICSharing a NIC
Owning a NICOwning a NIC
NATNAT
Interpartition networkingInterpartition networking
Hardware, drivers and standardsHardware, drivers and standards
Networking SolutionNetworking Solution
EmulationEmulationEmulated DEC 21140 support will still be Emulated DEC 21140 support will still be providedprovided
For PXE bootFor PXE boot
For OSes that aren’t enlightenedFor OSes that aren’t enlightened
EnlightenmentEnlightenmentEnlightened networkingEnlightened networking
Much better performanceMuch better performance
Networking devices virtualization-awareNetworking devices virtualization-aware
AgendaAgenda
IntroductionIntroduction
ArchitectureArchitecture
ConfigurationConfiguration
Compatibility RequirementsCompatibility Requirements
Wrap-upWrap-up
Networking ComponentsNetworking Components
Virtual network switchVirtual network switchAdmin mostly interacts with thisAdmin mostly interacts with thisLike physical switch, but can add/delete portsLike physical switch, but can add/delete ports
Virtual network cardVirtual network cardGuest-visible componentGuest-visible component
Emulated network cardEmulated network cardProvides emulation where appropriateProvides emulation where appropriateTraps on I/O operationsTraps on I/O operations
Service stackService stackProvides configuration, setup/teardownProvides configuration, setup/teardownProvides WMI interfaceProvides WMI interfaceRuns emulation codeRuns emulation code
Switch FeaturesSwitch Features
Flexible NIC configurationFlexible NIC configurationAdmin can create multiple switchesAdmin can create multiple switchesAdmin decides which switch to use for internal,Admin decides which switch to use for internal,physical, and guest VMs’ Network Interface Cardsphysical, and guest VMs’ Network Interface Cards
Learning algorithmLearning algorithmAnti-denial-of-service implementationAnti-denial-of-service implementation
Port controlPort controlBandwidth controlBandwidth controlVLAN (802.1q)VLAN (802.1q)Monitor modeMonitor mode
Offloading supportOffloading supportLarge Send OffloadLarge Send OffloadChecksum OffloadChecksum Offload
Generic VSP/VSCGeneric VSP/VSC
VSCVSP
VMBus
Network VSP/VSCNetwork VSP/VSCParent Partition Child Partition
Child OSChild OSParent OSParent OS
NetworkVSC
NetworkVSP
VMBus
Physical NICPhysical NIC
Virtual MachineVirtual MachineNICNIC
InternalInternalNICNIC
Virtual SwitchVirtual Switch
NDIS Interaction With VSCNDIS Interaction With VSC
NDIS
Network VSC(NDIS Miniport
Driver)
Child PartitionChild Partition
NDIS Interaction With VSPNDIS Interaction With VSPParent PartitionParent Partition
Vendor-ProvidedVendor-ProvidedPhysical NIC DriverPhysical NIC Driver
(NDIS Miniport Driver)(NDIS Miniport Driver)
Network VSP(NDIS IM Driver)
NDIS
Physical NICPhysical NIC
Virtual SwitchVirtual Switch
AgendaAgenda
IntroductionIntroduction
ArchitectureArchitecture
ConfigurationConfiguration
Compatibility RequirementsCompatibility Requirements
Wrap-upWrap-up
Switch ConfigurationSwitch Configuration
Per portPer portMonitor modeMonitor mode
VLAN IDVLAN ID
Bandwidth controlsBandwidth controls
Per switchPer switchSwitch nameSwitch name
Configuration is always through Configuration is always through virtualization stackvirtualization stack
Not SNMP, not TelnetNot SNMP, not Telnet
Configuration SampleConfiguration SampleStandardStandard
Virtual SwitchVirtual Switch
PhysicalPhysicalNICNIC
Child OSChild OS(1) Stack(1) Stack
Parent OS StackParent OS Stack
Child OSChild OS(2) Stack(2) Stack
Configuration SampleConfiguration SampleDual physical NICsDual physical NICs
Virtual SwitchVirtual Switch
PhysicalPhysicalNIC #1NIC #1
Child OSChild OS(1) Stack(1) Stack
Parent OS StackParent OS Stack
Child OSChild OS(2) Stack(2) Stack
PhysicalPhysicalNIC #2NIC #2
Configuration SampleConfiguration SampleChild Partition IsolationChild Partition Isolation
Virtual SwitchVirtual Switch
PhysicalPhysicalNICNIC
Child OSChild OS(1) Stack(1) Stack
Parent OS StackParent OS Stack
Child OSChild OS(2) Stack(2) Stack
Virtual SwitchVirtual Switch Child OSChild OS(3) Stack(3) Stack
Child OSChild OS(4) Stack(4) Stack
Configuration SampleConfiguration SampleDedicated NICDedicated NIC
Virtual SwitchVirtual Switch
PhysicalPhysicalNICNIC
Child OSChild OS(1) Stack(1) Stack
Parent OS StackParent OS Stack
Child OSChild OS(2) Stack(2) Stack
Virtual SwitchVirtual Switch Child OSChild OS(3) Stack(3) Stack
PhysicalPhysicalNICNIC
Physical NIC ConfigurationPhysical NIC Configuration
MAC addressMAC address
Virtual switch port bindingVirtual switch port binding
Virtual NIC ConfigurationVirtual NIC Configuration
MAC addressMAC addressDynamicDynamicStaticStatic
Virtual switch port bindingVirtual switch port binding
Microsoft has new IEEE Organizationally Microsoft has new IEEE Organizationally Unique Identifier (OUI) for virtual NICsUnique Identifier (OUI) for virtual NICs
OUI is 00-15-5DOUI is 00-15-5DUsed when dynamically allocated Used when dynamically allocated Avoids collisions with earlier virtualization Avoids collisions with earlier virtualization effortsefforts
MAC Address ConflictsMAC Address Conflicts
Networking infrastructure is not Networking infrastructure is not responsible for MAC address conflict responsible for MAC address conflict detection or resolutiondetection or resolution
Microsoft Windows virtualization in-box Microsoft Windows virtualization in-box solution will prevent conflicts within scope of solution will prevent conflicts within scope of physical machine (best effort)physical machine (best effort)
External management solutions are required External management solutions are required to prevent conflicts outside scope of physical to prevent conflicts outside scope of physical machinemachine
Configuration MechanismsConfiguration Mechanisms
UIUIBasic out-of-box configurationBasic out-of-box configuration
Built on top of WMI, no private APIBuilt on top of WMI, no private API
WMIWMIFully documented Fully documented
Basis for command-line supportBasis for command-line support
Basis for external management appsBasis for external management apps
WMI Details For NetworkingWMI Details For Networking
Objects exposed: Switches, ports,Objects exposed: Switches, ports,and NICsand NICs
Create switches, ports and NICs,Create switches, ports and NICs,bind to switchesbind to switches
Retrieve statistical/accounting dataRetrieve statistical/accounting dataPackets sentPackets sent
Packets receivedPackets received
Packets droppedPackets dropped
Per port and per switch Per port and per switch
WMI Object Hierarchy - SwitchWMI Object Hierarchy - Switch
CIM_SwitchPort CIM_LANEndpointCIM_SwitchService
CIM_ForwardingService
CIM_NetworkService
CIM_Service
1
0..*
Msvm_SwitchesAmong
CIM_ProtocolEndpoint
CIM_ServiceAccessPoint
CIM_EnabledLogicalElement
1 1
Msvm_SwitchPortConnection
CIM_TransparentBridgingService
CIM_LogicalElement
CIM_DynamicForwardingEntry
1
*
Msvm_TransparentBridgingDynamicForwarding
1..* *Msvm_SwitchServiceTransparentBridging
1..*
*
Msvm_SwitchPortDynamicForwarding
Msvm_SwitchService Msvm_TransparentBridgingService Msvm_SwitchPort Msvm_EthernetCable
Msvm_DynamicForwardingEntry
WMI Object Hierarchy - VDEVWMI Object Hierarchy - VDEV
CIM_NetworkPort
CIM_LogicalPort
CIM_LogicalDevice
1
1
Msvm_EthernetPortCableCIM_EthernetPort
CIM_ComputerSystem
1
1
Msvm_VirtualComputerSystemEthernetCable
VDEV Classes
Msvm_EthernetCable
Msvm_EmulatedEthernetPort
Msvm_SyntheticEthernetPort
Switch Classes
WMI Object Hierarchy – WMI Object Hierarchy – Resource Allocation Resource Allocation
CIM_NetworkPort
CIM_LogicalPort
CIM_LogicalDevice
CIM_EthernetPort
Msvm_EmulatedEthernetPort Msvm_SyntheticEthernetPort
CIM_ManagedElement
CIM_SettingData
CIM_ResourceAllocationSettingData
Msvm_EmulatedEthernetPortSettingData Msvm_SyntheticEthernetPortSettingData
CIM_ManagedSystemElement
CIM_LogicalElement
CIM_ResourcePool
Msvm_EmulatedEthernetPortResourcePool Msvm_SyntheticEthernetPortResourcePool
CIM_EnabledLogicalElement
1
1
Msvm_ElementSettingData
1
1
Msvm_ElementSettingData
1
1
Msvm_AllocatedFromPool
1
1
Msvm_AllocatedFromPool
Config State And MigrationConfig State And Migration
Config state is kept in XML,Config state is kept in XML,which is private to the VDevwhich is private to the VDev
Initial config is achieved through WMIInitial config is achieved through WMI
Config changes made through WMIConfig changes made through WMI
XML schema will not be publishedXML schema will not be published
XML is used for serialization/XML is used for serialization/deserialization on store and startupdeserialization on store and startup
We have made the assumption thatWe have made the assumption thatmigration does not depend on statemigration does not depend on state
Policy must be defined above networkingPolicy must be defined above networkingstack by management componentsstack by management components
AgendaAgenda
IntroductionIntroduction
ArchitectureArchitecture
ConfigurationConfiguration
Compatibility RequirementsCompatibility Requirements
Wrap-upWrap-up
Compatibility RequirementsCompatibility Requirements
NDIS driverNDIS driver
Listen in promiscuous modeListen in promiscuous modeReceive packets with any destination MAC addressReceive packets with any destination MAC address
Accept the OID_GEN_CURRENT_PACKET_FILTERAccept the OID_GEN_CURRENT_PACKET_FILTERwith a value of NDIS_PACKET_TYPE_PROMISCUOUS with a value of NDIS_PACKET_TYPE_PROMISCUOUS
Flexible source MACFlexible source MACTransmit packets with any source MAC addressTransmit packets with any source MAC address
802.3802.3Ethernet framesEthernet frames
Return NdisMedium802_3 when handling Return NdisMedium802_3 when handling OID_GEN_MEDIA_SUPPORTEDOID_GEN_MEDIA_SUPPORTED
Note: 802.11 is not compatible and not supportedNote: 802.11 is not compatible and not supported
Compatibility RequirementsCompatibility Requirements(future)(future)
Use PCI bus architecture to enable device Use PCI bus architecture to enable device assignmentassignment
Each device should have its own PCI Bus-Each device should have its own PCI Bus-Device-Function (BDF)Device-Function (BDF)
AgendaAgenda
IntroductionIntroduction
ArchitectureArchitecture
ConfigurationConfiguration
Compatibility RequirementsCompatibility Requirements
Wrap-upWrap-up
Your Input Is NeededYour Input Is Needed
We want your input to help prioritize our We want your input to help prioritize our efforts for future versions of the virtual efforts for future versions of the virtual environmentsenvironments
Device assignmentDevice assignment
Chimney (TOE) supportChimney (TOE) support
SNMP agent for switchSNMP agent for switch
MAC address listsMAC address lists
Virtualized StorageVirtualized StorageGoalsGoals
Participants will leave withParticipants will leave withan understanding ofan understanding of
How Microsoft intends to enableHow Microsoft intends to enableefficient storage device virtualizationefficient storage device virtualization
What options are available forWhat options are available forbacking storagebacking storage
How common enterprise scenarios workHow common enterprise scenarios work
Agenda (Storage)Agenda (Storage)
RequirementsRequirements
ArchitectureArchitectureDevice emulationDevice emulation
Enlightened I/OEnlightened I/O
Other topicsOther topicsExtensibilityExtensibility
VHD utilityVHD utility
ClusteringClustering
VSSVSS
RequirementsRequirementsFunctional goalsFunctional goals
Provide a general purpose, high-Provide a general purpose, high-speed virtual storage infrastructurespeed virtual storage infrastructure
Allow format-independenceAllow format-independencebetween the backing storebetween the backing storeand the child partitionand the child partition
Using an image, either ISO or VHDUsing an image, either ISO or VHD
Using an entire physical driveUsing an entire physical drive
Using NAS or SANUsing NAS or SAN
Solution RequirementsSolution RequirementsPerformancePerformance
Provide greatly improved performance for Provide greatly improved performance for identified scenariosidentified scenarios
Minimize code path lengthMinimize code path length
AgendaAgenda
RequirementsRequirements
ArchitectureArchitectureDevice emulationDevice emulation
Enlightened I/OEnlightened I/O
Other topicsOther topicsExtensibilityExtensibility
VHD utilityVHD utility
ClusteringClustering
VSSVSS
Device EmulationDevice EmulationComponentsComponents
SCSI emulatorSCSI emulatorEmulates Adaptec 7870 SCSI controllerEmulates Adaptec 7870 SCSI controller
IDE emulatorIDE emulatorEmulates Intel PIIX4 IDE controllerEmulates Intel PIIX4 IDE controller
DriversDriversUses native in-box drivers for WindowsUses native in-box drivers for Windows®®
Uses drivers common in other OSesUses drivers common in other OSes
Device EmulationDevice EmulationArchitectureArchitecture
Parent Child
User-Mode User-Mode
Kernel-ModeKernel-Mode
Image Parser
AdaptecMiniport
Storport
Hypervisor
Virtual Storage Server (VSP)
I/O Handlers
IDE Controller
SCSI Controller
IDE Disk
IDE DVD
SCSI Disk
Windows Virtualization Stack Worker Process
Volume
Disk
Partition
FileSystem
File System
StorPortMiniport
Disk
Partition
Volume
Virtualization Stack
I/O operationsI/O operationscause trapscause traps
Hypervisor intercepts Hypervisor intercepts and redirectsand redirects
Emulations make Emulations make requests ofrequests ofstorage serverstorage server
Storage serverStorage serverpasses requestspasses requestson to a VHD parser on to a VHD parser
Lots of context Lots of context switchingswitching
Device EmulationDevice EmulationBenefitsBenefits
ProsProsStandard set of supported legacy devicesStandard set of supported legacy devices
Adequate for non-performance-intensive Adequate for non-performance-intensive applicationsapplications
ConsConsInadequate performance for some Inadequate performance for some applicationsapplications
Device EmulationDevice EmulationWhen to useWhen to use
During bootDuring boot
When using unenlightenedWhen using unenlightenedoperating systemsoperating systems
Enlightened I/OEnlightened I/OComponentsComponents
Storage VDevStorage VDevUsed to instantiate, configure, andUsed to instantiate, configure, andcontrol enlightened storage devicescontrol enlightened storage devices
Exposes WMI interfaceExposes WMI interface
Virtual storage serverVirtual storage serverUses SRB protocol to communicateUses SRB protocol to communicatewith clientwith client
Top edge interfaces with storage VDevTop edge interfaces with storage VDev
Enlightened I/OEnlightened I/OComponentsComponents
Image parsersImage parsersTranslates storage requests and responses Translates storage requests and responses from SRB to backing store formatfrom SRB to backing store format
ParsersParsersVHDVHD
ISO (read-only)ISO (read-only)
Pass-throughPass-through
Enlightened I/OEnlightened I/OComponentsComponents
Virtual storage miniportVirtual storage miniportStorport miniportStorport miniport
VMBusVMBusInter-partition communication mechanismInter-partition communication mechanism
Enlightened I/OEnlightened I/OArchitectureArchitecture
Parent Child
User Mode
Kernel Mode
Viridian Virtualization Stack Worker Process
Image Parser
VMBUS
Virtual Storage Miniport (VSC)
StorPort
VM
SR
Bs
Virtual Storage Server (VSP)
Hardware
Fast Path Filter
VM
S
RB
s
User Mode
Kernel Mode
Volume
StorPortMiniport
Disk
Partition
File System
Disk
Volume
Partition
File System
No I/O trapsNo I/O trapsLittle hypervisor Little hypervisor InvolvementInvolvementEnlightenedEnlightenedrequests makerequests makerequests ofrequests ofstorage serverstorage serverStorage serverStorage serverpasses on requestspasses on requests
VHD parserVHD parserDirectly to a LUNDirectly to a LUN
Much less context Much less context switchingswitching
Enlightened I/OEnlightened I/OSupported backing storageSupported backing storage
Direct-attached storageDirect-attached storageATAATA
SCSISCSI
OtherOther
Network-attached storageNetwork-attached storage
Storage area networksStorage area networks
Enlightened I/OEnlightened I/OBenefitsBenefits
ProsProsMuch better performance than emulationMuch better performance than emulation
ConsConsDoes not work for unenlightened guests Does not work for unenlightened guests
Enlightened I/OEnlightened I/OWhen to useWhen to use
Wherever possibleWherever possibleWherever VSCs are availableWherever VSCs are available
AgendaAgenda
RequirementsRequirements
ArchitectureArchitectureDevice emulationDevice emulation
Enlightened I/OEnlightened I/O
Other topicsOther topicsExtensibilityExtensibility
VHD utilityVHD utility
ClusteringClustering
VSSVSS
Other TopicsOther TopicsExtensibilityExtensibility
Image parser not extensible in Image parser not extensible in first releasefirst release
Third parties are encouraged to add value Third parties are encouraged to add value for specialized marketsfor specialized markets
Other TopicsOther TopicsVHD utility functionsVHD utility functions
CreationCreationCreating new disksCreating new disks
CompactionCompactionCompacting dynamic disksCompacting dynamic disks
ExpansionExpansionExpanding dynamic disks beyondExpanding dynamic disks beyondoriginal max sizeoriginal max size
Merging and forkingMerging and forkingMerging differencing disksMerging differencing disks
Inserting new differencing disksInserting new differencing disks
Other TopicsOther TopicsClustering and VSSClustering and VSS
Clustering “just works”Clustering “just works”Host-side or guest-sideHost-side or guest-side
Volume Shadowing Services “just works”Volume Shadowing Services “just works”Child receives VSS messages from parent Child receives VSS messages from parent (for enlightened guests)(for enlightened guests)
Call To ActionCall To Action
Be aware of compatibility requirementsBe aware of compatibility requirements
Consider your value addConsider your value add
Send us your feedback at Send us your feedback at [email protected]@microsoft.com
Questions?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.