Home / Troubleshooting / Volume Space Exhaustion

Volume Space Exhaustion

Symptoms: writes fail with "volume is full", clients see ENOSPC, snapshot autodelete starts deleting snapshots, or performance degrades as the volume/aggregate runs dry.

Volume space usage breakdown

1. Diagnose: where did the space go?

Check the volume and the aggregate. A full aggregate hurts every volume on it; a full volume is usually a snapshot or data problem.

# Volume-level: size, used, and percent used
volume show -vserver vs1 -volume vol1 -fields size,used,percent-used,space-guarantee,space-slo
# Also see logical vs physical usage (efficiency effects)
volume show -vserver vs1 -volume vol1 -fields logical-used,logical-space-used
# Aggregate-level: is the pool itself full?
storage aggregate show -aggregate aggr1 -fields size,used,percent-used,percent-snapshot-reserve
# All volumes on that aggregate — who is consuming?
volume show -aggregate aggr1 -fields volume,vserver,size,used,percent-used

2. Snapshots holding deleted data

The classic: you delete files, but space doesn't come back. If any snapshot still references those blocks, they stay allocated. Check snapshot count, sizes, and the reserve:

# List snapshots and their size
snapshot show -vserver vs1 -volume vol1
# Snapshot reserve and autodelete configuration
snapshot autodelete show -vserver vs1 -volume vol1
# How much space would be freed? (advanced)
set -privilege advanced
volume show -vserver vs1 -volume vol1 -fields snapshot-reserve,percent-snapshot-space
set -privilege admin

Actions, in order of preference:

  1. Let autodelete work — if snapshot autodelete is enabled with a trigger (e.g., volume or snap_reserve), ONTAP frees snapshots automatically when the volume fills. Check snapshot autodelete show for state (on/off) and trigger.
  2. Delete old snapshots manuallysnapshot delete -vserver vs1 -volume vol1 -snapshot <name>. Watch the Snapshot column of df -h to see space return.
  3. Reduce snapshot retention — edit the volume's snapshot policy: volume modify -vserver vs1 -volume vol1 -snapshot-policy <policy> or adjust the reserve: volume modify -vserver vs1 -volume vol1 -snapshot-reserve 5.
  4. Free the .snapshot directory — clients can also delete their own files from .snapshot if access is enabled.
Careful Deleting snapshots is permanent — you lose that recovery point. Never delete snapshots you might need (pre-upgrade, pre-patch, compliance). If the reserve is 5% and snapshots exceed it, the volume can still fill from snapshot growth — that's exactly when autodelete triggers matter.

3. The aggregate is full (overcommitment)

Thin-provisioned volumes overcommit the aggregate. When the aggregate fills, ONTAP starts failing writes to the biggest offenders (space-guarantee none volumes) and can trigger autodelete. Check:

# Which volumes have no guarantee (thin) on this aggregate?
volume show -aggregate aggr1 -fields volume,space-guarantee,size,used,percent-used
# Aggregate headroom
storage aggregate show -aggregate aggr1 -fields percent-used,available,size
# Add capacity: add disks to the aggregate (if shelves allow)
storage aggregate add-disks -aggregate aggr1 -diskcount 4

Options: add disks, move volumes to another aggregate (volume move start), or reclaim space (below). In a pinch, deleting snapshots on the aggregate's volumes frees both volume and aggregate space.

4. Reclaiming space clients "freed"

# Space reclamation status for a volume (advanced)
set -privilege advanced
volume show -vserver vs1 -volume vol1 -fields space-reclamation-enabled
set -privilege admin

5. Inode exhaustion (FlexVol)

If you see "out of inodes" or df -i on clients shows 100%, the volume ran out of filesystem entries. Check and fix:

# Inode usage (advanced fields)
volume show -vserver vs1 -volume vol1 -fields files,files-used,percent-inode-used
# Add inodes (only up to the volume's max, requires space)
volume modify -vserver vs1 -volume vol1 -files 2000000
# FlexGroup note: inodes are per constituent — plan for growth

6. Prevention

← All troubleshooting guides