Create volume using iSCSI

Contributors netapp-ranuk Download PDF of this page

You can use this workflow to create a volume accessed through iSCSI. There are two workflows available depending on whether a new or existing iGroup is used. You need to select the correct workflow:

Create volume using iSCSI with a new iGroup

Note If the properties aggregateName and maxNumOfDisksApprovedToAdd are not provided on the REST API call, the response will fail with a suggested name for the aggregate and the number of disks needed to fulfill the request.

1. Select the working environment

Perform the workflow Get working environments and choose the publicId value for the workingEnvironmentId parameter and the svmName value for the svmName parameter.

2. Select the aggregate

Perform the workflow Get aggregates and choose the name for the aggregateName value.

3. Choose the size for the disk

Choose the size value for the size:size parameter. The size:unit must be one of the following: TB, GB, MB, KB, or Byte.

4. Choose the iscasiInfo parameters

You must choose the following values for the REST API call:

  • A unique igroup name for igroupCreationRequestigroupName parameter

  • The required iqn’s to igroupCreationRequestinitiators parameter.

  • The required operating system for the osName parameter from one of the following:

    • windows

    • linux

    • vmware

    • windows_2008

    • windows_gpt

5. Create the quote

Perform the workflow Create quote.This is a recommended step but is not mandatory.

6. Create the volume

HTTP method Path

POST

/occm/api/vsa/volumes

curl example
curl --location --request POST 'https://cloudmanager.cloud.netapp.com/occm/api/vsa/volumes' --header 'Content-Type: application/json' --header 'x-agent-id: <AGENT_ID>' --header 'Authorization: Bearer <ACCESS_TOKEN>' --d @JSONinput
Input

The JSON input example includes the minimum list of input parameters, including:

  • <WORKING_ENV_ID> (workingEnvironmentId)

  • <SVM_NAME> (svmName)

  • <AGGR_NAME> (aggregateName)

If aggregate name does not exist, you can set the createAggregateIfNotFound query parameter to true which allows the aggregate not-found condition.

JSON input example
{
  "workingEnvironmentId": "VsaWorkingEnvironment-SfpVUZSc",
  "svmName": "svm_zivaws02we01",
  "aggregateName": "aggr1",
  "name": "zivaws02we01vol01Iscsi",
  "size": {
    "size": 100,
    "unit": "GB"
  },
  "iscsiInfo": {
    "igroupCreationRequest": {
        "igroupName": "zivIgroup",
        "initiators": [
            "iqn.1994-05.com.redhat:96de86825216",
            "iqn.1994-05.com.redhat:96de86823426"
        ]
    },
    "osName": "linux"
  },
  "snapshotPolicyName": "default",
  "enableThinProvisioning": true,
  "enableCompression": true,
  "enableDeduplication": true,
  "maxNumOfDisksApprovedToAdd": 0
}
Output

None

Create volume using iSCSI with an existing iGroup

Note If the properties aggregateName and maxNumOfDisksApprovedToAdd are not provided on the REST API call, the response will fail with a suggested name for the aggregate and the number of disks needed to fulfill the request.

1. Select the working environment

Perform the workflow Get working environments and choose the publicId value for the workingEnvironmentId parameter and the svmName value for the svmName parameter.

2. Select the aggregate

Perform the workflow Get aggregates and choose the name for the aggregateName value.

3. Choose the size for the disk

Choose the size value for the size:size parameter. The size:unit must be one of the following: TB, GB, MB, KB, or Byte.

4. Choose the iGroup

Perform the workflow Get iGroups and choose the igroups for the iscasiInfoigroups value. Also select the osType value for the iscasiInfoosName.

5. Create the quote

Perform the workflow Create quote. This is a recommended step but is not mandatory.

6. Create the volume

HTTP method Path

POST

/occm/api/vsa/volumes

curl example
curl --location --request POST 'https://cloudmanager.cloud.netapp.com/occm/api/vsa/volumes' --header 'Content-Type: application/json' --header 'x-agent-id: <AGENT_ID>' --header 'Authorization: Bearer <ACCESS_TOKEN>' --d @JSONinput
Input

The JSON input example includes the minimum list of input parameters, including:

  • <WORKING_ENV_ID> (workingEnvironmentId)

  • <SVM_NAME> (svmName)

  • <AGGR_NAME> (aggregateName)

If an aggregate name does not exist, you can set the createAggregateIfNotFound query parameter to true which allows the aggregate not-found condition.

JSON input exmaple
{
  "workingEnvironmentId": "VsaWorkingEnvironment-UvFmWXoD",
  "svmName": "svm_zivaws01we01",
  "aggregateName": "aggr1",
  "name": "zivaws01we01vol05Iscsi",
  "size": {
    "size": 100,
    "unit": "GB"
  },
  "iscsiInfo": {
    "igroups": ["zivIgroup1"],
    "osName": "linux"
  },
  "snapshotPolicyName": "default",
  "enableThinProvisioning": true,
  "enableCompression": true,
  "enableDeduplication": true,
  "maxNumOfDisksApprovedToAdd": 0
}
Output

None