一种NAS集群高可用方法、系统及电子设备和存储介质与流程

文档序号:16128457发布日期:2018-12-01 00:02阅读:198来源:国知局

本申请涉及计算机技术领域,更具体地说,涉及一种nas集群高可用方法、系统及一种电子设备和一种计算机可读存储介质。

背景技术

对于某些执行关键使命的计算机系统,要求系统能够长时间稳定运行,即具备不停顿运行的能力,暂时的停机都会导致数据的丢失和灾难性的后果。

nas(中文全称:网络附加存储,英文全称:networkattachedstorage)是一种直接连接在网络上的存储结构,支持多种文件传输协议,如nfs、cifs以供linux和windows用户访问。nas集群是指协同多个nas节点对外提供高性能、高可用和高负载均衡的nas(nfs/cifs)服务,是一种横向扩展存储架构,容量和性能具有线性扩展的能力。对于nas集群,目前尚未有完善的高可用实现方法。

因此,如何实现nas集群的高可用性是本领域技术人员需要解决的问题。



技术实现要素:

本申请的目的在于提供一种nas集群高可用方法、系统及一种电子设备和一种计算机可读存储介质,实现了nas集群的高可用性。

为实现上述目的,本申请提供了一种nas集群高可用方法,所述nas集群至少包括两个节点,所述每个节点上设置有虚拟机,所述方法包括:

为每个所述虚拟机分配虚拟ip地址;

当存在故障节点时,在所述nas集群中的非故障节点中选取接管节点;

将由所述故障节点负责的虚拟ip地址重新分配至所述接管节点。

其中,还包括:

将所述故障节点的文件系统挂载在所述接管节点上。

其中,还包括:

当监测到目标节点的节点资源故障时,重启所述节点资源;

若重启失败,则重启所述目标节点。

其中,若所述故障节点的虚拟机异常,则还包括:

利用fence机制重启所述故障节点的虚拟机。

其中,若所述故障节点的虚拟机异常且iscsi中断,则所述利用fence机制重启所述故障节点的虚拟机,包括:

触发所述故障节点进入standby状态,并利用fence机制重启所述故障节点的虚拟机;

重启成功后触发所述进入online状态。

其中,若所述故障节点的虚拟机正常且与控制器的心跳断开,则还包括:

当所述控制器正常时,设置所述虚拟机的状态与所述控制器状态一致;

当所述控制器异常时,挂起所述虚拟机。

为实现上述目的,本申请提供了一种nas集群高可用系统,所述nas集群至少包括两个节点,所述每个节点上设置有虚拟机,所述系统包括:

分配模块,用于为每个所述虚拟机分配虚拟ip地址;

选取模块,用于当存在故障节点时,在所述nas集群中的非故障节点中选取接管节点;

接管模块,用于将由所述故障节点负责的虚拟ip地址重新分配至所述接管节点。

其中,还包括:

挂载模块,用于将所述故障节点的文件系统挂载在所述接管节点上。

为实现上述目的,本申请提供了一种电子设备,包括:

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

处理器,用于执行所述计算机程序时实现如上述nas集群高可用方法的步骤。

为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述nas集群高可用方法的步骤。

通过以上方案可知,本申请提供的一种nas集群高可用方法,包括:为每个所述虚拟机分配虚拟ip地址;当存在故障节点时,在所述nas集群中的非故障节点中选取接管节点;将由所述故障节点负责的虚拟ip地址重新分配至所述接管节点。

本申请中的nas集群至少包括两个节点,每个节点上均设置有相应的控制器和虚拟机,每个虚拟机都有其负责的虚拟ip地址。当一个节点出现故障时会把该故障节点上虚拟ip地址转移到其他正常的节点,各节点互为监视,实现了nas集群的高可用性。上述过程可以保证对前端的数据存储没有明显影响,cifs、nfs等服务不中断,做到虚拟ip地址的透明接管。本申请还公开了一种nas集群高可用系统及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。

附图说明

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

图1为本申请实施例公开的一种nas集群高可用方法的流程图;

图2为本申请实施例公开的另一种nas集群高可用方法的流程图;

图3为本申请实施例公开的一种nas集群高可用系统的结构图;

图4为本申请实施例公开的一种电子设备的结构图;

图5为本申请实施例公开的另一种电子设备的结构图。

具体实施方式

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

本申请实施例公开了一种nas集群高可用方法,实现了nas集群的高可用性。

参见图1,本申请实施例公开的一种nas集群高可用方法的流程图,如图1所示,包括:

s101:为每个所述虚拟机分配虚拟ip地址;

可以理解的是,为实现nas集群的高可用性,本实施例中的nas集群至少包括两个节点,每个节点上均设置有相应的控制器,每个控制器上建立一个虚拟机,虚拟机的集群可以采用pacemaker进行集群管理(如业务ip管理)。由于虚拟机集群是成对出现的,这样可以实现冗余,保护业务不会中断。虚拟机上的本地文件系统可以采用zfs文件系统,虚拟机间采用控制器直连的网络方式实现心跳控制。

在具体实施中,可以通过pacemaker集群为每个节点上的虚拟机设置虚拟ip地址。当集群中只存在两个节点时,pacemaker会将二个虚拟ip地址分配给两个节点,即两个节点分别接受其中一个虚拟ip地址的业务。

s102:当存在故障节点时,在所述nas集群中的非故障节点中选取接管节点;

在具体实施中,当集群中存在故障节点时,在集群中的非故障节点中选取接管节点,本实施例不对选取接管节点的具体方式进行限定,例如,可以根据节点的当前负载情况,选取负载压力较小的非故障节点作为接管节点。当集群中只存在两个节点时,默认除该故障节点之外的另一个节点为接管节点。

s103:将由所述故障节点负责的虚拟ip地址重新分配至所述接管节点。

在具体实施中,将故障节点分配的虚拟ip地址会重新分配到上一步骤中选取的接管节点,即接管节点会接管该故障节点上的ip业务。故障节点恢复后,该故障节点的虚拟ip地址会漂移回到自身,该虚拟ip地址上的nas业务会重新回到该节点进行。

作为一种优选实施方式,还包括:当监测到目标节点的节点资源故障时,重启所述节点资源;若重启失败,则重启所述目标节点。

在具体实施中,每个节点资源都有start、stop、monitor操作,如果节点资源进入stop状态,则不会进行monitor操作。当检测到节点资源处于notrunning状态时,首先尝试对节点资源进行stop、start操作。如果重启失败,则尝试在接管节点重启节点资源,重启一定次数后则不再操作。在资源stop时,如果失败,则会触发fence进制将该节点强制重启,尝试恢复节点状态。

本申请实施例中的nas集群至少包括两个节点,每个节点上均设置有相应的控制器和虚拟机,每个虚拟机都有其负责的虚拟ip地址。当一个节点出现故障时会把该故障节点上虚拟ip地址转移到其他正常的节点,各节点互为监视,实现了nas集群的高可用性。上述过程可以保证对前端的数据存储没有明显影响,cifs、nfs等服务不中断,做到虚拟ip地址的透明接管。

本申请实施例公开了一种nas集群高可用方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:

参见图2,本申请实施例提供的另一种nas集群高可用方法的流程图,如图2所示,包括:

s201:为每个所述虚拟机分配虚拟ip地址;

s202:当存在故障节点时,在所述nas集群中的非故障节点中选取接管节点;

s203:将由所述故障节点负责的虚拟ip地址重新分配至所述接管节点;

s204:将所述故障节点的文件系统挂载在所述接管节点上。

在具体实施中,对于故障节点上的存储资源,由于nas集群采用本地文件系统,所以节点故障时,节点下的文件系统资源需要进行接管。对于一个磁盘资源,每个节点上的虚拟机都通过iscsi连接为本地磁盘,在文件系统创建时主节点已经创建了文件系统,所以在节点接管时,只需要将接管节点挂载对应的文件系统即可。即当存在故障节点时,将故障节点的文件系统挂载在接管节点上。

下面将以集群中只存在了两个节点的情况为例,详细介绍本申请提供的单节点故障处理流程。

1、故障节点的控制器正常,但虚拟机异常;

当故障节点的控制器正常,但虚拟机异常时,利用fence机制重启所述故障节点的虚拟机。具体的,触发fence机制,导致异常虚拟机重启,重启后重新加入节点,恢复正常。

2、集群中的虚拟机正常,但与控制器的心跳断开;

心跳线断开后,fence机制不能生效,每个虚拟机通过ssh登录控制器,查询控制器状态。当两个控制器都正常时,虚拟机与主控制器状态保持一致;当其中一个控制器异常时,正常的控制器给自己一个fence对方虚拟机成功的信号,并把异常控制器上的虚拟机挂起;如果两个控制器都异常,则挂起两个虚拟机。

也就是说,当集群中存在故障节点,该故障节点的虚拟机正常,但与控制器的心跳断开时,若该故障节点的控制器正常,则设置该虚拟机的状态与控制器状态一致;若控制器异常,则挂起该虚拟机。

3、故障节点的控制器异常导致虚拟机异常;

若单个控制器异常导致虚拟机心跳失联,会触发fence机制,使异常虚拟机重启后恢复正常。若单个宿主机节点异常,并未导致虚拟机心跳失联,但是单个虚拟机iscsi中断,导致资源异常。此时如果监测到iscsi连接断开,则将本节点进入standby状态,并强制重启本节点虚拟机,虚拟机启动后,通过连接成功后的卷dev触发节点进入online状态,恢复集群。

也就是说,当故障节点为虚拟机异常且iscsi中断,则触发所述故障节点进入standby状态,并利用fence机制重启所述故障节点的虚拟机;重启成功后触发所述进入online状态。

下面对本申请实施例提供的一种nas集群高可用系统进行介绍,下文描述的一种nas集群高可用系统与上文描述的一种nas集群高可用方法可以相互参照。

参见图3,本申请实施例提供的一种nas集群高可用系统的结构图,如图3所示,包括:

分配模块301,用于为每个所述虚拟机分配虚拟ip地址;

选取模块302,用于当存在故障节点时,在所述nas集群中的非故障节点中选取接管节点;

接管模块303,用于将由所述故障节点负责的虚拟ip地址重新分配至所述接管节点。

本申请实施例中的nas集群至少包括两个节点,每个节点上均设置有相应的控制器和虚拟机,每个虚拟机都有其负责的虚拟ip地址。当一个节点出现故障时会把该故障节点上虚拟ip地址转移到其他正常的节点,各节点互为监视,实现了nas集群的高可用性。上述过程可以保证对前端的数据存储没有明显影响,cifs、nfs等服务不中断,做到虚拟ip地址的透明接管。

在上述实施例的基础上,作为一种优选实施方式,还包括:

挂载模块,用于将所述故障节点的文件系统挂载在所述接管节点上。

在上述实施例的基础上,作为一种优选实施方式,还包括:

资源监测模块,用于当监测到目标节点的节点资源故障时,重启所述节点资源;若重启失败,则重启所述目标节点。

在上述实施例的基础上,作为一种优选实施方式,若所述故障节点的虚拟机异常,则还包括:

重启模块,用于利用fence机制重启所述故障节点的虚拟机。

在上述实施例的基础上,作为一种优选实施方式,若所述故障节点的虚拟机异常且iscsi中断,则所述重启模块具体为触发所述故障节点进入standby状态,并利用fence机制重启所述故障节点的虚拟机;重启成功后触发所述进入online状态的模块。

在上述实施例的基础上,作为一种优选实施方式,若所述故障节点的虚拟机正常且与控制器的心跳断开,则还包括:

挂起模块,用于当所述控制器正常时,设置所述虚拟机的状态与所述控制器状态一致;当所述控制器异常时,挂起所述虚拟机。

本申请还提供了一种电子设备,参见图4,本申请实施例提供的一种电子设备的结构图,如图4所示,包括:

存储器100,用于存储计算机程序;

处理器200,用于执行所述计算机程序时可以实现上述实施例所提供的步骤。

具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器200为电子设备提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现上述任一实施例提供的nas集群高可用方法的步骤。

本申请实施例中的nas集群至少包括两个节点,每个节点上均设置有相应的控制器和虚拟机,每个虚拟机都有其负责的虚拟ip地址。当一个节点出现故障时会把该故障节点上虚拟ip地址转移到其他正常的节点,各节点互为监视,实现了nas集群的高可用性。上述过程可以保证对前端的数据存储没有明显影响,cifs、nfs等服务不中断,做到虚拟ip地址的透明接管。

在上述实施例的基础上,作为优选实施方式,参见图5,所述电子设备还包括:

输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。

显示单元400,与处理器200相连,用于显示处理器200发送的数据。该显示单元400可以为pc机上的显示屏、液晶显示屏或者电子墨水显示屏等。具体的,在本实施例中,可以通过显示单元400显示故障节点的故障情况等。

网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(mhl)、通用串行总线(usb)、高清多媒体接口(hdmi)、无线保真技术(wifi)、蓝牙通信技术、低功耗蓝牙通信技术、基于ieee802.11s的通信技术等。

本申请还提供了一种计算机可读存储介质,该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例提供的nas集群高可用方法的步骤。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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