GlusterFS Architecture
GlusterFS 是一个分布式的文件系统,基本存储单元是 Brick,一组 Bricks 组成一个 Volume,一个 Volume 通过 FUSE 挂载到 Mount Point 上。大多数操作的基本单元是 Volume。
GlusterFS 可以使用多种 Volume:
- 默认:文件存储于单个 Brick 上。这也意味着数据可能因为硬件原因造成丢失。
- Replicated Glusterfs Volume: 文件 Replicate 到多个 Bricks 上。一般首选该模式。
- Distributed Replicated Glusterfs Volume: 文件 Replicate 到某个 Volume 的多个 Bricks 上。
- Striped Glusterfs Volume: 大文件被切分成小 Chunk,再被分别存储于多个 Volume 的 Bricks 上。
- Distributed Striped Glusterfs Volume: 与上面类似,改进是每个 Volume 的多个 Bricks 上。
GlusterFS 通过 FUSE 挂载到文件系统去。作为用户态的文件系统,所有 libfuse 与 FUSE 内核代码的通信都是通过一个特殊的文件描述符 /dev/fuse
。
Translator 是 GlusterFS 中的核心概念 - 所有请求都被 Translator 处理,进而 a) 产生新的请求 2) 被拦截 3) 修改请求。 Translators 包括:负责读写数据到本地文件系统的 Storage,处理Bricks分布式读写的 Cluster,加解密 Encryption,通信协议 Protocol,权限管理的 System,决定如何调度写请求到集群的 Scheduler 等等。整个 Translator 的两条链 Client-stack 和 Server-stack 穿起来就构成了一次完整的集群读写请求。