Managing resources by using virtual storage machines
Overview of managing resources by using virtual storage machines
A virtual storage machine can be used as a global-active device or for nondisruptive migration. By registering resources in virtual storage machines, you can collectively manage resources of multiple physical storage systems on a single virtual storage machine, or divide resources of a single physical storage system into multiple virtual storage machines and manage the resources separately.
The following figure shows examples of virtual storage machine configurations:
In this figure, a virtual storage machine of the virtual model VSP G1000 (virtual serial number: 11223) and a virtual storage machine of the virtual model Virtual Storage Platform (virtual serial number: 12345) are created in a VSP 5500 storage system (serial number: 10111), and the resources registered in the virtual storage machines are allocated to the hosts. When the configuration is set up like this, from the virtual point of view it seems as if host A is accessing VSP G1000 (virtual serial number: 11223), and host B is accessing Virtual Storage Platform (virtual serial number: 12345).
For details on how to manage resources by using virtual storage machines, see the Provisioning Guide for Open Systems, or the Provisioning Guide.
Workflow for managing resources by using virtual storage machines
Create a virtual storage machine, and then register the required resources. Allocate the registered resources to the hosts in the same way as allocating resources of a physical storage system, or use the registered resources in the volumes of a global-active device pair.
Create a virtual storage machine
Create a virtual storage machine, and then specify the model name and serial number. A resource group to be used on the virtual storage machine is also created at the same time.
Get a list of the virtual storage machines
Get information such as the storage device IDs of the created virtual storage machines, and the IDs of resource groups on the virtual storage machines.
Add resource groups on a virtual storage machine (optional)
If necessary, add resource groups to the virtual storage machine. Perform this operation by executing the API request for creating resource groups.
Add resources to the virtual storage machines
In the resource groups of the virtual storage machine, add resources such as host numbers, host group numbers, and LDEV numbers. Perform this operation by executing the API request for adding a resource to a resource group.
- To add an LDEV number, first delete the set virtual LDEV number, and then add the LDEV number. After adding the LDEV number in the virtual storage machine, set the virtual LDEV number.
- To add a host group number or iSCSI target number, add an undefined host group or iSCSI target.
Delete the resources on a virtual storage machine before you delete the virtual storage machine.
Delete the virtual LDEV number
Delete the virtual LDEV number that was set for the virtual LDEV on the virtual storage machine.
Remove the resources in the virtual storage machine
Delete the LDEVs, parity groups, host numbers, and all other resources that are added in the resource group in the virtual storage machine. Perform this operation by executing the API request for removing resources from resource groups.
Delete the virtual storage machine
Delete the virtual storage machine. Note that when all of the resource groups are deleted from the virtual storage machine, the virtual storage machine is automatically deleted.
Getting a list of virtual storage machines
Storage Administrator (View Only)
GET base-URL/v1/objects/virtual-storages
Object ID
None.
Query parameters
None.
Body
None.
Body
{ "data" : [ { "virtualStorageDeviceId" : "800000002015", "virtualSerialNumber" : "2015", "virtualModel" : "VSP G1000/G1500 and VSP F1500", "resourceGroupIds" : [ 1, 3 ], "virtualStorageTypeId" : "R8" }, { "virtualStorageDeviceId" : "882000400002", "virtualSerialNumber" : "400002", "virtualModel" : "VSP G350", "resourceGroupIds" : [ 0, 2, 4 ], "virtualStorageTypeId" : "M850S1" } ] }
Attribute
Type
Description
virtualStorageDeviceId
string
Storage device ID of the virtual storage machine
virtualSerialNumber
string
Serial number of the virtual storage machine
virtualModel#
string
Model name of the virtual storage machine
virtualModelDetail#
string
Detailed model name of the virtual storage machine
This parameter is output if the virtual storage machine is in the VSP 5000 series.
resourceGroupIds
int[]
Resource group ID
virtualStorageTypeId
string
Storage system type ID of the virtual storage machine
If storage system is not be determined, Unknown is output.
#: For virtual storage machines in the VSP 5000 series, the series name VSP 5000 series AFA or VSP 5000 series hybrid is output for the
virtualModel
attribute, and VSP 5100, 5500, VSP 5200, 5600, VSP 5100H, 5500H, or VSP 5200H, 5600H is output for thevirtualModelDetail
attribute.
For details on the status codes for the request that performs this operation, see the description of HTTP status codes.
curl -v -H "Accept:application/json" -H "Content-Type:application/json" -H "Authorization:Session d7b673af189048468c5af9bcf3bbbb6f" -X GET https://192.0.2.100/ConfigurationManager/v1/objects/virtual-storages
Getting information about a specific virtual storage machine
Storage Administrator (View Only)
GET base-URL/v1/objects/virtual-storages/object-ID
Object ID
Specify the
virtualStorageDeviceId
value obtained by getting information about the virtual storage machine.Attribute
Type
Description
virtualStorageDeviceId
string
(Required) Storage device ID of the virtual storage machine
Query parameters
None.
Body
None.
Body
{ "virtualStorageDeviceId" : "882000400002", "virtualSerialNumber" : "400002", "virtualModel" : "VSP G350", "resourceGroupIds" : [ 0, 2, 4 ], "virtualStorageTypeId" : "M850S1" }
Attribute
Type
Description
virtualStorageDeviceId
string
Storage device ID of the virtual storage machine
virtualSerialNumber
string
Serial number of the virtual storage machine
virtualModel#
string
Model name of the virtual storage machine
virtualModelDetail#
string
Detailed model name of the virtual storage machine
This parameter is output if the virtual storage machine is in the VSP 5000 series.
resourceGroupIds
int[]
Resource group ID
virtualStorageTypeId
string
Storage system type ID of the virtual storage machine
If storage system is not be determined, Unknown is output.
#: For virtual storage machines in the VSP 5000 series, the series name VSP 5000 series AFA or VSP 5000 series hybrid is output for the
virtualModel
attribute, and VSP 5100, 5500, VSP 5200, 5600, VSP 5100H, 5500H, or VSP 5200H, 5600H is output for thevirtualModelDetail
attribute.
For details on the status codes for the request that performs this operation, see the description of HTTP status codes.
curl -v -H "Accept:application/json" -H "Content-Type:application/json" -H "Authorization:Session d7b673af189048468c5af9bcf3bbbb6f" -X GET https://192.0.2.100/ConfigurationManager/v1/objects/virtual-storages/882000400002
Creating a virtual storage machine
If you locked any resources of the target storage system by using the REST API, you will not be able to use this API function. In such cases, unlock the resources before running the API function.
Security Administrator (View & Modify)
POST base-URL/v1/objects/virtual-storages
Object ID
None.
Query parameters
None.
Body
{ "virtualSerialNumber": "422222", "virtualModel": "VSP G700", "resourceGroupName": "DevGroup" }
Attribute
Type
Description
virtualSerialNumber
string
(Required) Serial number of the virtual storage machine
virtualModel
string
(Required) Model name of the virtual storage machine
Specifiable values are as follows:
-
VSP E1090
-
VSP E990
-
VSP E790
-
VSP E590
-
VSP E1090H
-
VSP E790H
-
VSP E590H
-
VSP F900
-
VSP F700
-
VSP F370
-
VSP F350
-
VSP G900
-
VSP G700
-
VSP G370
-
VSP G350
-
VSP G130
-
VSP G800 and VSP F800#1
-
VSP G400/G600 and VSP F400/F600#1
-
VSP G200
-
HUS VM
-
VSP 5100, 5500#2
-
VSP 5200, 5600#2
-
VSP 5100H, 5500H#2
-
VSP 5200H, 5600H#2
-
VSP G1000/G1500 and VSP F1500
-
VSP
resourceGroupName
string
(Required) Name of the resource group to be created when the virtual storage machine is created
Specify a name consisting of 1 to 32 characters.
#1: If the storage system model is VSP N400 or VSP N600, specify VSP G400/G600 and VSP F400/F600. If the storage system model is VSP N800, specify VSP G800 and VSP F800.
#2: If the storage system is in the VSP 5000 series, note the following.
-
To maintain compatibility, you can specify VSP 5000 series AFA instead of VSP 5100, 5500. In this case, the request is run in the same way as if VSP 5100, 5500 were specified.
-
To maintain compatibility, you can also specify VSP 5000 series hybrid instead of VSP 5100H, 5500H. In this case, the request is run in the same way as if VSP 5100H, 5500H were specified.
-
If you run the API request that gets information about a virtual storage machine with VSP 5100, 5500, VSP 5200, 5600, VSP 5100H, 5500H, or VSP 5200H, 5600H specified for the
virtualModel
attribute, the series name (VSP 5000 series AFA or VSP 5000 series hybrid) will be output for thevirtualModel
attribute, and the value you specified will be output for thevirtualModelDetail
attribute.
-
Body
A job object is returned. For details on attributes other than
affectedResources
, see the description of job objects.Attribute
Description
affectedResources
URL of the created virtual storage machine
For details on the status codes of the request for this operation, see the description on HTTP status codes.
curl -v -H "Accept:application/json" -H "Content-Type:application/json" -H "Authorization:Session d7b673af189048468c5af9bcf3bbbb6f" -X POST --data-binary @./InputParameters.json https://192.0.2.100/ConfigurationManager/v1/objects/virtual-storages/
Deleting a virtual storage machine
If you locked any resources of the target storage system by using the REST API, you will not be able to use this API function. In such cases, unlock the resources before running the API function.
Security Administrator (View & Modify)
DELETE base-URL/v1/objects/virtual-storages/object-ID
Object ID
Specify the
virtualStorageDeviceId
value obtained by getting information about the virtual storage machine.Attribute
Type
Description
virtualStorageDeviceId
string
(Required) Storage device ID of the virtual storage machine
Query parameters
None.
Body
None.
Body
A job object is returned. For details on attributes other than
affectedResources
, see the description of job objects.Attribute
Description
affectedResources
URL of the deleted virtual storage machine
For details on the status codes of the request for this operation, see the description on HTTP status codes.
curl -v -H "Accept:application/json" -H "Content-Type:application/json" -H "Authorization:Session d7b673af189048468c5af9bcf3bbbb6f" -X DELETE https://192.0.2.100/ConfigurationManager/v1/objects/virtual-storages/409900010000
Getting information about virtual LDEVs
Storage Administrator (View Only)
GET base-URL/v1/objects/ldevs
Object ID
None.
Query parameters
You can filter the execution result by specifying conditions, or request additional detailed information about virtual LDEVs. To get information about virtual LDEVs, specify the target virtual storage machine by using the
virtualSerialNumber
parameter.- When filtering the execution result
By default, information about a maximum of 100 virtual LDEVs is obtained. You can get information about a maximum of 16,384 virtual LDEVs by specifying the
count
parameter. When theldevOption
parameter or thepoolId
parameter is specified, if the number of virtual LDEVs for which information is to be obtained exceeds 16,384, use theheadVirtualLdevId
parameter and specify a value so that the virtual LDEV numbers whose information is to be obtained are included in the range. The information that can be obtained is only about the number of virtual LDEVs that are included in the range specified by the combination of theheadVirtualLdevId
parameter and thecount
parameter.TipOf the resources displayed by the filter, you can obtain information only about the resources for which you have been granted access permissions.
For example, if you specify 10 for the
count
parameter and you have permission to access all virtual LDEVs, information about 10 virtual LDEVs will be obtained. If you have permission to access specific virtual LDEVs only, information will be obtained only about virtual LDEVs for which you have been granted access permissions.ImportantFor a VSP E series, VSP G350, G370, G700, G900, VSP F350, F370, F700, F900 storage system, pay attention to the number of concurrent executions of this API request. For details, see "Implementing retry processing".
For query parameters that can be specified at the same time, see the following table that lists the combinations of query parameters that can be specified.
Parameter
Type
Filter Condition
virtualSerialNumber
string
(Required) Specify the serial number of a virtual storage machine.
Information about virtual LDEVs on the virtual storage machine is obtained in the ascending order of virtual LDEV numbers.
headVirtualLdevId
int
(Optional) Specify the virtual LDEV number (a decimal) from which the processing to get information is to start.
Information about the LDEVs is obtained in the ascending order of virtual LDEV numbers, starting with the specified virtual LDEV number.
If this parameter is omitted, 0 is assumed.
When specifying this parameter, be sure to also specify the
virtualSerialNumber
parameter.count
int
(Optional) Specify the number of virtual LDEVs about which you want to obtain information. Specify a value in the range from 1 to 16384.
If this parameter is omitted, 100 is assumed.
ldevOption
string
(Optional) Virtual LDEV conditions for getting information
You can specify the following conditions:
- defined
Get information about virtual LDEVs that have been implemented.
- undefined
Get information about virtual LDEVs that are not implemented.
- dpVolume
Obtaining DP volume information
- luMapped
Get information about virtual LDEVs for which LU paths are defined.
- luUnmapped
Get information about virtual LDEVs for which LU paths have not been defined.
- externalVolume
Get information about external volumes.
If this is omitted, information about all types of virtual LDEVs will be obtained.
poolId
int
(Optional) Pool number
Get information about the virtual LDEVs that are associated with the specified pool.
By using the ldevOption parameter when specifying conditions, the following information can be obtained:
- If dpVolume is specified for the
ldevOption
parameter:Gets information about the DP volumes that are associated with the specified pool.
- If luMapped is specified for the
ldevOption
parameter:Gets information about virtual LDEVs for which LU paths associated with the specified pool are defined.
- If luUnmapped is specified for the
ldevOption
parameter:Gets information about virtual LDEVs for which LU paths associated with the specified pool have not been defined.
If you specify this parameter without specifying the
ldevOption
parameter, the API gets information about the volumes that make up the pool (pool volumes).resourceGroupId
int
(Optional) ID of the resource group to which virtual LDEVs for which information is to be obtained belong
journalId
int
(Optional) ID of the journal to which virtual LDEVs for which information is to be obtained belong
parityGroupId
string
(Optional) Number of the parity group to which LDEVs for which information is to be obtained belong
Specify concatenated parity groups in the same way as the above.
If the concatenated parity groups are 1-3-1, 1-3-2, or 1-3-3, specify as follows:
parityGroupId=1-3
The following table shows the combinations of query parameters that can be specified.
Parameter
virtualSerialNumber
headVirtualLdevId
count
ldevOption
poolId
resourceGroupId
journalId
parityGroupId
virtualSerialNumber --
Y
Y
Y
Y
Y
Y
Y
headVirtualLdevId
Y
--
Y
Y
N
N
N
N
count
Y
Y
--
Y
Y
Y
Y
Y
ldevOption
Y
Y
Y
--
Y#
Y
N
N
poolId
Y
N
Y
Y#
--
Y
N
N
resourceGroupId
Y
N
Y
Y
Y
--
Y
Y
journalId
Y
N
Y
N
N
Y
--
N
parityGroupId
Y
N
Y
N
N
Y
N
--
#: If defined, undefined, or externalVolume is specified as the value of the
ldevOption
parameter, you cannot specify this combination of parameters. - defined
- When requesting additional detailed information
Parameter
Type
Description
detailInfoType
string
(Optional) Type of detailed information to be obtained
You can use this parameter together with parameters that filter the execution results.
The following values can be specified. To specify multiple values, separate the values by using commas.
- FMC
Adds detailed information about accelerated compression for the virtual LDEVs that belong to parity groups with drive type SSD(FMC).
- virtualSerialNumber
Adds detailed information about virtual storage machines.
-
class
Adds additional information from the storage system's cache.
You can specify this item for VSP 5000 series.
To get up-to-date information, you must run the API request that refreshes the storage system's cache before running this request. For details, see "Updating the cache of storage system configuration information".
Immediately after you create an LDEV, if you specify class and at the same time specify defined in the query parameter
ldevOption
and then run the command, the volume status might be output as unimplemented. In such a case, wait a while and then run this request again. Alternatively, run the API request that updates the cache of storage system configuration information, and then run this request again. -
qos
Adds information about QoS settings.
- FMC
- When filtering the execution result
Body
None.
Body
{ "data": [ { "ldevId": 0, "virtualLdevId": 0, "virtualSerialNumber": "410012", "clprId": 0, "emulationType": "OPEN-V-CVS", "byteFormatCapacity": "1.00 G", "blockCapacity": 2097152, "numOfPorts": 1, "ports": [ { "portId": "CL3-B", "hostGroupNumber": 25, "hostGroupName": "bs10300-7", "lun": 19 } ], "attributes": [ "CVS", "HDP", "GAD" ], "status": "NML", "mpBladeId": 2, "ssid": "0004", "poolId": 4, "numOfUsedBlock": 0, "isFullAllocationEnabled": false, "resourceGroupId": 6, "dataReductionStatus": "DISABLED", "dataReductionMode": "disabled", "isAluaEnabled": false }, { "ldevId": 1, "virtualLdevId": 1, "virtualSerialNumber": "410012", "clprId": 0, "emulationType": "OPEN-V-CVS", "byteFormatCapacity": "1.00 G", "blockCapacity": 2097152, "numOfPorts": 1, "ports": [ { "portId": "CL3-B", "hostGroupNumber": 25, "hostGroupName": "bs10300-7", "lun": 21 } ], "attributes": [ "CVS", "HDP", "GAD" ], "label": "ldev_label_1", "status": "NML", "mpBladeId": 0, "ssid": "0004", "poolId": 10, "numOfUsedBlock": 0, "isFullAllocationEnabled": false, "resourceGroupId": 6, "dataReductionStatus": "DISABLED", "dataReductionMode": "disabled", "isAluaEnabled": false } ] }
The following table describes the attributes to be obtained in the body of the response message. For details on attributes to be obtained, see the description of the API function for getting volume information.
Attribute
Type
Description
ldevId
int
LDEV number
virtualLdevId
int
Virtual LDEV number
virtualSerialNumber
string
Serial number of the virtual storage machine
If you execute the request with virtualSerialNumber specified for the
detailInfoType
query parameter, the request also obtains detailed information about the virtual storage machines.Attribute
Type
Description
virtualModel#
string
Model name of the virtual storage machine
virtualModelDetail#
string
Detailed model name of the virtual storage machine
This parameter is output if the virtual storage machine is in the VSP 5000 series.
#: For virtual storage machines in the VSP 5000 series, the series name VSP 5000 series AFA or VSP 5000 series hybrid is output for the
virtualModel
attribute, and VSP 5100, 5500, VSP 5200, 5600, VSP 5100H, 5500H, or VSP 5200H, 5600H is output for thevirtualModelDetail
attribute.If you run this request with class specified for
detailInfoType
in the query parameters, additional information from the storage system's cache is also obtained.Attribute
Type
Description
virtualEmulationType
string
Virtual emulation type of the virtual LDEV
virtualSsId
int
Virtual SSID of the virtual LDEV
isVirtualCvs
boolean
Whether a virtual CVS is set for the virtual LDEV
- true: Set
- false: Not set
For details on the status codes of the request for this operation, see the section explaining HTTP status codes.
curl -v -H "Accept:application/json" -H "Content-Type:application/json" -H "Authorization:Session d7b673af189048468c5af9bcf3bbbb6f" -X GET "https://192.0.2.100/ConfigurationManager/v1/objects/ldevs?count=2&virtualSerialNumber=410012"
Setting a virtual LDEV number
Storage Administrator (Provisioning)
POST base-URL/v1/objects/ldevs/object-ID/actions/assign-virtual-ldevid/invoke
Object ID
Specify the
ldevId
value obtained by getting information about volumes.Attribute
Type
Description
ldevId
int
(Required) Specify the LDEV number with a decimal (base 10) number.
Query parameters
None.
Body
The following coding example sets the virtual LDEV number 405 for a LDEV:
{ "parameters": { "virtualLdevId": 405 } }
Attribute
Type
Description
virtualLdevId
int
(Required) Specify the virtual LDEV number with a decimal (base 10) number.
If you specify 65535, the reserved attribute of global-active device will be set.
Body
A job object is returned. For details on attributes other than affectedResources, see the section explaining job objects.
Attribute
Description
affectedResources
URL of the LDEV for which the virtual LDEV number is set
GET base-URL/v1/objects/ldevs/object-ID/actions/assign-virtual-ldevid
The following table describes the meaning of the status code of the request for this operation. For details on other status codes, see the description on HTTP status codes.
Status code |
Message |
Description |
412 |
Precondition Failed |
The virtual LDEV number is already set for the target LDEV. |
To get an action template:
curl -v -H "Accept:application/json" -H "Content-Type:application/json" -H "Authorization:Session d7b673af189048468c5af9bcf3bbbb6f" -X GET https://192.0.2.100/ConfigurationManager/v1/objects/ldevs/1/actions/assign-virtual-ldevid
To run the request after getting an action template:
curl -v -H "Accept:application/json" -H "Content-Type:application/json" -H "Authorization:Session d7b673af189048468c5af9bcf3bbbb6f" -X POST --data-binary @./InputParameters.json https://192.0.2.100/ConfigurationManager/v1/objects/ldevs/1/actions/assign-virtual-ldevid/invoke
Deleting a virtual LDEV number
Storage Administrator (Provisioning)
POST base-URL/v1/objects/ldevs/object-ID/actions/unassign-virtual-ldevid/invoke
Object ID
Specify the
ldevId
value obtained by getting information about the virtual LDEV number.Attribute
Type
Description
ldevId
int
(Required) Specify the LDEV number with a decimal (base 10) number.
Query parameters
None.
Body
The following coding example deletes virtual LDEV number 405:
{ "parameters": { "virtualLdevId": 405 } }
Attribute
Type
Description
virtualLdevId
int
(Required) Specify the virtual LDEV number with a decimal (base 10) number.
If you specify 65535, the reserved attribute of global-active device is canceled.
Body
A job object is returned. For details on attributes other than affectedResources, see the section explaining job objects.
Attribute
Description
affectedResources
URL of the LDEV for which the virtual LDEV number is deleted
GET base-URL/v1/objects/ldevs/object-ID/actions/unassign-virtual-ldevid
The following table describes the meaning of the status code of the request for this operation. For details on other status codes, see the description on HTTP status codes.
Status code |
Message |
Description |
412 |
Precondition Failed |
The virtual LDEV number is not set for the target LDEV. |
To get an action template:
curl -v -H "Accept:application/json" -H "Content-Type:application/json" -H "Authorization:Session d7b673af189048468c5af9bcf3bbbb6f" -X GET https://192.0.2.100/ConfigurationManager/v1/objects/ldevs/1/actions/unassign-virtual-ldevid
To run the request after getting an action template:
curl -v -H "Accept:application/json" -H "Content-Type:application/json" -H "Authorization:Session d7b673af189048468c5af9bcf3bbbb6f" -X POST --data-binary @./InputParameters.json https://192.0.2.100/ConfigurationManager/v1/objects/ldevs/1/actions/unassign-virtual-ldevid/invoke