Windows Server 2016 and 2019 Storage Sapces Direct (S2D) allows building HA storage systems using storage nodes with local storage, such as SATA or SSD disks.
In this blogpost, I’ll deploy a two node S2D cluster based on Windows Server 2019 build 17744. The main machine is a HP ProBook 450 G5 with Windows 10, 16 GB memory, 512 GB SSD disk, and Hyper-V enabled.
First of all, I’ve deployed the following virtual machines:
- S2D-W2019-DC01 (Domain Controller, DNS, Group Policies)
IP address: 172.16.0.100 - S2D-W2019-HV01 (Hyper-V host, S2D node)
IP address: 172.16.0.101 (LAN)
IP address: 10.10.0.101 (Live Migration) - S2D-W2019-HV02 (Hyper-V host, S2D node)
- IP address: 172.16.0.102 (LAN)
IP address: 10.10.0.102 (Live Migration)
All the servers are installed with Windows Server 2019 build 17744. The first server I’ve configured is the domain controller. My internal domain is s2dlab.local.
For both S2D nodes (S2D-W2019-HV01 and S2D-W2019-HV02), you’ve to configure some additional settings, because this servers are virtual. So we’re going to run Hyper-V in Hyper-V and on that Hyper-V host there’re some guest virtual machines (nested virtualization) 😀 Cool stuff!!!
$S2DHOST1 = 'S2D-W2019-HV01'
$S2DHOST2 = 'S2D-W2019-HV02'
# List all virtual machines
Get-VM
# Enable nested virtualization on virtual machines
Set-VMProcessor -VMName $S2DHOST1 -ExposeVirtualizationExtensions $true
Set-VMProcessor -VMName $S2DHOST2 -ExposeVirtualizationExtensions $true
Next, you’ve to Configure the following settings within the VM configuration:
- Disable dynamic memory;
- Set the number of virtual processors to 2 or 4;
- Turn on MAC address spoofing on your network interface(s);
Now the domain controller is up and running and both S2D nodes are installed and configured with Windows Server 2019, it’s time to add some storage. Both servers have 3 x 50 GB virtual disks attached! Note!! this is only for testing and demo!!
So we’ve 300 GB storage available for our S2D cluster. After this is done, you can install the following roles and features within Windows Server:
- (Role) File and Storage Services;
- (Role) Hyper-V;
- (Feature) Failover Clustering;
Now all the components are ready to build the cluster. It’s recommended to run the cluster validation before building your cluster! The name of my cluster is ‘S2D-CL01’ with IP address 172.16.0.200/16. Note!! Uncheck the option ‘Add all eligible storage to the cluster’!!
The cluster is up and running. As you can see within your Active Directory and DNS configuration, there’re three computer objects (two cluster nodes and one Failover Cluster object).
The last step before enabling ‘S2D’ on our cluster is checking the disk configuration.
# List all available disks within the cluster nodes
Get-PhysicalDisk
# Enable Storage Spaces Direct on the cluster
Enable-ClusterS2D
# List all Storage Pools within the S2D cluster
Get-Storagepool S2D*
Now our cluster is Storage Spaces Direct (S2D) enabled. The last step is to create a virtual disk within our Storage Pool and add it as a Cluster Shared Volume (CSV) to the cluster, wo we can store workloads on it! Bacause we’ve a two node cluster, the only Resiliency type is Two-Way Mirror.
Wrap Up:
In this blogpost we’ve builded a two nodes virtual Storage Spaces Direct cluster in Hyper-V (Windows 10). The S2D nodes are running Windows Server 2019. It’s really a nice opportunity to run this configuration virtual on your laptop or desktop, while nested virtualization is supported and it works great!!
In the next blogpost I’ll show you to install and configure a virtual machine within our S2D cluster. Also performing some live migrations to show the high availability and resiliency of our setup!