Skip to main content

NetApp

ONTAP Aggregate Destroy and Recreate Runbook

Destructive Change Warning

Deleting an aggregate is destructive. NetApp documents that storage aggregate delete deletes a storage aggregate and fails if volumes are present. It also notes that if an object store is attached, aggregate deletion deletes objects in the object store: storage aggregate delete.

Use this runbook only after all data has been migrated, protected, or explicitly approved for deletion.

Prechecks

system health status show
storage aggregate show -aggregate aggr_old01
volume show -aggregate aggr_old01
storage aggregate object-store show -aggregate aggr_old01
storage disk show -aggregate aggr_old01
snapmirror show

Stop if any user, root, DP, clone, or system volume still depends on the aggregate.

CLI Destroy Process

Confirm no volumes remain:

volume show -aggregate aggr_old01

Offline the aggregate if required by your procedure:

storage aggregate offline -aggregate aggr_old01

Delete:

storage aggregate delete -aggregate aggr_old01

Verify:

storage aggregate show
storage disk show -container-type spare

CLI Recreate Process

Create the replacement aggregate according to platform standards. In a lab simulator, this might be a small RAID-DP aggregate. In production, follow platform, disk class, RAID size, encryption, and ADP standards.

storage aggregate create \
  -aggregate aggr_new01 \
  -node node01 \
  -diskcount 10 \
  -raidtype raid_dp

Validate:

storage aggregate show -aggregate aggr_new01
storage aggregate show-status -aggregate aggr_new01

REST API Process

Collect aggregate evidence before destruction:

curl -k -u admin:'<password>' \
  "https://cluster.example.com/api/storage/aggregates?name=aggr_old01&fields=uuid,name,node,space,state,cloud_storage"

curl -k -u admin:'<password>' \
  "https://cluster.example.com/api/storage/volumes?aggregates.name=aggr_old01&fields=name,svm.name,type,state"

Delete only after the volume query returns no dependent volumes and the change is approved:

curl -k -u admin:'<password>' \
  -X DELETE \
  "https://cluster.example.com/api/storage/aggregates/<aggregate_uuid>"

Create replacement aggregate where supported by your ONTAP release:

curl -k -u admin:'<password>' \
  -X POST \
  "https://cluster.example.com/api/storage/aggregates" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "aggr_new01",
    "node": { "name": "node01" },
    "block_storage": { "primary": { "disk_count": 10, "raid_type": "raid_dp" } }
  }'

Best Practices

Backout

After an aggregate is deleted, backout is restore or recreate, not undo. The real rollback is the migration, backup, or replication copy you validated before deletion.

Back to top