跨站点怎么摆数据
跨站点部署要回答两个问题:写入在几个站点算成功,以及站点失效时业务能接受多大的数据缺口。同步复制要求两端都落盘才算成功,数据缺口为零但写延迟被链路往返时延绑定;异步复制先本地成功再后台传送,延迟低但会有分钟级的数据缺口。两种模式的取舍本质上是延迟与数据丢失口径的交换。
基本信息
| 适用类型 | 对象存储、分布式块与文件存储、数据库 |
|---|---|
| 同步复制 | 两端确认后返回,链路时延直接叠加到写延迟 |
| 异步复制 | 本地确认后返回,存在恢复点目标缺口 |
| 规划要素 | 站点数、仲裁位置、链路时延与费用、切换流程 |
典型使用场景
- 同城双活:机房距离近、时延低,适合同步复制
- 异地备份:跨区域异步复制,用于灾难恢复与法规留存
- 两站点加仲裁:容量放在两处,仲裁放第三处以满足多数派要求
- 读写分离:本区域就近读取,跨区域只做复制链路
- 迁移切换:新站点上线后阶段性提升为主站,再回退验证
规划时先测三件事
规划时先测三件事
# 1) 链路往返时延:决定同步复制能否满足业务写延迟
ping -c 20 <对端存储节点>
# 2) 可用带宽与抖动:决定复制积压能否在峰值后追平
mtr -rwzc 200 <对端存储节点>
# 3) 站点故障后的切换时长:决定恢复时间目标能否达标
# 切换演练需要业务方共同参与,测出真实时长而不是理论值两种复制模式对照
| 维度 | 同步复制 | 异步复制 |
|---|---|---|
| 写延迟 | 叠加链路往返时延 | 基本不受链路影响 |
| 数据缺口 | 为零,切换后数据完整 | 存在一段时间的丢失窗口 |
| 适用距离 | 同城或低时延专线 | 异地、跨区域 |
| 容量开销 | 两端都要预留足量空间 | 可压缩传输并延时清理 |
部署与演练要点
- 先把故障域画清楚:机架、机房、供电与链路是否真的独立
- 仲裁节点放在第三处且网络稳定,避免它成为新的单点
- 复制带宽要为峰值留余量,否则积压越滚越大追不平
- 切换流程写成可执行清单并定期演练,包含回切条件
- 记录切换与回切时长的实测值,用真实数字校准恢复时间目标
跨站点规划里最容易被低估的是「切回来」:回切往往比首次切换更复杂,需要先确认旧站点数据已被追平,否则回切会引入新的数据缺口。
两个站点各放一半容量且没有第三方仲裁时,链路中断会导致谁都拿不到多数派;这类架构只能停写,不能靠人工指定某一侧继续服务。