Storage Spaces Direct(S2D)的核心目标是在普通服务器和本地磁盘上构建企业级高可用存储。
与传统 RAID 不同,S2D 的容错不是由 RAID 控制器完成,而是由 Windows 存储栈通过软件实现,并将数据分布到多个服务器(Fault Domain)之间,因此又称为 Software Defined Resiliency(软件定义复原)。
S2D 主要提供两类数据保护方式:
- Mirror(镜像)
- Parity(奇偶校验 / Erasure Coding,擦除编码)
两者分别侧重于:
| 类型 | 容错能力 | 存储效率 | 性能 |
|---|---|---|---|
| 镜像(Mirror) | ★★★★★ | 较低 | 最佳 |
| 奇偶校验(Parity) | ★★★★☆ | 很高 | 写入性能较低 |
3.1 镜像(Mirror)
镜像通过保存多个数据副本来实现容错。
所有副本都会写入不同服务器上的不同磁盘,因此即使服务器或磁盘发生故障,数据仍然可以继续访问。
其原理类似于 RAID1,但数据副本跨服务器分布,而不是局限于一台服务器内部。
Windows Server 支持两种镜像模式:
- 双向镜像(Two-way Mirror)
- 三向镜像(Three-way Mirror)
3.1.1 双向镜像(Two-way Mirror)
双向镜像会保存 两份数据副本。
特点
- 每份数据保存两个副本
- 可容忍一个故障域(服务器或磁盘)失效
- 至少需要 2 个 Fault Domain(2 台服务器)
存储效率
由于数据保存两份,因此:
1TB 数据
=
2TB 实际容量
存储效率:
50%
即:
可用容量 = 原始容量 × 50%
适用场景:
两节点 Azure Local 或 S2D 集群。
3.1.2 三向镜像(Three-way Mirror)
三向镜像会保存 三个数据副本。
特点
- 每份数据保存三个副本
- 可同时容忍两个故障域失效
- 至少需要 3 台服务器
存储效率
1TB 数据
需要
3TB 容量
存储效率:
33.3%
虽然容量利用率较低,但它提供了微软推荐的最高可靠性。
例如:
- 一台服务器正在维护重启
- 同时另一台服务器突然掉电
数据仍然保持在线。
因此微软官方建议:
三节点及以上集群优先使用三向镜像,而不是双向镜像。
3.2 奇偶校验(Parity / Erasure Coding)
奇偶校验采用**擦除编码(Erasure Coding)**技术,而不是简单保存多个副本。
其基本思想是:
当部分磁盘或服务器发生故障时,可利用校验信息重新计算丢失的数据。
它类似传统 RAID5/RAID6,但计算方式更加先进。
优点:
- 存储效率远高于镜像
- 容错能力接近镜像
缺点:
- 写入需要计算校验值
- 随机写性能低于镜像
因此微软更推荐用于:
- Backup
- Archive
- 冷数据
- 容量型存储
3.2.1 双奇偶校验(Dual Parity)
Windows Server 默认采用 双奇偶校验(Dual Parity)。
它基于 Reed-Solomon(RS) 擦除编码实现。
其容错能力等同于 RAID6。
特点
- 保存两个校验块
- 可同时容忍两个故障域故障
- 至少需要 4 台服务器
例如:
存储效率
随着服务器数量增加,存储效率不断提升:
| 服务器数量 | 存储效率 |
|---|---|
| 4~6 节点 | 50% |
| 7~11 节点 | 66.7% |
| 12~15 节点(LRC) | 72.7% |
| 16 节点全闪存 | 80% |
因此,大规模集群越适合采用奇偶校验。
3.3 本地重建代码(LRC,Local Reconstruction Code)
为了降低传统擦除编码重建时的大量网络流量,微软在 Windows Server 2016 中引入了 Local Reconstruction Code(LRC) 技术。
LRC 的核心思想是:
将一个大的擦除编码组拆分为多个较小的局部编码组,仅重建受影响的数据块,而无需读取整个数据集。
相比普通 Reed-Solomon 编码,LRC 具有以下优势:
- 更快的数据恢复速度
- 更低的网络带宽消耗
- 更少的 CPU 开销
- 更高的大规模集群可扩展性
因此,在 12 节点及以上集群中,S2D 会自动采用 LRC,而无需管理员手动配置。
3.4 镜像加速奇偶校验(Mirror-Accelerated Parity,MAP)
Windows Server 支持将镜像与奇偶校验结合使用,称为:
Mirror-Accelerated Parity(MAP)
其工作流程如下:
客户端写入
↓
Mirror(高速写入)
↓
后台自动迁移
↓
Parity(节省容量)
因此:
- 写入速度接近镜像
- 长期容量利用率接近奇偶校验
这是 Azure Local 和 Storage Spaces Direct 中推荐的大容量存储方案。
最低要求
使用 MAP 至少需要:
- 4 台服务器
存储效率
实际效率取决于镜像与奇偶校验容量比例,通常介于:
33%~80%
之间。
3.5 各复原方式对比
3.5.1 容错能力与存储效率
| 复原方式 | 最低服务器数 | 可容忍故障域 | 存储效率 | 推荐场景 |
|---|---|---|---|---|
| 双向镜像 | 2 | 1 | 50% | 两节点集群 |
| 三向镜像 | 3 | 2 | 33.3% | 默认推荐 |
| 双奇偶校验 | 4 | 2 | 50%~80% | 容量型存储 |
| 镜像加速奇偶校验(MAP) | 4 | 2 | 33%~80% | Azure Local 推荐 |
3.5.2 双奇偶校验存储效率
混合存储(SSD + HDD)
| 节点数 | 编码方式 | 存储效率 |
|---|---|---|
| 4~6 | RS 2+2 | 50% |
| 7~11 | RS 4+2 | 66.7% |
| 12~16 | LRC (8,2,1) | 72.7% |
全闪存(All Flash)
| 节点数 | 编码方式 | 存储效率 |
|---|---|---|
| 4~6 | RS 2+2 | 50% |
| 7~8 | RS 4+2 | 66.7% |
| 9~15 | RS 6+2 | 75% |
| 16 | LRC (12,2,1) | 80% |
3.6 容错能力示例
采用三向镜像或双奇偶校验时,可安全应对以下典型故障场景(假设群集仲裁正常):
- 单块磁盘故障(包括缓存盘)
- 单台服务器故障
- 一台服务器故障,同时另一台服务器中的一块磁盘故障
- 两台不同服务器分别发生磁盘故障
- 多块磁盘故障,但故障仅分布在两台服务器以内
- 两台服务器同时离线
在上述情况下,所有卷通常仍可保持在线,业务不中断。
3.7 无法容忍的故障场景
虽然 S2D 能够在故障恢复完成后重新建立数据副本,但在同一时刻能够承受的故障域数量仍然存在上限。
对于三向镜像和双奇偶校验,以下情况将导致数据不可用或卷离线:
- 三台及以上服务器同时发生故障。
- 三个及以上故障域同时失效(例如三台服务器同时掉电)。
- 在系统尚未完成数据重建前,又发生超过设计容错能力的额外故障。
因此,微软建议在生产环境中:
- 三节点及以上集群优先使用三向镜像或镜像加速奇偶校验(MAP)。
- 四节点及以上的大规模集群,可根据容量需求选择双奇偶校验或MAP,以在性能、可靠性和存储效率之间取得最佳平衡。
总结
Storage Spaces Direct 的复原机制已经从传统 RAID 模式演进为软件定义的数据保护架构。对于现代 Windows Server 2025 和 Azure Local,微软推荐策略可概括如下:
- 2 节点集群:双向镜像(Two-way Mirror)。
- 3 节点集群:三向镜像(Three-way Mirror),获得最佳可靠性。
- 4 节点及以上集群:优先考虑镜像加速奇偶校验(MAP),兼顾性能与容量。
- 大规模容量型集群(≥12 节点):结合 LRC(Local Reconstruction Code) 与双奇偶校验,可将存储效率提升至 72%~80%,同时保持双故障域容错能力。
需要注意的是,3节点集群是个特例,空间利用率低,性价比也比较低,在生产环境中建议选择2节点或4节点及以上,4节点及以上拥有最大2个节点故障的容错能力。

832

被折叠的 条评论
为什么被折叠?



