前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >​Glusterfs使用心得

​Glusterfs使用心得

作者头像
用户4700054
发布2022-08-17 11:30:07
6950
发布2022-08-17 11:30:07
举报
文章被收录于专栏:存储内核技术交流

Glusterfs介绍

  • Glusterfs是一个分布式文件存储,通过多个主机磁盘聚合,对外提供统一的命令空间的存储文件存储服务。
  • Glusterfs提供丰富的存储策略,支持无副本方式存储、N副本存储、EC存储,针对不同的应用场景提供不同的存储策略。
  • Glusterfs整个架构采用堆栈插件实现,如果用户要实现自定义的功能,只需要实现自己需要的posix语义和对象你想要的功能即可,灵活性比较大。
  • Glusterfs作为无中心架构,扩展性相对比较好。
  • Glusterfs内部采用了弹性哈希算法,Glusterfs客户端针对每个文件在写入集群时候需要计算它父目录的layout和文件名的哈希值,然后选择一个glusterfsd进行写入.Glusterfs把需要计算的部分放到了客户端,Glusterfs服务端相对压力会比较好。
Glusterfs无中心架构
  • glusterfs,作为fuse mount的服务,通过fuse xlator作为入口,通过glusterfs 客户端的dht xlator,最终通过protocol/client xlator,数据直接送到glusterfsd进行IO操作。其中上图中的白色框内,是每个glusterfsd负责的写入数据的哈希范围。这个设计和ceph有一些类似。glusterfs每个进程的服务,都包含了一堆的xaltor.

glusterfs集群中每个进程服务都是由一组xlator来做对应的功能,每个请求都是从每个进程的中最上面一个xlator顺序执行到最后一个xlator,来实现本进程的工作,上图中的每个进程仅仅罗列了部分的xlator.glusterfs实现中客户端实现最重,体现在比较核心的三个模块,cluster/distribute、cluster/ec、cluster/replicate这三块,分别在客户端实现了哈希卷、EC卷、多副本卷的逻辑。每个客户端在使用mount时候会和glusterd通信获取到当前集群的拓扑信息,客户端通过弹性哈希算法来决定数据存储的位置,后续直接和对应的glusterfsd通信来完成IO

glusterfs服务端,在glusterfs集群中体现在glusterfsd的进程,这里主要是数据读写的一些io thread、网络请求接受和发送、访问控制、锁、刷盘的操作的xlator集合。

glusterd是glusterfs集群中管理进程,负责拉起glusterfsd服务、配置变更通知glusterfs客户端和glusterfsd,让他们各自根据变动来重新加载xlator.glusterd是通过读取glusterfs的集群配置来完成的,如下是glusterd加载的xaltor

代码语言:javascript
复制
volume management
	// 定义glusterd加载的xaltor,这里对应的是glusterfs源代码中的xlator的实现目录
    type mgmt/glusterd
    option rpc-auth.auth-glusterfs on
    option rpc-auth.auth-unix on
    option rpc-auth.auth-null on
    option rpc-auth-allow-insecure on
    option transport.listen-backlog 1024
    option max-port 60999
    option event-threads 1
    option ping-timeout 0
    option transport.socket.listen-port 24007
    option transport.socket.read-fail-log off
    option transport.socket.keepalive-interval 2
    option transport.socket.keepalive-time 10
    option transport-type socket
    // 这里是最核心的,是整个glusterfs集群的目录配置
    option working-directory /var/lib/glusterd
end-volume

Glusterfs 实际工程中的使用心得
  • glusterfs的稳定性不错,适合容量和带宽形的业务。
  • glusterfs的可配置参数比较多,需要掌握一些核心参数的实现,这样对于运行原理和运维上会有很大的帮助
  • glusterfs 的客户端实现比较重,大部分核心逻辑都在客户端,对于研发来说这块有很大的改进空间。
  • 在实际的使用过程中,建议使用比较新的release版本,目前旧版的小问题比较多;如果有研发实力最好自己维护一个分支。
  • glusterfs 目前社区活跃度还不错,但是周边生态做的比较差。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 存储内核技术交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Glusterfs介绍
    • Glusterfs无中心架构
      • Glusterfs 实际工程中的使用心得
      相关产品与服务
      对象存储
      对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档