提到超融合基础架构(HCI),大多数人首先想到的是Nutanix、VMware vSAN这类产品,其实微软在Windows Server 2016之后就内置了一套完整的超融合方案,核心就是Storage Spaces Direct(简称S2D,也常被称作存储空间直通)。它不需要昂贵的SAN存储阵列,只依靠各节点服务器本地的NVMe、SATA或SAS磁盘,通过软件定义的方式聚合成统一的存储池,再以CSV集群共享卷的形式提供给Hyper-V虚拟机或SOFS文件服务使用。本文将从工作原理、硬件准备、部署流程和容错机制几个方面,系统讲解这套技术的入门要点。

Storage Spaces Direct的工作原理
要理解S2D,先要弄清它和传统Storage Spaces的区别。传统的存储空间依赖共享的JBOD盘柜,所有节点看到的是同一批物理磁盘;而S2D彻底抛弃了共享存储,每个节点使用自己本地的直通磁盘,数据跨节点通过网络复制分布。集群中有一个叫SMB存储总线的软件层,负责在节点之间传输存储流量,本地磁盘通过SMB3多通道协议暴露给其他节点,这样每个节点都能访问全集群的磁盘资源。
整个软件栈的分层结构值得细看。最底层是物理磁盘,S2D会自动把符合条件的磁盘纳入管理,按照介质类型分为Capacity(容量层,通常是HDD)、Performance(性能层,通常是SSD)和Cache(缓存层,通常是NVMe)三类。往上是Storage Pool存储池,池中所有磁盘的空间被合并统一调度。再往上通过弹性配置(Resiliency)把数据以条带、镜像或纠删码的形式打散到不同节点,最后形成虚拟磁盘(在S2D语境下叫Storage QoS管理的Volume卷)。这个分层设计意味着管理员只需关心卷的容量和性能需求,底层的分布细节完全由软件自动处理。
一个容易被忽视的细节是缓存机制。当集群中同时存在NVMe和SSD或HDD时,S2D会自动把速度最快的介质绑定为读缓存和写缓冲,所有读写先落在缓存盘上,再异步刷入容量盘。读写比例默认按缓存盘与容量盘的数量自动计算,例如混合部署时通常绑定百分之七十读缓存、百分之三十写缓冲。这种机制让全闪存和混合部署都能获得不错的性能,无需手工干预。
部署前的硬件与网络要求
S2D对硬件有明确的门槛要求,这也是很多部署失败的根源。集群至少需要2个节点(2节点只支持镜像,3节点起支持奇偶校验),单节点至少32GB内存、一张容量不低于64GB的系统盘,以及至少两块额外的数据盘。CPU必须支持嵌套页表(Intel的EPT或AMD的RVP)。软件层面要求所有节点使用Windows Server 2016 Datacenter或更高版本,标准版不支持S2D。
网络配置是S2D性能的决定性因素。虽然技术上网卡速率最低1Gbps即可跑通,但生产环境强烈建议使用25Gbps或更高速率的RDMA网卡(RoCE或iWARP)。RDMA能让存储流量绕过TCP/IP协议栈直接在网卡之间传输,大幅降低CPU占用和延迟。下面是一个典型的网络配置检查清单:
# 查看网卡是否启用了RDMA Get-NetAdapterRdma # 检查集群网络是否通过验证 Test-Cluster -Node Node01,Node02,Node03 -Include "Storage","Network","System Configuration" # 查看S2D集群网络的SMB多通道状态 Get-SmbMultichannelConnection
除了带宽和RDMA,还要注意网卡的命名一致性。S2D在识别存储网络时依赖网卡名称匹配,如果各节点的存储网卡名字不一致,需要在部署前用Rename-NetAdapter统一,否则集群网络健康检查会报警。北向的客户端网络和南向的存储网络建议物理分离,存储网络只放存储流量,并在交换机上为RoCE配置合适的无损队列参数,避免PFC配置不当引起的性能抖动。
磁盘固件同样不能马虎。微软对不同型号的磁盘和HBA有官方兼容列表,直通模式下要求HBA关闭RAID功能(对于SAS盘柜可以是简单的HBA直通模式)。不同批次节点的磁盘型号保持一致,能让缓存绑定和条带分布更均匀,避免出现木桶效应拖累整体性能。
用PowerShell搭建超融合集群
S2D的部署可以通过图形向导完成,但生产环境更推荐PowerShell,步骤可审计、可重复。整个流程分为五步:安装故障转移集群功能、创建集群、启用S2D、创建存储池和卷、最后创建超融合工作负载。下面以一个三节点集群为例给出核心命令:
# 第一步:在所有节点安装所需功能
Install-WindowsFeature -Name "Failover-Clustering","Hyper-V","Data-Center-Bridging" -IncludeManagementTools -Restart
# 第二步:创建集群(跳过存储测试,因为尚未启用S2D)
New-Cluster -Name S2DCluster -Node Node01,Node02,Node03 -NoStorage
# 第三步:启用Storage Spaces Direct
Enable-ClusterStorageSpacesDirect -PoolFriendlyName "S2DPool"
# 第四步:创建一个镜像类型的卷,容量按需分配
New-Volume -StoragePoolFriendlyName "S2DPool" -FriendlyName "VMVolume" `
-FileSystem CSVFS_ReFS -StorageTierFriendlyNames Capacity -StorageTierSizes 10TB
# 第五步:查看集群和卷状态
Get-ClusterPerformanceHistory
Get-Volume
Get-StoragePool S2DPool | Get-PhysicalDisk
启用S2D的过程大约需要几分钟到半小时,取决于磁盘数量。命令执行时系统会自动做几件事:声明所有可用磁盘为集群所有、识别缓存盘并绑定到容量盘、创建默认存储池、为Performance History性能历史建立专用小卷。完成后用Get-PhysicalDisk能看到每块盘的Usage属性被标记为Auto-Select或Journal。
文件系统建议选ReFS而不是NTFS。ReFS对镜像加速的写入有块克隆和完整性流优化,创建差异磁盘的速度比NTFS快一个数量级以上,这对Hyper-V虚拟机的快速部署和检查点操作有明显收益。卷的容错类型在创建时就确定了,后期无法直接更改,规划容量时要预留好副本开销:双向镜像可用容量约为池容量的百分之五十,三向镜像约为百分之三十三。
容错模式与容量规划的取舍
S2D提供三种数据弹性方式,理解它们的差异是容量规划的关键。镜像(Mirror)就是多副本机制,双向镜像在每个数据块保存两份,最多容忍一个节点或磁盘故障,写入路径短、延迟低,适合虚拟机工作负载和高性能数据库日志盘。三向镜像保存三份副本,容忍两个同时故障,是2到3节点小集群和域控、SQL等关键负载的首选。
奇偶校验(Parity)类似RAID 5或RAID 6,通过纠删码把校验信息分散存储,空间利用率远高于镜像,但写入时需要额外的计算,延迟和CPU开销都更大。为此S2D引入了镜像加速奇偶校验(Mirror-Accelerated Parity),把卷分成两部分,最热的数据放镜像区,冷数据在后台逐步迁移到奇偶区,兼顾性能和容量。这种模式适合备份归档、文件服务器这类大容量低频写入的场景。
规划容量时有一个简单的估算公式:镜像区的需求乘以副本系数,奇偶区乘以校验系数,再加上替换预留(建议百分之二左右用于坏盘自动重建)。还要留意节点数量与故障域的关系,S2D默认以节点为故障域,数据副本会确保落在不同故障域上,这也是机架感知能力的基础。如果后期扩容添加节点,存储池会自动重新平衡数据分布,无需停机,这也是S2D相比传统架构运维友好的一大亮点。
常见问题与日常运维要点
上手S2D后最常遇到的问题集中在两处。一是磁盘未正确进入存储池,通常是HBA没有设置为直通模式或者磁盘已有分区残留,可以用Clear-Disk清除后重新扫描。二是网络健康检查报错,多为RDMA链路不通或PFC配置缺失,可用Get-ClusterNetwork和事件日志中的StorageSpace事件排查。性能问题则优先看缓存命中率,如果混合部署下写缓冲不足,会频繁出现缓存溢出直写的现象。
日常监控方面,S2D内置了Performance History功能,它本身就是一个运行在集群上的小型数据库,记录磁盘、网络、卷各维度的历史指标。配合Windows Admin Center可以可视化查看延迟、IOPS和容量趋势,判断是否需要扩容或调整卷的弹性类型。补丁管理要坚持先在一个节点上维护模式暂停、验证后再滚动下一个节点的做法,避免同时重启多个节点导致仲裁丢失。
总体来说,Storage Spaces Direct把超融合的门槛降到了只要有几台带本地盘的Windows Server就能搭建的程度。对于已经深度使用Hyper-V和微软生态的团队,S2D在许可成本、管理统一性上的优势非常明显。入门阶段建议先用三节点混合部署练手,熟悉了弹性配置和网络调优之后,再考虑全闪存或更大规模的生产上线。
Storage Spaces Direct超融合基础架构S2D存储直通修改时间:2026-09-16 11:35:03