Skip to content

Commit 1ae494e

Browse files
committed
Adding Create a Storage Spaces Direct Campus Cluster article
1 parent 583b882 commit 1ae494e

2 files changed

Lines changed: 277 additions & 0 deletions

File tree

Lines changed: 275 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,275 @@
1+
---
2+
title: Create a Storage Spaces Direct Campus Cluster on Windows Server
3+
description: Discover step-by-step instructions to deploy a Storage Spaces Direct campus cluster for high availability and fault tolerance on Windows Server 2025.
4+
#customer intent: As an IT administrator, I want to create a Storage Spaces Direct campus cluster so that I can ensure rack-level resiliency for my workloads across two physical locations.
5+
author: robinharwood
6+
ms.author: roharwoo
7+
ms.reviewer: robhind
8+
ms.date: 01/20/2026
9+
ms.topic: how-to
10+
---
11+
12+
# Create a Storage Spaces Direct campus cluster
13+
14+
Learn how to create a Storage Spaces Direct campus cluster on Windows Server 2025 and later. A campus cluster distributes data across two physical racks in separate rooms or buildings within the same campus, providing rack-level resiliency for your workloads.
15+
16+
> [!NOTE]
17+
> A campus cluster is different from a stretch cluster. Campus clusters use LAN connectivity within the same location with S2D replication, while stretch clusters span geographically distant sites connected by WAN and use Storage Replica for replication.
18+
19+
For more information about campus cluster architecture, supported configurations, and how it compares to other topologies, see [Failover Clustering topologies](topologies.md).
20+
21+
## Prerequisites
22+
23+
Before you create a campus cluster, ensure you meet the following requirements:
24+
25+
- **Windows Server 2025** with the 2025-12 Security Update (KB5072033) installed on every node in the failover cluster.
26+
- **Flat S2D storage** - All capacity drives must be flash-based (SSD or NVMe). Don't use HDDs.
27+
- **Exactly two RACK fault domains** - You must define exactly two rack-level fault domains and place the cluster nodes in these two racks.
28+
- **Hardware OEM guidelines** - Follow your hardware OEM's guidelines for the deployment.
29+
- **Cluster quorum resource** - Place the quorum resource (File Share Witness, Disk Witness, Cloud Witness, or USB Witness) in a third room, separate from the data rooms containing the racks.
30+
31+
For optimal performance and resiliency, use the following configurations:
32+
33+
- Each rack has a separate network path to the cluster quorum resource.
34+
- Use redundant top-of-rack (TOR) switches, core switches, and dedicated networks for S2D storage traffic to minimize single points of failure and maximize workload uptime and durability.
35+
- Network latency of 1 ms or less between racks. Use the [PsPing](/sysinternals/downloads/psping) utility to measure network latency.
36+
- RDMA NICs and switches, which can achieve up to 30% CPU savings.
37+
38+
## Create the failover cluster
39+
40+
To create a campus cluster, first create a failover cluster without storage, then define fault domains before enabling Storage Spaces Direct.
41+
42+
#### [PowerShell](#tab/powershell)
43+
44+
Here's how to create the failover cluster using the [New-Cluster](/powershell/module/failoverclusters/new-cluster) cmdlet.
45+
46+
1. Run PowerShell on your computer in an elevated session.
47+
48+
1. Run the following command to create the cluster without storage:
49+
50+
```powershell
51+
New-Cluster -Name <ClusterName> -Node <Node1,Node2,Node3,Node4> -NoStorage
52+
```
53+
54+
Replace `<ClusterName>` with your cluster name and `<Node1,Node2,Node3,Node4>` with your node names.
55+
56+
#### [Failover Cluster Manager](#tab/fcm)
57+
58+
Here's how to create the failover cluster using Failover Cluster Manager.
59+
60+
1. From the Windows desktop, open the **Start** menu, and then select the **Server Manager** tile.
61+
62+
1. On the **Tools** menu, select **Failover Cluster Manager**.
63+
64+
1. In the **Failover Cluster Manager** pane, under **Management**, select **Create Cluster**. The Create Cluster Wizard opens.
65+
66+
1. On the **Before You Begin** page, select **Next**.
67+
68+
1. On the **Select Servers** page, in the **Enter name** box, enter the name of a server that you plan to add as a failover cluster node, and then select **Add**. Repeat this step for each of the four nodes. When you're finished, select **Next**.
69+
70+
1. On the **Validation Warning** page, select **Yes** to run cluster validation, and then select **Next**. Complete the Validate a Configuration Wizard.
71+
72+
1. On the **Access Point for Administering the Cluster** page, enter a name for the cluster. If the servers don't use DHCP, configure one or more static IP addresses for the failover cluster. Select **Next**.
73+
74+
1. On the **Confirmation** page, clear the **Add all eligible storage to the cluster** checkbox because you configure storage later when enabling Storage Spaces Direct. Select **Next**.
75+
76+
1. On the **Summary** page, confirm that the failover cluster was created successfully, and then select **Finish**.
77+
78+
---
79+
80+
## Define fault domains
81+
82+
After you create the cluster, define fault domains before you enable Storage Spaces Direct.
83+
84+
> [!IMPORTANT]
85+
> You must define fault domains before enabling Storage Spaces Direct. Once you create the pool and volumes, data doesn't retroactively move in response to changes to the fault domain topology.
86+
87+
#### [PowerShell](#tab/powershell)
88+
89+
Here's how to define fault domains using PowerShell.
90+
91+
1. Run PowerShell on your computer in an elevated session.
92+
93+
1. Run the following command to define two rack fault domains, with two nodes in each rack:
94+
95+
```powershell
96+
Set-ClusterFaultDomain -XML @"
97+
<Topology>
98+
<Site Name="Campus">
99+
<Rack Name="Room1">
100+
<Node Name="Node1"/>
101+
<Node Name="Node2"/>
102+
</Rack>
103+
<Rack Name="Room2">
104+
<Node Name="Node3"/>
105+
<Node Name="Node4"/>
106+
</Rack>
107+
</Site>
108+
</Topology>
109+
"@
110+
```
111+
112+
Replace the node names with your actual node names, and update the site and rack names as appropriate for your environment.
113+
114+
1. Verify the fault domain configuration by running:
115+
116+
```powershell
117+
Get-ClusterFaultDomain
118+
```
119+
120+
For alternative methods to define fault domains, including using individual PowerShell cmdlets, see [Fault domain awareness](fault-domains.md).
121+
122+
#### [Failover Cluster Manager](#tab/fcm)
123+
124+
Failover Cluster Manager doesn't support configuring rack-level fault domains through the GUI. Use PowerShell to define fault domains.
125+
126+
1. Run PowerShell on your computer in an elevated session.
127+
128+
1. Run the following command to define two rack fault domains, with two nodes in each rack:
129+
130+
```powershell
131+
Set-ClusterFaultDomain -XML @"
132+
<Topology>
133+
<Site Name="Campus">
134+
<Rack Name="Room1">
135+
<Node Name="Node1"/>
136+
<Node Name="Node2"/>
137+
</Rack>
138+
<Rack Name="Room2">
139+
<Node Name="Node3"/>
140+
<Node Name="Node4"/>
141+
</Rack>
142+
</Site>
143+
</Topology>
144+
"@
145+
```
146+
147+
Replace the node names with your actual node names.
148+
149+
1. Verify the fault domain configuration by running:
150+
151+
```powershell
152+
Get-ClusterFaultDomain
153+
```
154+
155+
---
156+
157+
## Enable Storage Spaces Direct
158+
159+
After defining fault domains, enable Storage Spaces Direct on the cluster.
160+
161+
#### [PowerShell](#tab/powershell)
162+
163+
Here's how to enable Storage Spaces Direct using the [Enable-ClusterStorageSpacesDirect](/powershell/module/failoverclusters/enable-clusterstoragespacesdirect) cmdlet.
164+
165+
1. Run PowerShell on your computer in an elevated session.
166+
167+
1. Enable Storage Spaces Direct on the cluster:
168+
169+
```powershell
170+
Enable-ClusterStorageSpacesDirect
171+
```
172+
173+
1. Update the storage pool to ensure it's using the latest features:
174+
175+
```powershell
176+
Get-StoragePool S2D* | Update-StoragePool
177+
```
178+
179+
1. Verify that the storage pool version is 29 or later:
180+
181+
```powershell
182+
(Get-CimInstance -Namespace root/microsoft/windows/storage -ClassName MSFT_StoragePool -Filter 'IsPrimordial = false').CimInstanceProperties['Version'].Value
183+
```
184+
185+
1. Verify that the storage pool's `FaultDomainAwareness` property is set to `StorageRack`:
186+
187+
```powershell
188+
Get-StoragePool -FriendlyName S2D* | Format-List FaultDomainAwarenessDefault
189+
```
190+
191+
#### [Failover Cluster Manager](#tab/fcm)
192+
193+
Here's how to enable Storage Spaces Direct using Failover Cluster Manager.
194+
195+
1. In **Failover Cluster Manager**, expand the cluster name, and then select **Storage** > **Pools**.
196+
197+
1. Right-click **Pools**, and then select **Enable Storage Spaces Direct**. Follow the wizard to complete the operation.
198+
199+
1. After enabling Storage Spaces Direct, use PowerShell to update the storage pool and verify the configuration:
200+
201+
```powershell
202+
Get-StoragePool S2D* | Update-StoragePool
203+
```
204+
205+
1. Verify that the storage pool version is 29 or later:
206+
207+
```powershell
208+
(Get-CimInstance -Namespace root/microsoft/windows/storage -ClassName MSFT_StoragePool -Filter 'IsPrimordial = false').CimInstanceProperties['Version'].Value
209+
```
210+
211+
1. Verify that the storage pool's `FaultDomainAwareness` property is set to `StorageRack`:
212+
213+
```powershell
214+
Get-StoragePool -FriendlyName S2D* | Format-List FaultDomainAwarenessDefault
215+
```
216+
217+
---
218+
219+
## Create volumes
220+
221+
Create volumes on the storage pool based on your resiliency requirements. For a 2+2 campus cluster, use four-copy volumes as they provide the best balance between cost, performance, and resiliency. A four-copy volume places a copy of data on each node, so the cluster can survive losing an entire rack and a node at the same time.
222+
223+
A four-copy volume provides 25% storage capacity, while a two-copy volume provides 50% capacity with less resiliency. For more information about volume resiliency options, see [Fault tolerance and storage efficiency](../storage/storage-spaces/fault-tolerance.md).
224+
225+
#### [PowerShell](#tab/powershell)
226+
227+
Here's how to create a four-copy mirrored volume using PowerShell.
228+
229+
1. Run PowerShell on your computer in an elevated session.
230+
231+
1. Run the following command to create a four-copy volume:
232+
233+
```powershell
234+
New-Volume -FriendlyName "FourCopyVolume" `
235+
-StoragePoolFriendlyName S2D* `
236+
-FileSystem CSVFS_ReFS `
237+
-Size 500GB `
238+
-ResiliencySettingName Mirror `
239+
-PhysicalDiskRedundancy 3 `
240+
-ProvisioningType Fixed `
241+
-NumberOfDataCopies 4 `
242+
-NumberOfColumns 3
243+
```
244+
245+
To create a two-copy volume instead, set `-PhysicalDiskRedundancy 1` and remove the `-NumberOfDataCopies` and `-NumberOfColumns` parameters. To use thin provisioning, change `-ProvisioningType` to `Thin`.
246+
247+
For more information about resiliency types and storage efficiency, see [Fault tolerance and storage efficiency](../storage/storage-spaces/fault-tolerance.md).
248+
249+
#### [Failover Cluster Manager](#tab/fcm)
250+
251+
Here's how to create volumes using Failover Cluster Manager. To create four-copy volumes, use PowerShell.
252+
253+
1. In **Failover Cluster Manager**, expand the cluster name, and then select **Storage** > **Pools**.
254+
255+
1. Select the **S2D** storage pool, and then right-click and select **New Virtual Disk**.
256+
257+
1. In the New Virtual Disk Wizard, enter a name for the volume.
258+
259+
1. On the **Storage Layout** page, select **Mirror**.
260+
261+
1. On the **Resiliency Settings** page, select **Two-way mirror** for a two-copy volume.
262+
263+
1. On the **Provisioning Type** page, select either **Fixed** or **Thin**.
264+
265+
1. Specify the size for the volume and complete the wizard.
266+
267+
1. After creating the virtual disk, right-click it and select **New Volume** to format it by using ReFS.
268+
269+
---
270+
271+
## Related content
272+
273+
- [Deploy a quorum witness](deploy-quorum-witness.md)
274+
- [Fault domain awareness](fault-domains.md)
275+
- [Announcing support for S2D Campus Cluster on Windows Server 2025](https://techcommunity.microsoft.com/blog/failoverclustering/announcing-support-for-s2d-campus-cluster-on-windows-server-2025/4477075)

WindowsServerDocs/failover-clustering/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
items:
99
- name: Create a failover cluster
1010
href: create-failover-cluster.md
11+
- name: Create a Storage Spaces Direct campus cluster
12+
href: create-storage-spaces-direct-campus-cluster.md
1113
- name: Deploy a two-node file server
1214
href: deploy-two-node-clustered-file-server.md
1315
- name: Recover a failover cluster without quorum

0 commit comments

Comments
 (0)