Create a new storage pool
POST /storage/pools
Introduced In: 9.11
Creates a new storage pool using available solid state capacity attached to the nodes specified.
Required properties
The following properties are required in the POST body:
-
name
- Name of the new storage pool. -
nodes[].name
ornodes[].uuid
- Nodes that can use cache capacity from the new storage pool. Only nodes in the same HA pair can be specified for a given storage pool. Spare cache capacity will be distributed evenly among the specified nodes. -
capacity.disk_count
- Number of SSDs to be used to create the storage pool.
Related ONTAP commands
-
storage pool create
Example:
POST /api/storage/pools {"nodes": [{"name": "node1"}, {"name": "node2"}], "name": "storage_pool_1", "capacity": {"disk_count": "4"}}
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
disk_size |
integer |
query |
False |
If set, POST only selects SSDs within five percent of the specified size. |
simulate |
boolean |
query |
False |
When set to "true", the end point returns a simulated layout of the proposed new storage pool, without changing system state.
|
return_timeout |
integer |
query |
False |
The number of seconds to allow the call to execute before returning. When doing a POST, PATCH, or DELETE operation on a single record, the default is 0 seconds. This means that if an asynchronous operation is started, the server immediately returns HTTP code 202 (Accepted) along with a link to the job. If a non-zero value is specified for POST, PATCH, or DELETE operations, ONTAP waits that length of time to see if the job completes so it can return something other than 202.
|
return_records |
boolean |
query |
False |
The default is false. If set to true, the records are returned.
|
Request Body
Name | Type | Description |
---|---|---|
_links |
||
capacity |
||
health |
Properties that outline shared storage pool health. |
|
name |
string |
Storage pool name. |
nodes |
array[node_reference] |
Nodes that can use this storage pool for their aggregates. |
storage_type |
string |
Storage type for the disks used to create the storage pool. |
uuid |
string |
Storage pool UUID. |
Example request
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"capacity": {
"disks": [
{
"disk": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "1.0.1"
},
"total_size": 0,
"usable_size": 0
}
],
"remaining": 0,
"spare_allocation_units": [
{
"available_size": 0,
"node": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "node1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"size": 0,
"syncmirror_pool": "string"
}
],
"total": 0,
"used_allocation_units": [
{
"aggregate": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "aggr1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"current_usage": 0,
"node": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "node1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}
}
]
},
"health": {
"state": "string",
"unhealthy_reason": {
"arguments": [
{
"code": "string",
"message": "string"
}
],
"code": "4",
"message": "entry doesn't exist",
"target": "uuid"
}
},
"name": "string",
"nodes": [
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "node1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}
],
"storage_type": "string",
"uuid": "string"
}
Response
Status: 202, Accepted
Name | Type | Description |
---|---|---|
job |
Example response
{
"job": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"uuid": "string"
}
}
Headers
Name | Description | Type |
---|---|---|
Location |
Useful for tracking the resource location |
string |
Response
Status: 201, Created
Error
Status: Default
ONTAP Error Response Codes
Error Code | Description |
---|---|
11206666 |
Storage pool is unhealthy. |
11208658 |
A storage pool already uses the specified name. |
11208660 |
Disk does not exist. |
11208661 |
Disk is not a spare disk. |
11208662 |
Disk is not an SSD. |
11208663 |
Disk is reserved for core dump. |
11208664 |
Could not determine checksum type of disk. |
11208666 |
Could not determine usable size of disk. |
11208668 |
Could not determine connectivity between controller and disk. |
11208670 |
Could not determine original owner of disk. |
11208671 |
Could not determine SyncMirror pool of disk. |
11208673 |
Could not determine HA mode of node. |
11208674 |
Could not determine HA partner of node. |
11208675 |
Disks specified in the disk list are not visible to node. |
11208678 |
The disk list contains disks from nodes which are not in HA pair. |
11208679 |
Storage pools are not supported on nodes. |
11208680 |
Internal error. Cannot determine configuration for node. |
11208681 |
Node is not online. |
11208682 |
Internal error. Sharing configuration mismatch. |
11208684 |
Unable to share disk. |
11208686 |
Disk cannot be shared. |
11208687 |
Unable to retrieve expected sharing configuration. |
11208688 |
Storage pool create job failed. |
11208690 |
Not all nodes sharing the storage pool view disk as a shared disk. |
11208691 |
Not enough matching spares available. |
11208692 |
A disk list or count is a required parameter for storage pool creation. |
11208693 |
Invalid number of disks specified. |
11208698 |
Internal error. Missing node name. |
11208699 |
Internal error. Missing partner name for node configured for HA. |
11208701 |
Node is a standalone node. Do not specify other nodes with a standalone node. |
11208703 |
Incorrect number of nodes specified. Specify one node or both nodes in an HA pair. |
11208704 |
Specified nodes are not part of HA relationship. Specify one node or both nodes in an HA pair. |
11208705 |
Disk is a data center SSD, which cannot be used in storage pools. |
11208706 |
Disk is a SSD-ZNS, which cannot be used in storage pools. |
11215756 |
Missing a required field for POST request. |
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 |
---|---|---|
self |
disk
Reference to the constituent disk object.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
storage_pool_disk
Name | Type | Description |
---|---|---|
disk |
Reference to the constituent disk object. |
|
total_size |
integer |
Raw capacity of the disk, in bytes. |
usable_size |
integer |
Usable capacity of this disk, in bytes. |
node
Specifies what node can use this set of allocation units.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
|
uuid |
string |
storage_pool_spare_allocation_unit
Name | Type | Description |
---|---|---|
available_size |
integer |
The usable capacity of this set of allocation units. |
count |
integer |
The number of spare allocation units on this node. |
node |
Specifies what node can use this set of allocation units. |
|
size |
integer |
Size of each allocation unit. |
syncmirror_pool |
string |
The RAID SyncMirror Pool to which this allocation unit is assigned. |
aggregate
The aggregate that is using this cache capacity.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
|
uuid |
string |
node
The node hosting the aggregate using this set of allocation units.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
|
uuid |
string |
storage_pool_used_allocation_unit
Name | Type | Description |
---|---|---|
aggregate |
The aggregate that is using this cache capacity. |
|
count |
integer |
The number of allocation units used by this aggregate. |
current_usage |
integer |
The amount of cache space used by this aggregate. |
node |
The node hosting the aggregate using this set of allocation units. |
capacity
Name | Type | Description |
---|---|---|
disk_count |
integer |
The number of disks in the storage pool. |
disks |
array[storage_pool_disk] |
Properties of each disk used in the shared storage pool. |
remaining |
integer |
Remaining usable capacity in the flash pool, in bytes. |
spare_allocation_units |
Properties of spare allocation units. |
|
total |
integer |
Total size of the flash pool, in bytes. |
used_allocation_units |
Information about the storage pool allocation units participating in the cache tier of an aggregate. |
error_arguments
Name | Type | Description |
---|---|---|
code |
string |
Argument code |
message |
string |
Message argument |
error
Indicates why the storage pool is unhealthy. This property is not returned for healthy storage pools.
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. |
health
Properties that outline shared storage pool health.
Name | Type | Description |
---|---|---|
is_healthy |
boolean |
Indicates whether the storage pool is able to participate in provisioning operations. |
state |
string |
The state of the shared storage pool. |
unhealthy_reason |
Indicates why the storage pool is unhealthy. This property is not returned for healthy storage pools. |
node_reference
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
|
uuid |
string |
storage_pool
Name | Type | Description |
---|---|---|
_links |
||
capacity |
||
health |
Properties that outline shared storage pool health. |
|
name |
string |
Storage pool name. |
nodes |
array[node_reference] |
Nodes that can use this storage pool for their aggregates. |
storage_type |
string |
Storage type for the disks used to create the storage pool. |
uuid |
string |
Storage pool UUID. |
job_link
Name | Type | Description |
---|---|---|
_links |
||
uuid |
string |
The UUID of the asynchronous job that is triggered by a POST, PATCH, or DELETE operation. |
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. |