师傅你而 发表于 2019-2-1 11:07:39

GlusterFS整体分析

  首先,熟悉整个业务流程前先了解下glusterfs的几个程序功能以及相互之间的关系!
  gluster :cli的命令执行工具,负责将glusterfs的请求传递给glusterd进程来执行;大家安装后glusterfs后,执行gluster就会进入到该命令执行工具了;
  glusterd:管理daemon进程,同时负责接收gluster发送过来的请求并执行相应的操作,比如:调用glusterfsd来启动brick服务;另外负责与其他主机上面的glusterd进程来同步信息;
  gusterfsd:服务进程,由glusterd进程启动,并且根据卷配置信息执行从glusterfs发送过来的请求,同时也负责glusterd的请求处理;
  glusterfs:客户端的进程,根据卷配置信息将fuse发过来的操作请求逐层传递到最底层的protocol/client的xlator上,该xlator通过rpc与glusterfs连接,将请求发送到glusterfsd服务器执行;
  下面通过2个图来说明上面几个进程的具体关系;
  1、进程:gluster、glusterd和glusterd之间的关系
  图1:
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
  2、fuse、glusterfs和glusterfsd之间的关系(通过一个分布式复杂卷的方式来说明,为了突出重点,省略了部分xlator)
  图2:
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif
  然后,我们进一步熟悉下整个glusterfs的几个主要的业务功能,来帮助我们后面更好的去理解整个业务逻辑(毕竟,业务逻辑也是为了去实现对应的功能的);
  1、host的管理,比如:增加和删除主机的相关处理,来实现扩容和缩容;
  2、brick的管理,比如:新增和删除brick的相关处理,来实现扩容和缩容;
  3、数据的平衡等提高磁盘空间利用率相关处理;
  4、副本的自我修复等可靠性处理;
  5、文件的读写等基本业务相关处理;
  6、其他提升性能以及异常相关的处理;
  其中,其中图1主要是负责系统相关的一些处理流程;图2主要是负责文件的读写处理流程;应该说glusterfs的主要业务逻辑应该都在这里了(小伙伴们是不是觉得其实还挺简单的?),下面来详细分析下整个glusterfs的整个业务逻辑;
  我们将业务逻辑从3个方面进行分析:
  1、整个glusterfs的初始化过程;
  2、整个glusterfs对于文件的读写操作流程,即图2的说明(也是glusterfs的核心);
  3、整个glusterfs的命令操作流程,即图1的说明;
  转自:http://blog.csdn.net/york_1986/article/details/38864727

页: [1]
查看完整版本: GlusterFS整体分析