Windows Storage Spaces Direct (S2D) hyper-converged storage: Software Storage Bus, SBL cache, storage pools, virtual disks, ReFS, CSV, fault domains, RDMA/SMB Direct, Hyper-V integration, nested resiliency, and Azure Local. Use for \"Storage Spaces Direct\", \"S2D\", \"Azure Stack HCI\", \"Azure Local\", \"ReFS\", \"CSV\", \"Cluster Shared Volume\", \"Software Storage Bus\", \"nested resiliency\", \"mirror-accelerated parity\", \"S2D cache\", \"Get-PhysicalDisk\", \"Get-VirtualDisk\", \"HCI W...
Pro scans all 6 files and shows the line behind each finding
Scanned 9/24/2026
npx -y skills add chrishuffman5/domain-expert --skill storage-spaces-direct --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Storage Spaces Direct?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/chrishuffman5-storage-spaces-direct)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: storage-spaces-direct
description: "Windows Storage Spaces Direct (S2D) hyper-converged storage: Software Storage Bus, SBL cache, storage pools, virtual disks, ReFS, CSV, fault domains, RDMA/SMB Direct, Hyper-V integration, nested resiliency, and Azure Local. Use for \"Storage Spaces Direct\", \"S2D\", \"Azure Stack HCI\", \"Azure Local\", \"ReFS\", \"CSV\", \"Cluster Shared Volume\", \"Software Storage Bus\", \"nested resiliency\", \"mirror-accelerated parity\", \"S2D cache\", \"Get-PhysicalDisk\", \"Get-VirtualDisk\", \"HCI Windows\", \"Hyper-V storage\". Do NOT use for general Windows Failover Clustering not involving S2D storage (quorum, CSV without S2D, cluster networking) — that's the `failover-clustering` skill in the `os` plugin."
license: MIT
---
# Storage Spaces Direct
This skill covers Windows Storage Spaces Direct (S2D), the software-defined storage engine in Windows Server Datacenter and Azure Local (formerly Azure Stack HCI), including:
- Software Storage Bus: software-defined storage fabric over Ethernet replacing physical SANs
- Storage Bus Layer (SBL) cache: server-side NVMe/SSD caching for write absorption and read acceleration
- Storage pools: unified pool from all cluster drives (up to 4 PB, 16 nodes)
- Virtual disks: two-way mirror, three-way mirror, mirror-accelerated parity, nested resiliency
- ReFS: mandatory filesystem with integrity streams, VHDX acceleration, real-time tiering, dedup (WS2025+)
- CSV: Cluster Shared Volumes unified namespace (`C:\ClusterStorage\`)
- Fault domains: site, rack, chassis, node awareness for data placement
- SMB Direct / RDMA: iWARP and RoCE for low-latency inter-node storage I/O
- Hyper-V integration: hyperconverged VMs, live migration, Storage QoS
- Azure Local (Azure Stack HCI): Azure Arc integration, Lifecycle Manager, cloud-based monitoring
- Performance history (WS2019+): 1-year metric retention via `Get-ClusterPerf`
- Windows Server 2025: thin provisioning, NVMe-OF initiator, ReFS dedup/compression, rack-local reads
For cross-platform storage questions, see the `overview` skill.
## How to Approach Tasks
1. **Classify** the request:
- **Troubleshooting** -- Load `references/diagnostics.md` for PowerShell commands, drive/pool/virtual disk health states, repair workflows, event logs, performance counters
- **Architecture / design** -- Load `references/architecture.md` for full stack layers, SBL cache, pool, virtual disks, ReFS, CSV, fault domains, RDMA, Hyper-V, Azure Local
- **Best practices** -- Load `references/best-practices.md` for hardware selection, network design, cache configuration, volume sizing, fault domains, monitoring, maintenance
2. **Identify platform** -- Key differences:
- Windows Server S2D: hyperconverged + converged (SoFS), manual deployment, on-premises only
- Azure Local (23H2+): hyperconverged only, Azure Arc mandatory, cloud-managed deployment/updates
3. **Identify version** -- Feature-gated capabilities:
- WS2016: core S2D, 1 PB max
- WS2019: nested resiliency, performance history, 4 PB max, 400 TB/server
- WS2022: SMB east-west encryption, SMB compression
- WS2025: thin provisioning, NVMe-OF initiator (+90% IOPS), ReFS dedup/compression, rack-local reads
- Azure Local 22H2: thin provisioning, volume resiliency change, Storage Replica compression
- Azure Local 23H2: Azure Arc OS, Lifecycle Manager, cloud deployment
## Core Architecture
```
[Networking] Physical NICs (10 Gbps min; 25 Gbps+ RDMA recommended)
[Clustering] Windows Failover Cluster
[Storage Bus] Software Storage Bus (software-defined SAN fabric over Ethernet)
[Cache] SBL Cache (NVMe/SSD write-back cache for capacity tier)
[Pool] Single unified storage pool (all drives, all nodes)
[Spaces] Virtual disks with resiliency (mirror/parity)
[ReFS] Resilient File System (checksums, VHDX acceleration, tiering)
[CSV] Cluster Shared Volumes (C:\ClusterStorage\)
[Hyper-V] VMs on CSV volumes (hyperconverged)
```
### Resiliency Options
| Type | Copies | Efficiency | Min Nodes | Use Case |
|---|---|---|---|---|
| Two-way mirror | 2 | ~50% | 2 | 2-node clusters |
| Three-way mirror | 3 | ~33% | 3 | All-flash performance |
| Mirror-accelerated parity | 1.5-2x | varies | 4+ | General purpose, file servers |
| Nested two-way mirror | 4 | 25% | 2 (exactly) | 2-node max resilience |
| Nested MAP | varies | 35-40% | 2 (exactly) | 2-node balanced |
### SBL Cache Logic
| Media Present | Cache | Capacity |
|---|---|---|
| NVMe + SSD | NVMe | SSD |
| NVMe + HDD | NVMe | HDD |
| SSD + HDD | SSD | HDD |
| All same type | Disabled | All drives |
### Key Limits
| Resource | WS2016 | WS2019+ |
|---|---|---|
| Max pool | 1 PB | 4 PB |
| Max per server | 100 TB | 400 TB |
| Max nodes | 16 | 16 |
## Critical Rules
- Define fault domains BEFORE enabling S2D — data does not retroactively redistribute
- Run `Test-Cluster` before deployment and after hardware changes
- Use storage maintenance mode before node patching
- All SSDs must have power-loss protection (no consumer SSDs)
- RAID controllers must be in HBA pass-through mode
- Number of capacity drives must be whole multiple of cache drives
- All servers: same manufacturer, model, drive configuration
## Reference Files
- `references/architecture.md` -- Full S2D stack, SBL cache, storage pool, virtual disks, fault domains, SMB Direct/RDMA, ReFS, CSV, Hyper-V integration, Azure Local
- `references/best-practices.md` -- Hardware selection, network design, cache configuration, volume sizing, fault domain planning, Windows Admin Center monitoring, performance tuning, maintenance
- `references/diagnostics.md` -- PowerShell diagnostic commands, drive/pool/virtual disk health states, repair workflows, event log analysis, performance counters, common scenarios
## Diagnostic Scripts
Ready-made PowerShell (run elevated on a cluster node) in `scripts/`, numbered by investigation order. All read-only.
- `scripts/01-pool-and-disk-health.ps1` -- Subsystem, pool, virtual disk, physical disk, health faults
- `scripts/02-repair-jobs-status.ps1` -- Repair/rebalance job progress (the maintenance gate)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!