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

This is a prerelease version of S2DCartographer.
There is a newer prerelease version of this module available.
See the version list below for details.

Installation Options

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

Install-Module -Name S2DCartographer -RequiredVersion 0.1.0-preview1 -AllowPrerelease

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

Install-PSResource -Name S2DCartographer -Version 0.1.0-preview1 -Prerelease

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 ConvertTo-S2DCapacity

PSEditions

Core

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