NetApp PowerShell Toolkit: Aggregate Overcommitment Report

I recently encountered a posting on the NetApp Community asking about, among other things, allocated capacity for an aggregate. As you can see in my response, I created a quick scriptlet which displays the information regarding total volume capacity allocated, but this is only part of the potentially thin provisioned capacity. LUNs can also be thin provisioned inside the volume. Additionally, some may find how much overcommitment exists with no storage efficiency applied as well (this can help with IOPS density calculations, for example).

To address this, I created a function which will display the total, used, saved, and committed capacity for an aggregate…

Show Overcommitment for Non-Root Aggregates


Show Aggregates Which Have Overcommitment > 200%


The code is straightforward, simply checking to see if there are LUNs in the volumes which have allocation which exceeds the volume size. If so, we use that as the value for the volume instead of it’s actual size.

Since we’re potentially querying a lot of information (# aggregates * # volumes * # of LUNs), it’s a good idea to use the template concept to choose what information is returned from the ZAPI queries. This not only substantially reduces the amount of information traversing the network, but also reduces execution time.

3 thoughts on “NetApp PowerShell Toolkit: Aggregate Overcommitment Report”

  1. Great to see an example on how to approach such a task! At some point in the future I might have the time to complement my server volume chart scripts with a NetApp utilization view as well 🙂

    Is it me or is the template $aggrQuery nowhere being used? (except for creation)


    • Hi Markus,

      Thank you for reading, and thanks for pointing out the error!

      The variable should be used to narrow the elements returned by the Get-NcAggr cmdlet on line 23. I’ve updated the code to reflect the change.



Leave a Reply