GlusterFS集群文件系统专题二(主要术语)

1.Trusted Storage Pool

  • 一堆存储节点的集合
  • 通过一个节点“邀请”其他节点创建,这里叫probe
  • 成员可以动态加入,动态删除
    添加命令如下:
    node1# gluster peer probe node2
    删除命令如下:
    node1# gluster peer detach node3

图1 GlusterFS存储池

2.Bricks

  • Brick是一个节点和一个导出目录的集合,e.g. node1:/brick1
  • Brick是底层的RAID或磁盘经XFS或ext4文件系统格式化而来,所以继承了文件系统的限制
  • 每个节点上的brick数是不限的
  • 理想的状况是,一个集群的所有Brick大小都一样 图2 GlusterFS Bricks

3.Volumes

  • Volume是brick的逻辑组合
  • 创建时命名来识别
  • Volume是一个可挂载的目录
  • 每个节点上的brick数是不变的,e.g.mount –t glusterfs www.std.com:test /mnt/gls
  • 一个节点上的不同brick可以属于不同的卷
  • 支持如下种类:
    a) 分布式卷
    b) 条带卷
    c) 复制卷
    d) 分布式复制卷
    e) 条带复制卷
    f) 分布式条带复制卷

3.1 分布式卷

  • 文件分布存在不同的brick里
  • 目录在每个brick里都可见
  • 单个brick失效会带来数据丢失
  • 无需额外元数据服务器

gluster是没有元数据服务器的,它定位文件和寻址都是通过哈希算法,这里使用的叫Davies-Meyer hash algorithm,可寻址空间为2^32次方,即0-4294967296,例如这里有四个节点,那么0-1073741824为node1的可寻址空间,1073741825-214748348为node2的可寻址空间,以此类推。访问一个文件时,通过文件名计算出一个地址,例如2142011129,属于1073741825-214748348,则将它存在node2中。

分布式卷内部的hash分布如下:

图3 GlusterFS 分布式卷内部的hash分布

分布式卷的读写如下图所示:

图4 GlusterFS 分布式卷

3.2 复制卷

  • 同步复制所有的目录和文件
  • 节点故障时保持数据高可用
  • 事务性操作,保持一致性
  • 有changelog
  • 副本数任意定

复制卷的读写如下图所示:

图5 GlusterFS 复制卷

3.3条带卷

  • 文件切分成一个个的chunk,存放于不同的brick上
  • 只建议在非常大的文件时使用(比硬盘大小还大)
  • Brick故障会导致数据丢失,建议和复制卷同时使用
  • Chunks are files with holes – this helps in maintaining offset consistency

图6 GlusterFS 条带卷

3.3条带复制卷

  • 数据将进行切片,切片在复本卷内进行复制,在不同卷间进行分布

图7 GlusterFS 条带复制卷

3.3分布式复制卷

  • 最常见的一种模式
  • 读操作可以做到负载均衡
  • 复本卷的组成依赖于指定brick的顺序,brick必须为复本数K的N倍,brick列表将以K个为一组,形成N个复本卷

图8 GlusterFS 分布式复制卷

3.4分布式条带复制卷

  • bricks数量为stripe个数N,和repl个数M的积N*M的整数倍
  • exp1 exp2 exp3 exp4组成一个分布卷,exp1和exp2组成一个stripe卷,exp3和exp4组成另一个stripe卷,1和2,3和4互为复本卷,exp4-exp8组成另一个分布卷

图9 GlusterFS 分布式条带复制卷

4.其他术语

  • Client:挂载了GFS卷的设备
  • Extended Attributes:xattr:是一个文件系统的特性,其支持用户或程序关联文件/目录和元数据。
  • FUSE:Filesystem Userspace,是一个可加载的内核模块,其支持非特权用户创建自己的文件系统而不需要修改内核代码,通过在用户空间运行文件系统的代码通过FUSE代码与内核进行桥接
  • Geo-Replication:异地备份,提供了一种持续,异步,增量数据备份策略,可以通过局域网,广域网,英特网来进行
  • GFID:GFS卷中的每个文件或目录都有一个唯一的128位的数据相关联,其用于模拟inode
  • Namespace:每个Gluster卷都导出单个ns作为POSIX的挂载点
  • Node:一个拥有若干brick的设备
  • RDMA:远程直接内存访问,支持不通过双方的OS进行直接内存访问
  • RRDNS:round robin DNS是一种通过DNS轮转返回不同的设备以进行负载均衡的方法
  • Self-heal:用于后台运行检测复本卷中文件和目录的不一致性并解决这些不一致
  • Split-brain:脑裂
  • Volfile:glusterfs进程的配置文件,通常位于/var/lib/glusterd/vols/volname
  • Volume:一组bricks的逻辑集合
# 推荐文章
  1.docker常用容器管理命令
  2.docker镜像管理
  3.dockerfile指令
  4.深刻理解Docker镜像大小
  5.k8s专题[1.k8s基础概念]

评论


:D 一言句子获取中...