Windows Storage Management API (Windows PowerShell and WMI) Vendor-provided SMI-S provider (CIMXML or WMI) Storage Array Vendor-provided transport and/or protocol Storage Array Pass-through API for extensibility (WMI)

Download Report

Transcript Windows Storage Management API (Windows PowerShell and WMI) Vendor-provided SMI-S provider (CIMXML or WMI) Storage Array Vendor-provided transport and/or protocol Storage Array Pass-through API for extensibility (WMI)

Windows Storage Management API
(Windows PowerShell and WMI)
Vendor-provided SMI-S provider
(CIMXML or WMI)
Storage Array
Vendor-provided transport and/or
protocol
Storage Array
Pass-through API for
extensibility (WMI)
VMM Server
WSMan/
WinRM
WSMAN/
WinRM
WSMan/
WinRM
WMI
SMAPI
WSMan/
WinRM
Library
Server
CIMXML/
WMI
SMP:
SMI-S
Storage
Service
CIMXML
CIMXML
CIMXML
WMI
SMP
Partner
Provider
SMP:
Spaces
Hyper-V
Standalone
Proprietary
VM
SAN
Device
SMI-S SAN
w/ Embedded
Provider
SMI-S NAS
Proxy Provider
SMI-S SAN/NAS
Proxy
Provider
SMI-S SAN
Proxy
Provider
Proprietary
Proprietary
Proprietary
NAS
Device
SAN/NAS
Device
SAN
Device
FC/
iSCSI
(some providers
require this
Hyper-V
Cluster
Windows
Scale-out File Server
VM
File System: Used
Virtual Fibre Channel
Client
REST EndPoints
PowerShell
OData IIS Extension
PS
OData
Ext
WMIv2 Provider
(vendor)
WMIv2 Provider (Microsoft)
Storage Provider
Storage Array
Storage Pool
Storage Volume
Physica Disk
Masking Set
Indications
Host (Windows)
REST
SMI-S Service
Storage
Management
(includes
cache) API
Pass through API
Block Storage API
SMI-S Service
(includes cache)
SMI-S Provider
SMP:SMIS:CIMXML
SMI-S Provider
SMP:SMIS:WMI
SMP Provider
SMP:WMI
Storage Spaces
SMP:SPACES
Performance Counters
Block
NAS
Fabric
root/Microsoft/Windows/Storage/PT
Microsoft.Management.Infrastructure.Options.CimOperationOptions
$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
}
$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
}
# 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
Offloaded Data Transfer (ODX)
SMIS
Client
Apps
Multiple
Admin/
Scripters
SMP
Spaces
Provider
WMI
PowerShell
WMI
PowerShell
Other
WMI
System
Center
Windows
Server
WMI
PowerShell
WMI
SMP WMI
Providers
CIMXML
WMI
Hosters/
ISV
Solutions
SMP SMIS
Service
CIMXML
CIMXML
SMI-S
Providers
Partner
Provider Type
Array
Validation
Version
Availability
NetApp
SMI-S
FAS 7-Mode (Block)
Complete
DataOnTap v8.1
SMI-S Agent v4
Now
FAS C-Mode (Block and File)
In Progress
August 2013
VMAX 40K/VMAX SE/VMAX_e
Complete
DataOnTap v8.2
SMI-S Agent v5
Enginuity 5875 and 5876
Solutions Enabler 7.5.1
VNX
Complete
3PAR StoreServ 7000/10000
3PAR F-Class, T-Class, P10000
Complete
Complete
P6000 (EVA)
Complete
1000 0000
Command View 10
Now
StoreVirtual (LeftHand)
In Progress
TBD
2H CY2013
SMI-S
SMI-S
P2000 G3 (MSA)
VSP
Compellent Storage center
Complete
Complete
Complete
Now
Now
Now
SMP
EqualLogic PS 4000/6000
Complete
TS240
70-05-02
SC 5.5.4 (or later) or EM 5.5.5
(or later)
Host Integration Toolkit 4.6
SMI-S
MD32xx / MD36xx
Complete
FW: 07.84.44.60
Mgmt SW: 10.84.G6.25
SMI-S Provider: 10.28.G6.03
Now
EMC (guide) SMI-S
HP (matrix)
Hitachi
Dell
SMI-S
FLARE 30, OE Version 5.31 and
5.32
Solutions Enabler 7.5.1
OS 3.1.2.P01
Inform OS 3.1.1.P10
Now
Now
June 2013
Partner
Provider
Type
Array
Validation
Version
Availability
IBM
SMI-S
XIV
Complete
11.1
Now
Storwize disk family (V7000, Flex
node V7000, V3700)
In Progress
6.4.1.5
End of April 2013
SVC
iSCSI Software Target
DX80 S2/DX90 S2/DX410 S2
DX440 S2/DX8100 S2/DX8700 S2
E-Series
In Progress
Complete
Complete
6.4.1.5
(Ships with SC SP1 VMM)
V10L40 or later
End of April 2013
Now
Now
Complete
Now
iStorage M300/M500/M700
StarWind iSCSI SAN
StarWind Native SAN
CS-Series
SANSymphony
In Progress
Not Started
Q0C1.1100
Storage Tools 1.6.30
Rev.081E or later
6.0.5437
In Progress
Not Started
TBD
TBD
Microsoft
Fujitsu
SMI-S
SMI-S
Nexsan
SMP
NEC
Starwind
SMI-S
SMI-S
NimbleStorage
DataCore
SMI-S
SMI-S
Now
April 2013 BETA
(link) (link)
TBD
TBD
http://social.technet.microsoft.com/wiki/contents/articles/16100.supported-storage-arrays-for-system-center-2012-vmm.aspx
SD-B201
IM-B203
IM-B308
IM-B310
WS-B312
WS-B313
WS-B314
WS-B327
VMM storage classification (pool level)
VMM storage discovery
Windows Server 2012 SMAPI
VMM placement engine accounts for available
space but limited visibility into I/O latency
InitiatorPort
InitiatorPort
VM host
Storage Volume
(LUN)
TargetPort
TargetPort
TargetPort
TargetPort
SCSIProtocolController
(SPC)
Storage Array
Storage Array
TargetPort
TargetPort
TargetPort
TargetPort
SCSIProtocolController
(SPC)
Storage Array
TargetPort
TargetPort
SCSIProtocolContr
oller
(SPC)
TargetPort
TargetPort
SCSIProtocolContro
ller
(SPC)
SCSIProtoc
olController
(SPC)
SCSIProtoco
lController
(SPC)
SCSIProtocol
Controller
(SPC)
SCSIProtoco
lController
(SPC)
TargetPort
TargetPort
TargetPort
TargetPort
Storage Array
Setting
Implementation Notes
Examples
All Ports Share Same View
Simplicity
NetApp FAS
HP EVA
EMC Clariion
Dell Compellent
Multiple Ports Per View
Flexibility (can mimic both One Port per View and
All Ports Share Same View)
EMC VMAX
HP 3PAR
One Port Per View
Traditional
Hitachi VSP
HP P2000
Hitachi AMS
SCSIProtocolContro
ller
(SPC)
SCSIProtocolContro
ller
(SPC)
SCSIProtocolContro
ller
(SPC)
SCSIProtocolContro
ller
(SPC)
SCSIProtocolContro
ller
(SPC)
TargetPort
Storage Array
TargetPort
TargetPort
TargetPort
Storage Array
Storage Volume
(LUN)
Storage Volume
(LUN)
InitiatorPort
InitiatorPort
InitiatorPort
InitiatorPort
InitiatorPort
InitiatorPort
InitiatorPort
InitiatorPort
SCSIProtocolContro
ller
(SPC)
VM host
VM host
VM host
VM host
Setting
Implementation Notes
Examples
TRUE
Traditional
Hitachi AMS
HP P2000
Dell Compellent
FALSE
Flexibility (allows for one SPC per cluster)
EMC VMAX, Clariion
IBM XIV, SVC, V7000
HP EVA, 3Par
NetApp FAS
Hitachi VSP
VM host
VM host
Storage Volume
(LUN)
Storage Array
SCSIProtocolCont
roller
(SPC)
Storage Volume
(LUN)
Storage Array
InitiatorPort
InitiatorPort
InitiatorPort
InitiatorPort
SCSIProtocolCon
troller
(SPC)
TargetPort
TargetPort
SCSIProtocolContro
ller
(SPC)
InitiatorPort
InitiatorPort
VM host
InitiatorPort
InitiatorPort
VM host
Setting
TRUE
Implementation Notes
On some arrays, unmasking operations get
serialized so the time required to unmask a LUN
to multiple nodes in the cluster increases
(minutes)
Examples
EMC VMAX
Hitachi VSP
No flexibility to have a separate LUN for boot
from SAN
Setting
Implementation Notes
Examples
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
One Hardware ID per SPC == False
Create SPCs per Cluster == True
Create SPCs per Cluster == False
Storage Array
SCSIProtocolContro
ller
(SPC)
Storage Volume
(LUN)
Storage Array
InitiatorPort
InitiatorPort
TargetPort
Storage Volume
(LUN)
SCSIProtocolContro
ller
(SPC)
TargetPort
TargetPort
TargetPort
SCSIProtocolController
(SPC)
VM host
InitiatorPort
VM host
InitiatorPort
VM host
InitiatorPort
VM host
InitiatorPort
One Hardware ID per SPC == False
InitiatorPort
All/Multi Ports per SPC
InitiatorPort
All/Multi Ports per SPC
One Port per SPC
One Port per SPC
One Hardware ID per SPC == False
One Hardware ID per SPC == False
Create SPCs per Cluster == True
Create SPCs per Cluster == False
VM host
VM host
SCSIProtocolContro
ller
(SPC)
SCSIProtocolContro
ller
(SPC)
InitiatorPort
InitiatorPort
InitiatorPort
InitiatorPort
InitiatorPort
InitiatorPort
SCSIProtocolContro
ller
(SPC)
SCSIProtocolContro
ller
(SPC)
SCSIProtocolContro
ller
(SPC)
SCSIProtocolContro
ller
(SPC)
TargetPort
Storage Volume
(LUN)
TargetPort
TargetPort
Storage Array
TargetPort
InitiatorPort
VM host
InitiatorPort
VM host
Storage Volume
(LUN)
Storage Array
All/Multi Ports per SPC
One Hardware ID per SPC == True
Create SPCs per Cluster – N/A
InitiatorPort
InitiatorPort
SCSIProtocolContro
ller
(SPC)
TargetPort
InitiatorPort
TargetPort
SCSIProtocolContro
ller
(SPC)
SCSIProtocolContro
ller
(SPC)
InitiatorPort
VM host
VM host
SCSIProtocolContro
ller
(SPC)
Storage Volume
(LUN)
Storage Array
One Ports per SPC
One Hardware ID per SPC == True
Create SPCs per Cluster – N/A
InitiatorPort
SCSIProtocolContro
ller
(SPC)
SCSIProtocolContro
ller
(SPC)
Storage Volume
(LUN)
Storage Array
SCSIProtocolContro
ller
(SPC)
TargetPort
SCSIProtocolContro
ller
(SPC)
TargetPort
SCSIProtocolContro
ller
(SPC)
InitiatorPort
InitiatorPort
SCSIProtocolContro
ller
(SPC)
InitiatorPort
VM host
VM host
SCSIProtocolContro
ller
(SPC)
SCSIProtocolContro
ller
(SPC)