我与DeepSeek读《大型网站技术架构》(11)- 海量分布式存储系统Doris的高可用架构设计分析
文章目录
- 设计目标与高可用定义
- 分布式存储系统高可用架构
- 核心设计原则:冗余与失效转移
- 架构组成部分
- 应用服务器层
- 数据存储服务器集群
- 管理中心服务器
- 数据读写流程
- 应对不同故障的高可用方案
- 瞬时故障处理流程
- 临时故障处理流程
- 故障期间读写
- 恢复期间数据迁移
- 永久故障处理流程
- 故障期间读写
- 恢复期间数据重建
设计目标与高可用定义
Doris是海量分布式KV存储系统,目标是为中等规模集群提供高可用(HA)和可伸缩存储能力。其高可用包含两层含义:
- 服务高可用:在宕机、扩容、维护等场景下仍可读写。
- 数据高可靠:数据持久存储,不丢失。
分布式存储系统高可用架构
核心设计原则:冗余与失效转移
- 数据冗余存储:
每个数据保存多份副本(默认至少两份),分布于不同的物理服务器或存储序列中,避免单点故障。 - 灵活失效转移(Failover):
通过分布式集群的健康监测与动态路由,在部分节点故障时自动切换至可用节点,保证服务连续性。
架构组成部分
应用服务器层
- 从 管理中心服务器 获取存储节点元数据,根据路由算法发起数据操作请求。
- 支持多路径并发写入,随机选择副本读取,降低单个存储节点压力。
数据存储服务器集群
- 副本分布策略:
数据按可用性级别分序列存储(序列指逻辑子集群),每个序列独立承载部分副本。 - 去中心化设计:
节点间不直接通信,各节点独立存储数据,仅依赖管理中心实现元数据同步。
管理中心服务器
- 管理集群节点信息,通过 主-主热备模式 监控存储节点健康状态。
- 负责故障检测、扩容控制及向应用服务器提供集群配置信息。
数据读写流程
- 写入:根据路由算法并发写入多个序列的目标服务器。
- 读取:随机选择序列,按路由计算单节点访问,减少开销。
应对不同故障的高可用方案
瞬时故障处理流程
特征:网络抖动/短暂阻塞(秒级恢复)
临时故障处理流程
特征:人工干预修复(故障持续分钟/小时)
故障期间读写
恢复期间数据迁移
永久故障处理流程
特征:硬盘损坏导致数据完全丢失