S2DCartographer
0.1.0-preview1
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.0
See the version list below for details.
Installation Options
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 ConvertTo-S2DCapacity
PSEditions
Dependencies
This module has no dependencies.
Release Notes
## v0.1.0-preview1 — Foundation preview
Preview release focused on the implemented Phase 1 foundation surface:
S2DCapacity class, ConvertTo-S2DCapacity, Connect-S2DCluster,
Disconnect-S2DCluster, and Get-S2DPhysicalDiskInventory.
FileList
- S2DCartographer.nuspec
- .git\COMMIT_EDITMSG
- .git\HEAD
- .git\config
- .git\description
- .git\hooks\applypatch-msg.sample
- .git\hooks\commit-msg.sample
- .git\hooks\fsmonitor-watchman.sample
- .git\hooks\post-update.sample
- .git\hooks\pre-applypatch.sample
- .git\hooks\pre-commit.sample
- .git\hooks\pre-merge-commit.sample
- .git\hooks\pre-push.sample
- .git\hooks\pre-rebase.sample
- .git\hooks\pre-receive.sample
- .git\hooks\prepare-commit-msg.sample
- .git\hooks\push-to-checkout.sample
- .git\hooks\sendemail-validate.sample
- .git\hooks\update.sample
- .git\index
- .git\info\exclude
- .git\logs\HEAD
- .git\logs\refs\heads\main
- .git\logs\refs\remotes\origin\main
- .git\objects\02\1ff562a4420bcd53c82fed61bc19f971f78b69
- .git\objects\02\c094b3e0fb45ef97d135f0d83a368c95a9b13d
- .git\objects\06\3734ba9d6c68697c6c68a929b0e8f372d6071d
- .git\objects\06\b3bb79c188d1c2877bcea70d29ab9e839d09dc
- .git\objects\07\ed7cc6ad959e18bbf3472be62ee406e6ffb408
- .git\objects\09\eff5e00d8fadae58bf264958d2389ad671c1a1
- .git\objects\0c\246ce501df5d7e46c32451e5bc78c2fe6a292b
- .git\objects\0d\940b4e447711ba502498079cfa7d111ead9159
- .git\objects\15\4519b436ec9d67bc853d30c830271234f78e54
- .git\objects\16\f62fd0bd71417b536686903f29650123543701
- .git\objects\17\099e052941dfe0eb4c4d33b4bd6bdfd140791e
- .git\objects\19\8556f01ed2e96908f4a671cd42b5ecb74b800c
- .git\objects\19\e3d2f3c39fd2bf80185eef880c3c50b7a6c0f2
- .git\objects\19\ee168e1a18d72cb49aeeffc1247eefce9c6908
- .git\objects\1a\ec5b0f6da466ed1a9747100100de55b9efcb9d
- .git\objects\1b\52901f5c3341a1b87fc06c9f38d9cf2469abaf
- .git\objects\1b\80263243b16c83769fce2de6d8c1f4e4b72bae
- .git\objects\1b\9bd3a16f944549f9e3b839ca4c7d460e0ab80f
- .git\objects\1c\0fb9bd8139f72f17777e8bf88f903fdba6f58e
- .git\objects\20\3dd9801ccc25811d61fa7c9695d622d720c30f
- .git\objects\21\0bac34c1e827e93accea38b84214a6f5dfbdd7
- .git\objects\26\b35a2fd978e0502f19eda268749b03466b004d
- .git\objects\28\b463ada447729242b412aa84ea57c5a73a735d
- .git\objects\2d\d9aa35920af49be70e7c070c5738e6538039c9
- .git\objects\30\0cedf4c5260d7ce5e42a4e34f6a771f9e552d3
- .git\objects\30\ecc217fa447ecb2ab535e5592e22c33118a506
- .git\objects\30\f01ca3211991b4eb2c0b646d4fb1e82d06b090
- .git\objects\31\778caee6a830cbe0c19c9add8d03c5432ba9aa
- .git\objects\32\dafc2c17410876e9cc4a66facb801433ebffa6
- .git\objects\33\e049272dbf1f044c4a53da0a6f74303f5bfb53
- .git\objects\34\7a3d30bbc1855cd3eb910ea0425a3ab4e8bb5b
- .git\objects\34\ffbb5efce3ada7539dedcc03685219208dadf4
- .git\objects\38\83037f50c99a57f8a06fe76e3c0e4ccaa21a08
- .git\objects\3d\11b7e977d7239fbac48ab07be596ff3fa94ea6
- .git\objects\3d\3960e15ae3cca53dd5e87798a2b42472d29898
- .git\objects\3e\b6571c23bd1c86dbe3c873080b459de5d6d781
- .git\objects\43\1790f63a66d434d2e0d96b840d4e24b64c8209
- .git\objects\46\15c99544785679becd55c096478b03b7b4ba04
- .git\objects\46\43be49c2da599fb061875f9caa26e54cf86284
- .git\objects\46\6df71c83b8a7e33fc928e10a3b357954ff91b3
- .git\objects\47\0de6b50b44c43f2a079aeaebcbfe229962d1e0
- .git\objects\49\28f6805140fc23bf50d959ab2f8505ebcb5296
- .git\objects\4a\5593987d4177932ac2605f8f9ff54b3d9b3f82
- .git\objects\4b\4da142eb7efcdafdfa8d50cbcd2d56ca027a9c
- .git\objects\4c\5c2f6cc2c246b76fac1a24669e11cb29e82fb6
- .git\objects\50\748374d0db3e225013025e8588dd4c28eb0567
- .git\objects\50\f5b7b4400d9462b7f15ffe4d201a205737c3c9
- .git\objects\51\db413d81774e362ba57627c401bcda2c317788
- .git\objects\54\d41f33ca0ad1a6ef1de2714ed993def4d07194
- .git\objects\55\89253f8edd4d4c521a2a60c013356f1c23765f
- .git\objects\5d\78dfed4f8a8ade511972254a461d35ffe70191
- .git\objects\5d\a31ddbb81a8f41e6ba94ee0cf9527690e47db6
- .git\objects\5f\7ce0c3b6ad6d0d42eea60b096b68eb978e0d70
- .git\objects\65\236e9b01a19786ef55b3b304cfe04e4639c1dd
- .git\objects\66\694e5d268a982ce35c0401ae6356ffda4973b7
- .git\objects\6d\7a697e48a2b35d1c6cf7b038eeec14faec045c
- .git\objects\6d\af6dcb7f8338eeae2a9ab81666240368e7c7d2
- .git\objects\71\3ebeab878986cec537bf007a2cf5da07478d54
- .git\objects\71\f016255410b7b38fd75f71bc91de29baef450e
- .git\objects\74\21a1b70ccf12144b03fd6d5d0fa479b95a0d0b
- .git\objects\74\fd6f89c57b391faffc014a5fe388e061ed6e50
- .git\objects\77\0e763dfa3596a5ca6930b66dd241c1b78f0cf3
- .git\objects\77\ed5aad8ed294369b8be7531af88db9c30b1f77
- .git\objects\78\77444784863b2ebed81e1e0507a69fa13af43b
- .git\objects\79\76a4c124a41b435f50a847859ea6011a161615
- .git\objects\7a\eb7379ee2659d57257b6bf6eede8f102780334
- .git\objects\7c\a9854346c28b26d36fcfa7d55cbe635c941db0
- .git\objects\7d\19a923eafd4c6ce28618ef40b6d27979e37d5a
- .git\objects\7f\6ab775d96cb29050f243b13fa1fcb41110b20a
- .git\objects\83\414e0a35807d447723f79aa1274a52c3a3aa3e
- .git\objects\88\3e7e310675d66213bae948450caa96dbbe9591
- .git\objects\8a\10045a1d194a3045598065ff623f21b7902537
- .git\objects\8b\172bf68c5f7d68f51a7737bd579b770a5fab14
- .git\objects\8d\49c5c17017cc5967da464ff09ca2e6c48d71b9
- .git\objects\8d\523001c288b3d4200b0445a1fd6714d1bcb5ef
- .git\objects\8d\702e650f1b064cd28358b67e719c4cddeefee1
- .git\objects\8f\4abf9e09b0c3f4c7912f1959be00baf52c768e
- .git\objects\90\c985340d9f83f3573c011fef804f2d8f040649
- .git\objects\91\8d4085c6454d36d2344afabbaae49f04d7b15e
- .git\objects\93\70ff7e49f42ec7e7c225e7693a9fc51852b1a6
- .git\objects\93\9ddb2bf0a443236cf263c1c1041d73185d435d
- .git\objects\94\7012825423e8cf990b7ecddf965d660af1c157
- .git\objects\97\03411d7e2900758a4b4c39507279b02a4236e3
- .git\objects\9c\cecd18255247eea28ff6b22b47c5ea9043670e
- .git\objects\9d\379a7dbf74276dcbbb2839754b7482f5acf8ac
- .git\objects\9e\2abd7a2b54ce79416c98a942469105d24e5c9c
- .git\objects\a1\e8289764a4b389597001abeef6a544fce60ecc
- .git\objects\a1\f93513745d98225a9a97d276ad7a0f499bbe9a
- .git\objects\a4\58f17e840310fd06561a60cfd7fc01690e6adb
- .git\objects\a4\6233e44b4210becb5e3c32eecffdba7870e57c
- .git\objects\a4\a106495d114142eea67a1521b92a4d2d711f33
- .git\objects\a6\460402b5cc5f757c1d3f7e4e682733d548866c
- .git\objects\a9\029704e577d1266d3788ab825e73785a6428e8
- .git\objects\aa\9d8fd9d8612610a6072bf50b8b8791c407cd99
- .git\objects\ae\a81e0b5d21efddd029d9df8fd43e77f0711a6f
- .git\objects\ae\f563b4169bbb356f746e6a9afbed1bbd4a7ddd
- .git\objects\af\3691e31489bcebe05b7a8e29cc33c65602c199
- .git\objects\af\4cc06149b4dec700f123700ea5a4184ac727e4
- .git\objects\af\be2941460db538a8a3fda32b6c5773316c3c18
- .git\objects\af\d9eb81735b8318ac4121411ff10052ea7d7e19
- .git\objects\b1\2fc59745ed57aae4b2be75fe8b6efe88d0b821
- .git\objects\b3\f712c1ced683a04e8e74a44b32a102124cc4dd
- .git\objects\b5\a4b653e22c38e2eb8bfdb144c68d3d416a50a2
- .git\objects\b6\94445db20f3f15c8e339f45ae3c2c13b191ffd
- .git\objects\bf\3f0609d93da7843e207d6c5193156cff5eda07
- .git\objects\bf\cf9caf5d4a253043367ef2505b9f665a6e8fdc
- .git\objects\c1\ca87cc7b27954c1e68b92e8c1aa1c8e73b0112
- .git\objects\c2\722443684551068cdcbce2f96199caa840fa6c
- .git\objects\c2\91569bd06aba063f23abd90b2166d77707f68c
- .git\objects\c3\5d419435ddf389f5d339faf567cf35bd718fe5
- .git\objects\c7\38baa9e34179678a2dd704d38d51f63ea32c12
- .git\objects\ca\79573e13521c9a6806d6973a3b0ac8ca4ded78
- .git\objects\cc\0ae6935ece5b34f2dd76ccb16a14309a855164
- .git\objects\cc\9568fde0c57edf2f2cc36de0aa9f550265a9bb
- .git\objects\ce\d3f9c56dbe4d6645dca3107e6b7a97cf62f96a
- .git\objects\cf\957c44ed9d0d47bc1eccca1d1f6cb94bf32ef2
- .git\objects\d0\98ba6b88f388b68335dfcf20f8add7dc5fe4d1
- .git\objects\d0\c2d17d06d068a2a33dffc8f89ad75ce6effc60
- .git\objects\d3\f445abcfc319d4acd7635ee8c7c375810e00df
- .git\objects\d5\5b2b255862850a5c4ef5ff5c06cfb6f06ad585
- .git\objects\d5\5e7597a82e28169a916bb68ad8a2a34195833f
- .git\objects\d5\64d0bc3dd917926892c55e3706cc116d5b165e
- .git\objects\d6\103b48140a2ddc8d202fcd31c1e36386373519
- .git\objects\d8\41d7d8e3604aa3491855b8b05666a239e1865f
- .git\objects\de\d13e1806ed9934874492175a899276c7ebfb31
- .git\objects\e0\9033a92b31be62c100165b9fc7e93ce7a9212b
- .git\objects\e1\253df951a30578b242b3231687735110683ecc
- .git\objects\e2\813492ebc27ab9bcdc4d38b95c4acb0ca204e0
- .git\objects\e6\069ce5cc7fa247a195f6c6efa69b8bda8bb793
- .git\objects\e6\9de29bb2d1d6434b8b29ae775ad8c2e48c5391
- .git\objects\e6\f9a594acbf8f9256a2c7bf8fe67240bf56e951
- .git\objects\e8\93a4c77e9551a63496f11a1d4d34ebb2820fb1
- .git\objects\eb\979eed3787a162c19d8b9e450cec115b9ebce5
- .git\objects\ed\0d73e3e074e23d8db51b45f85d4c6d01de0acd
- .git\objects\ed\830ee5ce2657eb3116089d9f9658acfbaa1586
- .git\objects\f0\eae2478c2e13bbd2814e5866b45769416d0286
- .git\objects\f0\f992ac3800b4b874d8e33ceafd666cec09f358
- .git\objects\f1\008bf924f59884ff7bbfabe7d8218e057e7651
- .git\objects\f1\51efa6d1f4e587c34419924970eb194a063fbf
- .git\objects\f1\6811af6a23e22573b3cb70edb54afa964ebb49
- .git\objects\f1\c2585c8bfb13fdca7fab8c4efa55b8732c66d7
- .git\objects\f2\3939b6450e299fce04f0c14561b85ec0096723
- .git\objects\f2\46b101e0cbb8f067a85acd86fad68d4543a1fd
- .git\objects\f5\2a36974ddf36a4033a0383715373111520ad15
- .git\objects\f6\24e921da2cb5884c96bad041e5f1ac85b68e87
- .git\objects\fb\e42d7e2ca33ee479eb8129fcb637d319465d9a
- .git\objects\fe\01b74cde3cbf8151af74f46596e38a4f12c7cb
- .git\refs\heads\main
- .git\refs\remotes\origin\main
- .github\CODEOWNERS
- .github\ISSUE_TEMPLATE\bug_report.yml
- .github\ISSUE_TEMPLATE\config.yml
- .github\ISSUE_TEMPLATE\feature_request.yml
- .github\ISSUE_TEMPLATE\trailhead_milestone_gate.md
- .github\PULL_REQUEST_TEMPLATE.md
- .github\workflows\add-to-project.yml
- .github\workflows\deploy-docs.yml
- .github\workflows\publish-psgallery.yml
- .github\workflows\release-please.yml
- .github\workflows\validate-repo-structure.yml
- .github\workflows\validate.yml
- .release-please-manifest.json
- CHANGELOG.md
- CONTRIBUTING.md
- LICENSE
- Modules\Classes\S2DCapacity.ps1
- Modules\Private\Get-S2DReserveCalculation.ps1
- Modules\Private\Get-S2DResiliencyEfficiency.ps1
- Modules\Private\Resolve-S2DSession.ps1
- Modules\Public\Connect-S2DCluster.ps1
- Modules\Public\ConvertTo-S2DCapacity.ps1
- Modules\Public\Disconnect-S2DCluster.ps1
- Modules\Public\Get-S2DCacheTierInfo.ps1
- Modules\Public\Get-S2DCapacityWaterfall.ps1
- Modules\Public\Get-S2DHealthStatus.ps1
- Modules\Public\Get-S2DPhysicalDiskInventory.ps1
- Modules\Public\Get-S2DStoragePoolInfo.ps1
- Modules\Public\Get-S2DVolumeMap.ps1
- Modules\Public\Invoke-S2DCartographer.ps1
- Modules\Public\New-S2DDiagram.ps1
- Modules\Public\New-S2DReport.ps1
- README.md
- S2DCartographer.psd1
- S2DCartographer.psm1
- azurelocal-S2DCartographer.code-workspace
- docs\assets\images\s2dcartographer-banner.svg
- docs\assets\images\s2dcartographer-icon.svg
- docs\capacity-math.md
- docs\changelog.md
- docs\collectors.md
- docs\diagrams.md
- docs\getting-started.md
- docs\index.md
- docs\reports.md
- docs\tib-vs-tb.md
- mkdocs.yml
- release-please-config.json
- repo-management\README.md
- repo-management\automation.md
- repo-management\plans\plan.md
- repo-management\setup.md
- tests\README.md
- tests\maproom\Fixtures\16node-enterprise.json
- tests\maproom\Fixtures\2node-allnvme.json
- tests\maproom\Fixtures\2node-overcommitted.json
- tests\maproom\Fixtures\3node-insufficient-reserve.json
- tests\maproom\Fixtures\3node-mixed-tier.json
- tests\maproom\Fixtures\4node-3way-mirror.json
- tests\maproom\Fixtures\4node-mixed-resiliency.json
- tests\maproom\Fixtures\single-node.json
- tests\maproom\README.md
- tests\maproom\docs\maproom-guide.md
- tests\maproom\scripts\New-S2DFixtures.ps1
- tests\maproom\scripts\New-S2DSyntheticCluster.ps1
- tests\maproom\scripts\Test-S2DFromSyntheticCluster.ps1
- tests\maproom\unit\ConvertTo-S2DCapacity.Tests.ps1
- tests\maproom\unit\Get-S2DReserveCalculation.Tests.ps1
- tests\maproom\unit\Get-S2DResiliencyEfficiency.Tests.ps1
- tests\trailhead\README.md
- tests\trailhead\field-testing.md
- tests\trailhead\scripts\New-S2DCartographerFieldTestCycle.ps1
- tests\trailhead\scripts\Start-TrailheadRun.ps1
- tests\trailhead\scripts\TrailheadLog-Helpers.ps1
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 1.0.2 | 6 | 4/11/2026 |
| 1.0.1 | 4 | 4/11/2026 |
| 1.0.0 | 4 | 4/11/2026 |
| 0.1.0-preview2 | 2 | 4/10/2026 |
| 0.1.0-preview1 (current version) | 4 | 4/10/2026 |