Skip to main content
A newer release of this product is available.

Create a collection of aggregates for an entire cluster

Contributors

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 or node.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

  • storage aggregate auto-provision

  • storage aggregate create

Example:

POST /api/storage/aggregates {"node": {"name": "node1"}, "name": "test", "block_storage": {"primary": {"disk_count": "10"}}}

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

_links

block_storage

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

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

data_encryption

dr_home_node

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

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

Node where the aggregate currently resides.

snaplock_type

string

SnapLock type

space

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

job_link

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

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

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

_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

hybrid_cache

Contains the configuration for the hybrid cache. The hybrid cache is made up of either whole SSDs or storage pool SSDs.

mirror

mirror

plexes

array[plex_reference]

Plex reference for each plex in the aggregate.

primary

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

_links

name

string

uuid

string

cloud_storage_tier

Name Type Description

cloud_store

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

_links

name

string

uuid

string

node

Node where the aggregate currently resides.

Name Type Description

_links

_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

block_storage

cloud_storage

cloud_storage

efficiency

efficiency

Storage efficiency

efficiency_without_snapshots

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

_links

block_storage

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

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

data_encryption

dr_home_node

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

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

Node where the aggregate currently resides.

snaplock_type

string

SnapLock type

space

space

state

string

Operational state of the aggregate

uuid

string

Aggregate UUID

Name Type Description

_links

_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.