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

Thinly Provisioned Storage Volume, TPD_StorageVolume.NumberOfBlocks

Page 44 highlights

DynamicStoragePool is the same as the logical size of the volume; RAID overhead is accounted for in the DynamicStoragePool itself and does not carry over to the child volume. • BlockSize = 512 • TPD_StorageVolume.NumberOfBlocks = TPD_StorageVolume.ConsumableBlocks = (10240 * 1024 * 1024) / BlockSize = 20971520 (logical block size of the volume) • TPD_StorageVolume.NumberOfRawBlocks = (20480 * 1024 * 1024) / BlockSize = 41943040 (raw block size of the volume) • TPD_AllocatedFromStoragePool.SpaceConsumed between dynamic storage pool and volume = TPD_StorageVolume.NumberOfBlocks * BlockSize = 10737418240 • TPD_DynamicStoragePool.RemainingManagedSpace = TPD_DynamicStoragePool.SpaceLimit - volume logical size = 100G - 10G = 90G • TotalManagedSpace for the dynamic storage pool remains unchanged. Thinly Provisioned Storage Volume TPD_AllocatedFromStoragePool.SpaceConsumed between the parent dynamic storage pool and the thinly provisioned storage volume represents the actual size allocated to the volume. This value is also represented in StorageVolume.ProvisionedConsumableBlocks, i.e., SpaceConsumed equals ProvisionedConsumableBlocks. As is the case with Section (page 43), logical capacity is used in calculating SpaceConsumed with child volumes/delta replica pool. StorageVolume.NumberOfBlocks is the virtual size of the TPVV. TPD_StorageVolume.ConsumableBlocks is set to be the same as TPD_StorageVolume.NumberOfBlocks. Example: • Initial State A dynamic storage pool has a virtual capacity of 100GB (as set in the -sdgl option). This value is reflected in TPD_DynamicStoragePool.SpaceLimit property and is what is available for volume allocation. Let us assume that there are no volumes or DeltaReplicaStoragePool allocated from this pool initially. The TotalManagedSpace property reflects the actual capacity allocated to the pool. • Before Volume Creation • TPD_DynamicStoragePool.TotalManagedSpace = actual capacity allocated to the pool • TPD_DynamicStoragePool.SpaceLimit = 100GB • TPD_DynamicStoragePool.RemainingManagedSpace = 100 GB (capacity that can be used to create volume) • After Volume Creation Suppose a RAID-10 volume of logical size 10G is created from the dynamic storage pool. This value is represented in the TPD_StorageVolume class as NumberOfBlocks (ConsumableBlocks also has the same value). Since this is a thinly provisioned volume, what are actually allocated to the volume may not be the full 10G (let us assume it is 4G). The actual allocated value is represented in the TPD_StorageVolume class as ProvisionedConsumableBlocks. AllocatedFromStoragePool.SpaceConsumed between StorageVolume and the parent DynamicStoragePool is the capacity that is actually allocated 44 CIM API SMI-S Support

  • 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

DynamicStoragePool
is the same as the logical size of the volume; RAID overhead is accounted
for in the
DynamicStoragePool
itself and does not carry over to the child volume.
BlockSize
= 512
TPD_StorageVolume.NumberOfBlocks
=
TPD_StorageVolume.ConsumableBlocks
= (10240 * 1024 * 1024) /
BlockSize
= 20971520 (logical block size of the volume)
TPD_StorageVolume.NumberOfRawBlocks
= (20480 * 1024 * 1024) /
BlockSize
= 41943040 (raw block size of the volume)
TPD_AllocatedFromStoragePool.SpaceConsumed
between dynamic storage pool
and volume =
TPD_StorageVolume.NumberOfBlocks
*
BlockSize
= 10737418240
TPD_DynamicStoragePool.RemainingManagedSpace
=
TPD_DynamicStoragePool.SpaceLimit
– volume logical size = 100G – 10G = 90G
TotalManagedSpace
for the dynamic storage pool remains unchanged.
Thinly Provisioned Storage Volume
TPD_AllocatedFromStoragePool.SpaceConsumed
between the parent dynamic storage
pool and the thinly provisioned storage volume represents the actual size allocated to the volume.
This value is also represented in
StorageVolume.ProvisionedConsumableBlocks
, i.e.,
SpaceConsumed
equals
ProvisionedConsumableBlocks
.
As is the case with
Section (page 43)
, logical capacity is used in calculating
SpaceConsumed
with child volumes/delta replica pool.
StorageVolume.NumberOfBlocks
is the virtual size of the TPVV.
TPD_StorageVolume.ConsumableBlocks
is set to be the same as
TPD_StorageVolume.NumberOfBlocks
.
Example:
Initial State
A dynamic storage pool has a virtual capacity of 100GB (as set in the –sdgl option). This value
is reflected in
TPD_DynamicStoragePool.SpaceLimit
property and is what is available for
volume allocation. Let us assume that there are no volumes or
DeltaReplicaStoragePool
allocated from this pool initially. The
TotalManagedSpace
property reflects the actual capacity
allocated to the pool.
Before Volume Creation
TPD_DynamicStoragePool.TotalManagedSpace
= actual capacity allocated to the
pool
TPD_DynamicStoragePool.SpaceLimit
= 100GB
TPD_DynamicStoragePool.RemainingManagedSpace
= 100 GB (capacity that can
be used to create volume)
After Volume Creation
Suppose a RAID-10 volume of logical size 10G is created from the dynamic storage pool. This
value is represented in the
TPD_StorageVolume
class as
NumberOfBlocks
(
ConsumableBlocks
also has the same value). Since this is a thinly provisioned volume, what
are actually allocated to the volume may not be the full 10G (let us assume it is 4G). The actual
allocated value is represented in the
TPD_StorageVolume
class as
ProvisionedConsumableBlocks
.
AllocatedFromStoragePool.SpaceConsumed
between
StorageVolume
and the parent
DynamicStoragePool
is the capacity that is actually allocated
44
CIM API SMI-S Support