RustFS架构

RustFS是一个对象存储系统,类似于众所周知的AWS S3。 作为MinIO的平替产品,RustFS参考了MinIO的简洁、轻量、可扩展、优雅的架构。

对象可以是文档、视频、PDF 文件等。为了存储对象,MinIO 提供了一个可扩展、灵活且高效的解决方案来存储、访问和管理数据。它与 AWS S3 API 的兼容性使得与基于 AWS S3 的应用程序无缝集成。

架构图如下:

RustFS架构图

这是RustFS的基本架构,分布式网格是一种使用多个节点执行单个任务的计算机架构。节点通过网络相互连接,这使得它们能够相互通信。

一致性设计

分布式和单机模式下,所有读写操作都严格遵守read-after-write一致性模型。

RustFS中的几个重要概念

Object(对象):存储到 Minio 的基本对象,如文件、字节流,Anything...

Bucket(桶):用来存储 Object 的逻辑空间。每个 Bucket 之间的数据是相互隔离的。对于客户端而言,就相当于一个存放文件的顶层文件夹。

Drive(磁盘):即存储数据的磁盘,在 MinIO 启动时,以参数的方式传入。Minio 中所有的对象数据都会存储在 Drive 里。

Set(集合):即一组 Drive 的集合,分布式部署根据集群规模自动划分一个或多个 Set ,每个 Set 中的 Drive 分布在不同位置。一个对象存储在一个 Set 上。(有地方也将Set的组合称之为Strips——条带)。

因此,在设计架构和部署设备前需要注意的是:

  1. 一个对象存储在一个Set上;

  2. 一个集群划分为多个Set;

  3. 一个Set包含的Drive数量是固定的,默认由系统根据集群规模自动计算得出;

  4. 一个Set中的Drive尽可能分布在不同的节点上;

特别鸣谢

传统的分布式存储架构中必须存在:Master节点、MetaData 节点和Data Node节点。而这种模式设计,让用户的部署非常复杂。同时,如果没有丰富的分布式存储的管理经验,一旦元数据丢失,数据会出现丢失的风险。

所有的节点均为等层级关系的节点,极大的简化了架构设计并且不用担心元数据丢失,一条命令即可启动。

不失优雅、简单、可靠,而RustFS 采用了和MinIO一样的架构设计。

感谢MinIO提出的架构理念,极大的方便了全球的用户和推广了S3协议。

商业支持购买咨询