Skip to main content

Create an NVMe subsystem

Contributors

POST /protocols/nvme/subsystems

Introduced In: 9.6

Creates an NVMe subsystem.

Required properties

  • svm.uuid or svm.name - Existing SVM in which to create the NVMe subsystem.

  • name - Name for NVMe subsystem. Once created, an NVMe subsytem cannot be renamed.

  • os_type - Operating system of the NVMe subsystem's hosts.

  • vserver nvme subsystem create

Parameters

Name Type In Required Description

return_records

boolean

query

False

The default is false. If set to true, the records are returned.

  • Default value:

Request Body

Name Type Description

_links

_links

comment

string

A configurable comment for the NVMe subsystem. Optional in POST and PATCH.

delete_on_unmap

boolean

An option that causes the subsystem to be deleted when the last subsystem map associated with it is deleted. Optional in POST and PATCH. This property defaults to false when the subsystem is created.

hosts

array[hosts]

The NVMe hosts configured for access to the NVMe subsystem. Optional in POST.

io_queue

io_queue

The properties of the submission queue used to submit I/O commands for execution by the NVMe controller.

name

string

The name of the NVMe subsystem. Once created, an NVMe subsystem cannot be renamed. Required in POST.

os_type

string

The host operating system of the NVMe subsystem's hosts. Required in POST.

serial_number

string

The serial number of the NVMe subsystem.

subsystem_maps

array[subsystem_maps]

The NVMe namespaces mapped to the NVMe subsystem.

There is an added computational cost to retrieving property values for subsystem_maps. They are not populated for either a collection GET or an instance GET unless explicitly requested using the fields query parameter. See Requesting specific fields to learn more.

svm

svm

SVM, applies only to SVM-scoped objects.

target_nqn

string

The NVMe qualified name (NQN) used to identify the NVMe storage target.

uuid

string

The unique identifier of the NVMe subsystem.

vendor_uuids

array[string]

Vendor-specific identifiers (UUIDs) optionally assigned to an NVMe subsystem when the subsystem is created. The identifiers are used to enable vendor-specific NVMe protocol features. The identifiers are provided by a host application vendor and shared with NetApp prior to a joint product release. Creating an NVMe subsystem with an unknown or non-specific identifier will have no effect on the NVMe subsystem. Refer to the ONTAP SAN Administration Guide for a list of the supported vendor-specific identifiers. After a subsystem is created, the vendor-specific identifiers cannot be changed or removed. Optional in POST.

  • Introduced in: 9.9

  • readCreate: 1

Example request
{
  "_links": {
    "self": {
      "href": "/api/resourcelink"
    }
  },
  "comment": "string",
  "hosts": [
    {
      "dh_hmac_chap": {
        "controller_secret_key": "DHHC-1:00:ia6zGodOr4SEG0Zzaw398rpY0wqipUWj4jWjUh4HWUz6aQ2n:",
        "group_size": "string",
        "hash_function": "string",
        "host_secret_key": "DHHC-1:00:ia6zGodOr4SEG0Zzaw398rpY0wqipUWj4jWjUh4HWUz6aQ2n:",
        "mode": "bidirectional"
      },
      "nqn": "nqn.1992-01.example.com:string",
      "priority": "string"
    }
  ],
  "io_queue": {
    "default": {
      "count": 4,
      "depth": 16
    }
  },
  "name": "subsystem1",
  "os_type": "string",
  "serial_number": "wCVsgFMiuMhVAAAAAAAB",
  "subsystem_maps": [
    {
      "_links": {
        "self": {
          "href": "/api/resourcelink"
        }
      },
      "anagrpid": "00103050h",
      "namespace": {
        "_links": {
          "self": {
            "href": "/api/resourcelink"
          }
        },
        "name": "/vol/vol1/namespace1",
        "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
      },
      "nsid": "00000001h"
    }
  ],
  "svm": {
    "_links": {
      "self": {
        "href": "/api/resourcelink"
      }
    },
    "name": "svm1",
    "uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
  },
  "target_nqn": "nqn.1992-01.example.com:string",
  "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412",
  "vendor_uuids": [
    "1447f0f4-42e5-0dfc-871a-dc9b3f92d8f8"
  ]
}

Response

Status: 201, Created
Name Type Description

_links

_links

num_records

integer

The number of records in the response.

records

array[nvme_subsystem]

Example response
{
  "_links": {
    "next": {
      "href": "/api/resourcelink"
    },
    "self": {
      "href": "/api/resourcelink"
    }
  },
  "num_records": 1,
  "records": [
    {
      "_links": {
        "self": {
          "href": "/api/resourcelink"
        }
      },
      "comment": "string",
      "hosts": [
        {
          "dh_hmac_chap": {
            "controller_secret_key": "DHHC-1:00:ia6zGodOr4SEG0Zzaw398rpY0wqipUWj4jWjUh4HWUz6aQ2n:",
            "group_size": "string",
            "hash_function": "string",
            "host_secret_key": "DHHC-1:00:ia6zGodOr4SEG0Zzaw398rpY0wqipUWj4jWjUh4HWUz6aQ2n:",
            "mode": "bidirectional"
          },
          "nqn": "nqn.1992-01.example.com:string",
          "priority": "string"
        }
      ],
      "io_queue": {
        "default": {
          "count": 4,
          "depth": 16
        }
      },
      "name": "subsystem1",
      "os_type": "string",
      "serial_number": "wCVsgFMiuMhVAAAAAAAB",
      "subsystem_maps": [
        {
          "_links": {
            "self": {
              "href": "/api/resourcelink"
            }
          },
          "anagrpid": "00103050h",
          "namespace": {
            "_links": {
              "self": {
                "href": "/api/resourcelink"
              }
            },
            "name": "/vol/vol1/namespace1",
            "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
          },
          "nsid": "00000001h"
        }
      ],
      "svm": {
        "_links": {
          "self": {
            "href": "/api/resourcelink"
          }
        },
        "name": "svm1",
        "uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
      },
      "target_nqn": "nqn.1992-01.example.com:string",
      "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412",
      "vendor_uuids": [
        "1447f0f4-42e5-0dfc-871a-dc9b3f92d8f8"
      ]
    }
  ]
}

Headers

Name Description Type

Location

Useful for tracking the resource location

string

Error

Status: Default

ONTAP Error Response Codes

Error Code Description

2621462

The supplied SVM does not exist.

2621706

The specified svm.uuid and svm.name do not refer to the same SVM.

2621707

The svm.uuid or svm.name must be provided.

72089635

Setting vendor-specific UUIDs on NVMe subsystems is not supported until the effective cluster version is 9.9 or later.

72089636

Creating NVMe subsystems with os_type AIX is not supported until the effective cluster version is 9.13.1 or later.

72089709

The NVMe subsystem name contains an invalid character.

72089711

An invalid vendor-specific UUID was specified.

72089712

A duplicate vendor-specific UUID was specific.

72089713

Too many vendor UUIDs were supplied.

72089771

The NQN is invalid. A non-empty qualifier is required after the prefix. An example of a valid NQN is nqn.1992-01.com.example:string.

72089772

The NQN is invalid. Add the prefix 'nqn'. An example of a valid NQN is nqn.1992-01.com.example:string.

72089773

The NQN is invalid. The date field must be formatted yyyy-mm. An example of a valid NQN is nqn.1992-01.com.example:string.

72090003

A host to be added to an NVMe subsystem is missing the "nqn" property.

72090025

The NVMe subsystem already exists for the SVM.

72090029

The NVMe service does not exist.

72090030

A partial success occurred while adding multiple NVMe subsystem hosts to an NVMe subsystem.

72090036

An NVMe subsystem host NQN was duplicated in the input.

72090042

The dh_hmac_chap.host_secret_key property is required when setting any other NVMe in-band authentication properties for a host.

Also see the table of common errors in the Response body overview section of this documentation.

Name Type Description

error

returned_error

Example error
{
  "error": {
    "arguments": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "code": "4",
    "message": "entry doesn't exist",
    "target": "uuid"
  }
}

Definitions

See Definitions

href

Name Type Description

href

string

Name Type Description

self

href

dh_hmac_chap

A container for properties of NVMe in-band authentication with the DH-HMAC-CHAP protocol.

Name Type Description

controller_secret_key

string

The controller secret for NVMe in-band authentication. The value of this property is used by the NVMe host to authenticate the NVMe controller while establishing a connection. If unset, the controller is not authenticated. When supplied, the property host_secret_key must also be supplied. Optional in POST.

This property is write-only. The mode property can be used to identify if a controller secret has been set for the host, but the controller secret value cannot be read. To change the value, the host must be deleted from the subsystem and re-added.

group_size

string

The Diffie-Hellman group size for NVMe in-band authentication. When property host_secret_key is provided, this property defaults to 2048_bit. When supplied, the property host_secret_key must also be supplied. Optional in POST.

hash_function

string

The hash function for NVMe in-band authentication. When property host_secret_key is provided, this property defaults to sha_256. When supplied, the property host_secret_key must also be supplied. Optional in POST.

host_secret_key

string

The host secret for NVMe in-band authentication. The value of this property is used by the NVMe controller to authenticate the NVMe host while establishing a connection. If unset, no authentication is performed by the host or controller. This property must be supplied if any other NVMe in-band authentication properties are supplied. Optional in POST.

This property is write-only. The mode property can be used to identify if a host secret has been set for the host, but the host secret value cannot be read. To change the value, the host must be deleted from the subsystem and re-added.

mode

string

The expected NVMe in-band authentication mode for the host. This property is an indication of which secrets are configured for the host. When set to:

  • none: The host has neither the host nor controller secret configured, and no authentication is performed.

  • unidirectional: The host has a host secret configured. The controller will authenticate the host.

  • bidirectional: The host has both a host and controller secret configured. The controller will authenticate the host and the host will authenticate the controller.

hosts

Name Type Description

dh_hmac_chap

dh_hmac_chap

A container for properties of NVMe in-band authentication with the DH-HMAC-CHAP protocol.

nqn

string

The NVMe qualified name (NQN) used to identify the NVMe storage target.

priority

string

The host priority setting allocates appropriate NVMe I/O queues (count and depth) for the host to submit I/O commands. Absence of this property in GET implies user configured values of I/O queue count and I/O queue depth are being used.

default

The default I/O queue parameters inherited by NVMe hosts in the NVMe subsystem.

Name Type Description

count

integer

The number of host I/O queue pairs.

depth

integer

The host I/O queue depth.

io_queue

The properties of the submission queue used to submit I/O commands for execution by the NVMe controller.

Name Type Description

default

default

The default I/O queue parameters inherited by NVMe hosts in the NVMe subsystem.

namespace

An NVMe namespace mapped to the NVMe subsystem.

Name Type Description

_links

_links

name

string

The name of the NVMe namespace.

uuid

string

The unique identifier of the NVMe namespace.

subsystem_maps

An NVMe namespace mapped to the NVMe subsystem.

Name Type Description

_links

_links

anagrpid

string

The Asymmetric Namespace Access Group ID (ANAGRPID) of the NVMe namespace.

The format for an ANAGRPIP is 8 hexadecimal digits (zero-filled) followed by a lower case "h".

namespace

namespace

An NVMe namespace mapped to the NVMe subsystem.

nsid

string

The NVMe namespace identifier. This is an identifier used by an NVMe controller to provide access to the NVMe namespace.

The format for an NVMe namespace identifier is 8 hexadecimal digits (zero-filled) followed by a lower case "h".

svm

SVM, applies only to SVM-scoped objects.

Name Type Description

_links

_links

name

string

The name of the SVM. This field cannot be specified in a PATCH method.

uuid

string

The unique identifier of the SVM. This field cannot be specified in a PATCH method.

nvme_subsystem

An NVMe subsystem maintains configuration state and namespace access control for a set of NVMe-connected hosts.