Windows Server 2025的S2D分布式存储的设计逻辑实际就是slab allocator fault domain rack aware placement一、先给结论在 S2DWindows Server 2025里slab allocator 并不是简单“轮询分配磁盘”而是一个“故障域感知 拓扑约束 负载均衡”的分布式分配器。它的目标是副本分散在不同 fault domain节点/机架/站点避免相关性故障rack failure / ToR failure保证写入路径低延迟保证后续 re-balance 可行二、S2D slab allocator 的真实分层结构S2D 分配 slab 时其实走的是 4 层决策Fault Domain Layer机架/站点Storage Pool Layer节点集合Capacity IO Load Layer容量/负载Physical Disk LayerNVMe/SSD三、核心组件Slab Allocator 做什么Slab Allocator 的职责不是“存数据”而是决定每个 slab 的“副本应该放在哪些 fault domain 哪些磁盘”输出结果类似四、关键机制 Fault Domain AwarenessWindows Server 2025 S2D 默认支持三种 fault domain参考微软 campus cluster 设计已经原生支持 rack domain slab allocator 的第一步先选 fault domain再选 disk例如 3-way mirror必须Node ARack1Node BRack2Node CRack3 强制“故障隔离”五、核心机制 2Placement Policy放置策略S2D slab allocator 有一个“隐式策略引擎”1️⃣ 3-way mirror最典型约束3 copies must be in 3 different fault domains规则不能同 node尽量不同 rack尽量不同 enclosure2️⃣ 2-way mirror2 copies → 2 fault domains但 allocator 会优先不同 node不同机架如果存在3️⃣ parity / erasure codingallocator 会额外考虑stripe width列数rebuild domainIO locality六、核心机制 Rack-aware slab placement当启用 rack fault domain2025增强点allocator 变成 Rack-first placement写入逻辑示例4 rack clusterSlab 1001七、核心机制 Capacity IO aware allocationSlab allocator 不只是看“空闲空间”还看1️⃣ capacity weightfree space ratio2️⃣ IO loadqueue depth / latency3️⃣ disk class优先级NVMe SSD HDD八、核心机制 Failure prediction avoidanceWindows Server 2025 的 allocator 会避免同一 PCIe root complex同一 storage bus segment同一 storage enclosure如果识别到 这是 Software Storage Bus fault domain 联动结果九、跨机架/跨数据中心是怎么做的这是重点。1️⃣ 跨机架Rack-aware S2D✔ 通过 Fault Domain XML 定义allocator 自动slab 复制跨 rackwrite quorum 跨 rackrebuild 跨 rack 完全自动2️⃣ Campus Cluster跨楼宇/站点Windows Server 2025 支持 campus cluster特点rack domain site domainslab 强制跨 site 分布可 survive rack failure3️⃣ 真正“跨数据中心”⚠️ 这里要非常关键区分S2D 本身不做跨 DC replication跨 DC 是 Storage Replica另外一层S2D slab allocator只在 single cluster domain 内工作不跨 WAN不跨 data center replication十、关键Slab allocator vs CRUSHCeph对比十一、你可以用一句话理解它S2D slab allocator “基于 fault domain 的智能分布式 RAID 调度器”它做的不是❌ 不只是“找空盘写入”❌ 不只是“hash分布”而是✔ 先保证故障隔离✔ 再做容量均衡✔ 最后优化 IO 性能