← 返回题目列表

分布式存储如何做数据恢复和 Rebalance?

高频 中等 第 4 / 27 题 更新于 2026/07/28
数据恢复Rebalance扩容副本修复

简化版

数据恢复是在节点故障或副本不足时,从健康副本复制数据补齐;Rebalance 是在扩容、缩容或负载不均时重新分布数据。二者都要控制迁移速度,避免恢复流量影响线上读写。

详细版

数据恢复常见流程:

  1. 发现节点宕机或磁盘损坏。
  2. 标记该节点上的副本不可用。
  3. 选择健康副本作为源。
  4. 在其他节点创建新副本。
  5. 校验数据完整性。
  6. 更新元数据和路由。

Rebalance 常见于新增节点、删除节点、分片倾斜、容量不均。它会迁移一部分分片或数据块,让容量和负载更均衡。

关键点:

设计点说明
限速防止迁移打爆网络和磁盘
优先级先恢复副本不足的高风险数据
校验防止复制出错
可中断迁移失败后能继续
观测展示恢复进度和剩余风险

完整版教学

一、数据恢复和 Rebalance 的区别

数据恢复关注“数据安全”。节点坏了,某些数据副本数从 3 变成 2,系统要尽快补回 3 副本。

Rebalance 关注“分布均衡”。新增机器后,如果不迁移数据,新机器是空的,老机器仍然很忙;缩容或热点倾斜时,也需要重新分配数据。

两者都会搬数据,但目标不同:恢复优先保证副本数量,Rebalance 优先保证容量和负载均衡。

二、恢复流程为什么不能太激进

节点宕机后,系统可能有大量副本需要重建。如果所有恢复任务同时跑,网络和磁盘会被打满,正常业务读写延迟上升。

所以恢复任务要限速、排队、分级。

例如副本数只剩 1 的数据风险很高,应该优先恢复;副本数从 3 变 2 的数据可以稍后恢复。

三、数据源如何选择

恢复时要从健康副本复制数据。选择源节点时要考虑:

  1. 源副本是否最新。
  2. 源节点当前负载是否高。
  3. 网络拓扑是否跨机架或跨机房。
  4. 是否会让同一源节点承担太多恢复流量。

如果源副本本身落后,复制出去只会扩大错误。所以恢复前要校验版本、校验和或日志进度。

四、Rebalance 的常见触发场景

新增节点后,要把部分数据迁到新节点,否则新节点没有意义。

删除节点前,要先把该节点负责的数据迁走。

某些分片过热时,也可能把分片拆分或迁移到更强节点。

但 Rebalance 会改变数据位置,路由和元数据必须同步更新。迁移过程中,读写可能同时发生,需要处理双写、转发或短暂锁定。

五、迁移过程中的一致性

数据迁移时最怕一边搬,一边写。

常见做法有:

  1. 先复制全量数据。
  2. 记录迁移期间的增量写入。
  3. 追平增量。
  4. 切换路由。
  5. 清理旧副本。

有些系统会让旧节点在迁移期间转发请求到新节点,或者通过版本号防止旧数据覆盖新数据。

六、恢复和迁移的观测指标

生产环境里,恢复任务不能只在后台默默跑。至少要能看到副本不足的数据量、恢复队列长度、迁移吞吐、剩余时间、失败任务、每个节点的恢复流量和业务请求延迟。

如果恢复速度太慢,数据长时间少副本,风险会升高;如果恢复太快,业务请求会被恢复流量拖慢。好的系统会动态限速,在业务低峰提高恢复速度,在业务高峰降低迁移并发。

还要有危险水位告警,例如某些分片只剩一个副本、某台机器恢复失败次数过多、Rebalance 长时间无法完成。这些都比单纯看节点是否在线更有价值。

七、常见误区与追问

这道题要紧扣「数据恢复与 Rebalance」本身回答,不能把它混成泛泛的分布式存储套话。面试官通常会追问“写入怎么确认、失败怎么补、旧数据怎么防、成本在哪里”,所以回答要覆盖副本、分片、元数据、路由、复制协议、恢复迁移、热点和一致性模型。

回答层次要讲清的内容容易漏掉的边界
核心结论数据恢复负责补齐故障副本,Rebalance 负责节点变化后重新分布数据,核心是控制速度、优先级和业务影响不要停在名词解释
流程机制发现副本缺失或节点变化 -> 计算目标副本布局 -> 选择源副本复制数据 -> 限速迁移和校验 -> 更新元数据路由 -> 清理旧副本要说清触发点、状态变化、确认点和失败兜底
工程取舍10TB 数据恢复如果不限速,会和在线读写争抢磁盘与网络,导致用户请求 P99 飙升分布式存储用复杂的复制、分片和恢复机制换容量、吞吐和可用性,但会引入一致性、扩容和运维成本
数据恢复与 Rebalance 面试拆解:
1. 发现副本缺失或节点变化
2. 计算目标副本布局
3. 选择源副本复制数据
4. 限速迁移和校验
5. 更新元数据路由
6. 清理旧副本

记忆钩子:先给结论,再拆流程,再讲数字例子和失败边界;回答「数据恢复与 Rebalance」时要围绕题目问法收束,不要把相邻概念堆成一段没有重点的名词清单。

  • 误区:恢复越快越好。 恢复会消耗网络、磁盘和 CPU,过快可能拖垮在线业务。
  • 误区:Rebalance 只是搬数据。 还要更新元数据、路由、校验副本和处理失败重试。
  • 误区:有三副本就不急着恢复。 副本数下降会降低容灾能力,再挂节点可能丢数据。
  • 追问:恢复优先级怎么定? 优先恢复副本数不足、热点数据和高价值业务数据。
  • 追问:如何避免迁移影响线上? 限速、分批、低峰执行、优先级队列和监控 P99。
  • 追问:迁移后怎么确认正确? 校验 checksum、版本、行数或对象元数据,并更新路由。

八、加强记忆

数据恢复是“坏了补副本”,Rebalance 是“分布不均重新摊牌”。二者都要搬数据,但不能蛮干;要限速、校验、可中断、可观测,并在迁移期间处理好增量写入和路由切换。