三者虽然都做放数据这件事但底层的图论范式完全不同。本文从图模型、求解范式到工程取舍逐层拆开最后给一个能记一辈子的对比框架。一、先给结论三种范式三种哲学维度S2D (Storage Spaces Direct)VSAN (vSAN)Ceph (CRUSH)图模型动态加权约束图全局可见半自治域约束图disk group 内静态层次树 伪随机函数核心思想细粒度 Slab 扑克牌式分发与容量绝对对齐策略驱动的容量 故障域合规hash hierarchy pseudo-random placement本质问题元数据集中式分配与对齐策略合规优化函数映射优化目标容量绝对均衡 故障域隔离IO/Latency 由存储栈保证容量均衡 故障域 策略合规无确定性计算Rebalance拓扑变更触发 / 细粒度增量 move阈值触发 RVC 周期触发后重映射 PG backfill一致性来源metadata coordinator (WAC)vCenter DOM 集群algorithmic determinism故障响应改图 → 集中式元数据重分配改图 → 阈值触发重平衡重算 CRUSH → backfill资源池粒度跨节点全局 PoolDisk Group 内自治全集群 OSD 树一句话S2D 把存储变成基于集中元数据的全盘容量对齐问题VSAN 把存储变成策略驱动的合规优化问题Ceph 把存储变成可计算的映射函数。越往左越依赖元数据状态越往右越可扩展。二、谱系定位从函数到全维度优化如果把三者放在一条谱上三、S2D 的图论本质元数据驱动的细粒度等量分发1. 图模型动态增量图全局可见G(S,D,E)S slabs / extents数据块D disks物理存储E 可选放置关系S2D 的特点是整个集群构成一个统一资源池优化器能看到所有 S、所有 D、所有故障域。2. 边权重 容量对齐与故障域约束S2D 并不是在后台持续根据实时的 IO 延迟Latency或热点去漂移和交换数据其重平衡算法本身不感知实时 IO。它的分配逻辑类似于“发扑克牌”核心目标是让每一张牌Slab均匀交错地落到每块盘上容量平衡Capacity Balance追求全集群所有物理盘的已用容量百分比绝对均等。故障域惩罚Fault Domain Penalty强约束确保同一条带的数据副本如三副本绝对落在不同的物理节点、机架或机箱中。3. Rebalance 离散的水位微调触发机制属于离散触发非后台持续。当集群扩容加新盘、缩容拔旧盘或设备故障 15 分钟后触发。操作语义move slabreassign replica本质由于其数据块粒度仅 256MB单次移动数据的代价极小属于增量、细粒度的容量对齐IO 表现温和。四、VSAN 的图论本质策略驱动的合规优化1. 图模型半自治域约束图VSAN 的资源池是分层的Cluster ├── Disk Group 1 (node A) ← 局部优化域 │ ├── Cache Tier (SSD) │ └── Capacity Tier (HDD/SSD) ├── Disk Group 2 (node B) ← 局部优化域 │ ├── Cache Tier │ └── Capacity Tier └── ...关键区别每个 Disk Group 是一个相对独立的优化域跨节点通过策略 容量阈值协调不是持续多维权衡。2. 边权重 策略合规 cost functionVSAN 的 cost function 没有 S2D 那么花哨更聚焦于业务需求 故障域合规C(Si,Dj)α⋅capacity balanceβ⋅fault domain complianceγ⋅policy adherence注意IO / latency不主导决策——这些由底层存储栈和 SPBMStorage Policy Based Management保证而不是 rebalance 算法。本质策略驱动的容量 故障域合规优化。3. Rebalance 阈值触发 RVC 周期VSAN 不是持续优化而是触发式容量 / 故障阈值突破时触发周期式RVC (Reliability, Availability, Serviceability) 周期检查目标导向把数据迁移到合规位置即可不追求全局最优操作语义move componentrebuild mirror / RAIDcomply with FTT / stripe width 等价于在策略约束下调整图的边集合以满足合规性。5. S2D vs VSAN关键差异维度S2DVSAN优化目标全盘容量绝对对齐 故障域隔离容量均衡 故障域 策略合规资源池跨节点全局 PoolDisk Group 内自治求解方式拓扑变更触发、近实时增量微调阈值触发 RVC 周期IO/latency 权重弱重平衡不参与实时 IO 调度弱不参与 rebalance协调器集群内 WAC / ClusSvcvCenter DOM故障域机箱、机架、site 三级可声明默认机架级ESA 可声明 site直觉类比S2D 像资深纸牌发牌官每次发牌Slab都把每个人的牌数算得死死的容量对齐平时大家不准换牌只有有人掀桌子或者新加人时拓扑变更他才重新精准倒腾牌堆。VSAN 像分公司自治 总部协调分公司先自治总部只在不达标时介入五、Ceph CRUSH 的图论本质确定性函数映射1. 核心不是图是树 哈希函数CRUSH Map hierarchy treeroot ├── datacenter │ ├── rack │ │ ├── host │ │ │ ├── osd2. Placement deterministic functionPGCRUSH(x) → OSD set3. 本质是伪随机函数映射不是优化问题是函数求值问题。给定 PG id CRUSH map → 输出唯一OSD 集合没有更好或更差。4. CRUSH 不是找最优而是算唯一结果✔ 不评估代价✔ 不比较 placement✔ 只做 consistent hashing 树遍历六、最关键差异优化 vs 合规 vs 函数S2DVSANCeph CRUSH数学表达dealing(Slabs, Pool Disks)satisfy(policy,placement)DjCRUSH(Si,map)问题类型集中式元数据等量分发约束满足函数求值求解方式拓扑变更触发增量对齐阈值触发 / 周期检查直接计算输出物理盘容量绝对均等合规 / 不合规唯一确定的放置优化目标维度2 维容量与故障域2-3 维0 维无优化S2D 是元数据状态对齐VSAN 是局部合规Ceph 是函数查表。七、图论模型对比核心可视化S2D元数据空间分发图特点全局元数据维护分配表图结构因物理拓扑变更而增量改写平时处于完全对齐的静止状态VSAN半自治域约束图特点域内可优化容量、故障域域间靠阈值/策略协调图是分段活的Ceph静态函数图特点图结构固定CRUSH map 变更前不动无权重优化不做 swap八、Rebalance 的本质差异重点范式本质操作类比S2Dmetadata distributionmove slabs, balance capacitydealing playing cards (发扑克牌)VSANpolicy compliancemove component, rebuild, comply with FTTconstraint satisfactionCephpartial remapping重新 hash PG, backfill missing objectsconsistent hashing ring adjustmentIO 特征对比S2DVSANCephRebalance 触发拓扑变更触发阈值 周期拓扑变更后触发IO 粒度细粒度、256MB增量组件级PG 级批量IO 可预测性高增量动作温和高按策略极高受影响 PG 集合确定单次数据移动量小且可控中等大bulk backfill九、故障处理方式图论角度S2DVSANCeph故障发生graph changes → re-optimize locallythreshold triggered → move componentCRUSH recalculation → backfill视图更新动态更新集中分配元数据域内调整 跨域协调重新计算受影响 PG 的 OSD 集合数据迁移细粒度、增量补齐数据合规化、策略驱动确定性、bulk movement十、复杂度对比维度S2DVSANCephplacement集中式等量规划约束满足多项式O(logn) 树遍历rebalance离散触发增量微调阈值触发离散确定性重计算一次性runtime cost低元数据变更才介入minimal but adaptive低纯算法IO movementminimal but adaptive策略合规导向more predictable bulk movement中心节点强依赖协调器 (WAC)依赖 vCenter DOM无中心横向扩展性较弱中等极强十一、直觉类比S2D 资深纸牌发牌官像发扑克牌一样精确地把 256MB 的空间平分到全集群每块盘的口袋里。平时发完就静止只有牌局人数变了扩缩容/故障他才重新进场精准增量倒腾牌堆对牌局冲击很小。VSAN 分公司自治 总部协调像连锁酒店运营每家分公司Disk Group先管好自己总部只在入住率超标、客诉率超标时介入不是持续优化是达标管理。Ceph GPS 导航系统像 GPS 路径规划输入起点终点算法按固定规则算出唯一路径。路径变了是因为路网变了拓扑变更不是算法在权衡算出来就行不管好坏。十二、为什么这个对比很重要架构意义S2D 的优势与代价优势✅ 贴数据移动粒度极细256MB Slab✅ 重平衡最“温和”对前端业务冲击极小✅ 适合企业级Hyper-V闭环控制✅ 全集群容量水位绝对对齐代价⚠️ 强依赖集群元数据协调器成性能瓶颈⚠️ 大规模下元数据同步开销大⚠️ 横向扩展性Scale-Out受限⚠️ 不感知实时IO热点VSAN 的优势与代价优势✅ 策略驱动业务语义清晰✅ 资源池分层扩展性比 S2D 好✅ 与 vSphere / vCenter 深度集成✅ 运维简单SPBM 统一管理代价⚠️ IO/latency 不主导 rebalance⚠️ Disk Group 内优化能力有限⚠️ 强依赖 vCenter 生态Ceph 的优势与代价优势✅ 极度可扩展✅ 完全无中心✅ 算法稳定、可预测✅ 大规模场景PB 级首选✅ 硬件异构友好代价⚠️ 单次 rebalance 数据移动量大⚠️ CRUSH map 变更影响面难精确控制⚠️ 不感知 IO 热点⚠️ 调优依赖 CRUSH rules 权重设计十三、最本质差异一句话总结S2D把存储问题变成一个集中数据驱动的空间等量分发与对齐问题。VSAN把存储问题变成一个策略驱动的合规优化问题。Ceph把存储问题变成一个可计算的映射函数。十四、给实践者的选型直觉场景更适合Windows / Hyper-V 生态、企业闭环S2D想精确控制和控制每一次数据迁移代价细粒度S2DvSphere 生态、策略驱动、运维简单VSAN想按业务策略自动合规VSAN超大规模、对象 / 块混合、云原生Ceph硬件异构、频繁扩缩容Ceph十五、范式选择的本质问题选哪种范式本质上是在回答三个问题你能接受多复杂的协调器能接受 → S2D中等 → VSAN不要 → Ceph你的 IO 模式是否需要动态优化强需求 → S2D弱需求 → VSAN / Ceph你的规模上限在哪里 100 节点 → S2D / VSAN500 节点 → Ceph如果只能记一件事S2D 是元数据发牌官”VSAN 是策略合规审计员Ceph 是GPS路径计算器。
分布式存储的三种图论范式:S2D、VSAN 与 Ceph CRUSH 的本质差异
三者虽然都做放数据这件事但底层的图论范式完全不同。本文从图模型、求解范式到工程取舍逐层拆开最后给一个能记一辈子的对比框架。一、先给结论三种范式三种哲学维度S2D (Storage Spaces Direct)VSAN (vSAN)Ceph (CRUSH)图模型动态加权约束图全局可见半自治域约束图disk group 内静态层次树 伪随机函数核心思想细粒度 Slab 扑克牌式分发与容量绝对对齐策略驱动的容量 故障域合规hash hierarchy pseudo-random placement本质问题元数据集中式分配与对齐策略合规优化函数映射优化目标容量绝对均衡 故障域隔离IO/Latency 由存储栈保证容量均衡 故障域 策略合规无确定性计算Rebalance拓扑变更触发 / 细粒度增量 move阈值触发 RVC 周期触发后重映射 PG backfill一致性来源metadata coordinator (WAC)vCenter DOM 集群algorithmic determinism故障响应改图 → 集中式元数据重分配改图 → 阈值触发重平衡重算 CRUSH → backfill资源池粒度跨节点全局 PoolDisk Group 内自治全集群 OSD 树一句话S2D 把存储变成基于集中元数据的全盘容量对齐问题VSAN 把存储变成策略驱动的合规优化问题Ceph 把存储变成可计算的映射函数。越往左越依赖元数据状态越往右越可扩展。二、谱系定位从函数到全维度优化如果把三者放在一条谱上三、S2D 的图论本质元数据驱动的细粒度等量分发1. 图模型动态增量图全局可见G(S,D,E)S slabs / extents数据块D disks物理存储E 可选放置关系S2D 的特点是整个集群构成一个统一资源池优化器能看到所有 S、所有 D、所有故障域。2. 边权重 容量对齐与故障域约束S2D 并不是在后台持续根据实时的 IO 延迟Latency或热点去漂移和交换数据其重平衡算法本身不感知实时 IO。它的分配逻辑类似于“发扑克牌”核心目标是让每一张牌Slab均匀交错地落到每块盘上容量平衡Capacity Balance追求全集群所有物理盘的已用容量百分比绝对均等。故障域惩罚Fault Domain Penalty强约束确保同一条带的数据副本如三副本绝对落在不同的物理节点、机架或机箱中。3. Rebalance 离散的水位微调触发机制属于离散触发非后台持续。当集群扩容加新盘、缩容拔旧盘或设备故障 15 分钟后触发。操作语义move slabreassign replica本质由于其数据块粒度仅 256MB单次移动数据的代价极小属于增量、细粒度的容量对齐IO 表现温和。四、VSAN 的图论本质策略驱动的合规优化1. 图模型半自治域约束图VSAN 的资源池是分层的Cluster ├── Disk Group 1 (node A) ← 局部优化域 │ ├── Cache Tier (SSD) │ └── Capacity Tier (HDD/SSD) ├── Disk Group 2 (node B) ← 局部优化域 │ ├── Cache Tier │ └── Capacity Tier └── ...关键区别每个 Disk Group 是一个相对独立的优化域跨节点通过策略 容量阈值协调不是持续多维权衡。2. 边权重 策略合规 cost functionVSAN 的 cost function 没有 S2D 那么花哨更聚焦于业务需求 故障域合规C(Si,Dj)α⋅capacity balanceβ⋅fault domain complianceγ⋅policy adherence注意IO / latency不主导决策——这些由底层存储栈和 SPBMStorage Policy Based Management保证而不是 rebalance 算法。本质策略驱动的容量 故障域合规优化。3. Rebalance 阈值触发 RVC 周期VSAN 不是持续优化而是触发式容量 / 故障阈值突破时触发周期式RVC (Reliability, Availability, Serviceability) 周期检查目标导向把数据迁移到合规位置即可不追求全局最优操作语义move componentrebuild mirror / RAIDcomply with FTT / stripe width 等价于在策略约束下调整图的边集合以满足合规性。5. S2D vs VSAN关键差异维度S2DVSAN优化目标全盘容量绝对对齐 故障域隔离容量均衡 故障域 策略合规资源池跨节点全局 PoolDisk Group 内自治求解方式拓扑变更触发、近实时增量微调阈值触发 RVC 周期IO/latency 权重弱重平衡不参与实时 IO 调度弱不参与 rebalance协调器集群内 WAC / ClusSvcvCenter DOM故障域机箱、机架、site 三级可声明默认机架级ESA 可声明 site直觉类比S2D 像资深纸牌发牌官每次发牌Slab都把每个人的牌数算得死死的容量对齐平时大家不准换牌只有有人掀桌子或者新加人时拓扑变更他才重新精准倒腾牌堆。VSAN 像分公司自治 总部协调分公司先自治总部只在不达标时介入五、Ceph CRUSH 的图论本质确定性函数映射1. 核心不是图是树 哈希函数CRUSH Map hierarchy treeroot ├── datacenter │ ├── rack │ │ ├── host │ │ │ ├── osd2. Placement deterministic functionPGCRUSH(x) → OSD set3. 本质是伪随机函数映射不是优化问题是函数求值问题。给定 PG id CRUSH map → 输出唯一OSD 集合没有更好或更差。4. CRUSH 不是找最优而是算唯一结果✔ 不评估代价✔ 不比较 placement✔ 只做 consistent hashing 树遍历六、最关键差异优化 vs 合规 vs 函数S2DVSANCeph CRUSH数学表达dealing(Slabs, Pool Disks)satisfy(policy,placement)DjCRUSH(Si,map)问题类型集中式元数据等量分发约束满足函数求值求解方式拓扑变更触发增量对齐阈值触发 / 周期检查直接计算输出物理盘容量绝对均等合规 / 不合规唯一确定的放置优化目标维度2 维容量与故障域2-3 维0 维无优化S2D 是元数据状态对齐VSAN 是局部合规Ceph 是函数查表。七、图论模型对比核心可视化S2D元数据空间分发图特点全局元数据维护分配表图结构因物理拓扑变更而增量改写平时处于完全对齐的静止状态VSAN半自治域约束图特点域内可优化容量、故障域域间靠阈值/策略协调图是分段活的Ceph静态函数图特点图结构固定CRUSH map 变更前不动无权重优化不做 swap八、Rebalance 的本质差异重点范式本质操作类比S2Dmetadata distributionmove slabs, balance capacitydealing playing cards (发扑克牌)VSANpolicy compliancemove component, rebuild, comply with FTTconstraint satisfactionCephpartial remapping重新 hash PG, backfill missing objectsconsistent hashing ring adjustmentIO 特征对比S2DVSANCephRebalance 触发拓扑变更触发阈值 周期拓扑变更后触发IO 粒度细粒度、256MB增量组件级PG 级批量IO 可预测性高增量动作温和高按策略极高受影响 PG 集合确定单次数据移动量小且可控中等大bulk backfill九、故障处理方式图论角度S2DVSANCeph故障发生graph changes → re-optimize locallythreshold triggered → move componentCRUSH recalculation → backfill视图更新动态更新集中分配元数据域内调整 跨域协调重新计算受影响 PG 的 OSD 集合数据迁移细粒度、增量补齐数据合规化、策略驱动确定性、bulk movement十、复杂度对比维度S2DVSANCephplacement集中式等量规划约束满足多项式O(logn) 树遍历rebalance离散触发增量微调阈值触发离散确定性重计算一次性runtime cost低元数据变更才介入minimal but adaptive低纯算法IO movementminimal but adaptive策略合规导向more predictable bulk movement中心节点强依赖协调器 (WAC)依赖 vCenter DOM无中心横向扩展性较弱中等极强十一、直觉类比S2D 资深纸牌发牌官像发扑克牌一样精确地把 256MB 的空间平分到全集群每块盘的口袋里。平时发完就静止只有牌局人数变了扩缩容/故障他才重新进场精准增量倒腾牌堆对牌局冲击很小。VSAN 分公司自治 总部协调像连锁酒店运营每家分公司Disk Group先管好自己总部只在入住率超标、客诉率超标时介入不是持续优化是达标管理。Ceph GPS 导航系统像 GPS 路径规划输入起点终点算法按固定规则算出唯一路径。路径变了是因为路网变了拓扑变更不是算法在权衡算出来就行不管好坏。十二、为什么这个对比很重要架构意义S2D 的优势与代价优势✅ 贴数据移动粒度极细256MB Slab✅ 重平衡最“温和”对前端业务冲击极小✅ 适合企业级Hyper-V闭环控制✅ 全集群容量水位绝对对齐代价⚠️ 强依赖集群元数据协调器成性能瓶颈⚠️ 大规模下元数据同步开销大⚠️ 横向扩展性Scale-Out受限⚠️ 不感知实时IO热点VSAN 的优势与代价优势✅ 策略驱动业务语义清晰✅ 资源池分层扩展性比 S2D 好✅ 与 vSphere / vCenter 深度集成✅ 运维简单SPBM 统一管理代价⚠️ IO/latency 不主导 rebalance⚠️ Disk Group 内优化能力有限⚠️ 强依赖 vCenter 生态Ceph 的优势与代价优势✅ 极度可扩展✅ 完全无中心✅ 算法稳定、可预测✅ 大规模场景PB 级首选✅ 硬件异构友好代价⚠️ 单次 rebalance 数据移动量大⚠️ CRUSH map 变更影响面难精确控制⚠️ 不感知 IO 热点⚠️ 调优依赖 CRUSH rules 权重设计十三、最本质差异一句话总结S2D把存储问题变成一个集中数据驱动的空间等量分发与对齐问题。VSAN把存储问题变成一个策略驱动的合规优化问题。Ceph把存储问题变成一个可计算的映射函数。十四、给实践者的选型直觉场景更适合Windows / Hyper-V 生态、企业闭环S2D想精确控制和控制每一次数据迁移代价细粒度S2DvSphere 生态、策略驱动、运维简单VSAN想按业务策略自动合规VSAN超大规模、对象 / 块混合、云原生Ceph硬件异构、频繁扩缩容Ceph十五、范式选择的本质问题选哪种范式本质上是在回答三个问题你能接受多复杂的协调器能接受 → S2D中等 → VSAN不要 → Ceph你的 IO 模式是否需要动态优化强需求 → S2D弱需求 → VSAN / Ceph你的规模上限在哪里 100 节点 → S2D / VSAN500 节点 → Ceph如果只能记一件事S2D 是元数据发牌官”VSAN 是策略合规审计员Ceph 是GPS路径计算器。