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

Introduced In: 9.6

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. POST operations will be blocked while one or more nodes in the cluster are simulating or implementing automatic aggregate creation.

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.

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.

  • Default value: 1

  • Max value: 120

  • Min value: 0

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

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 resides after disaster recovery. The value for this field might differ from the 'node' field during switchover.

home_node

home_node

Node where the aggregate resides after giveback. The value for this field might differ from the value of the 'node' field during takeover.

inactive_data_reporting

inactive_data_reporting

metric

metric

The most recent sample of I/O metrics for the aggregate.

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

statistics

statistics

The real time I/O statistics for 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",
      "disk_type": "string",
      "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-01T12:00:00-04:00",
  "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"
  },
  "inactive_data_reporting": {
    "start_time": "2019-12-12T12:00:00-04:00"
  },
  "metric": {
    "_links": {
      "self": {
        "href": "/api/resourcelink"
      }
    },
    "duration": "PT15S",
    "iops": {
      "read": "200",
      "total": "1000",
      "write": "100"
    },
    "latency": {
      "read": "200",
      "total": "1000",
      "write": "100"
    },
    "status": "ok",
    "throughput": {
      "read": "200",
      "total": "1000",
      "write": "100"
    },
    "timestamp": "2017-01-25T11:20:13Z"
  },
  "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",
  "statistics": {
    "iops_raw": {
      "read": "200",
      "total": "1000",
      "write": "100"
    },
    "latency_raw": {
      "read": "200",
      "total": "1000",
      "write": "100"
    },
    "status": "ok",
    "throughput_raw": {
      "read": "200",
      "total": "1000",
      "write": "100"
    },
    "timestamp": "2017-01-25T11:20:13Z"
  },
  "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

460770

The aggregate create job failed to create the aggregate.

786438

Failed to create an aggregate on the node.

786439

An aggregate already uses the specified name.

786446

The node is not in cluster.

786468

VLDB is offline.

786819

The value is invalid for the specified option at the current privilege level.

786902

RAID-TEC aggregate is not fully supported.

786911

Not every node in the cluster has the Data ONTAP version required for the feature.

787069

Node is setup for MetroCluster over IP configuration; creating an unmirrored aggregate is not supported in this configuration.

787092

The target field cannot be specified for this operation.

1114292

The required SnapLock license is not installed.

2425736

No matching node found for the target UUID.

19726341

Not enough eligible spare disks are available on the node.

19726344

No recommendation can be made for this cluster.

19726357

Automatic aggregate creation is not supported on MetroCluster.

19726358

Automatic aggregate creation is not supported on ONTAP Cloud.

19726373

Recommendation specified for creating aggregates is not current.

19726378

Failed to create recommended aggregates on one or more nodes.

19726382

Another provisioning operation is in progress on this cluster. Wait a few minutes, and try the operation again.

19726386

Encountered an error when retrieving licensing information on this cluster.

19726387

No recommendation can be provided for this cluster within the license capacity.

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

Specifies whether the 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.

disk_type

string

The type of disk being used by the aggregate.

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

Specifies whether the 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

Specifies whether the aggregate uses self-encrypting drives with data protection enabled.

software_encryption_enabled

boolean

Specifies whether NetApp aggregate encryption is enabled. All data in the aggregate is encrypted.

dr_home_node

Node where the aggregate resides 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 resides 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

inactive_data_reporting

Name Type Description

enabled

boolean

Specifes whether or not inactive data reporting is enabled on the aggregate.

start_time

string

Timestamp at which inactive data reporting was enabled on the aggregate.

iops

The rate of I/O operations observed at the storage object.

Name Type Description

other

integer

Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.

read

integer

Performance metric for read I/O operations.

total

integer

Performance metric aggregated over all types of I/O operations.

write

integer

Peformance metric for write I/O operations.

latency

The round trip latency in microseconds observed at the storage object.

Name Type Description

other

integer

Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.

read

integer

Performance metric for read I/O operations.

total

integer

Performance metric aggregated over all types of I/O operations.

write

integer

Peformance metric for write I/O operations.

throughput

The rate of throughput bytes per second observed at the storage object.

Name Type Description

other

integer

Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.

read

integer

Performance metric for read I/O operations.

total

integer

Performance metric aggregated over all types of I/O operations.

write

integer

Peformance metric for write I/O operations.

metric

The most recent sample of I/O metrics for the aggregate.

Name Type Description

_links

_links

duration

string

The duration over which this sample is calculated. The time durations are represented in the ISO-8601 standard format. Samples can be calculated over the following durations:

iops

iops

The rate of I/O operations observed at the storage object.

latency

latency

The round trip latency in microseconds observed at the storage object.

status

string

Errors associated with the sample. For example, if the aggregation of data over multiple nodes fails, then any partial errors might return "ok" on success or "error" on an internal uncategorized failure. Whenever a sample collection is missed but done at a later time, it is back filled to the previous 15 second timestamp and tagged with "backfilled_data". "Inconsistent_ delta_time" is encountered when the time between two collections is not the same for all nodes. Therefore, the aggregated value might be over or under inflated. "Negative_delta" is returned when an expected monotonically increasing value has decreased in value. "Inconsistent_old_data" is returned when one or more nodes do not have the latest data.

throughput

throughput

The rate of throughput bytes per second observed at the storage object.

timestamp

string

The timestamp of the performance data.

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 aggregates 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 **.

iops_raw

The number of I/O operations observed at the storage object. This can be used along with delta time to calculate the rate of I/O operations per unit of time.

Name Type Description

other

integer

Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.

read

integer

Performance metric for read I/O operations.

total

integer

Performance metric aggregated over all types of I/O operations.

write

integer

Peformance metric for write I/O operations.

latency_raw

The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation.

Name Type Description

other

integer

Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.

read

integer

Performance metric for read I/O operations.

total

integer

Performance metric aggregated over all types of I/O operations.

write

integer

Peformance metric for write I/O operations.

throughput_raw

Throughput bytes observed at the storage object. This can be used along with delta time to calculate the rate of throughput bytes per unit of time.

Name Type Description

other

integer

Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.

read

integer

Performance metric for read I/O operations.

total

integer

Performance metric aggregated over all types of I/O operations.

write

integer

Peformance metric for write I/O operations.

statistics

The real time I/O statistics for the aggregate.

Name Type Description

iops_raw

iops_raw

The number of I/O operations observed at the storage object. This can be used along with delta time to calculate the rate of I/O operations per unit of time.

latency_raw

latency_raw

The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation.

status

string

Errors associated with the sample. For example, if the aggregation of data over multiple nodes fails, then any partial errors might return "ok" on success or "error" on an internal uncategorized failure. Whenever a sample collection is missed but done at a later time, it is back filled to the previous 15 second timestamp and tagged with "backfilled_data". "Inconsistent_ delta_time" is encountered when the time between two collections is not the same for all nodes. Therefore, the aggregated value might be over or under inflated. "Negative_delta" is returned when an expected monotonically increasing value has decreased in value. "Inconsistent_old_data" is returned when one or more nodes do not have the latest data.

throughput_raw

throughput_raw

Throughput bytes observed at the storage object. This can be used along with delta time to calculate the rate of throughput bytes per unit of time.

timestamp

string

The timestamp of the performance data.

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 resides after disaster recovery. The value for this field might differ from the 'node' field during switchover.

home_node

home_node

Node where the aggregate resides after giveback. The value for this field might differ from the value of the 'node' field during takeover.

inactive_data_reporting

inactive_data_reporting

metric

metric

The most recent sample of I/O metrics for the aggregate.

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

statistics

statistics

The real time I/O statistics for 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.