Create a collection of aggregates for an entire cluster
POST /storage/aggregates
Automatically creates aggregates based on an optimal layout recommended by the system. Alternatively, properties can be provided to create an aggregate according to the requested specification. This request starts a job and returns a link to that job.
Required properties
Properties are not required for this API. The following properties are only required if you want to specify properties for aggregate creation:
-
name
- Name of the aggregate. -
node.name
ornode.uuid
- Node on which the aggregate will be created. -
block_storage.primary.disk_count
- Number of disks to be used to create the aggregate.
Default values
If not specified in POST, the following default values are assigned. The remaining unspecified properties will receive system dependent default values.
-
block_storage.mirror.enabled
- false -
snaplock_type
- non_snaplock
Related ONTAP commands
-
storage aggregate auto-provision
-
storage aggregate create
Example:
POST /api/storage/aggregates {"node": {"name": "node1"}, "name": "test", "block_storage": {"primary": {"disk_count": "10"}}}
Learn more
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
disk_size |
integer |
query |
False |
If set, POST only selects disks of the specified size. |
Request Body
Name | Type | Description |
---|---|---|
_links |
||
block_storage |
Configuration information for the locally attached portion of the aggregate. When a cloud store is also used by this aggregate, this is referred to as the performance tier. |
|
cloud_storage |
Configuration information for the cloud storage portion of the aggregate. This is referred to as the capacity tier. |
|
create_time |
string |
Timestamp of aggregate creation |
data_encryption |
||
dr_home_node |
Node where the aggregate belongs after disaster recovery. The value for this field might differ from the 'node' field during switchover. |
|
home_node |
Node where the aggregate belongs after giveback. The value for this field might differ from the value of the 'node' field during takeover. |
|
name |
string |
Aggregate name |
node |
Node where the aggregate currently resides. |
|
snaplock_type |
string |
SnapLock type |
space |
||
state |
string |
Operational state of the aggregate |
uuid |
string |
Aggregate UUID |
Example request
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"block_storage": {
"hybrid_cache": {
"disk_count": 6,
"raid_type": "string",
"size": 1612709888,
"used": 26501122
},
"mirror": {
"enabled": "",
"state": "string"
},
"plexes": [
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "plex0"
}
],
"primary": {
"checksum_style": "string",
"disk_class": "performance",
"disk_count": 8,
"raid_size": 16,
"raid_type": "string"
}
},
"cloud_storage": {
"stores": [
{
"cloud_store": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "store1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"used": 0
}
]
},
"create_time": "2018-01-01 12:00:00 -0400",
"dr_home_node": {
"name": "node1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"home_node": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "node1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"name": "node1_aggr_1",
"node": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "node1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"snaplock_type": "string",
"space": {
"block_storage": {
"available": 10156560384,
"full_threshold_percent": 0,
"inactive_user_data": 304448,
"size": 10156769280,
"used": 2088960
},
"cloud_storage": {
"used": 402743264
},
"efficiency": {
"logical_used": 0,
"ratio": 0,
"savings": 0
},
"efficiency_without_snapshots": {
"logical_used": 0,
"ratio": 0,
"savings": 0
},
"footprint": 608896
},
"state": "string",
"uuid": "string"
}
Response
Status: 202, Accepted
Name | Type | Description |
---|---|---|
job |
Example response
{
"job": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"uuid": "string"
}
}
Error
Status: Default
ONTAP Error Response Codes
Error Code | Description |
---|---|
787092 |
The target field cannot be specified for this operation. |
786468 |
VLDB is offline. |
786439 |
An aggregate already uses the specified name. |
786819 |
The value is invalid for the specified option at the current privilege level. |
786438 |
Failed to create an aggregate on the node. |
786902 |
RAID-TEC aggregate is not fully supported. |
786911 |
Not every node in the cluster has the Data ONTAP version required for the feature. |
786446 |
The node is not in cluster. |
787069 |
Node is setup for MetroCluster over IP configuration; creating an unmirrored aggregate is not supported in this configuration. |
19726344 |
No recommendation can be made for this cluster. |
19726373 |
Recommendation specified for creating aggregates is not current. |
2425736 |
No matching node found for the target UUID. |
1114292 |
The required SnapLock license is not installed. |
19726382 |
Another provisioning operation is in progress on this cluster. Wait a few minutes, and try the operation again. |
19726357 |
Automatic aggregate creation is not supported on MetroCluster. |
19726358 |
Automatic aggregate creation is not supported on ONTAP Cloud. |
19726359 |
Automatic aggregate creation is not supported on ONTAP Select. |
19726341 |
Not enough eligible spare disks are available on the node. |
460770 |
The aggregate create job failed to create the aggregate. |
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 |
hybrid_cache
Contains the configuration for the hybrid cache. The hybrid cache is made up of either whole SSDs or storage pool SSDs.
Name | Type | Description |
---|---|---|
disk_count |
integer |
Number of disks used in the cache tier of the aggregate. Only provided when hybrid_cache.enabled is 'true'. |
enabled |
boolean |
Aggregate uses HDDs with SSDs as a cache |
raid_type |
string |
RAID type for SSD cache of the aggregate. Only provided when hybrid_cache.enabled is 'true'. |
size |
integer |
Total usable space in bytes of SSD cache. Only provided when hybrid_cache.enabled is 'true'. |
used |
integer |
Space used in bytes of SSD cache. Only provided when hybrid_cache.enabled is 'true'. |
mirror
Name | Type | Description |
---|---|---|
enabled |
boolean |
Aggregate is SyncMirror protected |
state |
string |
plex_reference
Plex
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
primary
Configuration information for the primary storage portion of the aggregate. This excludes the hybrid cache details.
Name | Type | Description |
---|---|---|
checksum_style |
string |
The checksum style used by the aggregate. |
disk_class |
string |
The class of disks being used by the aggregate. |
disk_count |
integer |
Number of disks used in the aggregate. This includes parity disks, but excludes disks in the hybrid cache. |
raid_size |
integer |
Option to specify the maximum number of disks that can be included in a RAID group. |
raid_type |
string |
RAID type of the aggregate. |
block_storage
Configuration information for the locally attached portion of the aggregate. When a cloud store is also used by this aggregate, this is referred to as the performance tier.
Name | Type | Description |
---|---|---|
hybrid_cache |
Contains the configuration for the hybrid cache. The hybrid cache is made up of either whole SSDs or storage pool SSDs. |
|
mirror |
||
plexes |
array[plex_reference] |
Plex reference for each plex in the aggregate. |
primary |
Configuration information for the primary storage portion of the aggregate. This excludes the hybrid cache details. |
cloud_store
Cloud store
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
|
uuid |
string |
cloud_storage_tier
Name | Type | Description |
---|---|---|
cloud_store |
Cloud store |
|
used |
integer |
Capacity used in bytes in the cloud store by this aggregate. This is a cached value calculated every 5 minutes. |
cloud_storage
Configuration information for the cloud storage portion of the aggregate. This is referred to as the capacity tier.
Name | Type | Description |
---|---|---|
attach_eligible |
boolean |
Aggregate is eligible for a cloud store to be attached. |
stores |
array[cloud_storage_tier] |
Configuration information for each cloud storage portion of the aggregate. |
tiering_fullness_threshold |
integer |
The percentage of space in the performance tier that must be used before data is tiered out to the cloud store. Only valid for PATCH operations. |
data_encryption
Name | Type | Description |
---|---|---|
drive_protection_enabled |
boolean |
Aggregate uses self-encrypting drives with data protection enabled. |
software_encryption_enabled |
boolean |
NetApp Aggregate Encryption enabled. All data in the aggregate is encrypted. |
dr_home_node
Node where the aggregate belongs after disaster recovery. The value for this field might differ from the 'node' field during switchover.
Name | Type | Description |
---|---|---|
name |
string |
|
uuid |
string |
home_node
Node where the aggregate belongs after giveback. The value for this field might differ from the value of the 'node' field during takeover.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
|
uuid |
string |
node
Node where the aggregate currently resides.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
|
uuid |
string |
block_storage
Name | Type | Description |
---|---|---|
available |
integer |
Space available in bytes |
full_threshold_percent |
integer |
The aggregate used percentage at which 'monitor.volume.full' EMS is generated. |
inactive_user_data |
integer |
The size that is physically used in the block storage and has a cold temperature, in bytes. This property is only supported if the aggregate is either attached to a cloud store or can be attached to a cloud store. This is an advanced property; there is an added cost to retrieving its value. The field is not populated for either a collection GET or an instance GET unless it is explicitly requested using the fields query parameter containing either block_storage.inactive_user_data or **. |
size |
integer |
Total usable space in bytes, not including WAFL reserve and aggregate Snapshot copy reserve. |
used |
integer |
Space used or reserved in bytes. Includes volume guarantees and aggregate metadata. |
cloud_storage
Name | Type | Description |
---|---|---|
used |
integer |
Used space in bytes in the cloud store. Only applicable for aggregate with a cloud store tier. |
efficiency
Storage efficiency
Name | Type | Description |
---|---|---|
logical_used |
integer |
Logical used |
ratio |
number |
Data reduction ratio (logical_used / used) |
savings |
integer |
Space saved by storage efficiencies (logical_used - used) |
efficiency_without_snapshots
Storage efficiency that does not include the savings provided by Snapshot copies
Name | Type | Description |
---|---|---|
logical_used |
integer |
Logical used |
ratio |
number |
Data reduction ratio (logical_used / used) |
savings |
integer |
Space saved by storage efficiencies (logical_used - used) |
space
Name | Type | Description |
---|---|---|
block_storage |
||
cloud_storage |
||
efficiency |
Storage efficiency |
|
efficiency_without_snapshots |
Storage efficiency that does not include the savings provided by Snapshot copies |
|
footprint |
integer |
A summation of volume footprints (including volume guarantees), in bytes. This includes all of the volume footprints in the block_storage tier and the cloud_storage tier. This is an advanced property; there is an added cost to retrieving its value. The field is not populated for either a collection GET or an instance GET unless it is explicitly requested using the fields query parameter containing either footprint or **. |
aggregate
Name | Type | Description |
---|---|---|
_links |
||
block_storage |
Configuration information for the locally attached portion of the aggregate. When a cloud store is also used by this aggregate, this is referred to as the performance tier. |
|
cloud_storage |
Configuration information for the cloud storage portion of the aggregate. This is referred to as the capacity tier. |
|
create_time |
string |
Timestamp of aggregate creation |
data_encryption |
||
dr_home_node |
Node where the aggregate belongs after disaster recovery. The value for this field might differ from the 'node' field during switchover. |
|
home_node |
Node where the aggregate belongs after giveback. The value for this field might differ from the value of the 'node' field during takeover. |
|
name |
string |
Aggregate name |
node |
Node where the aggregate currently resides. |
|
snaplock_type |
string |
SnapLock type |
space |
||
state |
string |
Operational state of the aggregate |
uuid |
string |
Aggregate 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_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. |