设为首页 收藏本站
查看: 708|回复: 0

[经验分享] GlusterFS基础知识

[复制链接]

尚未签到

发表于 2019-2-1 11:06:28 | 显示全部楼层 |阅读模式
  一、什么是GlusterFS
  glusterfs是一个横向扩展的分布式文件系统,就是把多台异构的存储服务器的存储空间整合起来给用户提供统一的命名空间。用户访问存储资源的方式有很多,可以通过NFS,SMB,HTTP协议等访问,还可以通过gluster本身提供的客户端访问。
  二、典型部署拓扑图

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

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


  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失效会带来数据丢失
  无需额外元数据服务器
  分布式卷内部的hash分布如下:

  gluster是没有元数据服务器的,它定位文件和寻址都是通过哈希算法,这里使用的叫Davies-Meyer hash algorithm,可寻址空间为2^32次方,即0-4294967296,例如这里有四个节点,那么0-1073741824为node1的可寻址空间,1073741825-214748348为node2的可寻址空间,以此类推。访问一个文件时,通过文件名计算出一个地址,例如2142011129,属于1073741825-214748348,则将它存在node2中。
  3.2 复制卷
  同步复制所有的目录和文件
  节点故障时保持数据高可用
  事务性操作,保持一致性
  有changelog
  副本数任意定
  复制卷的读写如下图所示:

  3.3分布式复制卷
  最常见的一种模式
  读操作可以做到负载均衡
  3.4 条带卷
  文件切分成一个个的chunk,存放于不同的brick上
  只建议在非常大的文件时使用(比硬盘大小还大)
  Brick故障会导致数据丢失,建议和复制卷同时使用
  Chunks are files with holes – this helps in maintaining offset consistency.
  4、接入机制
  FUSE based Native protocol
  NFSv3
  SMB
  Libgfapi
  ReST/HTTP
  HDFS
  4.1 FUSE based native access
  原生客户端接入时,请求某一文件时直接定位到该文件在那一台或几台节点上,向那几台节点发出请求,完成操作,如下图所示:

  4.2 NFS access
  NFS或SMB等其他协议接入就不那么简单了,首先要经过一层负载均衡服务,可能是RRDNS,还有HA服务,这些服务并不是gluster自带的,要自行部署,RRDNS就是在各个节点中找一台负载轻的把请求发过去,HA,可能用的ctdb或其他,是当它要发请求的那一台节点故障了,就把请求转移到另一台节点。总之,事先找到一台节点把请求发过去,这里是通过节点上的NFS服务器完成的请求,但是所请求的文件不一定在那台节点上,所以还要经过一步,就是在那台节点上再找这个文件在哪里,重新定位到有这个文件的节点,从而完成操作,对比原生客户端接入,可以看到这里要复杂的多,所以NFS访问性能并不理想。


  4.3 libgfapi
  提供编程接口,通过这个接口写程序访问
  减少了上下文切换
  通过这个接口集成了qemu, samba, NFS Ganesha
  同步和异步的接口都提供
  实现各种语言的绑定
  4.4 libgfapi v/sFUSE-FUSE access
    gluster是用户空间的文件系统,只能通过FUSE和内核交互,所以传下来的的命令都是先由内核虚拟文件系统VFS接受,FUSE注册的一个虚拟设备/dev/fuse知道这时候来了一个请求,就接受过来,不传到底层XFS或EXT4...文件系统了,有gluster在FUSE中注册的一系列读写程序来处理,完成这个请求,这一系列读写处理就是通过网络传出去,在节点的glusterfsd接收到请求后,完成操作,再将结果通过网络回传到客户端,如下图所示:


  4.5 libgfapi v/sFUSE-libgfapi access
  为什么gluster会提供api接口将应用集成到gluster内部呢,因为像外部的NFS,SMB那些,本身是不能跟gluster通信的,他们只能通过fuse,就是NFS液相FUSE传递信息,gluster也向fuse传递信息,他俩就通信了,这样很不方便,会经历内核这一层,这样一来就要消耗很多资源了,也会耗时间,而且没有必要,两个人在一起就好了是不是,fuse好多余。于是通过gluster自己封装的一个接口,将NFS,SMB什么的都集成起来,他们就在一起了,如下图所示,整个流程轻松了许多。


  5、Customizable Translator Stack
  Translator相当于gluster中的功能模块,一个或多个translator加在一起完成一个功能,比如说cache的设置,线程数的设置,内置NFS的相关设置等,translator之间是堆栈形式一层一层组织的,并不是无序的。

  6、Ecosystem Integration(集成生态系统)
  OpenStack:这个很有名了,可以理解为一套工具让你通过他享受公有云和私有云以及其他相关的各种服务
  Samba:windows和unix之间实现资源共享
  Ganesha:一个印度人写的用户空间的NFS,这个印度人起了个难读的名字,和印度一个长着大象鼻子的智慧神一样的,叫伽内什
  oVirt:基于KVM(Kernel-based Virtual Machine) 的虚拟化存储管理软件
  qemu:也是和虚拟化相关的
  Hadoop:分布式并行计算的,是MapReduce生态圈的
  pcp:我也不知道是啥
  Proxmox:Proxmox VE (Proxmox Virtual Environment) 是一个集成OPENVZ 支持KVM应用的环境
  uWSGI:基于Python的Web项目部署方法,像php-cgi一样监听同一端口,进行统一管理和负载平衡
  7、Use Cases - current

  •   Unstructured data storage
  •   Archival
  •   Disaster Recovery
  •   Virtual Machine Image Store
  •   Cloud Storage for Service Providers
  •   Content Cloud
  •   Big Data
  •   Semi-structured & Structured data
  转自:http://blog.csdn.net/uj_mosquito/article/details/41039879


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-670381-1-1.html 上篇帖子: Cool User File Systems: GlusterFS 下篇帖子: GlusterFS整体分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表