配置Windows S2D需四步:环境准备(节点、磁盘、网络、域)、磁盘清理、群集构建、S2D启用;满足硬件与系统要求后,执行PowerShell脚本清理磁盘,新建故障转移群集,运行Enable-ClusterStorageSpacesDirect自动创建存储池与CSV卷。
配置 windows 存储空间直通(s2d)不是单纯点几下鼠标的事,核心在于环境准备、磁盘清理、群集构建和 s2d 启用四个环节环环相扣。只要节点合规、磁盘干净、网络就绪,整个过程可稳定完成。
确认硬件与系统前提
S2D 对底层有明确要求,不满足则无法启用或运行异常:
- 至少 2 台物理服务器或高配虚拟机(推荐 4 节点起),全部运行 Windows Server 2019 Datacenter 或更高版本(2025/2026 均支持);
- 每台节点需配备两块及以上本地直连磁盘(NVMe、SATA/SAS SSD 或 HDD),不能是 iSCSI、FC 或虚拟磁盘;
- 所有磁盘必须为空——无分区、无文件系统、无 BitLocker 加密,且未被其他存储池或卷占用;
- 节点间需至少一对 RDMA 支持的网卡(如 RoCE 或 InfiniBand),用于低延迟存储通信;若不可用,至少确保万兆以太网 + SMB Direct 开启;
- 所有节点加入同一域,且使用具有本地管理员和域管理员权限的账户统一管理。
清理磁盘并初始化群集
即使磁盘看似空闲,也可能残留元数据导致 S2D 拒绝识别。建议在任意节点执行统一清理脚本:
PowerShell(以管理员身份运行):
icm (Get-ClusterNode -Cluster "HCI-Cluster") {
Update-StorageProviderCache
Get-StoragePool | ? IsPrimordial -eq $false | Set-StoragePool -IsReadOnly:$false -ErrorAction SilentlyContinue
Get-StoragePool | ? IsPrimordial -eq $false | Get-VirtualDisk | Remove-VirtualDisk -Confirm:$false -ErrorAction SilentlyContinue
Get-StoragePool | ? IsPrimordial -eq $false | Remove-StoragePool -Confirm:$false -ErrorAction SilentlyContinue
Get-PhysicalDisk | Reset-PhysicalDisk -ErrorAction SilentlyContinue
Get-Disk | ? Number -ne $null | ? IsBoot -ne $true | ? IsSystem -ne $true | ? PartitionStyle -ne RAW | % {
$_ | Set-Disk -IsOffline:$false
$_ | Set-Disk -IsReadOnly:$false
$_ | Clear-Disk -RemoveData -RemoveOEM -Confirm:$false
$_ | Set-Disk -IsReadOnly:$true
$_ | Set-Disk -IsOffline:$true
}
Get-Disk | ? Number -ne $null | ? IsBoot -ne $true | ? IsSystem -ne $true | ? PartitionStyle -eq RAW | Group -NoElement -Property FriendlyName
} | Sort PsComputerName, Count
执行后检查输出是否列出所有预期磁盘(状态为 RAW),再创建故障转移群集:
New-Cluster -Name HCI-Cluster -Node Node1,Node2,Node3 -StaticAddress 192.168.10.100 -NoStorage
启用 S2D 并验证存储池
群集创建成功后,直接启用 S2D,系统将自动发现磁盘、创建池、配置缓存层和容量层:
Enable-ClusterStorageSpacesDirect -CimSession "HCI-Cluster"
该命令会自动完成以下动作:
- 创建名为 “S2D on HCI-Cluster” 的默认存储池;
- 若存在 SSD+HDD 混合配置,自动将 SSD 设为读写缓存层(Performance),HDD 归入容量层(Capacity);
- 启用群集共享卷(CSV)支持,并注册 S2D 提供程序;
- 设置基础容错策略(默认为两路镜像,适合多数生产场景)。
验证是否生效:
Get-ClusterStorageSpacesDirect<br>Get-StoragePool -FriendlyName "S2D*" | Get-PhysicalDisk | ft FriendlyName, MediaType, OperationalStatus<br>Get-VirtualDisk | ft FriendlyName, ResiliencySettingName, Size, HealthStatus
创建可用卷并投入使用
S2D 池就绪后,即可创建虚拟磁盘(即 CSV 卷)供 Hyper-V 或文件服务使用:
$pool = Get-StoragePool -FriendlyName "S2D*"<br>New-VirtualDisk -StoragePoolFriendlyName $pool.FriendlyName -FriendlyName "VDISK01" -Size 2TB -ResiliencySettingName Mirror -NumberOfColumns 4 -Interleave 256KB<br>Initialize-Disk -VirtualDisk (Get-VirtualDisk -FriendlyName "VDISK01") -PartitionStyle GPT<br>New-Partition -DiskNumber (Get-VirtualDisk -FriendlyName "VDISK01" | Get-Disk).Number -UseMaximumSize | Format-Volume -FileSystem CSVFS_ReFS -NewFileSystemLabel "CSV01" -Confirm:$false
完成后,该卷将自动注册为群集共享卷,在 Failover Cluster Manager 中可见,可直接用于存放 VM 文件或配置 SOFS 共享。











