Skip to content

Collectors

S2DCartographer collects data from your cluster using standard PowerShell storage and cluster cmdlets over CIM/WinRM. No agents are installed on cluster nodes. All collection is read-only.

Data is cached in the module session after first collection. Subsequent calls to Get-S2DCapacityWaterfall or Get-S2DHealthStatus reuse cached results automatically — no redundant queries.


Available Collectors

Collector Returns Description
Get-S2DPhysicalDiskInventory PSCustomObject[] Per-node disk inventory with health, wear, and reliability counters
Get-S2DStoragePoolInfo S2DStoragePool Pool capacity, resiliency settings, overcommit ratio
Get-S2DVolumeMap S2DVolume[] Volume resiliency, footprint, and infrastructure classification
Get-S2DCacheTierInfo S2DCacheTier Cache mode, all-flash detection, cache disk health
Get-S2DCapacityWaterfall S2DCapacityWaterfall 7-stage capacity pipeline from raw to usable
Get-S2DHealthStatus S2DHealthCheck[] 10 health checks with severity and remediation guidance

Collector Dependencies

flowchart TD
    A["Get-S2DPhysicalDiskInventory"] --> E
    B["Get-S2DStoragePoolInfo"] --> E
    C["Get-S2DVolumeMap"] --> E
    D["Get-S2DCacheTierInfo"] --> F

    E["Get-S2DCapacityWaterfall"] --> F
    A --> F
    B --> F
    C --> F

    F["Get-S2DHealthStatus"]

Collectors 1–4 have no dependencies and can run in any order. Get-S2DCapacityWaterfall requires the first three. Get-S2DHealthStatus requires all five.

When called individually, each collector auto-invokes its prerequisites if their results are not already cached. This means calling Get-S2DHealthStatus alone will trigger all other collectors automatically.


Session Cache

All collector results are stored in $Script:S2DSession.CollectedData:

$Script:S2DSession.CollectedData = @{
    PhysicalDisks     = $null   # Get-S2DPhysicalDiskInventory
    StoragePool       = $null   # Get-S2DStoragePoolInfo
    Volumes           = $null   # Get-S2DVolumeMap
    CacheTier         = $null   # Get-S2DCacheTierInfo
    CapacityWaterfall = $null   # Get-S2DCapacityWaterfall
    HealthChecks      = $null   # Get-S2DHealthStatus
    OverallHealth     = $null   # set by Get-S2DHealthStatus
}

The cache persists for the lifetime of the module session. Call Disconnect-S2DCluster to clear all cached data and close sessions.


Quick Reference

Connect-S2DCluster -ClusterName "c01-prd-bal" -Credential (Get-Credential)

# Individual collectors
Get-S2DPhysicalDiskInventory | Format-Table NodeName, FriendlyName, Role, Size, WearPercentage
Get-S2DStoragePoolInfo       | Select-Object FriendlyName, TotalSize, RemainingSize, OvercommitRatio
Get-S2DVolumeMap             | Format-Table FriendlyName, ResiliencySettingName, Size, EfficiencyPercent
Get-S2DCacheTierInfo         | Select-Object CacheMode, IsAllFlash, CacheDiskCount, CacheState
Get-S2DCapacityWaterfall     | Select-Object -ExpandProperty Stages | Format-Table Stage, Name, Size, Delta
Get-S2DHealthStatus          | Format-Table CheckName, Severity, Status

Disconnect-S2DCluster