S2DCartographer

1.4.1

Storage Spaces Direct analysis, visualization, and reporting for Azure Local and Windows Server clusters. Inventories physical disks, storage pools, and volumes; computes capacity waterfalls with TiB/TB dual display; generates HTML dashboards, Word documents, PDFs, and Excel workbooks with publication-quality diagrams.

Minimum PowerShell version

7.2

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name S2DCartographer -RequiredVersion 1.4.1

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name S2DCartographer -Version 1.4.1

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Owners

Copyright

(c) 2026 Hybrid Cloud Solutions. All rights reserved.

Package Details

Author(s)

  • Azure Local Cloud

Tags

S2D StorageSpacesDirect AzureLocal AzureStackHCI Storage HCI HyperConverged Reporting Visualization Capacity CapacityPlanning PowerShell

Functions

Connect-S2DCluster Disconnect-S2DCluster Get-S2DPhysicalDiskInventory Get-S2DStoragePoolInfo Get-S2DVolumeMap Get-S2DCacheTierInfo Get-S2DCapacityWaterfall Get-S2DHealthStatus ConvertTo-S2DCapacity Invoke-S2DCartographer Invoke-S2DCapacityWhatIf New-S2DReport New-S2DDiagram

PSEditions

Core

Dependencies

Release Notes

## v1.4.1 — Fix pool-member disk duplication on multi-node clusters
- Get-PhysicalDisk on any S2D node returns ALL pool-member disks (globally visible pool). Querying each node individually inflated Stage 1 raw capacity by NodeCount× and made Stage 3 pool overhead appear as ~75%. Fixed by deduplicating pool-member disks by UniqueId after collection and correcting NodeName via StorageNode associations.
- NodeCount now written to top-level of JSON snapshot for direct consumption by Invoke-S2DCapacityWhatIf.

## v1.4.0 — Capacity model hardening and report correctness
- Waterfall reduced from 8 to 7 stages: Stage 7 is now the Usable Capacity terminus. Closes #52.
- All waterfall stage Status values are always OK; reserve health lives on ReserveStatus only. Closes #47.
- Reserve formula corrected: min(NodeCount,4) × one drive per server (not one node-worth). Closes #48.
- Infrastructure volume detection extended: UserStorage_N, HCI_UserStorage_N, SBEAgent patterns added. Closes #46.
- HTML report delta column split into its own Deducted column; em dash shown when no deduction. Closes #49.
- Word report waterfall table updated: Status column removed, Deducted column added. Closes #50.
- Invoke-S2DCapacityWhatIf delta loop fixed: was hardcoded to 8 iterations, now uses Stages.Count. Closes #51.
- MAPROOM healthy-pool-snapshot fixture added for correctly-configured cluster validation.

## v1.3.1 — Sample output reports
- docs/samples.md added: browse HTML dashboard, overprovisioned HTML, JSON snapshot, what-if HTML report, and what-if JSON result before running the tool. All generated from the MAPROOM IIC synthetic environment.

## v1.3.0 — Thin provisioning risk and what-if capacity modeling
- Invoke-S2DCapacityWhatIf: model AddNodes, AddDisksPerNode, ReplaceDiskSizeTB, ChangeResiliency from JSON snapshot or live cluster. Returns S2DWhatIfResult with before/after waterfalls and per-stage deltas. HTML and JSON reports. Closes #27.
- Check 6 (ThinOvercommit) tiered: Warn >80%, Fail >100% of max potential footprint / pool total. Fires before overcommit occurs. Closes #44.
- Check 11 (ThinReserveRisk): warns when uncommitted thin growth would consume the rebuild reserve.
- S2DVolume.ThinGrowthHeadroom and MaxPotentialFootprint properties for thin volumes.
- Thin Provision Risk KPI in HTML executive summary; Growth Headroom and Max Potential Footprint columns in all report formats.
- Invoke-S2DWaterfallCalculation pure private function extracted from Get-S2DCapacityWaterfall.

## v1.2.1 — Capacity model correctness fix
- Stage 1 counts only pool-member capacity-tier disks (IsPoolMember filter). Closes #43.
- Stages 7 and 8 are now purely theoretical (resiliency factor applied to Stage 6; Stage 8 = Stage 7).
- BlendedEfficiencyPercent reflects theoretical resiliency efficiency.

## v1.2.0 — JSON/CSV export, pool-member filtering, Surveyor cross-link
- JSON snapshot export (SchemaVersion 1.0) on every run. Closes #40.
- CSV export opt-in (-Format Csv). Closes #40.
- IsPoolMember boolean on every physical disk. Closes #41.
- Pool-member-only filtering in HTML/Word/PDF/Excel disk tables by default. Closes #41.

## v1.1.1 — Key Vault and Authentication path fixes. Closes #39.
## v1.1.0 — All formats by default, per-run output folders, session log.
## v1.0.x — Foundation: all 6 collectors, 11 health checks, 4 report formats, 6 SVG diagrams.

Full changelog: https://github.com/AzureLocal/azurelocal-s2d-cartographer/blob/main/CHANGELOG.md

FileList

Version History

Version Downloads Last updated
1.4.2 6 4/14/2026
1.4.1 (current version) 4 4/14/2026
1.4.0 4 4/14/2026
1.3.1 7 4/13/2026
1.3.0 3 4/13/2026
1.2.0 4 4/13/2026
1.1.1 3 4/13/2026
1.1.0 3 4/13/2026
1.0.8 3 4/13/2026
1.0.7 5 4/13/2026
1.0.6 6 4/12/2026
Show more