HP 3PAR StoreServ 7200 2-node HP 3PAR CIM API Programming Reference (OS 3.1.2 - Page 81

ExposePaths (Creating VLUNs), TPD_SCSIController

Page 81 highlights

ExposePaths (Creating VLUNs) ControllerConfigurationService.ExposePaths() performs VLUN export in one method call. It exposes a list of volumes to a list of host port (HBAs - initiators) via a list of system ports (targets). This method can be used either to create an SCSIProtocolController (SPC) and modify an existing SPC. If the ProtocolController parameter is null, the provider is supposed to create a new SPC. This operation can be used to create matches-set, host-see or port-present VLUNs. Host-sees VLUNs can also be created by ExposeLUsToStorageHardwareIDCollection. One difference between this method and the CLI createvlun command is that for this method, the host StorageHardwareID (FC port WWN or iSCSI name) is specified in InitiatorPortIDs parameter, whereas for the createvlun command, the name of the host is specified, not the StorageID itself. The method signature is described below: uint32 ExposedPaths ( [Out] CIM_ConcreteJob ref Job, [In] String LUNames[], [In] String InitiatorPortIDs[], [In] String TargetPortIDs[], [In] String DeviceNumbers[], [In] uint16 DeviceAccesses[], [In/Out] CIM_SCSIProtocolController ref ProtocolController[], [In] boolean Override, [In] boolean NoVCN, [Out] String ResultDescriptions[]); • Job: This is ignored since storage system does not support job control. • LUNames[]: An array of IDs of logical unit instances. The LU instances must already exist. The members of this array must match the Name property of StorageVolume instances. • InitiatorPortIDs[]: IDs of initiator ports (host HBA WWNs or iSCSI names). If an existing StorageHardwareID instance exist, it is used. If no StorageHardwareID instance matches, one is implicitly created as is usually done from SMI-S. • TargetPortIDs[]: IDs of target ports (the system's front-end FC port). If this is NULL or contains an empty array during creation mode, then a host-sees SPC is created; if array contains actual values, then a matched-set SPC is created • DeviceNumbers[]: A list of logical unit numbers to assign to the corresponding logical unit in the LUNames parameter. (within the context of the elements specified in the other parameters). If the LUNames parameter is null, then this parameter must be null. If this parameter is NULL, the logical unit number is assigned by the system. • DeviceAccesses[]: A list of permissions to assign to the corresponding logical unit in the LUNames parameter. This specifies the permission to assign within the context of the elements specified in the other parameters. This is mandatory only because SMI-S requires it. For the storage system, access permissions cannot be specified when creating a VLUN. Rather, each volume has its own access permission. The ControllerConfigurationService provider checks the passed in DeviceAccesses values against the permission of the specified LU (volume), and the operation fails if the two values do not match. • ProtocolControllers: An array of references to SCSIProtocolControllers (SPCs). On input, this can be null, or contains exactly one element; there may be multiple references on output. If null on input, the instrumentation creates one or more new SPC instances. If SPC is included on input, this can either be a reference to TPD_SCSIController for an FC host or TPD_iSCSIController orTPD_iSCSICNode for an iSCSI host. Masking and Mapping Subprofile 81

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309

ExposePaths (Creating VLUNs)
ControllerConfigurationService.ExposePaths()
performs VLUN export in one method
call. It exposes a list of volumes to a list of host port (HBAs - initiators) via a list of system ports
(targets). This method can be used either to create an
SCSIProtocolController
(SPC) and
modify an existing SPC. If the
ProtocolController
parameter is null, the provider is supposed
to create a new SPC.
This operation can be used to create matches-set, host-see or port-present VLUNs. Host-sees VLUNs
can also be created by
ExposeLUsToStorageHardwareIDCollection
. One difference
between this method and the CLI
createvlun
command is that for this method, the host
StorageHardwareID (FC port WWN or iSCSI name) is specified in InitiatorPortIDs parameter,
whereas for the
createvlun
command, the name of the host is specified, not the StorageID itself.
The method signature is described below:
uint32 ExposedPaths (
[Out] CIM_ConcreteJob ref Job,
[In] String LUNames[],
[In] String InitiatorPortIDs[],
[In] String TargetPortIDs[],
[In] String DeviceNumbers[],
[In] uint16 DeviceAccesses[],
[In/Out] CIM_SCSIProtocolController ref ProtocolController[],
[In] boolean Override,
[In] boolean NoVCN,
[Out] String ResultDescriptions[]);
Job
: This is ignored since storage system does not support job control.
LUNames[]
: An array of IDs of logical unit instances. The LU instances must already exist. The
members of this array must match the Name property of
StorageVolume
instances.
InitiatorPortIDs[]
: IDs of initiator ports (host HBA WWNs or iSCSI names). If an existing
StorageHardwareID
instance exist, it is used. If no
StorageHardwareID
instance matches,
one is implicitly created as is usually done from SMI-S.
TargetPortIDs[]
: IDs of target ports (the system’s front-end FC port). If this is NULL or contains
an empty array during creation mode, then a host-sees SPC is created; if array contains actual
values, then a matched-set SPC is created
DeviceNumbers[]
: A list of logical unit numbers to assign to the corresponding logical unit in
the
LUNames
parameter. (within the context of the elements specified in the other parameters).
If the
LUNames
parameter is null, then this parameter must be null. If this parameter is NULL,
the logical unit number is assigned by the system.
DeviceAccesses[]
: A list of permissions to assign to the corresponding logical unit in the
LUNames
parameter. This specifies the permission to assign within the context of the elements
specified in the other parameters. This is mandatory only because SMI-S requires it. For the
storage system, access permissions cannot be specified when creating a VLUN. Rather, each
volume has its own access permission. The
ControllerConfigurationService
provider
checks the passed in
DeviceAccesses
values against the permission of the specified LU
(volume), and the operation fails if the two values do not match.
ProtocolControllers
: An array of references to
SCSIProtocolControllers
(SPCs). On
input, this can be null, or contains exactly one element; there may be multiple references on
output. If null on input, the instrumentation creates one or more new SPC instances. If SPC is
included on input, this can either be a reference to
TPD_SCSIController
for an FC host
or
TPD_iSCSIController
or
TPD_iSCSICNode
for an iSCSI host.
Masking and Mapping Subprofile
81