My daily tasks include maintaining a few Hyper-V Clusters (and other Failover Clusters). All of them are using CSV (Cluster Shared Volumes) - whether it’s 2012R2 cluster with SAN or 2016 with S2D.
While in the middle of something (moving VMs, load balancing resources, creating new ones) I need the information of current utilization of my CSVs. This can also be useful when I need to deploy a new VM - query storage with least utilization.
- I can get the information from Failover Cluster Manager:
- I can get it using Windows Admin Center
- or I can get it through PowerShell
The PowerShell Way
There’s a Cmdlet from FailoverClusters module that can provide us with all the information -
It’s rather not very detailed, but Get-Member will reveal what’s inside:
SharedVolumeInfo Property looks promising:
Partition property is also an object, which holds very valuable information:
Now I have all the information I need.
As I mentioned before - I tend to use alternative credentials to access critical resources. Unfortunately
Get-ClusterSharedVolume doesn’t accept
Credential parameter. So despite it’s possible to query cluster directly, I’d rather use
Invoke-Command to access cluster information. This way I can connect cross-domain as well.
Let’s wrap it up into a function and see how it goes:
And the output:
This comes quite handy for a quick glance: