首页 产品特性 解决方案 系统架构 文档 关于

架构总览

Architecture

组件详解

Master 服务器 :6700

中心协调节点,管理集群元数据、拓扑信息和条带分配。元数据存储在 MongoDB 中。

Storage 服务器 :6800

管理本地磁盘上的分片存储,CRC32 完整性校验,三层健康监控和后台压缩。

S3 网关 :9000

HTTP 网关,提供 S3 兼容 API。处理 EC 编解码并将数据路由到存储节点。

FUSE 客户端 挂载

在写入时执行 EC 编码,在读取时执行 EC 解码,支持 LRU chunk 缓存和顺序预取。

Web 控制台 :8081

基于浏览器的管理 UI,用于集群监控、配置和管理,内置 32 条告警规则。

MongoDB :27017

元数据存储,保存集群拓扑、Bucket 信息、条带状态、用户账户和访问控制。

数据流

写入路径

  1. 客户端通过 S3 或 FUSE 发送数据
  2. 客户端将数据分割为固定大小的 chunk(默认 256 MB)
  3. 客户端 EC 编码每个 chunk 为数据分片 + 校验分片
  4. 分片通过 gRPC 并行分发到存储节点
  5. 存储节点将分片追加写入裸盘,附带 CRC32 校验
  6. Master 记录分片位置到元数据存储

读取路径

  1. 客户端通过 S3 或 FUSE 请求数据
  2. Master 从元数据存储返回分片位置
  3. 客户端并行从存储节点读取数据分片
  4. 若有分片不可用,使用校验分片执行 EC 恢复
  5. 客户端 EC 解码并重新组装原始数据
  6. 数据返回给应用程序
Data Flow

存储布局

KDSS 绕过文件系统,直接写入裸盘。每块磁盘以双 SuperBlock 开头用于崩溃恢复,后接追加写的数据记录序列。

┌──────────────┬──────────────┬──────────────────────────┐
│ SuperBlock A  │ SuperBlock B │  Data Records (append)   │
│   (4KB)       │   (4KB)      │  Record = Header + Shard │
└──────────────┴──────────────┴──────────────────────────┘

部署拓扑

混合部署 (推荐)

所有组件部署在同一组节点。适用于小型集群(3-5 节点)和测试环境。

┌─────────────────────────────────────┐
│           Node 1 (all-in-one)       │
│  Master + Storage + S3 + Console    │
└──────────────┬──────────────────────┘
               │
┌──────────────┴──────────────────────┐
│           Node 2 (all-in-one)       │
│  Master + Storage + S3              │
└──────────────┬──────────────────────┘
               │
┌──────────────┴──────────────────────┐
│           Node 3 (all-in-one)       │
│  Master + Storage + S3              │
└─────────────────────────────────────┘

横向扩展部署

每个角色使用专用节点。适用于 6+ 节点的大规模集群。

┌──────────┐  ┌──────────┐  ┌──────────┐
│ Master 1 │  │ Master 2 │  │ Master 3 │
└────┬─────┘  └────┬─────┘  └────┬─────┘
     │             │             │
─────┴─────────────┴─────────────┴─────
     │             │             │
┌────┴─────┐  ┌────┴─────┐  ┌────┴─────┐
│Storage 1 │  │Storage 2 │  │Storage 3 │
│ + S3 GW  │  │ + S3 GW  │  │ + S3 GW  │
└──────────┘  └──────────┘  └──────────┘