You Can Add Larger Disks to an Aggregate and Not Waste Capacity

I sometimes come across situations where people don't know you can add larger disks into an aggregate of smaller disks, and not suffer the larger disks being right-sized down to keep inline with the smaller disks. If you have larger disks to add to your system, and you want to maintain a system with as few aggregates as possible (or 1), the key is to use the switch -raidgroup new when adding the new disks to the aggregate.

In the below walk-through we demonstrate this. I am using a NetApp ONTAP 9.7 simulator with 14 * 1GB disks and 14 * 4GB disks.

Note i: Good to know that this 2013 blog post Clustered ONTAP 8.2 SIM: Maximizing Available Usable Space still works to some extent with the ONTAP 9.7 simulator.
Note ii: The 8 year old Home Lab lives on! ;-)

Walk-Through

These 5 bullet points cover the essence of what's happening in the succeeding Clustershell output.

  • Create a RAID-DP aggregate of 10 * 1GB disks and see it has usable space of 7.03GB.
  • See the aggregate disks usable size is 1020MB (~1GB).
  • See our 14 * 4GB spare disks have usable size 3.93GB.
  • Simulate adding a new RAID-DP raidgroup of 12 * 4GB disks to our aggregate, and see each disk has usable size 3.91GB.
  • After adding the 12 disks to our 10 disk 7.03GB aggregate, the aggregate now has a total size of 42GB.

CLU01::> aggr create -aggregate aggr1_CLU01_01 -diskcount 10 -node CLU01-01 -simulate

The layout for aggregate "aggr1_CLU01_01" on node "CLU01-01" would be:

First Plex

RAID Group rg0, 10 disks (block checksum, raid_dp)
                      Usable Physical
Position   Disk         Size     Size
---------- -------- -------- --------
dparity    NET-1.18        -        -
parity     NET-1.19        -        -
data       NET-1.20   1000MB   1.00GB
data       NET-1.21   1000MB   1.00GB
data       NET-1.22   1000MB   1.00GB
data       NET-1.23   1000MB   1.00GB
data       NET-1.24   1000MB   1.00GB
data       NET-1.25   1000MB   1.00GB
data       NET-1.26   1000MB   1.00GB
data       NET-1.27   1000MB   1.00GB

Aggregate capacity available for volume use would be 7.03GB.

CLU01::> aggr create -aggregate aggr1_CLU01_01 -diskcount 10 -node CLU01-01
CLU01::> disk show -container-name aggr1_CLU01_01 -fields usable-size,physical-size
disk     physical usable
         -size    -size
-------- -------- ----------
NET-1.18 1.00GB   1020MB
NET-1.19 1.00GB   1020MB
NET-1.20 1.00GB   1020MB
NET-1.21 1.00GB   1020MB
NET-1.22 1.00GB   1020MB
NET-1.23 1.00GB   1020MB
NET-1.24 1.00GB   1020MB
NET-1.25 1.00GB   1020MB
NET-1.26 1.00GB   1020MB
NET-1.27 1.00GB   1020MB
10 entries were displayed.

CLU01::> disk show -usable-size 3.93G -fields usable-size,container-type
disk     container usable
         -type     -size
-------- --------- ----------
NET-1.1  spare     3.93GB
NET-1.2  spare     3.93GB
NET-1.3  spare     3.93GB
NET-1.4  spare     3.93GB
NET-1.5  spare     3.93GB
NET-1.6  spare     3.93GB
NET-1.7  spare     3.93GB
NET-1.8  spare     3.93GB
NET-1.9  spare     3.93GB
NET-1.10 spare     3.93GB
NET-1.11 spare     3.93GB
NET-1.12 spare     3.93GB
NET-1.13 spare     3.93GB
NET-1.14 spare     3.93GB

CLU01::> aggr add-disks -aggregate aggr1_CLU01_01 -disksize 4 -diskcount 12 -raidgroup new -simulate true

Disks would be added to aggregate "aggr1_CLU01_01" on node "CLU01-01" in the following manner:

First Plex

RAID Group rg1, 12 disks (block checksum, raid_dp)
                      Usable Physical
Position   Disk         Size     Size
---------- -------- -------- --------
dparity    NET-1.2         -        -
parity     NET-1.3         -        -
data       NET-1.4    3.91GB   3.93GB
data       NET-1.5    3.91GB   3.93GB
data       NET-1.6    3.91GB   3.93GB
data       NET-1.7    3.91GB   3.93GB
data       NET-1.8    3.91GB   3.93GB
data       NET-1.9    3.91GB   3.93GB
data       NET-1.10   3.91GB   3.93GB
data       NET-1.11   3.91GB   3.93GB
data       NET-1.12   3.91GB   3.93GB
data       NET-1.13   3.91GB   3.93GB

Aggregate capacity available for volume use would be increased by 35.16GB.

CLU01::> aggr add-disks -aggregate aggr1_CLU01_01 -disksize 4 -diskcount 12 -raidgroup new
CLU01::*> df -A -aggregate aggr1_CLU01_01 -skip-snapshot-lines -gigabyte
Aggregate     total   used  avail   capacity
aggr1_CLU01_01 42GB    0GB   42GB         0%

Image: Adding 14 type 23 disks (1000MB) to the ONTAP VSIM


Image: Adding 14 type 31 disks (4000MB) to the ONTAP VSIM

Comments