Skip to content

Get-S2DHealthStatus

Runs all S2D health checks and returns pass/warn/fail results with severity.


Synopsis

Executes 11 health checks covering reserve adequacy, disk symmetry, volume health, disk health, NVMe wear, thin overcommit, firmware consistency, rebuild capacity, infrastructure volume presence, cache tier health, and thin provisioning reserve risk.

Uses already-collected data from the session cache where available. Run the collector cmdlets first for best results, or they will be invoked automatically.

Requires an active session from Connect-S2DCluster.


Syntax

powershell
Get-S2DHealthStatus
    [-CheckName <string[]>]

Parameters

-CheckName

Typestring[]
RequiredNo
Defaultall checks

Limit execution to one or more specific check names. See the table below for valid names.


Health Checks

Check NameSeverityWhat it tests
ReserveAdequacyCriticalRebuild reserve ≥ one drive per node (up to 4 nodes)
DiskSymmetryWarningAll nodes have identical disk count and media types
VolumeHealthCriticalNo volumes in Warning or Unhealthy state
DiskHealthCriticalNo pool-member disks in Warning or Unhealthy state
NVMeWearWarning (>75%), Critical (>90%)NVMe/SSD drive wear percentage
ThinOvercommitWarning (>80%), Critical (>100%)Thin-provisioned logical size vs pool total
FirmwareConsistencyWarningAll disks of the same model run the same firmware version
RebuildCapacityCriticalLargest per-node disk total ≤ pool free space (enough room to rebuild if a node fails)
InfraVolumePresentWarningExpected Azure Local infrastructure volumes are present
CacheTierHealthCriticalCache tier is healthy with no missing or failed cache disks
ThinReserveRiskWarningUncommitted thin growth headroom vs rebuild reserve

Outputs

S2DHealthCheck[] — one object per check.

Properties per check:

PropertyDescription
CheckNameName of the health check
SeverityWarning or Critical (maximum severity if the check fails)
StatusPass, Warn, or Fail
DetailsHuman-readable description of the result
RemediationRecommended action when status is not Pass

Examples

Run all checks:

powershell
Connect-S2DCluster -ClusterName "tplabs-clus01" -Credential $cred
Get-S2DHealthStatus

Show only non-passing checks:

powershell
Get-S2DHealthStatus | Where-Object Status -ne 'Pass' | Format-List

Run a single check:

powershell
Get-S2DHealthStatus -CheckName RebuildCapacity

Run a subset of checks:

powershell
Get-S2DHealthStatus -CheckName DiskHealth, NVMeWear, ThinOvercommit

Check overall health in a script:

powershell
$checks = Get-S2DHealthStatus
$critical = $checks | Where-Object { $_.Status -eq 'Fail' -and $_.Severity -eq 'Critical' }
if ($critical) {
    Write-Error "CRITICAL health issues: $($critical.CheckName -join ', ')"
}

Released under the MIT License.