Retrieve NVMe namespaces
GET /storage/namespaces
Retrieves NVMe namespaces.
Expensive properties
There is an added cost to retrieving values for these properties. They are not included by default in GET results and must be explicitly requested using the fields
query parameter. See DOC Requesting specific fields to learn more.
-
auto_delete
-
subsystem_map.*
-
status.mapped
Related ONTAP commands
-
vserver nvme namespace show
-
vserver nvme subsystem map show
Learn more
-
DOC /storage/namespaces to learn more and examples.
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
status.container_state |
string |
query |
False |
Filter by status.container_state |
status.state |
string |
query |
False |
Filter by status.state |
status.read_only |
boolean |
query |
False |
Filter by status.read_only |
status.mapped |
boolean |
query |
False |
Filter by status.mapped |
svm.uuid |
string |
query |
False |
Filter by svm.uuid |
svm.name |
string |
query |
False |
Filter by svm.name |
name |
string |
query |
False |
Filter by name |
space.size |
integer |
query |
False |
Filter by space.size |
space.used |
integer |
query |
False |
Filter by space.used |
space.guarantee.reserved |
boolean |
query |
False |
Filter by space.guarantee.reserved |
space.guarantee.requested |
boolean |
query |
False |
Filter by space.guarantee.requested |
space.block_size |
integer |
query |
False |
Filter by space.block_size |
subsystem_map.nsid |
string |
query |
False |
Filter by subsystem_map.nsid |
subsystem_map.anagrpid |
string |
query |
False |
Filter by subsystem_map.anagrpid |
subsystem_map.subsystem.name |
string |
query |
False |
Filter by subsystem_map.subsystem.name |
subsystem_map.subsystem.uuid |
string |
query |
False |
Filter by subsystem_map.subsystem.uuid |
enabled |
boolean |
query |
False |
Filter by enabled |
auto_delete |
boolean |
query |
False |
Filter by auto_delete |
os_type |
string |
query |
False |
Filter by os_type |
location.namespace |
string |
query |
False |
Filter by location.namespace |
location.volume.name |
string |
query |
False |
Filter by location.volume.name |
location.volume.uuid |
string |
query |
False |
Filter by location.volume.uuid |
location.qtree.id |
integer |
query |
False |
Filter by location.qtree.id |
location.qtree.name |
string |
query |
False |
Filter by location.qtree.name |
uuid |
string |
query |
False |
Filter by uuid |
comment |
string |
query |
False |
Filter by comment |
fields |
array[string] |
query |
False |
Specify the fields to return. |
max_records |
integer |
query |
False |
Limit the number of records returned. |
return_records |
boolean |
query |
False |
The default is true for GET calls. When set to false, only the number of records is returned. |
return_timeout |
integer |
query |
False |
The number of seconds to allow the call to execute before returning. When iterating over a collection, the default is 15 seconds. ONTAP returns earlier if either max records or the end of the collection is reached. |
order_by |
array[string] |
query |
False |
Order results by specified fields and optional [asc |
Response
Status: 200, Ok
Name | Type | Description |
---|---|---|
_links |
||
num_records |
integer |
Number of records. |
records |
array[nvme_namespace] |
Example response
{
"_links": {
"next": {
"href": "/api/resourcelink"
},
"self": {
"href": "/api/resourcelink"
}
},
"records": [
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"clone": {
"source": {
"name": "/vol/volume1/namespace1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}
},
"comment": "string",
"location": {
"namespace": "namespace1",
"qtree": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"id": 1,
"name": "qt1"
},
"volume": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "volume1",
"uuid": "028baa66-41bd-11e9-81d5-00a0986138f7"
}
},
"name": "/vol/volume1/qtree1/namespace1",
"os_type": "string",
"space": {
"block_size": 512,
"size": 1073741824,
"used": 0
},
"status": {
"container_state": "string",
"state": "online"
},
"subsystem_map": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"anagrpid": "00103050h",
"nsid": "00000001h",
"subsystem": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "string",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}
},
"svm": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "svm1",
"uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
},
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}
]
}
Error
Status: Default, Error
Name | Type | Description |
---|---|---|
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 |
_links
Name | Type | Description |
---|---|---|
next |
||
self |
_links
Name | Type | Description |
---|---|---|
self |
source
The source NVMe namespace for a namespace clone operation. This can be specified using property clone.source.uuid
or clone.source.name
. If both properties are supplied, they must refer to the same namespace.
Valid in POST to create a new NVMe namespace as a clone of the source.
Valid in PATCH to overwrite an existing NVMe namespace's data as a clone of another.
Name | Type | Description |
---|---|---|
name |
string |
The fully qualified path name of the clone source NVMe namespace composed of a "/vol" prefix, the volume name, the (optional) qtree name and base name of the namespace. Valid in POST and PATCH. |
uuid |
string |
The unique identifier of the clone source NVMe namespace. Valid in POST and PATCH. |
clone
This sub-object is used in POST to create a new NVMe namespace as a clone of an existing namespace, or PATCH to overwrite an existing namespace as a clone of another. Setting a property in this sub-object indicates that a namespace clone is desired.
When used in a PATCH, the patched NVMe namespace's data is over-written as a clone of the source and the following properties are preserved from the patched namespace unless otherwise specified as part of the PATCH: auto_delete
(unless specified in the request), subsystem_map
, status.state
, and uuid
.
Name | Type | Description |
---|---|---|
source |
The source NVMe namespace for a namespace clone operation. This can be specified using property Valid in POST to create a new NVMe namespace as a clone of the source. Valid in PATCH to overwrite an existing NVMe namespace's data as a clone of another. |
qtree
The qtree in which the NVMe namespace is optionally located. Valid in POST.
If properties name
and location.qtree.name
and/or location.qtree.uuid
are specified in the same request, they must refer to the same qtree.
NVMe namespaces do not support rename.
Name | Type | Description |
---|---|---|
_links |
||
id |
integer |
The identifier for the qtree, unique within the qtree's volume. |
name |
string |
The name of the qtree. |
volume
The volume in which the NVMe namespace is located. Valid in POST.
If properties name
and location.volume.name
and/or location.volume.uuid
are specified in the same request, they must refer to the same volume.
NVMe namespaces do not support movement between volumes.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The name of the volume. |
uuid |
string |
Unique identifier for the volume. This corresponds to the instance-uuid that is exposed in the CLI and ONTAPI. It does not change due to a volume move.
|
location
The location of the NVMe namespace within the ONTAP cluster. Valid in POST.
NVMe namespaces do not support rename, or movement between volumes.
Name | Type | Description |
---|---|---|
namespace |
string |
The base name component of the NVMe namespace. Valid in POST. If properties NVMe namespaces do not support rename. |
qtree |
The qtree in which the NVMe namespace is optionally located. Valid in POST. If properties NVMe namespaces do not support rename. |
|
volume |
The volume in which the NVMe namespace is located. Valid in POST. If properties NVMe namespaces do not support movement between volumes. |
guarantee
Properties that request and report the space guarantee for the NVMe namespace.
Name | Type | Description |
---|---|---|
requested |
boolean |
The requested space reservation policy for the NVMe namespace. If true, a space reservation is requested for the namespace; if false, the namespace is thin provisioned. Guaranteeing a space reservation request for a namespace requires that the volume in which the namespace resides also be space reserved and that the fractional reserve for the volume be 100%. The space reservation policy for an NVMe namespace is determined by ONTAP.
|
reserved |
boolean |
Reports if the NVMe namespace is space guaranteed. This property is true if a space guarantee is requested and the containing volume and aggregate support the request. This property is false if a space guarantee is not requested or if a space guarantee is requested and either the containing volume and aggregate do not support the request. |
space
The storage space related properties of the NVMe namespace.
Name | Type | Description |
---|---|---|
block_size |
integer |
The size of blocks in the namespace in bytes. Valid in POST when creating an NVMe namespace that is not a clone of another. Disallowed in POST when creating a namespace clone. Valid in POST. |
guarantee |
Properties that request and report the space guarantee for the NVMe namespace. |
|
size |
integer |
The total provisioned size of the NVMe namespace. NVMe namespaces do not support resize. For more information, see Size properties in the docs section of the ONTAP REST API documentation.
|
used |
integer |
The amount of space consumed by the main data stream of the NVMe namespace. This value is the total space consumed in the volume by the NVMe namespace, including filesystem overhead, but excluding prefix and suffix streams. Due to internal filesystem overhead and the many ways NVMe filesystems and applications utilize blocks within a namespace, this value does not necessarily reflect actual consumption/availability from the perspective of the filesystem or application. Without specific knowledge of how the namespace blocks are utilized outside of ONTAP, this property should not be used and an indicator for an out-of-space condition. For more information, see Size properties in the docs section of the ONTAP REST API documentation.
|
status
Status information about the NVMe namespace.
Name | Type | Description |
---|---|---|
container_state |
string |
The state of the volume and aggregate that contain the NVMe namespace. Namespaces are only available when their containers are available. |
mapped |
boolean |
Reports if the NVMe namespace is mapped to an NVMe subsystem. There is an added cost to retrieving this property's value. It is not populated for either a collection GET or an instance GET unless it is explicitly requested using the |
read_only |
boolean |
Reports if the NVMe namespace allows only read access. |
state |
string |
The state of the NVMe namespace. Normal states for a namespace are online and offline. Other states indicate errors. |
subsystem
An NVMe subsystem maintains configuration state and NVMe namespace access control for a set of NVMe-connected hosts.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The name of the NVMe subsystem. |
uuid |
string |
The unique identifier of the NVMe subsystem. |
subsystem_map
The NVMe subsystem with which the NVMe namespace is associated. A namespace can be mapped to zero (0) or one (1) subsystems.
There is an added cost to retrieving property values for subsystem_map
. They are not populated for either a collection GET or an instance GET unless explicitly requested using the fields
query parameter. See DOC Requesting specific fields to learn more.
Name | Type | Description |
---|---|---|
_links |
||
anagrpid |
string |
The Asymmetric Namespace Access Group ID (ANAGRPID) of the NVMe namespace. The format for an ANAGRPID is 8 hexadecimal digits (zero-filled) followed by a lower case "h". |
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". |
subsystem |
An NVMe subsystem maintains configuration state and NVMe namespace access control for a set of NVMe-connected hosts. |
svm
SVM, applies only to SVM-scoped objects.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The name of the SVM. |
uuid |
string |
The unique identifier of the SVM. |
nvme_namespace
An NVMe namespace is a collection of addressable logical blocks presented to hosts connected to the storage virtual machine using the NVMe over Fabrics protocol.
In ONTAP, an NVMe namespace is located within a volume. Optionally, it can be located within a qtree in a volume.
An NVMe namespace is created to a specified size using thin or thick provisioning as determined by the volume on which it is created. NVMe namespaces support being cloned. An NVMe namespace cannot be renamed, resized, or moved to a different volume. NVMe namespaces do not support the assignment of a QoS policy for performance management, but a QoS policy can be assigned to the volume containing the namespace. See the NVMe namespace object model to learn more about each of the properties supported by the NVMe namespace REST API.
An NVMe namespace must be mapped to an NVMe subsystem to grant access to the subsystem's hosts. Hosts can then access the NVMe namespace and perform I/O using the NVMe over Fabrics protocol.
Name | Type | Description |
---|---|---|
_links |
||
auto_delete |
boolean |
This property marks the NVMe namespace for auto deletion when the volume containing the namespace runs out of space. This is most commonly set on namespace clones. When set to true, the NVMe namespace becomes eligible for automatic deletion when the volume runs out of space. Auto deletion only occurs when the volume containing the namespace is also configured for auto deletion and free space in the volume decreases below a particular threshold. This property is optional in POST and PATCH. The default value for a new NVMe namespace is false. There is an added cost to retrieving this property's value. It is not populated for either a collection GET or an instance GET unless it is explicitly requested using the |
clone |
This sub-object is used in POST to create a new NVMe namespace as a clone of an existing namespace, or PATCH to overwrite an existing namespace as a clone of another. Setting a property in this sub-object indicates that a namespace clone is desired. When used in a PATCH, the patched NVMe namespace's data is over-written as a clone of the source and the following properties are preserved from the patched namespace unless otherwise specified as part of the PATCH: |
|
comment |
string |
A configurable comment available for use by the administrator. Valid in POST and PATCH. |
enabled |
boolean |
The enabled state of the NVMe namespace. Namespaces can be disabled to prevent access to the namespace. Certain error conditions also cause the namespace to become disabled. If the namespace is disabled, you can consult the |
location |
The location of the NVMe namespace within the ONTAP cluster. Valid in POST. NVMe namespaces do not support rename, or movement between volumes.
|
|
name |
string |
The fully qualified path name of the NVMe namespace composed of a "/vol" prefix, the volume name, the (optional) qtree name and base name of the namespace. Valid in POST. NVMe namespaces do not support rename, or movement between volumes. |
os_type |
string |
The operating system type of the NVMe namespace. Required in POST when creating an NVMe namespace that is not a clone of another. Disallowed in POST when creating a namespace clone. |
space |
The storage space related properties of the NVMe namespace. |
|
status |
Status information about the NVMe namespace. |
|
subsystem_map |
The NVMe subsystem with which the NVMe namespace is associated. A namespace can be mapped to zero (0) or one (1) subsystems. There is an added cost to retrieving property values for |
|
svm |
SVM, applies only to SVM-scoped objects. |
|
uuid |
string |
The unique identifier of the NVMe namespace. |
error_arguments
Name | Type | Description |
---|---|---|
code |
string |
Argument code |
message |
string |
Message argument |
error
Name | Type | Description |
---|---|---|
arguments |
array[error_arguments] |
Message arguments |
code |
string |
Error code |
message |
string |
Error message |
target |
string |
The target parameter that caused the error. |