GlusterFS Architecture

查看原文

GlusterFS 是一个分布式的文件系统,基本存储单元是 Brick,一组 Bricks 组成一个 Volume,一个 Volume 通过 FUSE 挂载到 Mount Point 上。大多数操作的基本单元是 Volume。

GlusterFS 可以使用多种 Volume:

  • 默认:文件存储于单个 Brick 上。这也意味着数据可能因为硬件原因造成丢失。 Distributed Volume
  • Replicated Glusterfs Volume: 文件 Replicate 到多个 Bricks 上。一般首选该模式。 Replicated Clusterfs Volume
  • Distributed Replicated Glusterfs Volume: 文件 Replicate 到某个 Volume 的多个 Bricks 上。 Distributed Replicated Glusterfs Volume
  • Striped Glusterfs Volume: 大文件被切分成小 Chunk,再被分别存储于多个 Volume 的 Bricks 上。 Striped Glusterfs Volume
  • Distributed Striped Glusterfs Volume: 与上面类似,改进是每个 Volume 的多个 Bricks 上。 Distributed Striped Glusterfs Volume

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 穿起来就构成了一次完整的集群读写请求。