101

Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Embed Size (px)

Citation preview

Page 1: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration
Page 2: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Implementing Common Storage Scenarios in Windows Server 2012 with SC SP1 VMMHector LinaresSenior Program ManagerMicrosoft

WS-B314

Page 3: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

“I do not have the expertise to automate storage operations”

“too much room for human error.”

“There are too many APIs that I need to work with across different arrays”

“I spent lots of time waiting for storage to be provisioned”

Customer Pain Points

Page 4: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Partner Pain Points

“Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration. Which one should do I build?”

“The administrators that use our management consoles do not have any visibility into the virtualization environment. They need to see managed devices in the context of virtualization.”

Page 5: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Evolving Storage Management

VM migration automation using NPIV automation or VDS HW providers

VMM 2007 VMM 2008VMM 2008 R2 SP1

SMI-S based discovery, management and automation of block storage

VMM 2012

Discovery, management and automation of block and file storage using Windows Server 2012

VMM 2012 SP1

Page 6: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

A Fresh Perspective

“By embracing cloud design points and best practices, I am in control.”

Customer deploying fully integrated racks

“Microsoft’s approach highlights the power of hardware with software, making it simple to use.”

Partner building storage providers“The Microsoft stack is starting to exceed what we can build on our own.

Service provider choosing to embrace System Center

Page 7: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Private Cloud Storage Management

Allocation and Assignment

Standards Based Management

VM, Host, and Cluster Storage Management

Extensive SAN and NAS Support

Scalable Provisioning

Storage Monitoring

Array Onboarding

Storage Classification

Rapid ProvisioningBlock and File

Storage Management End to End

Mapping

Insight Flexibility Automation

SAN Migration

Page 8: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Windows Server 2012 – Storage Management API

Management

Applications

Storage Managemen

t APIs

Windows Storage Management API (Windows PowerShell and WMI)

Pass-through API for extensibility (WMI)

Storage Array

Storage Management Provider Interface

Non-Microsoft management application

System Center 2012 SP1 - VMM

File Server Manager(File and Storage Services

role)

Vendor-provided SMI-S provider (CIMXML or WMI)

Storage Array

Vendor-provided transport and/or protocol

SMP: Windows Standards Based Storage

Management Service

SMP: Vendor-provided WMI-based provider

SMP: Storage Spaces (no pass-through API support)

Page 9: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

SM I-S SAN/NAS Proxy

Provider

SM I-S SANw/ Embedded

Provider

SM I-S NASProxy Provider

WindowsScale-out File Server

SM API

WMI

SM P:SM I-S

StorageService

SM PPartner Provider

SM P:Spaces

WSMAN/WinRM

WSMan/WinRM

Hyper-VStandalone Hyper-V

Cluster

NAS Device

SAN/NAS Device

CIMXML/WMI

CIMXMLCIMXML

SAN Device

Proprietary

Proprietary Proprietary

VMM Server

WSMan/WinRM

SM I-S SAN Proxy

Provider

SANDevice

Proprietary

FC/iSCSI

(some providersrequire this

CIMXMLWMI

VMVM

Library Server

WSMan/WinRM

Page 10: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Scenario: Is my storage overprovisioned?

Page 11: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

What is thin provisioning?Thinly provisioned storage gets allocated by the underlying device on-demand. The provisioned capacity (from the file system and application perspective) can even exceed physically capacity of the device.

Pool: Physically Available

Disk: Promised Disk: Promised

File Syste

m: Used

File Syste

m: Used

Page 12: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Pool: Physically Available

What is thin provisioning?Thinly provisioned storage gets allocated by the underlying device on-demand. The provisioned capacity (from the file system and application perspective) can even exceed physically capacity of the device.

Great way to lower the cost of storage by increasing the number of workloads that can use storage from the device.

Disk: Promised Disk: Promised Disk: Promised Disk: Promised Disk: Promised

File Syste

m: Used

File Syste

m: Used

Page 13: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Pool: Physically Available

What is thin provisioning?Thinly provisioned storage gets allocated by the underlying device on-demand. The provisioned capacity (from the file system and application perspective) can even exceed physically capacity of the device.

Great way to lower the cost of storage by increasing the number of workloads that can use storage from the device.

Disk: Promised Disk: Promised Disk: Promised Disk: Promised Disk: Promised

File Syste

m: Used

File Syste

m: Used

File System: Used

File System: Used

File System: Used

Page 14: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

What is thin provisioning?Thinly provisioned storage gets allocated by the underlying device on-demand. The provisioned capacity (from the file system and application perspective) can even exceed physically capacity of the device.

Great way to lower the cost of storage by increasing the number of workloads that can use storage from the device.

Disk: Promised Disk: Promised Disk: Promised Disk: Promised Disk: Promised

File Syste

m: Used

File Syste

m: Used

File System: Used

File System: Used

File System: Used

Pool: Physically Available

Page 15: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Demo

Thin Provisioning Alerts in Operations Manager

Page 16: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration
Page 17: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration
Page 18: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration
Page 19: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Overprovisioned % for a pool

Import-Module virtualmachinemanager$vmm = Get-SCVMMServer localhost function New-OverAllocationResult(){    param ($level, $pool, $overprovisioned, $lunnames)    $result = new-object PSObject     $result | Add-Member -MemberType NoteProperty -Name "LogLevel" -Value $level    $result | Add-Member -MemberType NoteProperty -Name "Pool" -Value $pool    $result | Add-Member -MemberType NoteProperty -Name "OverProvisioned" -Value $overprovisioned    $result | Add-Member -MemberType NoteProperty -Name "LUN Names" -Value $lunnames        return $result} #Get all managed pools#VMM imports LUN information for managed pools$pools = Get-SCStoragePool -All | where {$_.IsManaged -eq $true} #for each pool, add up max size of LUN #calculate overprov % for the pool$results = @()

Page 20: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Overprovisioned % for a pool

foreach($pool in $pools){    $luns = $pool.StorageLogicalUnits    $totallunsize=0    $lunnames=$null    foreach($lun in $luns)    {        $totallunsize+=$lun.TotalCapacity        if($lun -ne $luns[$luns.count-1]){            $lunnames += ($lun.Name + ", ")}         else {$lunnames += $lun.Name}                }    $overprovisioned = ($totallunsize/$pool.TotalManagedSpace)*100     if($overprovisioned -le "70") {        $results += New-OverAllocationResult "2.INFORMATIONAL"  $pool ("{0:N1}" -f $overprovisioned +"%") $lunnames }    if($overprovisioned -gt "70" -and $overprovisioned -le "100") {        $results += New-OverAllocationResult "1.WARNING"  $pool ("{0:N1}" -f $overprovisioned +"%") $lunnames }    if($overprovisioned -gt "100") {        $results += New-OverAllocationResult "0.CRITICAL"  $pool ("{0:N1}" -f $overprovisioned +"%") $lunnames  }}

Page 21: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Overprovisioned % for a pool

$a = "<style>"$a = $a + "BODY{background-color:rgb(255,255,255);}"$a = $a + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"$a = $a + "TH{border-width: 1px;padding: 0px;border-style: solid;border-color: black;background-color:rgb(16,195,243)}"$a = $a + "TD{border-width: 1px;padding: 0px;border-style: solid;border-color: black;background-color:PaleGoldenrod}"$a = $a + "</style>" $results | Sort-Object LogLevel,OverProvisioned | ConvertTo-HTML -head $a -Body "<H2>Thin Disk Overprovisioning Report</H2>" | Out-File "C:\temp\PoolTPReport.htm"Invoke-Expression "C:\temp\PoolTPReport.htm"

Page 22: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration
Page 23: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

SMB3.0 and NAS StorageWindows Server 2012 introduces new SMB file server features designed for workloads like Hyper-V and SQL.Storage partners can implement SMB 3.0 in NAS devices

Discovery of Windows standalone and clustered file servers (WMI), discovery of self-contained and NAS head devices (non-Windows using SMI-S), creation and deletion of files shares, setting ACLs

Supported

Deployment of file server clusters, configuration of block storage, load balancing of SMB client connections, file share classification, management of single server with iSCSI software target (through SMI-S provider) and file server roles

Not Supported

Page 24: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Dynamics Disks and Thin Provisioned VolumesThe actual capacity available to the workload inside of the application depends on how much is available on the host AND the underlying pool.

Pool: Physically Available

Host Disk: Promised

Host: File System: Used

VM: Virtual Hard Disk: Promised

VM: File System: Used

Page 25: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Overprovisioned % volumes with dynamic disksImport-Module virtualmachinemanager$vmm = Get-SCVMMServer localhost function New-OverAllocationResult(){    param ($level, $label, $overprovisioned, $vmnames)    $result = new-object PSObject     $result | Add-Member -MemberType NoteProperty -Name "LogLevel" -Value $level    $result | Add-Member -MemberType NoteProperty -Name "Volume" -Value $label    $result | Add-Member -MemberType NoteProperty -Name "OverProvisioned" -Value $overprovisioned    $result | Add-Member -MemberType NoteProperty -Name "VM Names" -Value $vmnames        return $result}  $vhds = Get-SCVirtualHardDisk -All$disks = Get-SCStorageDisk$shares = (Get-SCStorageFileShare -All) | where {$_.IsManaged -eq $true}$results = @()

Page 26: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Overprovisioned % volumes with dynamic disksforeach($share in $shares){    $overprovisioned=0    $vmnames=$null    $vhdmaxsize=0    $overprovisioned=0    foreach($vhd in $vhds){        if($vhd.FileShare -eq $share){        $vhdmaxsize += ($vhd.MaximumSize)        $vmnames += ($vhd.Name +",")        }    }    $overprovisioned = (($vhdmaxsize)/$share.Capacity)*100     $sharepath = $share.sharepath    if($overprovisioned -le "70") {        $results += New-OverAllocationResult "2.INFORMATIONAL"  $sharepath ("{0:N1}" -f $overprovisioned +"%") $vmnames }    if($overprovisioned -gt "70" -and $overprovisioned -le "100") {        $results += New-OverAllocationResult "1.WARNING"  $sharepath ("{0:N1}" -f $overprovisioned +"%") $vmnames }    if($overprovisioned -gt "100") {        $results += New-OverAllocationResult "0.CRITICAL"  $sharepath ("{0:N1}" -f $overprovisioned +"%") $vmnames  }}

Page 27: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Overprovisioned % volumes with dynamic disksforeach($disk in $disks){    foreach($volume in $disk.DiskVolumes){        $overprovisioned=0        $vmnames=$null        $vhdmaxsize=0        $overprovisioned=0        foreach($vhd in $vhds){            if($vhd.HostVolume -eq $volume){                $vhdmaxsize += ($vhd.MaximumSize)                $vmnames += ($vhd.Name +",")            }        }        $overprovisioned = (($vhdmaxsize)/$volume.StorageDisk.Capacity)*100         $volumelabel = $vmhostvolume.VolumeLabel        if($overprovisioned -le "70") {            $results += New-OverAllocationResult "2.INFORMATIONAL"  $volume ("{0:N1}" -f $overprovisioned +"%") $vmnames }        if($overprovisioned -gt "70" -and $overprovisioned -le "100") {            $results += New-OverAllocationResult "1.WARNING"  $volume ("{0:N1}" -f $overprovisioned +"%") $vmnames }        if($overprovisioned -gt "100") {            $results += New-OverAllocationResult "0.CRITICAL"  $volume ("{0:N1}" -f $overprovisioned +"%") $vmnames  }    }}

Page 28: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Overprovisioned % volumes with dynamic disks$a = "<style>"$a = $a + "BODY{background-color:rgb(255,255,255);}"$a = $a + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"$a = $a + "TH{border-width: 1px;padding: 0px;border-style: solid;border-color: black;background-color:rgb(16,195,243)}"$a = $a + "TD{border-width: 1px;padding: 0px;border-style: solid;border-color: black;background-color:PaleGoldenrod}"$a = $a + "</style>" $results | Sort-Object LogLevel,OverProvisioned | ConvertTo-HTML -head $a -Body "<H2>Dynamic Disk Overprovisioning Report</H2>" | Out-File "C:\temp\DynamicDiskReport.htm"Invoke-Expression "C:\temp\DynamicDiskReport.htm"

Page 29: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration
Page 30: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Demo

Dynamic Disk Overprovision Report

Page 31: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Scenario: Rapid Provisioning and VDI

Page 32: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Hyper-V Storage ManagementProvision and assign block and file storage to Hyper-V host, clusters. Support for iSCSI, FC, SAS arrays and SMB3.0 capable devices (Windows Server, NetApp, EMC).

Discovery of array, pool, LUNs, masking sets, file server, file shares, ACLsProvision new virtual disk from pool, clone, snapshot, new file share from pool, new file share in pathVirtual disk masking and mappingIndications/eventing

Supported

Support for Windows Scale-out File Server using WMISupport for EMC and NetApp NAS using SMI-SSupport for SAS (HP P2000) and dynamic iSCSI target arrays (EqualLogic, MS iSCSI Target, HP StoreVirtual)Ability to assign LUNs to VMs using IQN

New in SP1

Page 33: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

SAN based Rapid ProvisioningDeployment of VMs using snapshot/cloning capability of storage arrays.

Provision new LUN to Library serverCreate new VM from VHD, place VM on new volumeCustomize VHD and create new template from VMTemplate is automatically marked SAN Copy Capable

Setup

Migration between hosts, clusters, and Library uses “SAN Transfer” – masking and unmasking of the LUNDeletion of VM will also delete the VHD and LUNVM clone does NOT create a clone of the LUN

Lifecycle

Page 34: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Large Scale ProvisioningAssociated Storage Logical Units feature increases the scale limits of storage array that have limitations on the number of snapshots per logical unit.

Create a SAN copy capable VM templateCreate associated logical units by cloning the VM template logical unit

Setup

New VM from template deployments will exhaust one of the associated logical units and then move to the next

Algorithm

Page 35: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

SAN Copy Capable Template

#initialize variables$templatename = "MMSDemoTemplate"$temp_templatename = "MMSDemoTemplate_temp"$vmhostname = "vmmlab1823n3.dcmanager.lab"$Libraryserver = $vmhostname$poolname = "iSCSITarget: vmmlab1823h1: D:"$hostgroupname = "All Hosts"$osname = "Windows Server 2012 Datacenter"$vhdname = "smallW2K12OS.VHD"#get pool by name$pool = Get-SCStoragePool | where {$_.Name -eq $poolname}#create LUN from available capacity on that pool($lun = New-SCStorageLogicalUnit -Name $templatename -StoragePool $pool -DiskSizeMB 1024) | fl name, totcalcapacity, classification#Get All Hosts host group$hg = Get-SCVMHostGroup -Name $hostgroupname#Allocate the LUN to the host group (this is required so you can unmask)(Set-SCStorageLogicalUnit -StorageLogicalunit $lun -VMHostGroup $hg) | Out-Null#Get VMHost object$vmhost = Get-SCVMhost | where {$_.Name -match $vmhostname}

Page 36: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

SAN Copy Capable Template

#unmask the LUN to the vm host(Register-SCStorageLogicalUnit -StorageLogicalUnit $lun -VMHost $vmhost) | Out-Null#Save VM path UNC to variable$uncpath = ("\\" + $vmhost.Name + "\v$\VMs\" + $templatename)#Create path on remote VM hostNew-Item ($uncpath + "\LUN1") -Type Directory | Out-Null#Save remote local path to variable$remotelocalpath = ("V:\VMs\" + $templatename + "\LUN1")#Get the disk that is the OS surfaces after unmasking LUN$disk = Mount-SCStorageDisk -StorageDisk $lun.HostDisks[0] -QuickFormat -ForceFormat -MasterBootRecord -VolumeLabel "MMSDEMOTemplate_A" -MountPoint $remotelocalpath #Get OS by Name$os = Get-SCOperatingSystem | where {$_.Name -match $osname}#Get VHD in Library by name$vhd= Get-SCVirtualHardDisk | where {$_.Location -eq ("\\" + $vmhostname + "\Library\W2K12\" + $vhdname)}#create a temporary template#first check if the template exists$temp_template = Get-SCVMTemplate -Name $temp_templatename#remove template if it existsif($temp_template -ne $null){Remove-SCVMTemplate -VMTemplat $temp_template | Out-Null}#create new template using New-VMTemplate$temp_template = New-SCVMTemplate -Name $temp_templatename -VirtualHardDisk $vhd -MemoryMB 8 -OperatingSystem $os -NoCustomization

Page 37: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

SAN Copy Capable Template

#Create VM that will serve as template for rapid provisioning#Create new VM config from template($vmconfig = New-SCVMConfiguration -VMTemplate $temp_template -Name ($templatename + "_Config")) | fl Name#Set destination to specific host(Set-SCVMConfiguration -VMConfiguration $vmconfig -VMHost $vmhost -VMLocation $remotelocalpath) | fl Name, VMHost, VMLocation#update VM config object with placement recommendationsUpdate-SCVMConfiguration -VMConfiguration $vmconfig | Out-Null#Update VHD information(Set-SCVirtualHardDiskConfiguration -VHDConfiguration $vmconfig.VirtualHardDiskConfigurations[0] -DeploymentOption "UseNetwork" -DestinationLocation $remotelocalpath -FileName ($templatename + "_OS.VHD")) | fl DeploymentOption, FileName#create VM($vm = New-SCVirtualMachine -VMConfiguration $vmconfig -Name $templatename) | fl Name, VirtualizationPlatform, HostGroupPath#Get Library server object$LibraryServer = Get-SCLibraryServer -VMMServer localhost | where {$_.Name -eq $Libraryserver}#create template that is SAN COPY CAPABLE (VMM uses SAN migration)$Libraryshare = Get-SCLibraryShare | where {$_.Name -match "Library"}$template = New-SCVMTemplate -Name $templatename -VM $VM -LibraryServer $LibraryServer -SharePath $libraryshare[0].Path -NoCustomization#refresh LibraryRead-SCLibraryShare -LibraryShare $Libraryshare[0] | Out-Null

Page 38: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

SAN Copy Capable Template#show template with associated LUNs and explain example#New-SCStorageLogicalUnit -StorageLogicalUnit $lun#$range = 1..10;foreach($_ in $range){New-SCStorageLogicalUnit -Name ($templatename + $_) -LogicalUnitCopyMethod "Clone" -StorageLogicalUnit $logicalUnit -SetLogicalUnitCopySource #Launch RDWEBInvoke-Expression "c:\demo\rdweb.url" #start cleanupRemove-SCVMConfiguration -VMConfiguration $vmconfig | Out-Null$temp_template = Get-SCVMTemplate -Name $temp_templatename Remove-SCVMTemplate -VMTemplate $temp_template | Out-Null$template = Get-SCVMTemplate -Name $templatenameRemove-SCVMTemplate -VMTemplate $template | Out-Null$libuncpath = ("\\" + $vmhost.Name + "\v$\Library\" + $templatename)#remove directory$junction = Get-item ($libuncpath + "\LUN1")$junction.Delete()$templatedirectory = Get-Item $libuncpath$templatedirectory.Delete()$libvhd = Get-SCVirtualHardDisk -Name "MMSDemoTemplate_OS"Remove-SCVirtualHardDisk -VirtualHardDisk $libvhd | Out-Null#Unregister LUN$lun = Get-SCStorageLogicalUnit | where {$_.Name -eq $templatename}(Unregister-SCStorageLogicalUnit -StorageLogicalUnit $LUN -VMHost $vmhost) | fl Name, IsAssigned, StorageGroups, HostDisks#delete LUN(Remove-SCStorageLogicalUnit -StorageLogicalUnit $LUN) | fl Name, MarkedForDeletion

Page 39: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

SAN Copy Capable Template#show template with associated LUNs and explain example#New-SCStorageLogicalUnit -StorageLogicalUnit $lun#$range = 1..10;foreach($_ in $range){New-SCStorageLogicalUnit -Name ($templatename + $_) -LogicalUnitCopyMethod "Clone" -StorageLogicalUnit $logicalUnit -SetLogicalUnitCopySource#Launch RDWEBInvoke-Expression "c:\demo\rdweb.url"#start cleanupRemove-SCVMConfiguration -VMConfiguration $vmconfig | Out-Null$temp_template = Get-SCVMTemplate -Name $temp_templatename Remove-SCVMTemplate -VMTemplate $temp_template | Out-Null$template = Get-SCVMTemplate -Name $templatenameRemove-SCVMTemplate -VMTemplate $template | Out-Null$libuncpath = ("\\" + $vmhost.Name + "\v$\Library\" + $templatename)#remove directory$junction = Get-item ($libuncpath + "\LUN1")$junction.Delete()$templatedirectory = Get-Item $libuncpath$templatedirectory.Delete()$libvhd = Get-SCVirtualHardDisk -Name "MMSDemoTemplate_OS"Remove-SCVirtualHardDisk -VirtualHardDisk $libvhd | Out-Null#Unregister LUN$lun = Get-SCStorageLogicalUnit | where {$_.Name -eq $templatename}(Unregister-SCStorageLogicalUnit -StorageLogicalUnit $LUN -VMHost $vmhost) | fl Name, IsAssigned, StorageGroups, HostDisks#delete LUN(Remove-SCStorageLogicalUnit -StorageLogicalUnit $LUN) | fl Name, MarkedForDeletion

Page 40: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration
Page 41: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Creating associated clones manually#on server with MS iSCSI software target create copies of the template LUN and rename files#import virtual disks (http://technet.microsoft.com/en-us/library/jj612803.aspx)PS C:\> Import-IscsiVirtualDisk -Path "D:\{01BDE84C-EFA6-4FD3-9578-4378AB8570CB}.vhd" -Description "MyScaleTemplate01"PS C:\> Import-IscsiVirtualDisk -path "D:\{02BDE84C-EFA6-4FD3-9578-4378AB8570CB}.vhd" -Description "MyScaleTemplate02"

#on VMM server rescan providerPS C:\> Read-SCStorageProvider -StorageProvider $prov –ForcePS C:\> $array | fl Name, *snapshot*MaximumReplicasPerSourceSnapshot : 256

#gets template LUNsPS C:\> $luns = Get-SCStorageLogicalUnit | where {$_.name -match "MyScaleTemplate0"}PS C:\> $lun = Get-SCStorageLogicalUnit | where {$_.name -eq "MyScaleTemplate"}

#associate template LUNs to source LUNPS C:\> Set-SCStorageLogicalUnit -StorageLogicalUnit $luns[0] -LogicalUnitCopySource $lunPS C:\> Set-SCStorageLogicalUnit -StorageLogicalUnit $luns[1] -LogicalUnitCopySource $lun

#verify$lun.LogicalUnitCopies | fl name

Page 42: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration
Page 43: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Demo

SAN based Rapid Provisioning for VDI

Page 44: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Scenario: Managing Tier 1 Applications with FC Storage

Page 45: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Virtual Fibre ChannelHyper-V provides Fibre Channel ports within the guest operating system, which allows you to connect to Fibre Channel directly from within virtual machines

Compatible with discovered VMs configured with virtual HBA

Supported

VM template add/remove vHBA, VM instance add/remove/modify vHBA, VM hot add/remove/modify virtual FC SAN, masking/unmasking LUN to VM with vHBA

Not Supported

Page 46: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

What is Passthrough?

Leverages CIM-XML stack built for the Storage ServiceCIM-XML client functionality exposed via WMI interfacePassthrough acts as a proxy to talk to the SMIS provider

Page 47: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

SMI-S Service(includes cache)Storage Management API

Block Storage API

Pass through API

SMI-S Service(includes cache)

SMI-S ProviderSMP:SMIS:CIMXML

SMI-S ProviderSMP:SMIS:WMI

SMP ProviderSMP:WMI

Storage SpacesSMP:SPACES

PowerShell

REST EndPoints

Client

WMIv2 Provider (Microsoft) WMIv2 Provider (vendor)

PS

REST

Storage ProviderStorage ArrayStorage PoolStorage VolumePhysica DiskMasking SetIndicationsHost (Windows)

Performance CountersBlock NASFabric

OData IIS Extension OData Ext

Page 48: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Provider Interface

• Exposed via WMI provider• In root/Microsoft/Windows/Storage/PT namespace

• Top-level API is provided by a CimSession object• Uses CIM operation options to specify connection

details (context) for the SMIS provider

Page 49: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Provider Interface

• Sample CimSession class methods:• CreateInstance• DeleteInstance• EnumerateAssociatedInstances• EnumerateClasses• EnumerateInstances• EnumerateReferencingInstances• GetInstance• InvokeMethod• ModifyInstance• QueryInstances

Page 50: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Provider Connection Context

$options = New-Object Microsoft.Management.Infrastructure.Options.CimOperationOptions$options.SetCustomOption("TargetServer", "http://Provider:5988", $False)$options.SetCustomOption("TargetNamespace", "root/impl", $False)$options.SetCustomOption("TargetUsername", "admin", $False)$options.SetCustomOption("TargetPassword", "password", $False)

Page 51: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Demo: Class Enum$options = New-Object Microsoft.Management.Infrastructure.Options.CimOperationOptions$options.SetCustomOption("TargetServer", "http://SmisProvider:5988", $False)$options.SetCustomOption("TargetNamespace", "root/impl", $False)$options.SetCustomOption("TargetUsername", "admin", $False)$options.SetCustomOption("TargetPassword", “password", $False)

$session = New-CimSession$ns = "root/microsoft/windows/storage/pt"$classes = $session.EnumerateClasses($ns, "CIM_StoragePool", $options) $classes = $classes.GetEnumerator()while ($classes.MoveNext()){ $classes.Current}

Page 52: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Demo: Instance Enum$options = New-Object Microsoft.Management.Infrastructure.Options.CimOperationOptions$options.SetCustomOption("TargetServer", "http://SmisProvider:5988", $False)$options.SetCustomOption("TargetNamespace", "root/impl", $False)$options.SetCustomOption("TargetUsername", "admin", $False)$options.SetCustomOption("TargetPassword", "!!123abc", $False)

$session = New-CimSession$ns = "root/microsoft/windows/storage/pt"$instances = $session.EnumerateInstances($ns, "CIM_StoragePool", $options)$instances = $instances.GetEnumerator()while ($instances.MoveNext()){ $instances.Current}

Page 53: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Demo: Method Invocation# Find the relevant CIM_StorageConfigurationService instance$configService

# Can get method signature from its class definition$method = $configService.CimClass.CimClassMethods | where Name -eq "CreateOrModifyElementFromStoragePool"

$cimMethodParam = [Microsoft.Management.Infrastructure.CimMethodParameter]$cimType = [Microsoft.Management.Infrastructure.CimType]$cimFlags = [Microsoft.Management.Infrastructure.CimFlags]

$inParams = New-Object Microsoft.Management.Infrastructure.CimMethodParametersCollection$inParams.Add($cimMethodParam::Create("ElementName", “DemoVolume", $cimType::String, $cimFlags::Parameter))$inParams.Add($cimMethodParam::Create("ElementType", 2, $cimType::UInt16, $cimFlags::Parameter))$inParams.Add($cimMethodParam::Create("Size", 10GB, $cimType::UInt64, $cimFlags::Parameter))$inParams.Add($cimMethodParam::Create("InPool", $PTStoragePool, $cimType::Reference, $cimFlags::Parameter))

# Method invocation$result = $session.InvokeMethod($script:PTNamespace, $configService, "CreateOrModifyElementFromStoragePool", $inParams, $Options)

# Handle output$createdVD = $result.OutParameters['TheElement'].Value

Page 54: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Current Issues

• Association instance references passed as method parameters not passed correctly.

Page 55: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Demo

How can I automate common fibre channel fabric operations?

Page 56: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Adding zone member and activating zonesetfunction GetCimInstanceArrayFromEnum ($Enum){ $cimInstances = @()

while ($Enum.MoveNext()) { $cimInstances += $Enum.Current }

return $cimInstances}

$ns = "root/microsoft/windows/storage/pt"$options = New-Object Microsoft.Management.Infrastructure.Options.CimOperationOptions$options.SetCustomOption("TargetServer", "http://10.184.102.47:5988", $False)$options.SetCustomOption("TargetNamespace", "cimv2", $False)$options.SetCustomOption("TargetUsername", "admin", $False)$options.SetCustomOption("TargetPassword", "!!123abc", $False)

Page 57: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Adding zone member and activating zoneset$session = New-CimSession

Write-Host "Getting Fabric Admin domain."$fabricEnum = $session.EnumerateInstances($ns, "CIM_AdminDomain", $options).GetEnumerator()$fabric = GetCimInstanceArrayFromEnum -Enum $fabricEnum | where ElementName -eq "Dummy"

Write-Host "Getting zone service."$configSvcEnum = $session.EnumerateAssociatedInstances($ns, $fabric, "CIM_HostedService", "CIM_ZoneService", $null, $null, $options).GetEnumerator()$configService = GetCimInstanceArrayFromEnum -Enum $configSvcEnum

Write-Host "Getting zone."$zoneEnum = $session.EnumerateInstances($ns, "CIM_Zone", $options).GetEnumerator()$zones = GetCimInstanceArrayFromEnum -Enum $zoneEnum | where ElementName -eq "DummyZone"$zone = $zones | where Active -EQ $False

$method = $configService.CimClass.CimClassMethods | where Name -eq "CreateZoneMembershipSettingData"

$methodParam = [Microsoft.Management.Infrastructure.CimMethodParameter]$cimType = [Microsoft.Management.Infrastructure.CimType]$cimFlags = [Microsoft.Management.Infrastructure.CimFlags]

Page 58: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Adding zone member and activating zoneset$inParams = New-Object Microsoft.Management.Infrastructure.CimMethodParametersCollection$inParams.Add($methodParam::Create("ConnectivityMemberID", "abcdabcdabcdabca", $cimType::String, $cimFlags::Parameter))$inParams.Add($methodParam::Create("ConnectivityMemberType", 2, $cimType::UInt16, $cimFlags::Parameter))$inParams.Add($methodParam::Create("SystemSpecificCollection", $zone, $cimType::Reference, $cimFlags::Parameter))

Write-Host "Invoking CreateZoneMembershipSettingData method." $result = $session.InvokeMethod($ns, $configService, "CreateZoneMembershipSettingData", $inParams, $options)

# Non-job caseif ($result.ReturnValue.Value -eq 0){ $instanceKeys = $result.OutParameters['ZoneMembershipSettingData'].Value $member = $session.GetInstance($ns, $instanceKeys, $options)}else{ Write-Error "Error adding member to zone: $($result.ReturnValue.Value)"}

Page 59: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Adding zone member and activating zonesetWrite-Host "Getting zoneset."$zonesetEnum = $session.EnumerateInstances($ns, "CIM_ZoneSet", $options).GetEnumerator()$zonesets = GetCimInstanceArrayFromEnum -Enum $zonesetEnum | where ElementName -eq "DummyActive"$zoneset = $zonesets | where Active -EQ $False

$activateParams = New-Object Microsoft.Management.Infrastructure.CimMethodParametersCollection$activateParams.Add($methodParam::Create("Activate", $true, $cimType::Boolean, $cimFlags::Parameter))$activateParams.Add($methodParam::Create("ZoneSet", $zoneset, $cimType::Reference, $cimFlags::Parameter))

Write-Host "Invoking ActivateZoneSet method." $result = $session.InvokeMethod($ns, $configService, "ActivateZoneSet", $activateParams, $options)

# Non-job caseif ($result.ReturnValue.Value -eq 0){ Write-Host "Successfully activated"}else{ Write-Error "Error adding member to zone: $($result.ReturnValue.Value)"}

Page 60: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Support for Windows Server Features

Page 61: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Windows Storage SpacesEnables you to virtualize storage by grouping physical disks into storage pools, and then create virtual disks called Storage Spaces from the available capacity in the storage pools 

Compatible with VM hosts/file servers configured with storage spaces

Supported

Create/delete/modify storage pools, create/delete/modify spaces, attach/detach spaces, discovery of physical disks

Not Supported

Page 62: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Offloaded Data Transfer (ODX)Windows uses tokens instead of buffered read/writes to copy data within a storage device. Storage arrays require updated firmware to enable ODX

Hyper-V initiated storage migrationsSupported

New VM from template, VM clone, store VM to library, deploy VM from library, new template from VM, new VM from library VHD

Not Supported

Page 63: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Hyper-V ReplicaHyper-V Replica is an asynchronous virtual machine replication technology that is designed for business continuity and disaster recovery.

Refresh VMs with Hyper-V Replica enabled. All actions on secondary VM are disabled.

Supported

Setup and configure Hyper-V Replica settings on host. Enable/disable replication per VM.

Not Supported

Page 64: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration
Page 65: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

VHDXVHDX supports up to 64TB storage capacity, much larger than the older VHD format. It also provides data corruption protection during power failures and optimizes structural alignments of dynamic and differencing disks to prevent performance degradation on new, large-sector physical disks..

Creation of VMs with new VHDX. Discovery of VHDX in Library. Creation of templates with VHDX.

Supported

Page 66: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Standards Based Management

Page 67: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Storage Management InitiativeSNIA adopted the Storage Management Initiative Specification in 2002 (BlueFin spec) and designated an ISO/IEC standard in 2007.

SMI consists of three main programs:SMI-S: Primary organization governing the SMI-S effort with the guidance of the SNIACTP: Conformance Testing Program validates that a member company's products conform to a particular version of the SMI-SSMILab: environment that manages and coordinates vendors' development efforts to deliver SMI-S with a centralized data center with storage equipment and multiple plugfests per year.

SMI-S Present at MMS 2013 – Booth 717

Page 68: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Microsoft ParticipationPlugfestsMicrosoft attend 5-6 plugfests a year

TWGActive participation in several TWGs

Storage Developers ConferenceMultiple presenters at SDC

PartnersDeep technical engagement with partners

Page 69: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Admin/Scripters

SMIS Client Apps

System Center

Windows Server

Hosters/ISV

Solutions

SMI-S Providers

WMIPowerShell

Other

WMIPowerShell WMI

CIMXML

CIMXML

WMIPowerShell

Multiple

SMP WMIProvidersWMI

SMP Spaces

Provider

WMI

SMP SMIS Service

CIMXML

Page 70: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Partner

Provider Type

Array Validation

Version Availability

NetApp SMI-S FAS 7-Mode (Block)

FAS C-Mode (Block and File)

Complete

In Progress

DataOnTap v8.1SMI-S Agent v4

DataOnTap v8.2SMI-S Agent v5

Now

August 2013

EMC (guide)

SMI-S VMAX 40K/VMAX SE/VMAX_e

VNX

Complete

Complete

Enginuity 5875 and 5876Solutions Enabler 7.5.1

FLARE 30, OE Version 5.31 and 5.32Solutions Enabler 7.5.1

Now

HP (matrix)

SMI-S 3PAR StoreServ 7000/100003PAR F-Class, T-Class, P10000

P6000 (EVA)

StoreVirtual (LeftHand)

P2000 G3 (MSA)

CompleteComplete

Complete

In Progress

Complete

OS 3.1.2.P01Inform OS 3.1.1.P10

1000 0000Command View 10

TBD

TS240

Now

Now

2H CY2013

Now

Hitachi SMI-S VSP Complete 70-05-02 Now

Dell SMI-S

SMP

SMI-S

Compellent Storage center

EqualLogic PS 4000/6000

MD32xx / MD36xx

Complete

Complete

Complete

SC 5.5.4 (or later) or EM 5.5.5 (or later)Host Integration Toolkit 4.6

FW: 07.84.44.60Mgmt SW: 10.84.G6.25SMI-S Provider: 10.28.G6.03

Now

June 2013

Now

Page 71: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Partner Provider Type

Array Validation

Version Availability

IBM SMI-S XIV

Storwize disk family (V7000, Flex node V7000, V3700)

SVC

Complete

In Progress

In Progress

11.1

6.4.1.5

6.4.1.5

Now

End of April 2013

End of April 2013Microsoft SMI-S iSCSI Software Target Complete (Ships with SC SP1 VMM) NowFujitsu SMI-S DX80 S2/DX90 S2/DX410 S2

DX440 S2/DX8100 S2/DX8700 S2

Complete V10L40 or later Now

Nexsan SMP E-Series Complete Q0C1.1100 Storage Tools 1.6.30

Now

NEC SMI-S iStorage M300/M500/M700 In Progress Rev.081E or later NowStarwind SMI-S StarWind iSCSI SAN

StarWind Native SANNot Started 6.0.5437 April 2013 BETA (

link) (link)NimbleStorage SMI-S CS-Series In Progress TBD TBDDataCore SMI-S SANSymphony Not Started TBD TBD

http://social.technet.microsoft.com/wiki/contents/articles/16100.supported-storage-arrays-for-system-center-2012-vmm.aspx

Page 72: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

In Closing

Page 73: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Thank you to all our customers and partners!

Page 74: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Related MMS Sessions

SD-B201 Implementing Common Scenarios in VMM: Services and Service Templates

IM-B203 Building UI Add–Ins For System Center 2012 SP1 Virtual Machine Manager

IM-B308 System Center 2012 SP1 Virtual Machine Manager: Managing Large

Datacenters

IM-B310 Troubleshooting Common System Center 2012 SP1 Virtual Machine Manager

Issues

WS-B312 How to Design and Configure Networking in VMM and HyperV (Part 1 of 2)

WS-B313 How to Design and Configure Networking in VMM and HyperV (Part 2 of 2)

WS-B314 Implementing Common Storage Scenarios in Windows Server 2012 with

SCVMM

WS-B327 Software Defined Networking with WS2012, SC2012 SP1 and Partner Solutions

Page 75: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Resources

http://channel9.msdn.com/Events

Access MMS Online to view session recordings after the event.

Page 76: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Evaluation

Complete your session evaluations today and enter to win prizes daily. Provide your feedback at a CommNet kiosk or log on at www.2013mms.com.Upon submission you will receive instant notification if you have won a prize. Prize pickup is at the Information Desk located in Attendee Services in the Mandalay Bay Foyer. Entry details can be found on the MMS website.

We want to hear from you!

Page 77: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

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

Page 78: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Appendix

Page 79: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Microsoft vs. VMware

Page 80: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

NTFSGPT

VMFS-5 – Unified 1MB block (large files), increased, file count, small file support,

large volumes (60TB), smaller blocks (8K)

Hyper-V live storage migration, shared nothing migration

Storage vMotion – single pass migration (using mirroring)

Offloaded data transfer (supports block and file), thin provisioning reclamation and

threshold alertsNote: assisted locking not required with

CSV

VAAI – Full copy, block zeroing, hardware assisted locking, thin provisioning reclamation and alerts, hardware

accelerated NAS file copy

MPIO and partner DSMiSCSI Multipathing Enhancements

Page 81: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Hyper-V Virtual FC HBAVM with FC storage

Windows Server 2012Scale-out File Server

SMB 3.0NFS 4.1

NFS Support

Multiple improvement in the platform around better handling of this situation to

avoid threads waiting indefinitely.

Better handling the All Paths Down (APD) and Permanent Device Loss (PDL)

conditions

Hyper-V live snapshot mergeSnapshot Consolidate

Page 82: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

VMM placement engine accounts for available space but limited visibility into

I/O latency

Storage DRS Initial Placement - pick the most appropriate datastore for a VM,

based on available space and I/O latency

VMM storage classification (pool level)Profile Driven Storage

VM storage profiles, compatibility checking

Windows Storage SpacesVirtual Storage Appliance

Virtual SAN

VMM storage discoveryWindows Server 2012 SMAPI

VASA - Storage AwarenessStorage capability discovery (dedup,

compression, capacity and storage health monitoring, thin provisioning alarms

Page 83: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Mitigation: Use SSD based storage with SAN or Windows Storage Spaces

vFlash

Strategic differenceScale-out File Server, SMB3, Spaces

vVOL

Mitigation: Storage live migration + OM + PRO

Storage DRS - Balance On Space UsageAutomatic balancing space utilization

Mitigation: Storage live migration + OM + PRO

Storage DRS - Balance On I/O MetricsAutomatic balancing based Storage I/O Control (SIOC) evaluation of datastore

capabilities & latency information

Page 84: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

VMware vVOLVirtual Volumes make the VMDK a first class citizen in the storage array. vVOL allows you to snapshot, clone or replicate on a per VM basis from the storage array.

I/O demultiplexor device which can communicate to the VVOLs (VMDKs)

Protocol Endpoint

Storage pool on arrayStorage Container

vCenter uses VASA providers to discover capabilities, create VMDK based on storage profile, and retrieve secondary LUN ID

Storage Provider

Page 85: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Masking In-depth

Page 86: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Masking In-depthSCSI Protocol Controller a.k.a. Storage Groupsa.k.a. Masking Setsa.k.a. Host Groupsa.k.a. View

Ports Per ViewArray target ports

One Hardware ID Per View Server initiator ports

Page 87: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

SCSI Protocol ControllerSCSI protocol controller (SPC) is a grouping mechanism on the array using for exposing a storage volume (LUN) to a Windows server

SPC contains target ports (array), storage volumes (LUN), initiator ports (Windows host)

Storage Array

Targ

etPo

rt

Targ

etPo

rt

Targ

etPo

rt

Targ

etPo

rt

Storage Volume(LUN)

SCSIProtocolController (SPC)

VM host

Initi

ator

Port

Initi

ator

Port

Page 88: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Ports per SPCControls how many array target ports an SPC can haveAll Ports Share Same View – All targets ports in SPCMultiple Ports Per View – one, some or all target ports in SPCOne Port Per view – one target port in SPC

Page 89: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

All Ports Share Same SPCSPC includes all of the target ports on the array

Storage Array

Targ

etPo

rt

Targ

etPo

rt

Targ

etPo

rt

Targ

etPo

rt

SCSIProtocolController (SPC)

Page 90: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Multiple Ports per SPCSPC includes all, some, or one of the target ports on the array

Storage Array

Targ

etPo

rt

Targ

etPo

rt

Targ

etPo

rt

Targ

etPo

rt

SCSIProtocolController

(SPC)

SCSIProtocolController (SPC)

Page 91: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

One Port per SPCSPC includes only one target port on the array

Storage Array

Targ

etPo

rt

Targ

etPo

rt

Targ

etPo

rt

Targ

etPo

rt

SCSIProtocolController

(SPC)

SCSIProtocolController

(SPC)

SCSIProtocolController

(SPC)

SCSIProtocolController

(SPC)

Page 92: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

Ports per SPC

Setting Implementation Notes Examples

All Ports Share Same View Simplicity NetApp FASHP EVAEMC ClariionDell Compellent

Multiple Ports Per View Flexibility (can mimic both One Port per View and All Ports Share Same View)

EMC VMAXHP 3PAR

One Port Per View Traditional Hitachi VSPHP P2000Hitachi AMS

Page 93: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

One Hardware ID per SPCOne Hardware ID per SPC == True One Hardware ID per SPC ==

False

Storage Array

Targ

etPo

rt

Targ

etPo

rt Storage Volume(LUN)

SCSIProtocolController

(SPC)

VM host

Initi

ator

Port

Initi

ator

Port

VM host

Initi

ator

Port

Initi

ator

Port

SCSIProtocolController

(SPC)

SCSIProtocolController

(SPC)

SCSIProtocolController

(SPC)

Storage Array

Targ

etPo

rt

Targ

etPo

rt

Storage Volume(LUN)

SCSIProtocolController

(SPC)

VM host

Initi

ator

Port

Initi

ator

Port

VM host

Initi

ator

Port

Initi

ator

Port

SCSIProtocolController

(SPC)

Page 94: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

One Hardware ID per SPC

Setting Implementation Notes Examples

TRUE Traditional Hitachi AMSHP P2000Dell Compellent

FALSE Flexibility (allows for one SPC per cluster) EMC VMAX, ClariionIBM XIV, SVC, V7000HP EVA, 3ParNetApp FASHitachi VSP

Page 95: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

SPC Creation for ClustersCreate SPCs per Cluster == True Create SPCs per Cluster == False

Storage Array

Targ

etPo

rt

SCSIProtocolController (SPC)

VM host

Initi

ator

Port

Initi

ator

Port

VM host

Initi

ator

Port

Initi

ator

Port

SCSIProtocolController (SPC)

Storage Volume(LUN)

Storage Array

Targ

etPo

rt

SCSIProtocolController

(SPC)

VM host

Initi

ator

Port

Initi

ator

Port

VM host

Initi

ator

Port

Initi

ator

Port

Storage Volume(LUN)

Page 96: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

SPC Creation for Clusters

Setting Implementation Notes Examples

TRUE On some arrays, unmasking operations get serialized so the time required to unmask a LUN to multiple nodes in the cluster increases (minutes)

No flexibility to have a separate LUN for boot from SAN

EMC VMAXHitachi VSP

Setting Implementation Notes Examples

Page 97: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

All Ports Share Same SPC

Multiple Ports Per SPC

One Port Per SPC

One Hardware ID Per SPC == FALSE

Create SPCs per Cluster == True or

False

Create SPCs per Cluster == True or

False

Create SPCs per Cluster == True or

False

One Hardware ID Per SPC == TRUE

Create SPCs per Cluster – Not Applicable

Create SPCs per Cluster - Not Applicable

Create SPCs per Cluster - Not Applicable

Page 98: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

All/Multi Ports per SPC

One Hardware ID per SPC == False

Create SPCs per Cluster == True

All/Multi Ports per SPC

One Hardware ID per SPC == False

Create SPCs per Cluster == False

Storage Array

Targ

etPo

rt

Targ

etPo

rt Storage Volume(LUN)

SCSIProtocolController (SPC)

VM host

Initi

ator

Port

Initi

ator

Port

VM host

Initi

ator

Port

Initi

ator

Port

Storage Array

Targ

etPo

rt

Targ

etPo

rt Storage Volume(LUN)

SCSIProtocolController

(SPC)

VM host

Initi

ator

Port

Initi

ator

Port

VM host

Initi

ator

Port

Initi

ator

Port

SCSIProtocolController

(SPC)

Page 99: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

One Port per SPC

One Hardware ID per SPC == False

Create SPCs per Cluster == True

One Port per SPC

One Hardware ID per SPC == False

Create SPCs per Cluster == False

Storage Array

Targ

etPo

rt

Targ

etPo

rt Storage Volume(LUN)

SCSIProtocolController

(SPC)

VM host

Initi

ator

Port

Initi

ator

Port

VM host

Initi

ator

Port

Initi

ator

Port

SCSIProtocolController

(SPC)

SCSIProtocolController

(SPC)

SCSIProtocolController

(SPC)

Storage Array

Targ

etPo

rt

Targ

etPo

rt

Storage Volume(LUN)

SCSIProtocolController

(SPC)

VM host

Initi

ator

Port

Initi

ator

Port

VM host

Initi

ator

Port

Initi

ator

Port

SCSIProtocolController

(SPC)

Page 100: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

All/Multi Ports per SPC

One Hardware ID per SPC == True

Create SPCs per Cluster – N/A

Storage ArrayTarg

etPo

rt

Targ

etPo

rt Storage Volume(LUN)

SCSIProtocolController

(SPC)

VM host

Initi

ator

Port

Initi

ator

Port

VM host

Initi

ator

Port

Initi

ator

Port

SCSIProtocolController

(SPC)

SCSIProtocolController

(SPC)

SCSIProtocolController

(SPC)

Page 101: Customer Pain Points Partner Pain Points “Customers are asking for PowerShell and REST APIs. Microsoft is asking us to build providers for integration

One Ports per SPC

One Hardware ID per SPC == True

Create SPCs per Cluster – N/A

Storage Array

Targ

etPo

rt

Targ

etPo

rt

Storage Volume(LUN)

SCSIProtocolController

(SPC)

VM host

Initi

ator

Port

Initi

ator

Port

VM host

Initi

ator

Port

Initi

ator

Port

SCSIProtocolController

(SPC)

SCSIProtocolController

(SPC)

SCSIProtocolController

(SPC)

SCSIProtocolController

(SPC)

SCSIProtocolController

(SPC)

SCSIProtocolController

(SPC)

SCSIProtocolController

(SPC)