一种基于ceph集群的osd心跳通讯方法与流程

文档序号:15200812发布日期:2018-08-19 11:42阅读:1228来源:国知局

本发明公开一种心跳通讯方法,涉及分布式存储的通信领域,具体的说是一种基于ceph集群的osd心跳通讯方法。



背景技术:

ceph,一种开源的分布式存储系统,它独一无二地用统一的系统提供了对象、块和文件存储功能,而且可靠性高、管理简便、并且是自由软件。ceph存储系统主要有两类网络:数据网络和维护网络,其中数据网络用于系统内以及系统与用户业务主机之间的数据传输,通常为高速网络,如万兆网络、infiniband网络等;维护网络用于系统管理员对系统进行相关的维护操作,如监控、告警以及节点电源管理等,采用千兆网络。数据网络又分为用户网络和存储网络,用户网络用于用户业务主机接入到ceph存储系统,进行用户网络的规划时需要根据用户业务网络的规划进行配置;存储网络用于系统内部节点间数据通信,独立于用户业务网络。维护网络又分为管理网络和bmc网络,管理网络用于系统状态的监控、告警信息的处理以及后台操作时的远程连接;bmc网络集中监控系统内各个节点的硬件状态以及相应的故障排除。

ceph存储集群能够组织大量节点,节点之间靠相互通讯来复制数据、并动态地重分布数据。而心跳机制在ceph集群中起着保活的效果,能及时检测出问题的功能模块,一旦发现故障,及时响应。其中ceph集群中利用osd信使在存储网络进行心跳通讯,但存储网络不仅包括osd进程之间的心跳信息,还包括大量的元数据交互等信息,当ceph集群处理大量数据时,osd进程之间的心跳信息很容易受到影响,导致集群误认为osd进程死掉,从而引起一系列问题。本发明提出一种基于ceph集群的osd心跳通讯方法,改变原本通过ceph集群内部存储网络进行通讯的osd心跳链路,可通过ceph集群的管理网络进行通讯,极大地减轻了集群的内部存储网络压力,避免了osd进程由于通讯阻塞而导致的误报错。

osd,是对象存储设备的简称,提供数据存储服务。负责系统数据流的操作和存储,处理实际的数据i/o操作,提供实际的存储容量,存储节点可以随着系统性能需求动态扩展,目前最小支持3个存储节点,最多可支持128个存储节点。

messenger,ceph集群的信使,进程之间用来通讯的组件。



技术实现要素:

本发明针对目前技术发展的需求和不足之处,提供一种基于ceph集群的osd心跳通讯方法。

一种基于ceph集群的osd心跳通讯方法,搭建ceph集群时,配置osd心跳通讯的单独链路网段,并指定ceph集群的osd心跳通讯使用单独链路网段,

osd进程在创建messenger信使时,依据指定的osd心跳通讯使用的单独链路网段,创建对应的messenger信使,

ceph集群搭建完成后,osd进程通过所述对应的messenger信使进行通讯:osd进程所要发送的心跳消息封装后向负责消息发送的所述对应的messenger信使进行消息发送的请求,所述对应的messenger信使收到消息发送的请求后,将请求先送入请求队列,再利用messenger信使的发送线程从请求队列中获取消息发送的请求,最终将封装后的心跳消息发送出去。

所述的方法中配置osd心跳通讯的单独链路网段:更改ceph集群的主节点上的配置文件,在配置文件中添加ceph集群管理网络的网段,将主节点上的配置好的配置文件推送到ceph集群的其他节点。

所述的方法中创建对应的messenger信使:

利用创建命令创建messenger信使,设置messenger信使策略,并依据配置文件里osd心跳通讯的单独链路网段进行绑定。

所述的方法中创建对应的messenger信使后,messenger信使根据配置文件中设置的工作线程数目开启对应数目的发送线程,messenger信使利用发送线程从请求队列中获取消息发送的请求,最终将封装后的心跳消息发送出去。

所述的方法中osd进程所要发送的心跳消息先通过序列化操作,封装成消息格式的数据结构,并保存在指定的内存内,同时向负责消息发送的所述对应的messenger信使进行消息发送的请求。

本发明与现有技术相比具有的有益效果是:

本发明提供一种基于ceph集群的osd心跳通讯方法,搭建ceph集群时,配置osd心跳通讯的单独链路网段,并指定ceph集群的osd心跳通讯使用单独链路网段,osd进程在创建messenger信使时,依据指定的osd心跳通讯使用的单独链路网段,创建对应的messenger信使,ceph集群搭建完成后,osd进程通过所述对应的messenger信使进行通讯,利用本发明方法改变原本通过ceph集群内部存储网络进行通讯的osd心跳链路,可通过ceph集群的管理网络进行通讯,极大地减轻了集群的内部存储网络压力,避免了osd进程由于通讯阻塞而导致的误报错。

附图说明

图1本发明方法流程示意图。

具体实施方式

本发明提供一种基于ceph集群的osd心跳通讯方法,搭建ceph集群时,配置osd心跳通讯的单独链路网段,并指定ceph集群的osd心跳通讯使用单独链路网段,

osd进程在创建messenger信使时,依据指定的osd心跳通讯使用的单独链路网段,创建对应的messenger信使,

ceph集群搭建完成后,osd进程通过所述对应的messenger信使进行通讯:osd进程所要发送的心跳消息封装后向负责消息发送的所述对应的messenger信使进行消息发送的请求,所述对应的messenger信使收到消息发送的请求后,将请求先送入请求队列,再利用messenger信使的发送线程从请求队列中获取消息发送的请求,最终将封装后的心跳消息发送出去。

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,对本发明进一步详细说明。

利用本发明方法,其中在搭建ceph集群时,配置osd心跳通讯的单独链路网段:以三个节点组成的三节点ceph集群为例,节点a是是主节点,更改a节点上的配置文件ceph.conf,在其中添加字段“osd_heartbeat_network=192.168.1.0/24”;其中192.168.1.0/24网段是该ceph集群的管理网络网段,在a节点执行命令“ceph-deployadminabc”将a节点的配置文件推送到节点b与节点c,完成了配置osd心跳通讯的单独链路网段,并指定ceph集群的osd心跳通讯使用管理网络网段为单独链路网段;

osd进程在创建messenger信使时,依据指定的osd心跳通讯使用的单独链路网段,创建对应的messenger信使:其中messenger信使创建是在ceph集群的osd进程初始化阶段完成的,并可进行初始化操作,具体步骤为:

s1:创建messenger信使:messenger::create();

s2:为messenger信使设置默认的策略:messenger->set_default_policy();

s3:为messenger信使设置策略:messenger->set_policy();

s4:执行对指定网段地址的绑定操作:messenger->bind(),依据配置文件里的osd心跳通讯的单独链路网段即管理网段进行绑定;

s5:设置messenger信使开启状态标志位started=true;

s6:根据配置文件中设置的工作线程数目开启对应数目的发送线程,用于处理请求队列中的请求,并开启处理消息的分发器。

ceph集群搭建完成后,osd进程通过所述对应的messenger信使进行通讯:

osd进程所要发送的心跳消息先通过序列化操作,封装成消息格式的数据结构,并保存在指定的内存内,同时向负责消息发送的对应的messenger信使进行消息发送的请求,对应的messenger信使收到消息发送的请求后,将请求先送入请求队列,再利用对应messenger信使的发送线程从请求队列中获取消息发送的请求,最终将请求队列中的封装后的心跳消息发送出去。

利用上述本发明方法通过将原本在ceph集群的存储网络上进行通讯的osd心跳链路,转移到ceph集群的管理网络上进行通讯,降低了cpeh集群的存储网络的压力,利用了ceph集群的管理网络空闲带宽,不仅提高了系统性能还有效避免ceph集群存储高峰期时osd心跳链路阻塞导致的osd误报错误的问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1