在 Windows Server 2025(更准确说是 Failover Clustering + Storage Spaces Direct + SDN 体系)里,Rack(机架)并不是一个"自动识别的硬件概念",而是一个:
👉 逻辑 Fault Domain(故障域),由管理员显式定义 + 集群元数据维护
换句话说:
Windows 不"知道"什么是机架,它只"相信你告诉它什么是机架"。
一、核心结论
在 Windows Server 2025 中:
Rack = Cluster Fault Domain 的一种层级(Node / Chassis / Rack / Site)
它的作用是:
- 控制副本放置(S2D)
- 控制容错边界
- 控制调度与 rebalance
- 控制 SDN / storage / compute 的拓扑感知
二、Rack 的定义机制(核心)
Rack 是通过 Failover Clustering Fault Domain API 定义的。
1️⃣ PowerShell 定义方式
Step 1:创建 Rack 组
New-ClusterFaultDomain -FaultDomainType Rack -Name "Rack01"
Step 2:把节点加入 Rack
Set-ClusterFaultDomain -Name "Node01" -FaultDomain "Rack01"
Step 3:多个 Rack 组成 Site(可选)
New-ClusterFaultDomain -Type Site -Name "DC1"
三、Rack 在系统中的真实数据结构
Windows Cluster 维护的是一个:
Fault Domain Tree(故障域树)
Site (DC1)
├── Rack01
│ ├── Node01
│ ├── Node02
├── Rack02
│ ├── Node03
│ ├── Node04
四、Rack 的核心作用(非常关键)
Rack 在 S2D / CSV / SDN 中有三大用途:
1️⃣ Placement Constraint(放置约束)
例如 S2D 3-way mirror:
必须跨 Rack 放置副本
规则:
- 同一 rack 不能放多个副本
- 优先跨 rack 分布
- 避免 ToR switch 故障影响
2️⃣ Failure Domain Isolation(故障隔离)
Rack 被视为:
shared failure domain
意味着:
- 一个 rack failure = 多节点同时失效
- system must survive rack loss
3️⃣ Rebalance Boundary(重平衡边界)
S2D rebalance 会:
- 优先 rack 内调整(低成本)
- 再跨 rack 调整(高成本)
五、Rack 在 S2D slab allocator 中的作用
slab placement 会遵循:
Rack constraint first
Node constraint second
Disk selection last
典型策略:
1️⃣ 3-way mirror:
Slab A:
Replica1 → Rack1
Replica2 → Rack2
Replica3 → Rack3
2️⃣ Rebalance:
- 优先在 rack 内 swap slab
- 避免跨 rack migration(成本高)
六、Rack 在 SDN / Compute 的作用
不仅是存储,Rack 也用于:
1️⃣ VM placement(Hyper-V)
- anti-affinity rules
- rack-level HA
2️⃣ Network topology awareness
VM → Top-of-Rack switch aware scheduling
3️⃣ Storage + compute co-location optimization
减少:
- RDMA hop
- east-west traffic
七、Rack 的本质(非常重要)
Windows Server 2025 的 Rack:
❗不是物理概念,而是"人为定义的拓扑约束层"
可以理解为:
|---------|-------------------------|
| 层级 | 本质 |
| Node | 计算/存储实体 |
| Rack | failure domain grouping |
| Site | geo failure domain |
| Cluster | control domain |
八、和其他系统对比
|-------------|---------------------------------------|
| 系统 | Rack模型 |
| Windows S2D | 手动定义 fault domain tree |
| Ceph | CRUSH hierarchy(自动+规则) |
| vSAN | fault domain(datastore + host groups) |
最大差异:
🟦 Windows:
rack = administrator-defined metadata
🟧 Ceph:
rack = CRUSH tree inherent structure
九、设计哲学总结
Windows 的设计是:
"拓扑不是自动推断,而是显式建模"
这带来:
✔ 更可控
✔ 更企业化
❌ 需要人工设计
十、一句话总结
在 Windows Server 2025 中,Rack 是 Failover Cluster 中由管理员定义的 Fault Domain 层级,用于约束 S2D 数据副本放置、rebalance 行为以及计算/存储调度的拓扑边界。