架构设计
本章节介绍 WANOS 的整体架构、核心角色以及关键工作流程,帮助你理解系统在多区域、多后端场景下是如何流转对象数据的。
核心角色与单入口中心节点
整个系统的核心是 wanos-server 程序,它可以根据配置运行在不同的 角色 下:
中心节点(Center Node)
中心节点是系统的「控制中枢」与「主数据节点」,主要职责包括:
- 统一入口:
- 对外暴露 S3 兼容 API 端口(例如
:9000),处理所有 Bucket / Object 相关请求。 - 这是客户端访问系统的主要入口。
- 对外暴露 S3 兼容 API 端口(例如
- 管理与编排:
- 对内暴露管理 API 端口(例如
:9001),用于节点管理、后端配置、任务调度等,不建议暴露到公网。 - 负责元数据管理、请求分发、数据放置决策等核心逻辑。
- 对内暴露管理 API 端口(例如
- 数据决策:
- 根据策略决定对象数据是直接写入自身管理的后端,还是下发到其他数据节点进行存储。
数据节点(Data Node)
数据节点是可以水平扩展的工作节点,主要职责包括:
- 多级缓存管理:管理本地的内存/磁盘缓存,用于加速读写和吸收突发流量。
- 数据处理执行:按照中心节点的指令,执行具体的数据操作,例如:
- 从后端读写对象
- 在节点间转发分片
- 执行压缩、加密、校验等任务
- 区域部署策略:一般与其管理的后端存储部署在同一地理区域,以降低跨区域延迟。
中心节点与数据节点都运行同一套二进制,只是配置角色和承担的职责不同。
整体架构示意
下面是一个典型的两区域部署示意图:
在实际部署中,可以有多个数据节点和多个区域,上图只是示意其角色分工和数据流向。
典型工作流程:PutObject
以下时序图展示了一个典型的 PutObject 写入流程:
简要说明:
- 客户端先向中心节点申请上传许可,中心节点完成认证授权并选择合适的入口数据节点。
- 客户端按返回的地址,将数据流直接上传到入口数据节点。
- 入口数据节点在接收数据的同时进行分片,并根据中心节点下发的策略,将分片分散写入不同数据节点或本节点自身。
- 各分片写入完成后,中心节点更新元数据数据库,记录分片位置和校验信息。
核心机制:多级缓存(Caching)
所有数据节点都包含一个多级缓存系统,以优化 I/O 性能并降低对后端存储的压力:
- L1:内存缓存
- 缓存最热的数据块,或作为高速写入缓冲区。
- 写入可以先落入内存,快速返回客户端,再异步刷入下一级缓存或后端。
- L2:硬盘缓存
- 基于本地磁盘的容量型缓存层。
- 可缓存从后端读取的温数据,也可作为内存缓存的持久化层和数据转发的中转站,有效吸收突发写流量。
通过多级缓存,系统可以在保证一致性的前提下,兼顾高吞吐与高并发场景下的性能。
核心机制:分片存储(Sharding)
为了支持大文件的高效传输与弹性扩展,WANOS 采用分片(Chunk)机制:
- 文件切分:
- 入口节点在接收完整数据流的同时,将其实时切分为固定大小或策略控制大小的分片。
- 内部分发:
- 入口节点根据中心节点的全局策略,将各个分片实时分发到不同的数据节点或本节点存储。
- 元数据跟踪:
- 元数据数据库中不仅记录对象级信息,还维护每个对象的分片列表,包括顺序、ID、哈希值以及物理位置。
- 数据重构:
- 读取对象时,中心节点根据元数据找到所有分片位置,指令相关节点并行拉取,再在客户端或中心节点侧重新组装成完整文件。
这种设计使得系统可以在多节点、多区域之间灵活地分布和迁移数据,同时在大对象场景下获得更好的吞吐能力。
内部管理与维护任务
除了核心的数据读写流转,WANOS 还包含了一系列后台维护任务,以确保系统的长期健康与数据一致性:
一致性验证 (Consistency Verification):
- 后端校验:Center 会定期或按需下发任务给 DataNode,对特定后端存储进行全量分片校验,核心是验证物理文件的大小和存在性是否符合元数据记录。
- 异常校验:针对被记录为
Failed的副本,系统会进行二次确认,以区分是临时的网络抖动还是永久性的数据丢失。
副本自我修复 (Self-healing):
- Center 节点会定期扫描元数据,发现副本数不足(例如因节点离线、磁盘损坏或策略变更导致)的对象。
- 系统会自动调度 DataNode 从存量副本中选取源,生成新的副本并写入健康的后端,无需人工干预。
元数据增量备份 (Metadata Backup):
- 为了防止数据库单点故障或逻辑错误,系统支持将元数据增量备份至本地文件系统。
- 备份采用 Protobuf 序列化格式,记录对象级视图,支持 Simple(索引)和 Full(完整元数据)两种模式。
垃圾回收 (Garbage Collection):
- 负责清理标记为删除(Archived)的对象分片,以及超时未完成的分段上传(Multipart Upload)碎片。
- 策略可配置,支持回收站模式(延迟删除),为误操作提供一定程度的容错。
通过这些后台机制,WANOS 实现了从单一后端接入到全局数据治理的闭环管理。