首页> 中国专利> 一种提高集群可靠性的方法和一种高可靠性通信节点

一种提高集群可靠性的方法和一种高可靠性通信节点

摘要

本发明公开了一种提高集群可靠性的方法,该集群包括两个或多个节点,其中所述两个或多个节点通过选举产生主节点,其中所述两个或多个节点中至少还包括一个第一替补从节点,第一替补从节点检测当前主节点是否发生故障,若故障,所述第一替补从节点主动将其自身设置为当前主节点,以避免重新选举当前主节点。通过实施本发明,使得当集群中的主节点发生故障后,能够在第一时间内替换发生故障的主节点,大大减少了主节点恢复所需的时间,从而避免了现有技术中由于主节点故障后长时间无法及时替换造成的集群可靠性降低的问题。

著录项

  • 公开/公告号CN101217402A

    专利类型发明专利

  • 公开/公告日2008-07-09

    原文格式PDF

  • 申请/专利权人 杭州华三通信技术有限公司;

    申请/专利号CN200810001025.8

  • 发明设计人 万晓兰;

    申请日2008-01-15

  • 分类号H04L12/24(20060101);H04L12/26(20060101);H04L29/08(20060101);

  • 代理机构北京挺立专利事务所;

  • 代理人皋吉甫

  • 地址 310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地

  • 入库时间 2023-12-17 20:28:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-05-24

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L12/24 变更前: 变更后: 申请日:20080115

    专利权人的姓名或者名称、地址的变更

  • 2012-01-04

    授权

    授权

  • 2008-10-29

    实质审查的生效

    实质审查的生效

  • 2008-07-09

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,尤其涉及一种提高集群可用性的方法和一种高可靠性通信节点。

背景技术

随着信息技术的不断发展,集群(Cluster)技术正在越来越多的领域中被广泛应用,常见的如服务器集群、SAN(Storage Area Network,网络存储)等。

集群是一组计算机系统,其作为一个整体向用户提供一组网路资源。这些单个的计算机系统就是集群的节点(Node)。一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他们看来,集群是一个系统,而非多个计算机系统。

在应用集群的技术中,集群通常会按照一定的策略设置主从节点,然后主从节点按各自承担的任务工作,而且主节点还要负责监测各从节点的状态和所承担的工作情况,如果从节点发生故障,主节点要确保将该发生故障的从节点所承担的任务切换到其它正常的从节点。若主节点发生故障,则需在从节点中重新选出主节点以替代发生故障的主节点。由于从节点通常是主节点的镜像,所以当它替代故障的主节点时,它可以完全接管其身份,并且使集群环境对用户保持一致。

目前,现有技术选举集群中的主节点大多通过在节点之间互发选举信息,然后各节点按一定策略对收到的选举信息进行分析、比较后选出主节点。例如,选举信息中包含MAC(Medium Access Control,媒体接入控制)地址,每一个节点将包含自身MAC信息的选举信息发给其它节点,同时收到其它节点的选举信息。经过比较,MAC地址最小的节点成为主节点,而其它节点则成为从节点。

按照上述方式,当主节点发生故障后,各从节点虽然能够重新选举出新的主节点,但是由于选举过程中需要对多个选举信息进行分析、比较,因此需要消耗该节点的资源并占用一定的时间,特别是当集群中存在的节点数较多时,由于需要分析比较的选举信息大量增加,上述重新选举过程所耗费的时间也随之增加。但是,对于集群来说,在主节点发生故障且新的主节点还未产生期间,不但该主节点原有的任务无法继续,而且若出现新的从节点故障,由于此时主节点的缺失,导致无法将该从节点承载的任务切换到其它从节点,造成集群无法响应与该故障从节点相应的外部请求,严重影响了集群的可靠性。

发明内容

本发明的目的是提供一种提高集群可靠性的方法和一种高可靠性通信节点,以解决现有技术中当主节点发生故障时,需要花费较长时间重新选举主节点而导致的严重影响集群可靠性的问题。

为解决上述问题,本发明公开了一种提高集群可靠性的方法,该集群包括两个或多个节点,其中所述两个或多个节点通过选举产生主节点,其中所述两个或多个节点中至少还包括一个第一替补从节点,

所述方法包括:第一替补从节点检测当前主节点是否发生故障,若故障,所述第一替补从节点主动将其自身设置为当前主节点,以避免重新选举当前主节点。

优选的,所述检测当前主节点是否发生故障之前还包括:

从节点获取替补优先级信息;若该替补优先级为当前最高优先级,则设置该从节点为第一替补从节点;

所述第一替补从节点主动将其自身设置为当前主节点之后还包括:

第一替补从节点向其它从节点发送获选当前主节点的通知消息;所述其它从节点降低当前最高优先级等级或提高自身替补优先级等级。

其中,所述从节点获取替补优先级信息包括:按预置规则与其它从节点交互信息进行选举,根据选举结果生成替补优先级信息。

优选的,所述检测当前主节点是否发生故障包括:定期接收来自当前主节点的双向转发检测BFD报文,若在预定期限内未收到所述BFD报文,则认为当前主节点故障。

优选的,所述集群为基于互联网小型计算机系统接口iSCSI的存储网络,所述节点为该存储网络中的存储控制器。

为解决上述问题,本发明还公开了一种高可靠性通信节点,该节点包括:

第一存储单元,用于存储本节点的主从状态标识;

主从设置单元,用于设置第一存储单元中节点的主从状态标识;

替补判断单元,用于判断本节点是否为第一替补从节点;

故障检测单元,用于检测当前主节点是否故障,若故障且替补判断单元判断出本节点为第一替补从节点,通知主从设置单元设置所述第一存储单元中的状态标识为主状态。

优选的,所述替补判断单元包括:

替补优先级获取单元,用于获取替补优先级信息;

所述替补判断单元还包括:

第一判断单元,用于判断所述替补优先级获取单元所获取的替补优先级是否为最高优先级,若为最高,则本节点为第一替补从节点;

所述节点还包括:

通知单元,用于发送所述节点获选当前主节点的通知消息;

替补优先级更新单元,用于更新当前最高优先级等级或所述替补优先级获取单元所获取的替补优先级等级。

优选的,所述故障检测单元还包括:BFD检测单元,用于定期接收来自当前主节点的BFD报文,若在预定期限内未收到所述报文,则认为当前主节点故障。

本发明还公开了一种用于网络存储系统的存储控制装置,所述装置包括:

第一存储单元,用于存储所述存储控制装置的主从状态标识;

主从设置单元,用于设置第一存储单元中存储控制装置的主从状态标识;

替补判断单元,用于判断所述存储控制装置是否为第一替补从存储控制装置;

故障检测单元,用于检测当前主存储控制装置是否故障,若故障且替补判断单元判断出所述存储控制装置为第一替补从存储控制装置,通知主从设置单元设置所述第一存储单元中的状态标识为主状态。

本发明还公开了一种基于iSCSI的网络存储系统,包括两个或多个存储控制装置,所述存储控制装置包括:

第一存储单元,用于存储所述存储控制装置的主从状态标识;

主从设置单元,用于设置第一存储单元中存储控制装置的主从状态标识;

替补判断单元,用于判断所述存储控制装置是否为第一替补从存储控制装置;

故障检测单元,用于检测当前主存储控制装置是否故障,若故障且替补判断单元判断出所述存储控制装置为第一替补从存储控制装置,通知主从设置单元设置所述第一存储单元中的状态标识为主状态。

与现有技术相比,本发明的一技术方案具有以下效果:

现有技术中,当集群中的主节点发生故障后,需要重新选举出主节点,而目前选举采用的方法需要对多个选举信息进行分析、比较,往往需要消耗较长的时间,而在选举期间由于主节点缺失,造成从节点上发生的新故障无法及时排除,同时不能响应新的存储读写请求,并最终导致集群通信的可靠性大大降低。本发明在主节点发生故障后,第一替补从节点主动将自身设置为当前主节点,由于无需对选举信息进行分析、比较,因而大大减少了时间消耗,使得能够在第一时间替换发生故障的主节点,因此很好的解决了现有技术存在的问题。

附图说明

图1是本发明所述方法的实施例一的步骤流程图;

图2是本发明中所述网络存储系统的结构框图;

图3是本发明所述方法的应用实施例中选举方法的步骤流程图;

图4是本发明所述的一种高可靠性通信节点的结构示意图。

具体实施方式

本发明为克服现有技术存在的问题,在主节点发生故障后,集群中的第一替补从节点主动将自身设置为新的主节点以替换发生故障的主节点,从而避免了重新选举主节点而造成的时间延迟,很好地解决了现有技术中存在的问题。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

概括而言,本发明所述方法包括:

1]集群中的两个或多个节点通过选举产生主节点和相应的从节点,所述两个或多个节点中至少还包括一个第一替补从节点。

2]第一替补从节点检测当前主节点是否发生故障,若故障,所述第一替补从节点主动将其自身设置为当前主节点,以避免重新选举当前主节点。

集群中的各节点按照一定的负载均衡原则承担不同的任务,同时,各节点作为一个整体对外提供网络资源。为了保证集群的高可靠性,从集群内的多个节点中选出一个节点作为主节点以便监控和维护其它从节点的正常运行。

节点的主从状态可在该节点初次接入集群时缺省设置。本发明优选的,在初次设置集群中节点的主从状态时按照预置规则在各节点之间交互信息选出集群的主节点。其中,所述预置规则是设定一比较规则,通过比较与各节点有关的一个或多个元素信息后选出主节点。例如:可根据节点的启动时间进行比较,将启动时间最早的节点作为主节点;另外,也可根据节点的IP地址或MAC地址进行比较等。当然,在实施本发明时本领域技术人员可选择上述任意一种或几种元素或者其它元素进行比较,本发明对此不作限制。通过各节点自动选举选出集群的主节点,避免了人为干预,有效降低了集群的维护成本。

被选举为主节点的节点设置自身的主从状态标识为“主”,之后向集群中的其它节点发送通知,收到通知的节点将各自的主从状态标识设置为“从”状态,这样一来,在集群中建立了各节点的主从关系,而当前主节点将承担起监控和维护各从节点的任务。

集群的从节点中至少还包括一个第一替补从节点,用于在当前主节点发生故障后能够在第一时间替换该主节点。第一替补从节点优选的按以下方式产生:从节点获取替补优先级信息;若该替补优先级为当前最高优先级,则设置该从节点为第一替补从节点。其中,所述节点获取替补优先级信息包括:按预置规则与其它从节点交互信息进行选举,根据选举结果生成替补优先级信息,由于本发明推荐首次主节点通过选举产生,因此可根据初次选举的结果生成替补优先级信息,该替补优先级信息包含各从节点对应的替补优先等级,其中,优先级最高的从节点即第一替补从节点。例如,若主节点是按照节点启动时间选出,则按照排序后的启动时间设置各从节点的替补优先级,该替补优先级信息可存储在各从节点中,其中,除主节点外启动时间最早的从节点即第一替补从节点。

另外,第一替补从节点也可按以下方式产生:节点中预置替补标识,该替补标识唯一确定一个用以替换的对端节点;若某个从节点的替补标识对应的节点为当前主节点,则该从节点为第一替补从节点。例如,可将集群中的节点组成一个环,环上相邻的两个节点之间互为替补。

所述检测当前主节点是否发生故障可通过在节点上运行故障检测软件实现。例如,主节点按一定时间间隔向从节点发送监测报文,若在指定的时间期限内未收到该从节点的回应报文,则认为该从节点发生故障,相应的,若从节点在指定期限内未收到来自主节点的检测报文,则认为主节点发生故障。若主节点检测出从节点故障,则根据实际情况决定相应的操作,如故障排除、节点切换等;若第一替补从节点检测出当前主节点发生故障,则主动将其自身设置为当前主节点。

优选的,若第一替补从节点是按照获取替补优先级信息产生,则第一替补从节点在设置为当前主节点后,向其它从节点发送获选当前主节点的通知消息;其它从节点收到通知后降低当前最高优先级等级或提高自身替补优先级等级,以便产生新的第一替补从节点。

以上概括介绍了本发明所述方法,在本发明的实施例一中,利用BFD(Bidirectional Forwarding Detection,双向转发检测)协议监测并获取各节点的运行状态。该实施例未详尽之处请参见上文有关内容。下面对该实施例一作进一步描述。

步骤201,按预置规则选出集群的当前主节点。

步骤202,设置集群中的从节点。

从节点中至少包括一个第一替补从节点。

步骤203,当前主节点定期向从节点发送双向转发检测BFD报文。

步骤204,若从节点在预定期限内未收到来自当前主节点的BFD报文,则当前主节点故障,执行步骤205。

步骤205,第一替补从节点主动将其自身设置为当前主节点。

BFD是一套用来实现快速检测的国际标准协议,可以检测网络各层的故障。从本质上讲,BFD是一种高速的独立HELLO协议。BFD能够与相邻系统建立对等关系,然后,每个系统以协商的速率监测来自其它系统的BFD速率。监测速率能够以毫秒级增量设定。当对等系统没有接到预先设定数量的数据包时,它推断BFD保护的软件或硬件基础设施发生故障,不管基础设施是标记交换路径、其它类型的隧道还是交换以太网络。

BFD协议通过定期发送基于UDP(User Datagram Protocol,用户数据报协议)层的故障检测报文,其常见的检测机制可分为异步模式、查询模式。异步模式和查询模式的本质区别在于检测的位置不同,异步模式下本端按一定的发送周期发送BFD报文,需要在远端检测本端系统发送的BFD报文;而在查询模式下检测本端发送的BFD报文是在本端系进行的。

在异步模式下,系统之间相互周期性地发送BFD数据包,如果某个系统在检测时间内没有收到对端发来的BFD报文,就宣布会话为Down(关闭)。

在查询模式下,假定每个系统都有一个独立的方法用来确认其是否连接到其它系统。这样一旦一个BFD会话建立起来以后,系统停止发送BFD报文,除非某个系统需要显式地验证连接性,在需要显式验证连接性的情况下,系统发送一个短系列的BFD控制包,如果在检测时间内没有收到返回的报文就宣布会话为Down,如果收到对端的回应报文,协议再次保持沉默。

BFD在检测前,需要在通道两端建立对等会话,会话建立以后以协商后的速率各自向对端发送BFD报文来实现故障检测。其会话检测的路径可以是标记交换路径,也可以是其它类型的隧道或是可交换以太网。

对于BFD会话建立过程中的初始化阶段,两端是主动角色还是被动角色是由应用来决定的,但是至少有一端为主动角色,所以对于初始化阶段可以分为两种方式。

当两端都为主动角色时,两端的系统都要向对端发送Your Discriminator(对端标识符)为0的BFD控制报文,直到两端学到对端的Discriminator,然后开始建立会话,例如:由OSPF(Open Shortest Path First,开放最短路径优先)或者IS-IS(Intermediate System to Intermediate System,中间系统到中间系统)建立的BFD会话可以是两端都为主动角色。

一端为主动角色、一端为被动角色时,是由应用来决定谁是主动角色、谁是被动角色的,主动方首先发送报文,然后由应用把对端的Discriminator携带回来给主动方,被动方在收到主动方的报文后也开始发送报文,以后主动方和被动方发送的报文中Your Discriminator都不为零,每端都依据相应的Discriminator把控制报文分离到本端相应的会话上(例如:由LSP-Ping建立的BFD会话)。

会话建立过程是一个三次握手的过程,经过此过程后两端的会话变为Up(激活)状态,在此过程中同时协商好相应的参数,以后的状态变化就是根据缺陷的检测结果来进行,并做相应的处理。

会话建立后,主节点基于该会话向从节点发送BFD报文。在本例中,我们推荐采用查询模式发送BFD报文,以便控制网络上报文的数量。

若当前主节点在预定期限内收到从节点的BFD回应报文,则按照该BFD回应报文执行相应的故障排除操作;若未收到,当前主节点将该从节点上的任务按一定规则切换到其它从节点。相应的,从节点在预定期限内未收到主节点的BFD报文,则认为主节点故障,若由第一替补从节点检测出主节点故障则主动将其自身设置为当前主节点。

由于在本实施例中采用BFD协议进行故障检测,因此主节点能够监测和判断传输层、链路层、IP层甚至应用层存在的误码、丢包等软件故障,相应的,主节点根据收到的BFD回应报文进行相应的故障排除。例如,当检测到从节点上的某个会话上的数据传输发生误码,则将该会话切换到其它正常的从节点上。

对于超出预定期限仍未回应报文的从节点,则可推断该从节点故障,无法继续工作,在这种情况下,主节点按照一定的负载均衡策略将该从节点承担的任务全部切换到其它从节点。

优选的,利用BFD进行故障检测可通过独立的硬件实现,这样不会占用节点本身的资源,有效保证了节点的性能。

以上通过实施例介绍了本发明所述的一种提高集群可靠性的方法,下面结合具体的应用环境,以基于iSCSI的网络存储系统为例,对本发明所述方法做进一步详细说明。

SCSI(Internet Small Computer Interface,互联网小型机系统接口)标准体系定义了应用主机和外部设备之间读写操作的过程,外部设备包括磁盘、磁带、光盘、打印机、扫描仪等。SCSI标准体系的参考模型是一个典型的客户端-服务器模型,在SCSI体系结构中,通常把客户端称为Initiator(发起端),Initiator发送服务请求,如应用主机;把服务器称为Target(目标端),Target接收、响应服务请求,如外部设备。Initiator和Target之间可以使用不同的物理连接方式来通讯。

传统的网络存储系统经历了SCSI电缆直连方式后,一直以FC(Fibrechannel,光纤通道)为主流,直到iSCSI出现。iSCSI(Internet SCSI,互联网小型计算机系统接口)是一种基于TCP/IP的SCSI传输协议,即Initiator和Target利用因特网来传输SCSI命令和数据。

参见图2,图2示出了一种典型的基于iSCSI的网络存储系统的组织结构图。如图2所示,存储系统300通过IP网络与外部的多个应用主机相连,其中存储系统300包括前端交换设备310、后端交换设备320、多个存储控制器和相应的存储介质,该存储介质在图中表示为磁盘柜;各存储控制器中设置有BFD检测模块,该模块采用独立硬件实现;各应用主机中集成一个iSCSIInitiator模块,存储系统300中集成一个iSCSI Target模块。应用主机把SCSI命令和/或数据封装在iSCSI报文中,通过IP网络向存储系统300发送读写请求,存储系统的前端交换设备310将承载IP网络之上的iSCSI报文并转发给存储系统中的存储控制器,由存储控制器进行分片整理成为存储系统内部的报文对磁盘进行读写操作。

在该系统中,多个存储控制器作为一个整体响应外部请求。其中,主存储控制器负责将新的外部请求分配到某个从存储控制器,另外,还要负责监测各个从存储控制器的状态和所承担的工作情况,以及维护各个从存储控制器的正常工作,即相当于本发明所述方法中的主节点,而从存储控制器则相当于从节点。

当然,图2所示的网络存储系统的架构只是为了便于对本发明进行说明,在具体实施时,该系统内部结构可能会根据实际需求有所变化,例如,系统组成中不包括前端交换设备310和后端交换设备320。

会话是Initiator和Target之间最高级别的通讯路径。iSCSI定义了两种方式的会话:正常的操作会话和Initiator发现Target的发现会话。下面参见图2对所述发现会话的建立过程作一简单介绍:

Initiator为了和Target建立iSCSI会话,需要知道Target的IP地址,TCP端口号和名字三个信息。在图2所示的系统中,主存储控制器对外提供统一的IP地址、端口和名字作为Initiator的访问的入口,从存储控制器按照iSCSI协议格式命名形成Target列表。当主存储控制器收到Initiator的建立会话的请求后,会选择一个从存储控制器作为允许访问的Target,然后将该Target的名字等信息返回给该Initiator;之后,Initiator根据收到的信息与该Target建立会话。在诸如上述基于iSCSI的网络存储系统中,任何来自新的Initiator的访问请求都必须经过主存储控制器分配后才能正确建立会话。因此,一旦主存储控制器发生故障,则网络存储系统将无法响应外部请求。

下面,基于图2所示的网络存储系统,同时参见图3,对本发明应用实施例中各存储控制器初次选举主存储控制器的步骤流程进行详细说明:

首先需要确定选举信息以及选举信息的比较优先级。

选举信息包括:1设备标志flag;2时间戳;3 MAC地址。其中,设备标志flag的优先级为both>master>slave>unknown;时间戳为存储控制器启动时从系统获得的精确时间;各选举信息的比较优先级为1>2>3。

当网络存储系统初次启动后,各存储控制器初次选举出主存储控制器。以某个存储控制器为例,当存储控制器(以下简称DC)刚刚启动后:

步骤401,查询心跳网口状态,若正常,执行步骤402,若异常,执行步骤409。

心跳网口状态从异常变为正常则说明存储控制器已经正常接入网络,可以进行通信。

步骤402,向建立连接的对端存储控制器发送选举信息。

选举信息的内容为(时间戳+MAC,request,flag_local),其中,request表示该信息为请求信息,flag_local为本端存储控制器的设备标志。

步骤  ,判断是否在规定的时间内收到对端存储控制器的回复,若未收到,执行步骤409;若收到,执行步骤404。

步骤404,根据收到的回应报文,比较双方的设备标志flag,若不同,且本端大于对端,执行步骤406;若不同,且本端小于对端,执行步骤407;若相同,执行步骤405。

步骤405,比较选举信息中的其它元素,若本端大于对端,执行步骤406;否则执行步骤407。

本例中选举信息中的其它元素就是(时间戳+mac)。根据比较结果执行相应的步骤。

步骤406,将本端存储控制器置为“主”master状态,然后执行408。

可在内存中的某个区域记录存储控制器的主从状态标识,当然也可以采用其它记录方式,如配制文件等。

步骤407,将本端存储控制器置为“从”slave状态,然后执行408。

步骤408,向对端存储控制器发送选举结果。

发送信息的格式为(时间戳+MAC,finished,flag)。

步骤409,将本端存储控制器设置为“主+丛”both状态。

主存储控制器选出后,根据选举结果对所有的从存储控制器进行优先级排序,并将获取的替补优先级信息存储在各从存储控制器中。

在系统运行过程中,主存储控制器通过定期向各从存储控制器发送BFD报文进行故障检测。当主存储控制器发生故障后,各从存储控制器根据存储的替补优先级信息主动进行判断,优先级最高的从存储控制器,即第一替补从存储控制器将自身设置为“主”master状态,以替换发生故障的主存储控制器成为该网络存储系统中的当前主存储控制器,并通知其它从存储控制器,其它从存储控制器更新替补优先等级。

上述应用实施例在设置各从存储控制器的替补优先级时,将存储控制器的启动时间作为重要的参考元素,这是因为启动时间越早则说明该存储控制器正常运行的时间越长,也就说明该存储控制器越稳定,将运行最稳定的从存储控制器设置为首选替补,则最大可能的保证了网络存储系统后续的可靠运行。当然本领域技术人员在实施本发明时也可综合考虑设置替补优先级以达到最佳效果,如各存储控制器的负载等。

目前,现有网络存储系统中主存储控制器检测故障主要通过运行在各存储控制器上的软件实现,即通过软件定期发送检测报文,若连续几次仍未收到应答报文,则认为对方故障。这种检测方式由于基于传输层的TCP协议,因此根据是否收到应答报文只能从整体上判断与对方的数据通信是否中断,而无法检测故障的具体原因,而且检测质量非常差,例如:TCP在发送上层应用的故障检测报文时,会将该报文分割为多个数据包,在发送过程中通过计数器记录发送数据包的数量,在发送完一个数据包后,若在指定时间内收到对方的应答消息,认为发送成功,同时计数器值+1,若未收到则重新发送该数据包。但有时,由于网络中链路的延迟,可能导致应答消息未在指定期限内到达,而由此大量的重发数据包不仅占用网络带宽,严重的还有可能造成网络拥塞,以至于影响整个网络存储系统的性能。而本发明通过在存储控制器中设置具有BFD检测功能的独立硬件,由于BFD能够检测出网络传输各层,甚至上层应用的误码传输等故障,大大提高了故障的检测精度,对诸如链路延迟这样的问题能够精确的进行定位,因此很好地解决了现有技术存在的上述问题。

另外,现有技术通过运行在存储控制器上的软件实现故障检测需要占用存储控制器宝贵的资源,出于对存储控制器性能影响的考虑,通常将发送检测报文的间隔设定为几秒钟,这样一来,从发现故障,到切换新的主存储控制器往往需要十几秒甚至更长的时间,而在主存储控制器故障期间不但系统无法响应新的外部请求,对于从存储控制器发生的新故障也无法及时排除,由此对网络存储系统造成的影响对于像视频监控这样的高实时性业务是难以接受的。本发明采用独立硬件实现BFD故障检测,不但无需占用存储控制器资源,有效保证存储控制器的性能,而且能够将发送BFD检测报文的间隔设定在几个ms,使得故障检测所需的时间大大减少。另外,本发明的方案中第一替补从存储控制器主动设置为当前主存储控制器的方式与现有技术中通过重新选举设置主存储控制的方式相比,大大减少了恢复主存储控制器所需的时间。因此,通过实施本发明可极大的提高网络存储系统中故障监测、恢复的及时性,有效提高系统的可靠性。

以上结合具体实施例描述了本发明所述的一种提高集群通信可可靠性的方法。下面,参照上文所述内容,同时参照图4,对本发明所述的一种高可靠性通信节点的实施例进行介绍。如图4所示,所述节点500包括:

第一存储单元510,用于存储本节点的主从状态标识;

主从设置单元520,用于设置第一存储单元510中节点的主从状态标识;

替补判断单元530,用于判断本节点是否为第一替补从节点;

故障检测单元540,用于检测当前主节点是否故障,若故障且替补判断单元530判断出本节点为第一替补从节点,通知主从设置单元520设置所述第一存储单元510中的状态标识为主状态。

优选的,所述替补判断单元530包括:替补优先级获取单元5301,用于获取替补优先级信息;所述替补判断单元还包括:第一判断单元5302,用于判断所述替补优先级获取单元5301所获取的替补优先级是否为最高优先级,若为最高,则本节点为第一替补从节点;

所述节点还包括:通知单元550,用于发送所述节点获选当前主节点的通知消息;替补优先级更新单元560,用于更新当前最高优先级等级或所述替补优先级获取单元所获取的替补优先级等级。

优选的,所述节点还包括:第二存储单元570,用于存储替补标识,该替补标识唯一确定一个用于替换的对端节点;

所述替补判断单元530还包括:第二判断单元5303,用于判断第二存储单元570中替补标识对应的对端节点是否当前主节点,若为当前主节点,则所述节点为第一替补从节点。

优选的,所述故障检测单元540还包括:BFD检测单元5401,用于定期接收来自当前主节点的BFD报文,若在预定期限内未收到所述报文,则认为当前主节点故障。

将上述通信节点应用于网络存储系统就得到了本发明所述的一种存储控制装置,该装置包括:第一存储单元,用于存储所述节点的主从状态标识;主从设置单元,用于设置第一存储单元中节点的主从状态标识;替补判断单元,用于判断所述节点是否为第一替补从节点;故障检测单元,用于检测当前主节点是否故障,若故障且替补判断单元判断出所述节点为第一替补从节点,通知主从设置单元设置所述第一存储单元中的状态标识为主状态。

应用上述存储控制装置,本发明公开了一种基于iSCSI的网络存储系统,包括两个或多个存储控制装置,其中,存储控制装置包括:第一存储单元,用于存储所述节点的主从状态标识;主从设置单元,用于设置第一存储单元中节点的主从状态标识;替补判断单元,用于判断所述节点是否为第一替补从节点;故障检测单元,用于检测当前主节点是否故障,若故障且替补判断单元判断出所述节点为第一替补从节点,通知主从设置单元设置所述第一存储单元中的状态标识为主状态。

对于上述装置和系统未详尽之处请参见上文有关方法、节点实施例的描述。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号