一种基于存储集群多节点对的仲裁者实现方法及装置制造方法及图纸

技术编号:15241029 阅读:90 留言:0更新日期:2017-05-01 00:41
本发明专利技术提供一种基于存储集群多节点对的仲裁者实现方法及装置,所述方法包括:在当前时间周期中,向仲裁者发送第一请求报文;接收所述仲裁者针对所述第一请求报文发送的第一响应报文;接收自身所属的一个或多个节点对发往所述仲裁者的一个或多个第二请求报文;基于所述第一响应报文,分别向所述一个或多个节点对反馈第二响应报文。因此可以优化节点对的心跳处理,减少了节点对发往仲裁者的心跳包数量,减少仲裁者的处理负担。

Method and device for realizing arbiter based on storage cluster multi node pair

The present invention provides a storage node for the realization of multi cluster arbiter based method and device, the method includes: in the current period, the first request to send messages to the arbiter; receiving the arbiter for the first response message sending the first request message; receiving their own one or more nodes of the sent to one or more of the second arbitrator's request message; the first message based on response, respectively to the one or more nodes of the second feedback response message. Therefore, we can optimize the heartbeat processing of nodes, reduce the number of nodes on the heartbeat packet sent to the arbitrator, reduce the burden on the arbitrator.

【技术实现步骤摘要】

本专利技术涉及网络存储
,尤其涉及一种基于存储集群多节点对的仲裁者实现方法及装置
技术介绍
存储设备中包括多个LUN(LogicalUnitNumber,逻辑单元号),用于为应用服务器提供可访问的逻辑存储资源。镜像是存储服务中用于灾备的关键技术,在单节对的模型中主LUN和镜像LUN对上层业务表现为一个LUN,业务的入口是主LUN。如果主LUN所在的节点故障,为了保证业务的连续性,对端节点的镜像LUN会自动反转成主LUN继续提供业务。当镜像LUN无法感知主LUN的状态,主LUN与镜像LUN无法通信时,会导致主LUN和镜像LUN无法自主的去反转角色,从而不会继续向外提供业务访问,导致前端业务中断。由此现有技术中引入了第三方仲裁者在故障发生时指导镜像LUN进行反转继续向外提供业务访问。现有技术中,单节点对与仲裁者的组网模型如图1所示,其中包括两个存储设备,每个存储设备可以称为一个单点,两个存储设备可以称为一个单节点对,其中每个存储设备分别为不同的生产中心提供存储服务,并且可以通过管理服务器实现统一管理,仲裁者控制服务器(以下简称仲裁者)在后端通过管理网络连接到存储设备对,仲裁者与存储设备对中的每个存储设备通过IP链路直接进行通信。在该模型中,仲裁者与存储设备采用单向同步的通讯方式工作,即节点主动的发送各类请求到仲裁者处理,待仲裁者处理完成并返回响应结果后节点再发送下一个请求。节点对与仲裁者发送的报文中可以包括心跳报文,节点可以通过定期的发送心跳包来检测仲裁者是否正常工作。在图1所示的单节点对仲裁者的模型中,一个节点中包括主LUN和镜像LUN,则一个节点需要同时发送2个心跳报文到仲裁者,而一个节点对则需要同时发送4个心跳报文到仲裁者进行处理。在集群环境中,同一个节点可以与其它的任意单节点组成节点对,集群中的多个节点对可以通过一个仲裁者进行管理。多节点对与仲裁者的组网模型如图2所示,其中节点2与节点1组成节点对1;节点2与节点3组成节点对2。当把上述单节点对仲裁者连接模型按照现有设计引入到多节点对的模型中时,节点对1和节点对2各自维护到仲裁者的心跳。对于节点2,其既属于节点对1也属于节点对2,如果按照直连方式发送心跳报文,节点2需要发送两份心跳包到仲裁者来分别表明节点对1与节点对2到仲裁者链路正常。随着集群规模的不断扩大,节点与仲裁者的交互也将随之大幅增加,当规模扩展到一定程度时,仲裁者必然会成为存储集群的性能瓶颈。由于在单节点对直连模型中,节点发起的请求数量相对较少,仲裁者通常只部署了一个进程用于处理节点发送的各类请求。当把单节点对模型拓展到多节点对模型时,节点对数量以及镜像对数量都会大幅增加,现有的单进程模型处理请求必然会导致大量请求处理超时,影响集群的业务及其它功能。
技术实现思路
有鉴于此,本专利技术提供一种基于存储集群多节点对的仲裁者实现方法及装置来解决现有技术中仲裁者处理请求瓶颈的问题。具体地,本专利技术是通过如下技术方案实现的:本专利技术提供一种基于存储集群多节点对的仲裁者实现方法,所述方法应用于节点对中的存储节点,所述方法包括:在当前时间周期中,向仲裁者发送第一请求报文;接收所述仲裁者针对所述第一请求报文发送的第一响应报文;接收自身所属的一个或多个节点对发往所述仲裁者的一个或多个第二请求报文;基于所述第一响应报文,分别向所述一个或多个节点对反馈第二响应报文。进一步的,所述第一请求报文为第一心跳报文,所述第二请求报文为第二心跳报文。进一步的,所述方法还包括:接收自身所属的一个或多个节点对发往所述仲裁者的多个不同类型的第三请求报文;对所述多个不同类型的第三请求报文进行分类;将分类后的多个不同类型的第三请求报文转发至所述仲裁者,以使所述仲裁者为每个类型的第三请求报文分配对应的进程进行处理。进一步的,所述以使所述仲裁者为每个类型的第三请求报文分配对应的进程进行处理,还包括:以使所述仲裁者将每个类型的第三请求报文分别加入对应的进程的队列中,并在某一类型的第三请求报文数量较多时,在该类第三报文对应的进程中根据预设策略创建多个线程对该类的第三报文进行处理。进一步的,所述预设策略,具体包括:控制该进程中创建的线程数量,以满足所述某一类型的第三请求报文对应的进程队列中缓存请求报文数量小于该进程对应的预设请求超时时间内允许处理的第三请求报文的数量。基于相同的构思,本专利技术还提供一种基于存储集群多节点对的仲裁者实现装置,所述装置应用于节点对中的存储节点,所述装置包括:第一发送单元,用于在当前时间周期中,向仲裁者发送第一请求报文;第一接收单元,用于接收所述仲裁者针对所述第一请求报文发送的第一响应报文;第二接收单元,用于接收自身所属的一个或多个节点对发往所述仲裁者的一个或多个第二请求报文;第二发送单元,用于基于所述第一响应报文,分别向所述一个或多个节点对反馈第二响应报文。进一步的,所述第一请求报文为第一心跳报文,所述第二请求报文为第二心跳报文。进一步的,所述装置还包括:报文分类单元,用于接收自身所属的一个或多个节点对发往所述仲裁者的多个不同类型的第三请求报文;对所述多个不同类型的第三请求报文进行分类;将分类后的多个不同类型的第三请求报文转发至所述仲裁者,以使所述仲裁者为每个类型的第三请求报文分配对应的进程进行处理。进一步的,所述以使所述仲裁者为每个类型的第三请求报文分配对应的进程进行处理,还包括:以使所述仲裁者将每个类型的第三请求报文分别加入对应的进程的队列中,并在某一类型的第三请求报文数量较多时,在该类第三报文对应的进程中根据预设策略创建多个线程对该类的第三报文进行处理。进一步的,所述预设策略,具体包括:控制该进程中创建的线程数量,以满足所述某一类型的第三请求报文对应的进程队列中缓存请求报文数量小于该进程对应的预设请求超时时间内允许处理的第三请求报文的数量。由此可见,本专利技术提供一种基于存储集群多节点对的仲裁者实现方法及装置,可以通过在当前时间周期中,向仲裁者发送第一请求报文;接收所述仲裁者针对所述第一请求报文发送的第一响应报文;接收自身所属的一个或多个节点对发往所述仲裁者的一个或多个第二请求报文;基于所述第一响应报文,分别向所述一个或多个节点对反馈第二响应报文。因此可以优化节点对的心跳处理,减少了节点对发往仲裁者的心跳包数量,由于仲裁者引入了请求分类和工作队列的机制,并可以通过动态创建处理线程的方式提高仲裁者处理节点对请求的能力,提高了仲裁者吞吐量与性能。附图说明图1是现有技术中单节点对与仲裁者的组网模型示意图;图2是现有技术中多节点对与仲裁者的组网模型示意图;图3是本专利技术一种示例性实施方式中的一种基于存储集群多节点对的仲裁者实现方法的处理流程图;图4是本专利技术一种示例性实施方式中的多节点对与仲裁者的组网模型示意图;图5a本专利技术一种示例性实施方式中的基于存储集群多节点对的仲裁者实现装置所在设备的硬件结构图;图5b本专利技术一种示例性实施方式中的一种基于存储集群多节点对的仲裁者实现装置的逻辑结构图。具体实施方式为了解决现有技术存在的问题,本专利技术提供一种基于存储集群多节点对的仲裁者实现方法及装置,可以通过在当前时间周期中,向仲裁者发送第一请求报文;接收所述仲裁者针对所述第一请求报文发送的第一响应报文;接收自身所属的一个或多个节本文档来自技高网
...

【技术保护点】
一种基于存储集群多节点对的仲裁者实现方法,其特征在于,所述方法应用于节点对中的存储节点,所述方法包括:在当前时间周期中,向仲裁者发送第一请求报文;接收所述仲裁者针对所述第一请求报文发送的第一响应报文;接收自身所属的一个或多个节点对发往所述仲裁者的一个或多个第二请求报文;基于所述第一响应报文,分别向所述一个或多个节点对反馈第二响应报文。

【技术特征摘要】
1.一种基于存储集群多节点对的仲裁者实现方法,其特征在于,所述方法应用于节点对中的存储节点,所述方法包括:在当前时间周期中,向仲裁者发送第一请求报文;接收所述仲裁者针对所述第一请求报文发送的第一响应报文;接收自身所属的一个或多个节点对发往所述仲裁者的一个或多个第二请求报文;基于所述第一响应报文,分别向所述一个或多个节点对反馈第二响应报文。2.根据权利要求1所述的方法,其特征在于,所述第一请求报文为第一心跳报文,所述第二请求报文为第二心跳报文。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:接收自身所属的一个或多个节点对发往所述仲裁者的多个不同类型的第三请求报文;对所述多个不同类型的第三请求报文进行分类;将分类后的多个不同类型的第三请求报文转发至所述仲裁者,以使所述仲裁者为每个类型的第三请求报文分配对应的进程进行处理。4.根据权利要求3所述的方法,其特征在于,所述以使所述仲裁者为每个类型的第三请求报文分配对应的进程进行处理,还包括:以使所述仲裁者将每个类型的第三请求报文分别加入对应的进程的队列中,并在某一类型的第三请求报文数量较多时,在该类第三报文对应的进程中根据预设策略创建多个线程对该类的第三报文进行处理。5.根据权利要求4所述的方法,其特征在于,所述预设策略,具体包括:控制该进程中创建的线程数量,以满足所述某一类型的第三请求报文对应的进程队列中缓存请求报文数量小于该进程对应的预设请求超时时间内允许处理的第三请求报文的数量。6.一种基于存储集群多节点对的仲裁者实现装置,...

【专利技术属性】
技术研发人员:熊磊
申请(专利权)人:杭州宏杉科技股份有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1