一种Samba集群中节点故障切换方法及系统与流程

文档序号:11263549阅读:514来源:国知局
一种Samba集群中节点故障切换方法及系统与流程

本申请涉及通信领域,特别涉及一种samba集群中节点故障切换方法及系统。



背景技术:

samba客户端通过运行在samba集群节点上的samba服务访问文件存储集群中的文件数据,samba客户端在访问文件的过程中会产生相应的访问数据,该访问数据用于连接断开后的重连,重连操作由samba客户端主动发起,具体通过读取并校验文件请求与节点上存储的访问数据是否匹配,如果匹配则samba客户端会继续连接断开前的文件处理,从而实现业务的连续。

但samba客户端访问文件产生的访问数据只会存储在samba客户端当前连接的节点上,若客户端当前连接的节点因宕机、断电维修、软件故障等原因出现故障,samba客户端因无法在其他正常节点上进行访问数据的校验,而无法进行重连,samba集群则无法继续提供业务服务,导致samba集群的可靠性和连续可用性差。



技术实现要素:

为解决上述技术问题,本申请实施例提供一种samba集群中节点故障切换方法及系统,以达到提高samba集群的可靠性和连续可用性的目的,技术方案如下:

一种samba集群中节点故障切换方法,包括:

samba集群中的共享节点的通信进程向所述共享节点的同步进程发送携带有samba客户端访问数据的备份请求;

所述共享节点的同步进程接收所述备份请求,根据所述备份请求确定用于同步进程间传递的备份请求,从所述samba集群中选择预设个数的非故障节点,将所述用于同步进程间传递的备份请求分别发送至选择出的各个非故障节点;

接收到备份请求的各个非故障节点,分别存储所述samba客户端访问数据。

优选的,所述samba集群中的共享节点的通信进程向所述共享节点的同步进程发送携带有samba客户端访问数据的备份请求之后,还包括:

所述共享节点的通信进程存储所述samba客户端访问数据。

优选的,所述接收到备份请求的各个非故障节点,存储samba客户端访问数据到本地之后,还包括:

若所述共享节点发生故障,samba客户端从接收到备份请求的各个所述非故障节点中选择一个作为新的共享节点,并切换至新的共享节点。

优选的,所述预设个数不大于所述samba集群的最大故障节点数。

一种samba集群中节点故障切换系统,包括:

samba集群中的共享节点的通信模块,用于运行通信进程,执行以下步骤:向所述共享节点的同步模块发送携带有samba客户端访问数据的备份请求;

所述共享节点的同步模块,用于运行同步进程,执行以下步骤:用于接收所述备份请求,根据所述备份请求确定用于同步进程间传递的备份请求,从所述samba集群中选择预设个数的非故障节点,将所述用于同步进程间传递的备份请求分别发送至选择出的各个非故障节点;

接收到备份请求的各个非故障节点,分别用于存储所述samba客户端访问数据。

优选的,所述共享节点的通信模块还用于运行通信进程,执行以下步骤:

存储所述samba客户端访问数据。

优选的,还包括:samba客户端,用于若所述共享节点发生故障,从接收到备份请求的各个所述非故障节点中选择一个作为新的共享节点,并切换至新的共享节点。

优选的,所述预设个数不大于所述samba集群的最大故障节点数。

与现有技术相比,本申请的有益效果为:

在本申请中,通过samba集群中的共享节点的通信进程向所述共享节点的同步进程发送携带有samba客户端访问数据的备份请求,以及所述共享节点的同步进程接收所述备份请求,根据所述备份请求确定用于同步进程间传递的备份请求,从所述samba集群中选择预设个数的非故障节点,将用于同步进程间传递的备份请求分别发送至选择出的各个非故障节点,以及接收到备份请求的各个非故障节点,分别存储samba客户端访问数据,实现将访问数据备份到多个非故障节点上。在实现访问数据的备份的基础上,在共享节点出现故障时,samba客户端可以在其他非故障节点上访问到访问数据,并进行访问数据的校验,进而可以继续连接断开前的文件处理,实现业务的连续,提高samba集群的可靠性和连续可用性。

附图说明

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

图1是本申请提供的samba集群中节点故障切换方法的一种流程图;

图2是本申请提供的samba集群中节点故障切换方法的另一种流程图;

图3是本申请提供的samba集群中节点故障切换方法的再一种流程图;

图4是本申请提供的samba集群中节点故障切换方法的再一种流程图;

图5是本申请提供的samba集群中节点故障切换系统的一种逻辑结构示意图。

具体实施方式

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

本申请实施例公开了一种samba集群中节点故障切换方法,通过samba集群中的共享节点的通信进程向所述共享节点的同步进程发送携带有samba客户端访问数据的备份请求,以及所述共享节点的同步进程接收所述备份请求,根据所述备份请求确定用于同步进程间传递的备份请求,从所述samba集群中选择预设个数的非故障节点,将用于同步进程间传递的备份请求分别发送至选择出的各个非故障节点,以及接收到备份请求的各个非故障节点,分别存储samba客户端访问数据,实现将访问数据备份到多个非故障节点上。在实现访问数据的备份的基础上,在共享节点出现故障时,samba客户端可以在其他非故障节点上访问到访问数据,并进行访问数据的校验,进而可以继续连接断开前的文件处理,实现业务的连续。

需要说明的是,samba为在linux和unix系统上实现smb文件共享协议的一个免费软件,由服务器及客户端程序构成。

其中,samba集群具有集群冗余数的属性。集群冗余数指的是集群允许的最大故障节点数,即多节点构成的集群同时最多允许的故障节点数,当故障节点数超过最大故障节点数,集群无法提供正常的服务。

samba集群中的每一个节点均需要运行samba软件。

本申请中,samba集群中的每一个节点还需要运行ctdb软件。ctdb软件为一种集群管理软件,用于将节点统一成一个集群,并进行节点间特定数据的同步。

接下来对本申请的samba集群中节点故障切换方法进行介绍,请参见图1,该方法可以包括以下步骤:

步骤s11:samba集群中的共享节点的通信进程向所述共享节点的同步进程发送携带有samba客户端访问数据的备份请求。

共享节点指的是samba客户端当前连接的节点。共享节点的通信进程指的是samba软件启动后运行的进程,其可以命名为smbd进程。

共享节点的同步进程指的是ctdb软件启动后运行的进程,其可以命名为ctdbd进程。

samba客户端访问数据指的是,共享节点上的samba服务访问文件存储集群中的文件数据,samba客户端在访问文件过程中产生的访问数据。

步骤s12:所述共享节点的同步进程接收所述备份请求,根据所述备份请求确定用于同步进程间传递的备份请求,从所述samba集群中选择预设个数的非故障节点,将所述用于同步进程间传递的备份请求分别发送至选择出的各个非故障节点。

根据所述备份请求确定用于同步进程间传递的备份请求具体可以为:对共享节点的通信进程发送的携带有samba客户端访问数据的备份请求进行重新构造(如转换),得到用于同步进程间传递的备份请求。

用于同步进程间传递的备份请求同样携带有共享节点的通信进程发送的备份请求携带的samba客户端访问数据。

本实施例中,预设个数可以满足以下条件:预设个数不大于所述samba集群的最大故障节点数。

步骤s13:接收到备份请求的各个非故障节点,分别所述存储samba客户端访问数据。

接收到备份请求的各个非故障节点,指的是接收到共享节点的同步进程发送的用于同步进程间传递的备份请求的各个非故障节点。

在本申请中,通过samba集群中的共享节点的通信进程向所述共享节点的同步进程发送携带有samba客户端访问数据的备份请求,以及所述共享节点的同步进程接收所述备份请求,根据所述备份请求确定用于同步进程间传递的备份请求,从所述samba集群中选择预设个数的非故障节点,将用于同步进程间传递的备份请求分别发送至选择出的各个非故障节点,以及接收到备份请求的各个非故障节点,分别存储samba客户端访问数据,实现将访问数据备份到多个非故障节点上。在实现访问数据的备份的基础上,在共享节点出现故障时,samba客户端可以在其他非故障节点上访问到访问数据,并进行访问数据的校验,进而可以继续连接断开前的文件处理,实现业务的连续,提高samba集群的可靠性和连续可用性。

本实施例中,同样可以参见图2对步骤s11-s13的执行过程进行介绍,如图2所示,smbd1为共享节点的通信进程,ctdbd1为共享节点的同步进程,smbd1发送附带访问数据的备份请求至ctdbd1,ctdbd1处理请求,根据集群冗余数,从其他节点中选取多个正常节点(即非故障节点),并发送附带访问数据的备份请求至选取出的各个非故障节点的同步进程(即ctdbdx至ctdbdy),各个非故障节点存储访问数据。

在本申请的另一个实施例中,提供了另外一种samba集群中节点故障切换方法,请参见图3,该方法可以包括以下步骤:

步骤s21:samba集群中的共享节点的通信进程向所述共享节点的同步进程发送携带有samba客户端访问数据的备份请求。

步骤s21与前述介绍samba集群中节点故障切换方法的实施例中的步骤s11相同,在此不再赘述。

步骤s22:所述共享节点的通信进程存储所述samba客户端访问数据。

本实施例中,共享节点的通信进程存储所述samba客户端访问数据,可以在该共享节点发生故障,并恢复正常后,能够保证在重连到该节点时,可以被samba客户端访问到访问数据,进一步保证samba集群的可靠性和连续可用性。

步骤s23:所述共享节点的同步进程接收所述备份请求,根据所述备份请求确定用于同步进程间传递的备份请求,从所述samba集群中选择预设个数的非故障节点,将所述用于同步进程间传递的备份请求分别发送至选择出的各个非故障节点。

步骤s24:接收到备份请求的各个非故障节点,分别存储所述samba客户端访问数据。

步骤s23-s24与前述介绍samba集群中节点故障切换方法的实施例中的步骤s12-s13一一对应,步骤s23-s24可以参见步骤s12-s13的过程,在此不再赘述步骤s23-s24的详细过程。

本实施例中,可以参见图4对步骤s21至步骤s24进行介绍,如图4所示,smbd1为共享节点的通信进程,ctdbd1为共享节点的同步进程,smbd1发送附带访问数据的备份请求至ctdbd1,smbd1并存储访问数据,ctdbd1处理请求,根据集群冗余数,从其他节点中选取多个正常节点(即非故障节点),并发送附带访问数据的备份请求至选取出的各个非故障节点的同步进程(即ctdbdx至ctdbdy),各个非故障节点存储访问数据。

基于上述实施内容,所述接收到备份请求的各个非故障节点,存储samba客户端访问数据到本地之后,还可以包括以下步骤:

若所述共享节点发生故障,samba客户端从接收到备份请求的各个所述非故障节点中选择一个作为新的共享节点,并切换至新的共享节点。

samba客户端切换至新的共享节点,与新的共享节点连接,继续提供业务服务。

本实施例中,切换至新的共享节点的方式具体可以为:通过透明故障切换的方式切换至新的共享节点。

透明故障切换,可以理解为:在拥有两个或以上节点的samba集群中,当有节点故障时,samba客户端自动重新向另一节点发起连接,而不用中断任何业务,无任何异常提示。

下面对本申请实施例提供的samba集群中节点故障切换系统进行描述,下文描述的samba集群中节点故障切换系统与上文描述的samba集群中节点故障切换方法可相互对应参照。

请参见图5,其示出了本申请提供的samba集群中节点故障切换系统的一种逻辑结构示意图,samba集群中节点故障切换系统包括:samba集群中的共享节点的通信模块11、共享节点的同步模块12和接收到备份请求的各个非故障节点13。

samba集群中的共享节点的通信模块11,用于运行通信进程,执行以下步骤:向所述共享节点的同步模块发送携带有samba客户端访问数据的备份请求。

所述共享节点的同步模块12,用于运行同步进程,执行以下步骤:用于接收所述备份请求,根据所述备份请求确定用于同步进程间传递的备份请求,从所述samba集群中选择预设个数的非故障节点,将所述用于同步进程间传递的备份请求分别发送至选择出的各个非故障节点。

本实施例中,所述预设个数可以不大于所述samba集群的最大故障节点数。

接收到备份请求的各个非故障节点13,分别用于存储所述samba客户端访问数据。

本实施例中,所述共享节点的通信模块11还用于运行通信进程,执行以下步骤:

存储所述samba客户端访问数据。

上述samba集群中节点故障切换系统,还可以包括:samba客户端,用于若所述共享节点发生故障,从接收到备份请求的各个所述非故障节点中选择一个作为新的共享节点,并切换至新的共享节点。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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

以上对本申请所提供的一种samba集群中节点故障切换方法及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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