一种存储双控防脑裂方法、系统、终端及存储介质与流程

文档序号:19535591发布日期:2019-12-27 15:51阅读:268来源:国知局
一种存储双控防脑裂方法、系统、终端及存储介质与流程

本发明涉及存储设备技术领域,具体涉及一种存储双控防脑裂方法、系统、终端及存储介质。



背景技术:

nas(networkattachedstorage,网络附属存储系统)是连接于网络,具备数据存储功能的装置,其以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而达到释放带宽、提高性能的目的,具备低成本、高效率的优势,是一种专用数据存储服务器。集群nas则是协同多个宿主机节点(host节点)以提供高性能、高可用或高负载均衡的nas服务。

nas集群系统是一种横向扩展存储架构,具有容量和性能线性扩展的优势,随着存储产品的不断更新升级,现在都使用存储双控(控制器)间的ntb通道作为nas心跳信息交换物理链路。存储双控(控制器)间的ntb通道首先要生成虚拟网卡驱动,存储系统启动时,需要立即创建虚拟网卡,保证虚拟网能够顺利使用。存储系统的agent模块,用于管理nas虚拟机与硬件ntb芯片的链接,该通道是nas心跳信息传输的透明通道。agent模块与nas虚拟网卡之间进行数据的收发。

但是使用此物料链路作为心跳信息交换,容易出现故障后无法连接,无法进行信息交互,导致两个nas节点脑裂,无法提供业务,从而nas业务中断。



技术实现要素:

针对现有技术的上述不足,本发明提供一种存储双控防脑裂方法、系统、终端及存储介质,以解决上述技术问题。

第一方面,本发明提供一种存储双控防脑裂方法,包括:

确认双控制器之间的ntb通道失效,调用当前节点fence资源向对端节点宿主机发送登录请求;

确认所述登录请求无应答,向当前节点宿主机的守护进程发送socket连接;

根据守护进程返回的宿主机集群状态定位故障节点,重启故障节点的nas虚拟机。

进一步的,所述确认双控制器之间的ntb通道失效,包括:

获取双控控制组件返回的nas心跳信号不通的信息,所述双控节点之间周期性交换nas心跳信号,所述双控控制组件实时监控所述nas心跳信号交换结果。

进一步的,所述根据守护进程返回的宿主机集群状态定位故障节点,重启故障节点的nas虚拟机,包括:

采集守护进程返回的第一节点宿主机状态和第二节点宿主机状态,所述第一节点和第二节点为双控两端节点;

将宿主机状态为非active的节点确定为故障节点;

重启所述故障节点的nas虚拟机。

第二方面,本发明提供一种存储双控防脑裂系统,包括:

失效确认单元,配置用于确认双控制器之间的ntb通道失效,调用当前节点fence资源向对端节点宿主机发送登录请求;

连接发送单元,配置用于确认所述登录请求无应答,向当前节点宿主机的守护进程发送socket连接;

故障重启单元,配置用于根据守护进程返回的宿主机集群状态定位故障节点,重启故障节点的nas虚拟机。

进一步的,所述失效确认单元包括:

心跳判断模块,配置用于获取双控控制组件返回的nas心跳信号不通的信息,所述双控节点之间周期性交换nas心跳信号,所述双控控制组件实时监控所述nas心跳信号交换结果。

进一步的,所述故障重启单元包括:

状态采集模块,配置用于采集守护进程返回的第一节点宿主机状态和第二节点宿主机状态,所述第一节点和第二节点为双控两端节点;

故障定位模块,配置用于将宿主机状态为非active的节点确定为故障节点;

重启执行模块,配置用于重启所述故障节点的nas虚拟机。

第三方面,提供一种终端,包括:

处理器、存储器,其中,

该存储器用于存储计算机程序,

该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。

第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本发明的有益效果在于,

本发明提供的存储双控防脑裂方法、系统、终端及存储介质,利用fence资源(fence_virsh脚本)通过socket连接后发送信号给守护进程vm_daemon,由vm_daemon根据宿主机判断是否重启虚机,进而保留一个节点提供业务,避免脑裂发生。本发明可以及时发现ntb链路故障,在第一时间避免在心跳线中断时防止脑裂,使nas业务不受影响,且方法简单,易于实现,保障了存储系统的稳定运行。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例的方法的示意性流程图。

图2是本发明一个实施例的系统的示意性框图。

图3为本发明实施例提供的一种终端的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种存储双控防脑裂系统。

如图1所示,该方法100包括:

步骤110,确认双控制器之间的ntb通道失效,调用当前节点fence资源向对端节点宿主机发送登录请求;

步骤120,确认所述登录请求无应答,向当前节点宿主机的守护进程发送socket连接;

步骤130,根据守护进程返回的宿主机集群状态定位故障节点,重启故障节点的nas虚拟机。

可选地,作为本发明一个实施例,所述确认双控制器之间的ntb通道失效,包括:

获取双控控制组件返回的nas心跳信号不通的信息,所述双控节点之间周期性交换nas心跳信号,所述双控控制组件实时监控所述nas心跳信号交换结果。

可选地,作为本发明一个实施例,所述根据守护进程返回的宿主机集群状态定位故障节点,重启故障节点的nas虚拟机,包括:

采集守护进程返回的第一节点宿主机状态和第二节点宿主机状态,所述第一节点和第二节点为双控两端节点;

将宿主机状态为非active的节点确定为故障节点;

重启所述故障节点的nas虚拟机。

,为了便于对本发明的理解,下面以本发明存储双控防脑裂方法的原理,结合实施例中对双控节点进行监控和管理的过程,对本发明提供的存储双控防脑裂方法做进一步的描述。

具体的,所述存储双控防脑裂方法包括:

s1、确认双控制器之间的ntb通道失效,调用当前节点fence资源向对端节点宿主机发送登录请求。

双控控制组件corosync是监控ntb通道nas心跳信息交互情况,一旦ntb通道发生故障导致nas心跳不通时,双控控制组件corosync发出nas心跳异常提示信息。接收到nas心跳异常提示信息确认ntb通道失效。通过pacemaker调用当前节点上运行的fence资源(fence_virsh脚本),如果传入fence_virsh脚本的action是“reboot”,则尝试登陆对端节点的宿主机。

s2、确认所述登录请求无应答,向当前节点宿主机的守护进程发送socket连接。

步骤s1中尝试登陆对端节点的宿主机失败,即受到对端节点宿主机返回的失败提示。fence_virsh脚本向本端节点的宿主机上的守护进程vm_daemon发送socket连接,连通后由守护进程vm_daemon决定是否应该重启。

s3、根据守护进程返回的宿主机集群状态定位故障节点,重启故障节点的nas虚拟机。

守护进程vm_daemon分别采集双控两个节点的宿主机状态。宿主机状态分为以下三种情况:

如果两个宿主机节点均是active,并且当前节点是宿主机的配置节点,则当前nas节点应该留着集群内(什么都不做,直接返回);

如果当前节点的宿主机不是active,重启当前节点的nas虚机;

如果当前节点的宿主机是active,对端节点的宿主机不是active,则当前nas节点应该留在集群内(什么都不做,直接返回)。

因此,接收到守护进程vm_daemon双控两个节点的宿主机状态后,查找宿主机不是active的节点定位为故障节点。重启故障节点的nas虚拟机。即双控两个节点中最后必然有一个节点的nas虚拟机被重启。虚拟机重启后,由于心跳不通,获取不到集群仲裁机制的结果,无法加入nas集群,从而集群内就只剩一个节点(正常节点)提供业务,从而避免了两个节点由于心跳线不通导致脑裂,最终都不能提供业务的情况。

如图2示,该系统200包括:

失效确认单元210,配置用于确认双控制器之间的ntb通道失效,调用当前节点fence资源向对端节点宿主机发送登录请求;

连接发送单元220,配置用于确认所述登录请求无应答,向当前节点宿主机的守护进程发送socket连接;

故障重启单元230,配置用于根据守护进程返回的宿主机集群状态定位故障节点,重启故障节点的nas虚拟机。

可选地,作为本发明一个实施例,所述失效确认单元包括:

心跳判断模块,配置用于获取双控控制组件返回的nas心跳信号不通的信息,所述双控节点之间周期性交换nas心跳信号,所述双控控制组件实时监控所述nas心跳信号交换结果。

可选地,作为本发明一个实施例,所述故障重启单元包括:

状态采集模块,配置用于采集守护进程返回的第一节点宿主机状态和第二节点宿主机状态,所述第一节点和第二节点为双控两端节点;

故障定位模块,配置用于将宿主机状态为非active的节点确定为故障节点;

重启执行模块,配置用于重启所述故障节点的nas虚拟机。

图3为本发明实施例提供的一种终端系统300的结构示意图,该终端系统300可以用于执行本发明实施例提供的存储双控防脑裂方法。

其中,该终端系统300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。

处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integratedcircuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器310可以仅包括中央处理器(centralprocessingunit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。

通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。

本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

因此,本发明利用fence资源(fence_virsh脚本)通过socket连接后发送信号给守护进程vm_daemon,由vm_daemon根据宿主机判断是否重启虚机,进而保留一个节点提供业务,避免脑裂发生。本发明可以及时发现ntb链路故障,在第一时间避免在心跳线中断时防止脑裂,使nas业务不受影响,且方法简单,易于实现,保障了存储系统的稳定运行,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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