CN107947976B - 故障节点隔离方法及集群系统 - Google Patents
故障节点隔离方法及集群系统 Download PDFInfo
- Publication number
- CN107947976B CN107947976B CN201711160951.5A CN201711160951A CN107947976B CN 107947976 B CN107947976 B CN 107947976B CN 201711160951 A CN201711160951 A CN 201711160951A CN 107947976 B CN107947976 B CN 107947976B
- Authority
- CN
- China
- Prior art keywords
- node
- fault
- cluster
- file system
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1048—Departure or maintenance mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种故障节点隔离方法及集群系统。所述方法包括:首先,集群系统的各个节点检测所述集群系统中是否存在访问存储故障的故障节点;接着,当存在故障节点时,所述故障节点向所述集群系统中的正常节点发送故障节点不能访问的集群文件系统的信息;最后,所述故障节点将所述故障节点不能访问的集群文件系统进行解挂载。上述方法可以在存储网络异常时,对不能存储访问的集群文件系统进行隔离,相对于直接隔离节点所在物理主机的方式,隔离的粒度更小,不会影响节点上其他业务。
Description
技术领域
本发明涉及共享文件系统技术领域,具体而言,涉及一种故障节点隔离方法及集群系统。
背景技术
共享文件系统在网络环境下,通过在不同操作系统下主机之间相互传输文件,从使用者的角度而言,不用考虑网络传输及访问细节,完全像是访问本地文件一样访问网络中其他服务器文件系统中的文件。
在共享文件系统中,一般采用多台服务器构成集群系统,当一个节点由于客观因素(比如,节点所在的存储链路出现故障)无法继续访问时,需要将该故障节点从集群系统中踢出。现有技术中,采用直接重启该故障节点的方式,对该故障节点进行隔离。然而,上述方法存在着单纯的重启物理主机使得被重启物理主机上其他业务中断,重启物理主机所消耗的时间,还会给运行在被重启物理主机的其他业务恢复带来更大的时延消耗。
发明内容
为了克服现有技术中的上述不足,本发明实施例的目的在于提供一种故障节点隔离方法,应用于集群系统;所述方法包括:
所述集群系统的各个节点检测所述集群系统中是否存在访问故障的故障节点;
当存在故障节点时,所述故障节点向所述集群系统中的正常节点发送故障节点不能访问存储的集群文件系统的信息;
所述故障节点将所述故障节点不能访问的集群文件系统进行解挂载。
上述方法可以在存储异常时,将隔离手段由简单的重启物理主机变更为对不能访问的集群文件系统进行隔离,相对于直接隔离节点所在物理主机的方式,隔离的粒度更小,不会影响节点上其他业务,可以防止重启物理主机对运行在物理主机上其他业务带来的时延消耗。
可选地,在上述方法中,所述集群系统中多个节点上同时挂载的集群文件系统包括集群成员管理位图,集群成员管理位图的比特位与能访问该集群文件系统的各个节点对应,在所述故障节点向所述集群系统中的正常节点发送故障节点不能访问的集群文件系统的信息之后,所述方法还可以包括:
所述正常节点在接收到所述信息后,将所述故障节点不能访问的集群文件系统的集群成员管理位图里与故障节点对应的比特位清零。
可选地,在上述方法中,所述集群系统的各个节点检测所述集群系统中是否存在访问故障的故障节点的步骤,包括:
每个节点检测磁盘心跳能否在预设时间阈值内成功写入该节点在存储区域的指定心跳区域,若能成功写入,判定该节点为正常节点,若不能成功写入,判定该节点为故障节点。
可选地,在上述方法中,在将所述故障节点不能访问的集群文件系统的集群成员管理位图里与故障节点对应的比特位清零之后,所述方法还可以包括:
所述正常节点发送消息到故障节点查询故障节点是否已经开始对所述故障节点不能访问的集群文件系统解挂载;
在查询到故障节点还未开始解挂载时,所述正常节点通知所述故障节点进行解挂载处理。
可选地,在上述方法中,所述故障节点将所述故障节点不能访问的集群文件系统进行解挂载,包括:
将所述集群系统中的节点分别划分到故障域和工作域,其中,每个故障域包括一个节点,所述工作域包括除故障域中节点之外的其他节点;
所述工作域和故障域中的节点分别进行分布式锁管理处理(DLM Recovery)。
可选地,在上述方法中,所述对所述工作域和故障域中的节点进行分布式锁管理处理的步骤,包括:
所述工作域的节点确定所述故障节点不能访问的集群文件系统中加锁对象(LockResource)的主节点;
所述故障域中的节点禁用该节点对所述故障节点不能访问的集群文件系统中加锁对象的修改权限,并将所述故障节点不能访问的集群文件系统中加锁对象的主节点设置为该所述故障域中的节点。
在工作域的节点中确定加锁对象的主节点,而对故障域中节点对加锁对象的修改权限进行禁用并将主节点设置为故障域中节点自身,可以确保多个节点在对磁盘进行访问时,只有工作域的主节点具有修改权限,不会引起访问失调的问题。
可选地,在上述方法中,将所述集群系统中的节点分别划分到故障域和工作域,包括:
所述集群系统中各个节点通过读取其他节点的磁盘心跳将各节点划分到对应的故障域或工作域,当某一节点的磁盘心跳无法被其他节点读取时,将该节点划分到故障域,反之将该节点划分到工作域;和
所述集群系统中各个节点通过节点之间的管理网络通信状况将各节点划分到对应的故障域或工作域,当某一节点在一预设时长内不能和其他节点通信,将该节点划分到故障域,反之将该节点划分到工作域。
可选地,在上述方法中,所述文件系统包括一用于表示集群文件系统解挂载状态的标识,所述正常节点发送消息到故障节点查询故障节点是否已经开始文件系统解挂载,包括:
查询所述故障节点不能访问的集群文件系统中的标识是否为解挂载状态或即将解挂载状态;
若是,则判定故障节点已经开始解挂载;
若否,则判定故障节点还未开始解挂载。
本发明实施例的另一目的在于提供一种集群系统,所述集群系统包括正常节点及存在访问存储故障的故障节点,
所述故障节点用于向所述集群系统中的正常节点发送故障节点不能访问的集群文件系统的信息;
所述故障节点还用于将所述故障节点不能访问的集群文件系统进行解挂载。
可选地,在上述系统中,所述集群系统中多个节点上同时挂载的集群文件系统包括集群成员管理位图,集群成员管理位图的比特位与能访问该集群文件系统的各个节点对应,所述正常节点,用于在接收到所述信息后,将所述故障节点不能访问的集群文件系统的集群成员管理位图里与故障节点对应的比特位清零。
可选地,在上述系统中,所述故障节点可以通过以下方式确定:
所述集群系统的每个节点检测磁盘心跳能否在预设时间阈值内成功写入该节点在存储区域的指定心跳区域,若能成功写入,判定该节点为正常节点,若不能成功写入,判定该节点为故障节点。
可选地,在上述系统中:
所述正常节点,还用于发送消息到故障节点查询故障节点是否已经开始对所述故障节点不能访问的集群文件系统解挂载;
所述正常节点,还用于在查询到故障节点还未开始解挂载时,通知所述故障节点进行解挂载处理。
可选地,在上述系统中,所述系统还包括工作域和故障域,其中,每个故障域包括一个节点,所述工作域包括除故障域中节点之外的其他节点;
所述工作域的节点确定所述故障节点不能访问的集群文件系统中加锁对象的主节点;
所述故障域中的节点禁用该节点对所述故障节点不能访问的集群文件系统中加锁对象的修改权限,并将所述故障节点不能访问的集群文件系统中加锁对象的主节点设置为所述故障域中的节点。
相对于现有技术而言,本发明具有以下有益效果:
本发明实施例提供的故障节点隔离方法及集群系统,上述方法可以在存储异常时,将隔离手段由简单的重启物理主机变更为对不能存储访问的集群文件系统进行隔离,相对于现有技术实现手段本申请隔离的粒度更小,隔离方式更加温和,不会影响节点上其他业务,保证使用者其他业务的连续性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的集群系统的示意图;
图2为本发明实施例提供的故障节点隔离方法的步骤流程示意图之一;
图3为本发明实施例提供的检测访问存储故障的示意图;
图4为本发明实施例提供的故障节点隔离方法的步骤流程示意图之二;
图5为图2或图4中步骤S130的子步骤流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
请参照图1,图1为本发明实施例提供的一种集群系统,所述集群系统是指集群系统是一种由互相连接的计算机组成的并行或分布式系统,可以作为单独、统一的计算资源来使用。在本实施例中,所述集群系统可以包括节点、存储网络及共享存储,节点及所述共享存储可以是多个。在存储访问正常的情况下,每个节点均可以通过存储网络访问每个共享存储。存储网络可以通过由至少一个存储交换机组成的存储网络实现节点与共享存储之间的数据通信;存储网络也可以通过光纤通道技术(Fibre Channel,简称FC)实现节点与共享存储之间的数据通信。在本实施例中,共享存储上可以存储至少一个可供各个节点共享访问的文件系统的元数据,节点可以对文件系统的元数据进行访问修改,在本实施例中,每一个文件系统包括至少一个加锁对象,在对某一加锁对象进行访问时,各个节点之间是互斥的,即在某一时刻只有一个节点具有对加锁对象访问修改的权限。
请参照图2,图2为应用于集群系统的一种故障节点隔离方法的流程图,以下将对所述方法包括的各个步骤进行详细阐述。
步骤S110,所述集群系统的各个节点检测所述集群系统中是否存在访问存储故障的故障节点。
在本实施例中,节点可以是物理主机,也可以是运行于物理主机上的虚拟机。在集群系统中的各个节点可以全是物理主机,也可以全是虚拟机,还可以物理主机和虚拟机的组合。所述步骤S110可以通过以下方式实现。
请参照图3,黑点代表一个节点向共享存储写一次磁盘心跳,当存在存储网络故障(如,节点到共享存储的存储链路故障)时,比如图3中节点A的磁盘心跳将无法成功写入到节点A在共享存储对应的心跳区域,节点A将会判定自身为故障节点,同时节点B和C由于长时间不能在共享存储中A节点对应的心跳区域检测到写入的磁盘心跳,节点B和C也会各自判定节点A为故障节点。而节点B和C均能将各自的磁盘心跳成功写入各自在共享存储对应的心跳区域,同时节点B和C写入的磁盘心跳也可以被其他节点检测到,节点B和节点C会被判定为正常节点。在本实施例中,所述的故障节点并不是指该节点本身故障,而是指因存储网络故障无法访问共享存储,从而无法访问存储在该共享存储上集群文件系统的节点。所述正常节点是相对于故障节点而言的,所述正常节点是指能够访问存储在该共享存储上集群文件系统的节点。可以理解的是,针对不同的集群文件系统各个节点的角色可以互换,比如,针对集群文件系统A,节点A可以是故障节点,节点B可以是正常节点;而针对集群文件系统B,节点A可以是正常节点,节点B可以是故障节点。
可选地,还可以对写入节点在共享存储的指定心跳区域的时间进行限制,当节点的磁盘心跳在预设时间阈值内成功写入该节点在存储区域的指定心跳区域,则判定节点为正常节点,反之则判定节点为故障节点。
步骤S120,当存在故障节点时,所述故障节点向所述集群系统中的正常节点发送故障节点不能访问的集群文件系统的信息。
集群文件系统是指可以在集群系统中的各个节点上同时挂载的共享文件系统,任何一个节点进行的文件操作,在其他节点都能看到前述操作所产生的结果。
在本实施例中,在网络存储故障时,故障节点向所述集群系统中除故障节点之外的正常节点发送不能访问的集群文件系统的信息(比如,NM_DLM_NODE_LEAVE)。通知其他正常节点该故障节点即将对所述故障节点不能访问的集群文件系统进行的解挂载。
步骤S130,故障节点将所述故障节点不能访问的集群文件系统进行解挂载。
上述解挂载可以通过umount命令实现,在本实施例的一种可选方式中,解挂载集群文件系统的代码可以如下:
#umount/dev/sda;
#umount/mnt/mount_moint;
其中,/dev/sda对应集群文件系统所在共享存储的分区,/mnt/mount_moint对应挂载的目录。
请参照图4,在本实施例中,在所述故障节点向所述集群系统中的正常节点发送故障节点不能访问的集群文件系统的信息之后,所述方法还可以包括步骤S140。
步骤S140,所述正常节点在接收到所述信息后,将所述故障节点不能访问的集群文件系统的集群成员管理位图里与故障节点对应的比特位清零。
在本实施例中,所述集群系统中节点上同时挂载的集群文件系统包括集群成员管理位图,集群成员管理位图的比特位与能访问该集群文件系统的各个节点对应。集群成员管理位图的比特位为非零(比如1)表示该比特位对应节点能访问该集群文件系统,集群成员管理位图的比特位为零表示该比特位对应节点不能访问该集群文件系统。
在存储网络故障时,所述正常节点会对存储在所述正常节点中所述故障节点不能访问的集群文件系统的集群成员管理位图进行处理,可选地,所述正常节点可以通过将所述故障节点不能访问的集群文件系统的集群成员管理位图里所述故障节点对应的比特位清零的方式,以避免故障节点干扰所述正常节点对所述故障节点不能访问的集群文件系统的加锁。将集群成员管理位图里所述故障节点对应的比特位清零可以确保在管理网络出现故障时,在工作域的节点在进行分布式锁管理处理时,工作域中的节点在选择加锁对象的主节点时,不会从集群成员管理位图中将故障节点选择为加锁对象的主节点,以防止故障节点在工作域节点进行分布式锁管理处理时被选为加锁对象的主节点,而导致工作域中各节点无法对加锁对象进行加锁的操作。上述比特位清零可以实现所述集群系统中的正常节点对所述故障节点不能访问的集群文件系统进行正确、顺畅的加锁,排除故障节点在所述正常节点对所述故障节点不能访问的集群文件系统加锁过程中的干扰。
在对所述故障节点不能访问的集群文件系统进行锁管理时,正常节点与故障节点将不会对所述故障节点不能访问的集群文件系统进行协同工作,从而避免正常节点与故障节点协同访问该集群文件系统而导致的访问堵塞。
在本实施例中,为了保证集群系统能正常工作,在出现故障节点后,需要保证故障节点和正常节点的锁空间域的一致性,即需要故障节点和正常节点均对所述故障节点不能访问的集群文件系统进行处理。在步骤S140之后,所述方法还可以包括:
正常节点发送消息到故障节点查询故障节点是否已经开始对所述故障节点不能访问的集群文件系统解挂载。
在本实施例中,每一集群文件系统包括一用于表示集群文件系统解挂载状态的标识,所述正常节点发送消息到故障节点查询故障节点是否已经开始对所述故障节点不能访问的集群文件系统解挂载的实现方式可以如下:
所述正常节点可以查询所述故障节点不能访问的集群文件系统中的标识是否为解挂载状态或即将解挂载状态;若是,则判定故障节点已经开始解挂载;若否,则判定故障节点还未开始解挂载。
当查询到故障节点还未开始文件系统解挂载时,所述正常节点通知所述故障节点进行文件系统解挂载处理。
在本实施例中,正常节点可以通过发送控制指令协调所述故障节点调用解挂载指令对所述故障节点不能访问的集群文件系统进行解挂载处理。
在本实施中,在进行解挂载的过程中,需要被解挂载集群文件系统中所有加锁对象(Lock Resource)的主节点对加锁对象进行解锁。为了防止在解挂载过程中,因集群系统中各个节点之间的管理网络故障,而导致解锁流程无法顺利进行,请参照图5,步骤S130可以包括:
步骤S131,将集群系统中的节点分别划分到故障域和工作域。
其中,每个故障域包括一个节点,所述工作域包括除故障域中节点之外的其他节点。
在本实施例中,将集群系统中的节点划分到故障域和工作域的方式包括:
所述集群系统中各个节点通过读取其他节点的磁盘心跳将各节点划分到对应的故障域或工作域,当某一节点的磁盘心跳无法被其他节点读取时,将该节点划分到故障域,反之将该节点划分到工作域。其中,所述磁盘心跳可以为节点周期性向共享存储的固定区域写入的磁盘心跳。
请再次参照图3,以图3为例,节点A因无法在共享存储中写入磁盘心跳,节点B和节点C将无法读取节点A的磁盘心跳,则节点A进入故障域,而节点B和节点C则进入工作域。当然在出现网络故障时,若某一节点能在共享存储中写入磁盘心跳,而其他节点无法读取该节点的磁盘心跳,该节点也会进入故障域。在上述过程中集群系统基于各个节点的检测结果确定划分到故障域的节点。
在本实施例中,将集群系统中的节点划分到故障域和工作域的方式还包括:
所述集群系统中各个节点通过节点之间的管理网络通信状况将各节点划分到对应的故障域或工作域,当某一节点在一预设时长内不能和其他节点通过管理网络通信,将该节点划分到故障域,反之将该节点划分到工作域。
步骤S132,所述工作域和故障域中的节点分别进行分布式锁管理处理(DLMRecovery)。
在本实施例中,分布式锁管理处理是指,在一加锁对象的主副本所在主节点出现故障时,从该加锁对象剩余的副本中重新选择主副本的过程。针对一加锁对象而言,只有主副本所在的主节点可决定将加锁请求授予哪一个节点,在存在多个节点同时向主节点发出加锁请求时,所述主节点可以决定将加锁请求授予给哪一个节点,获得加锁请求的节点可以对加锁对象进行修改操作。
针对分布式锁,同一加锁对象在不同节点上都存在一个副本,但所有副本中只有一个副本是主副本,当主副本所在的主节点出现故障时,分布式锁会启动DLM Recovery流程重新选择一个节点中的副本作为主副本。
由于无法确认所述故障节点不能访问的集群文件系统中各个加锁对象对应的主节点,为了确保所述故障节点不能访问的集群文件系统能被故障节点解挂载和其他正常节点能对所述故障节点不能访问的集群文件系统进行正常存储访问。因此需要对故障域及工作域中的节点进行分布式锁管理处理。
在本步骤中,进行分布式锁管理处理的步骤可以如下:
对工作域而言,在所述工作域的节点中确定所述故障节点不能访问的集群文件系统中加锁对象的主节点。
在工作域的节点中通过DLM Recovery流程选择所述故障节点不能访问的集群文件系统中各个加锁对象对应的主节点。
在对工作域的节点通过DLM Recovery处理时,从集群成员管理位图里中选择一非零比特位对应的节点作为主节点,在该过程中,若故障节点在该故障节点不能访问的集群文件系统的集群成员管理位图中对应的比特位为非零,选择出来的主节点就有可能是故障节点,又因故障节点本身无法访问该集群文件系统,会导致故障节点不能对该集群文件系统中的加锁对象加锁,干扰工作域中各节点无法正常对加锁对象进行加锁操作。
对工作域进行DLM Recovery处理,确保在故障节点上对所述故障节点不能访问的集群文件系统的解挂载后,不会影响集群系统中其他正常节点对所述故障节点不能访问的集群文件系统的存储访问。
对于故障域而言,各个故障域中的节点会禁用该节点对所述故障节点不能访问的集群文件系统中加锁对象的修改权限,可选地,可以通过文件系统日志模块进行上述修改权限的禁用。
在禁用修改权限后,故障域中的节点进行DLM Recovery流程直接将该节点中的所述故障节点不能访问的集群文件系统中加锁对象的主节点都设置为故障域中的节点自身。
在对故障域中的节点进行DLM Recovery流程前进行修改权限的禁用可以防止针对同一加锁对象在不同节点(比如,故障域中节点和工作域中节点)上持有不可兼容的锁级别,而导致多个节点对共享存储的访问失调,由此引发文件系统不一致的问题。通过上述处理即便针对同一加锁对象可能存在多个主节点,但只有工作域中对应的主节点可以进行加解锁及共享存储中元数据的修改,故障域中对应的主节点只能进行加解锁无法进行元数据的修改。如此,即便一个加锁对象存在不可兼容的锁级别,也不会导致对共享存储访问失调的问题。
将无法被其他节点读取磁盘心跳的每个节点和在预设时长内无法和其他节点通过管理网络通信的每个节点单独放置在对应的一个故障域中,可以确保故障节点能顺利解挂载所述故障节点不能访问的集群文件系统。比如,在一次解挂载中,除了故障节点还包括因为管理网络故障而导致预设时长内无法和其他节点通信的网络故障节点,若将故障节点和网络故障节点一起放在一个故障域中,在对故障域中节点进行分布式锁管理处理时,所述故障节点不能访问的集群文件系统中的加锁对象的主节点就可能一部分是故障节点而另一部分是网络故障节点,由于加锁对象的主节点并不完全是故障节点,同时网络故障节点因管理网络故障又无法让其他节点读取到其对所述故障节点不能访问的集群文件系统的操作,会导致故障节点无法对所述故障节点不能访问的集群文件系统的所有加锁对象解锁,进而无法正常进行解挂载。
经过上述步骤的处理,在存在存储网络故障及管理网络故障时,故障节点在进行解挂载时能顺利对所述故障节点不能访问的集群文件系统中的加锁对象进行解锁流程,从而确保能顺利解挂载所述故障节点不能访问的集群文件系统。
通过上述故障节点隔离方法,在出现存储异常时,对不能存储访问的集群文件系统进行隔离,相对于现有技术直接隔离节点所在物理主机的方式,隔离的粒度更小,不会影响节点上的其他业务,确保其他业务的连续性。同时,考虑集群系统中各节点之间可能存在管理网络故障而导致故障节点无法解挂载所述故障节点不能访问的集群文件系统,将集群系统划分为故障域和工作域。对故障域的节点及工作域的节点中进行分布式锁处理,确保故障节点能顺利完成所述故障节点不能访问的集群文件系统的解挂载,从而确保对故障节点能隔离成功。
本发明实施例还提供一种集群系统,所述集群系统包括多个节点。
在多个节点中包括访问存储故障的故障点时,所述故障节点用于向所述集群系统中除故障节点之外的正常节点发送故障节点不能访问的集群文件系统的信息;
所述故障点还用于将所述故障节点不能访问的集群文件系统进行解挂载。
在接收到所述故障点不能访问的集群文件系统的信息后,将所述故障节点不能访问的集群文件系统的集群成员管理位图里与故障节点对应的比特位清零,以避免正常节点与故障节点协同访问所述故障节点不能访问的集群文件系统而导致的访问堵塞。
在本实施例中,所述集群系统中节点上同时挂载的集群文件系统包括集群成员管理位图,集群成员管理位图的比特位与能访问该集群文件系统的各个节点对应。
所述集群系统通过以下方式确定故障节点:
所述集群系统的每个节点检测磁盘心跳能否在预设时间阈值内成功写入该节点在存储区域的指定心跳区域,若能成功写入,判定该节点为正常节点,若不能成功写入,判定该节点为故障节点。
在本实施例中,为了保证故障节点和正常节点的锁空间域的一致性,及确保在故障节点出现集群文件系统访问故障后,故障节点和正常节点都对所述故障节点不能访问的集群文件系统进行处理。
所述正常节点,还用于发送消息到故障节点查询故障节点是否已经开始对所述故障节点不能访问的集群文件系统解挂载;
所述正常节点,还用于在查询到故障节点还未开始解挂载时,通知所述故障节点进行解挂载处理。
在本实施中,在进行解挂载的过程中,需要被解挂载集群文件系统的所有加锁对象的主节点进行解锁。为了防止在解挂载过程中,因集群系统中各个节点之间的管理网络故障,而导致解锁流程无法顺利进行。所述系统还包括工作域和故障域,其中,每个故障域包括一个节点,所述工作域包括除故障域中节点之外的其他节点;
所述工作域的节点确定所述故障节点不能访问的集群文件系统中加锁对象的主节点;
所述故障域中的节点禁用该节点对所述故障节点不能访问的集群文件系统中加锁对象的修改权限,并将所述故障节点不能访问的集群文件系统中加锁对象的主节点设置为所述故障域中的节点自身。
综上所述,本发明提供的故障节点隔离方法及集群系统,在出现存储异常时,对所述故障节点不能访问的集群文件系统进行隔离,相对于直接隔离节点所在物理主机的方式,隔离的粒度更小,不会影响节点上其他业务。同时,考虑集群系统中各节点之间可能存在管理网络故障而导致故障节点无法解挂载文件系统,根据节点间的通信状况将集群系统划分为故障域与工作域,在故障域的节点及工作域的节点中进行分布式锁处理,确保故障节点能顺利完成文件系统解挂载,从而确保对故障节点能成功隔离。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种故障节点隔离方法,其特征在于,应用于集群系统,所述方法包括:
所述集群系统的各个节点检测所述集群系统中是否存在无法访问存储在共享存储上的集群文件系统的故障节点;
当存在故障节点时,所述故障节点向所述集群系统中的正常节点发送故障节点不能访问的集群文件系统的信息;
所述故障节点将所述故障节点不能访问的集群文件系统进行解挂载,其中,在解挂载过程中,需要被解挂载集群文件系统中所有加锁对象的主节点对加锁对象进行解锁;
所述故障节点将所述故障节点不能访问的集群文件系统进行解挂载的步骤,包括:
将所述集群系统中的节点分别划分到故障域和工作域,其中,每个故障域包括一个节点,所述工作域包括除故障域中节点之外的其他节点;
所述工作域和故障域中的节点分别进行分布式锁管理处理。
2.如权利要求1所述的方法,其特征在于,所述集群系统中节点上同时挂载的集群文件系统包括集群成员管理位图,集群成员管理位图的比特位与能访问该集群文件系统的各个节点对应,在所述故障节点向所述集群系统中的正常节点发送故障节点不能访问的集群文件系统的信息之后,所述方法还包括:
所述正常节点在接收到所述信息后,将所述故障节点不能访问的集群文件系统的集群成员管理位图里与故障节点对应的比特位清零。
3.如权利要求1所述的方法,其特征在于,所述集群系统的各个节点检测所述集群系统中是否存在无法访问存储在共享存储上的集群文件系统的故障节点的步骤,包括:
每个节点检测磁盘心跳能否在预设时间阈值内成功写入该节点在存储区域的指定心跳区域,若能成功写入,判定该节点为正常节点,若不能成功写入,判定该节点为故障节点。
4.如权利要求2所述的方法,其特征在于,在将所述故障节点不能访问的集群文件系统的集群成员管理位图里与故障节点对应的比特位清零之后,所述方法还包括:
所述正常节点发送消息到故障节点查询故障节点是否已经开始对所述故障节点不能访问的集群文件系统解挂载;
在查询到故障节点还未开始解挂载时,所述正常节点通知所述故障节点进行解挂载处理。
5.如权利要求1-4中任意一项所述的方法,其特征在于,所述工作域和故障域中的节点分别进行分布式锁管理处理的步骤,包括:
所述工作域的节点确定所述故障节点不能访问的集群文件系统中加锁对象的主节点;
所述故障域中的节点禁用该节点对所述故障节点不能访问的集群文件系统中加锁对象的修改权限,并将所述故障节点不能访问的集群文件系统中加锁对象的主节点设置为所述故障域中的节点。
6.如权利要求1-4中任意一项所述的方法,其特征在于,将所述集群系统中的节点分别划分到故障域和工作域,包括:
所述集群系统中各个节点通过读取其他节点的磁盘心跳将各节点划分到对应的故障域或工作域,当某一节点的磁盘心跳无法被其他节点读取时,将该节点划分到故障域,反之将该节点划分到工作域;和
所述集群系统中各个节点通过节点之间的管理网络通信状况将各节点划分到对应的故障域或工作域,当某一节点在一预设时长内不能和其他节点通信,将该节点划分到故障域,反之将该节点划分到工作域。
7.如权利要求4所述的方法,其特征在于,所述集群文件系统包括一用于表示集群文件系统解挂载状态的标识,所述正常节点发送消息到故障节点查询故障节点是否已经开始对所述故障节点不能访问的集群文件系统解挂载,包括:
查询所述故障节点不能访问的集群文件系统中的标识是否为解挂载状态或即将解挂载状态;
若是,则判定故障节点已经开始解挂载;
若否,则判定故障节点还未开始解挂载。
8.一种集群系统,其特征在于,所述集群系统包括正常节点及存在访问故障的故障节点,
所述故障节点用于向所述集群系统中的正常节点发送故障节点不能访问的集群文件系统的信息,其中,所述故障节点为所述集群系统中无法访问存储在共享存储上的集群文件系统的节点;
所述故障节点还用于将所述故障节点不能访问的集群文件系统进行解挂载,在解挂载过程中,需要被解挂载集群文件系统中所有加锁对象的主节点对加锁对象进行解锁;所述故障节点将所述故障节点不能访问的集群文件系统进行解挂载的方式包括:将所述集群系统中的节点分别划分到故障域和工作域,其中,每个故障域包括一个节点,所述工作域包括除故障域中节点之外的其他节点,以使所述工作域和故障域中的节点分别进行分布式锁管理处理。
9.如权利要求8所述的系统,所述集群系统中节点上同时挂载的集群文件系统包括集群成员管理位图,集群成员管理位图的比特位与能访问该集群文件系统的各个节点对应,其特征在于:
所述正常节点,用于在接收到所述信息后,将所述故障节点不能访问的集群文件系统的集群成员管理位图里与故障节点对应的比特位清零。
10.如权利要求8或9所述的系统,其特征在于,所述故障节点通过以下方式确定:
所述集群系统的每个节点检测磁盘心跳能否在预设时间阈值内成功写入该节点在存储区域的指定心跳区域,若能成功写入,判定该节点为正常节点,若不能成功写入,判定该节点为故障节点。
11.如权利要求10所述的系统,其特征在于:
所述正常节点,还用于发送消息到故障节点查询故障节点是否已经开始对所述故障节点不能访问的集群文件系统解挂载;
所述正常节点,还用于在查询到故障节点还未开始解挂载时,通知所述故障节点进行解挂载处理。
12.如权利要求9所述的系统,其特征在于,所述系统还包括工作域和故障域,其中,每个故障域包括一个节点,所述工作域包括除故障域中节点之外的其他节点;
所述工作域的节点确定所述故障节点不能访问的集群文件系统中加锁对象的主节点;
所述故障域的节点禁用该节点对所述故障节点不能访问的集群文件系统中加锁对象的修改权限,并将所述故障节点不能访问的集群文件系统中加锁对象的主节点设置为所述故障域中的节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711160951.5A CN107947976B (zh) | 2017-11-20 | 2017-11-20 | 故障节点隔离方法及集群系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711160951.5A CN107947976B (zh) | 2017-11-20 | 2017-11-20 | 故障节点隔离方法及集群系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107947976A CN107947976A (zh) | 2018-04-20 |
CN107947976B true CN107947976B (zh) | 2020-02-18 |
Family
ID=61929292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711160951.5A Active CN107947976B (zh) | 2017-11-20 | 2017-11-20 | 故障节点隔离方法及集群系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107947976B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108959024A (zh) * | 2018-06-26 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种集群监控方法和装置 |
CN109302445B (zh) * | 2018-08-14 | 2021-10-12 | 新华三云计算技术有限公司 | 主机节点状态确定方法、装置、主机节点及存储介质 |
CN109460315A (zh) * | 2018-12-20 | 2019-03-12 | 华迪计算机集团有限公司 | 共享磁盘故障节点的处理方法、装置、计算机设备 |
CN109815064B (zh) * | 2019-01-04 | 2023-10-27 | 平安科技(深圳)有限公司 | 节点隔离方法、装置、节点设备及计算机可读存储介质 |
CN112214466B (zh) * | 2019-07-12 | 2024-05-14 | 海能达通信股份有限公司 | 分布式集群系统及数据写入方法、电子设备、存储装置 |
CN111104239A (zh) * | 2019-11-21 | 2020-05-05 | 北京浪潮数据技术有限公司 | 一种分布式存储集群的硬盘故障处理方法、系统及装置 |
CN111459963B (zh) * | 2020-04-07 | 2024-03-15 | 中国建设银行股份有限公司 | 核心账务交易并发处理方法及装置 |
CN111628893B (zh) * | 2020-05-27 | 2022-07-12 | 北京星辰天合科技股份有限公司 | 分布式存储系统的故障处理方法及装置、电子设备 |
CN113162797B (zh) * | 2021-03-03 | 2023-03-21 | 山东英信计算机技术有限公司 | 一种分布式集群的主节点故障的切换方法、系统及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053873A (zh) * | 2011-01-13 | 2011-05-11 | 浙江大学 | 一种缓存感知的多核处理器虚拟机故障隔离保证方法 |
CN104077199A (zh) * | 2014-06-06 | 2014-10-01 | 中标软件有限公司 | 基于共享磁盘的高可用集群的隔离方法和系统 |
CN106815298A (zh) * | 2016-12-09 | 2017-06-09 | 中电科华云信息技术有限公司 | 基于块存储的分布式共享文件系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6915391B2 (en) * | 2000-12-15 | 2005-07-05 | International Business Machines Corporation | Support for single-node quorum in a two-node nodeset for a shared disk parallel file system |
CN103209095B (zh) * | 2013-03-13 | 2017-05-17 | 广东中兴新支点技术有限公司 | 一种基于磁盘服务锁的裂脑预防的方法和装置 |
-
2017
- 2017-11-20 CN CN201711160951.5A patent/CN107947976B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053873A (zh) * | 2011-01-13 | 2011-05-11 | 浙江大学 | 一种缓存感知的多核处理器虚拟机故障隔离保证方法 |
CN104077199A (zh) * | 2014-06-06 | 2014-10-01 | 中标软件有限公司 | 基于共享磁盘的高可用集群的隔离方法和系统 |
CN106815298A (zh) * | 2016-12-09 | 2017-06-09 | 中电科华云信息技术有限公司 | 基于块存储的分布式共享文件系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107947976A (zh) | 2018-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107947976B (zh) | 故障节点隔离方法及集群系统 | |
JP4249622B2 (ja) | 共有ストレージを備えたマルチノード環境のためのシステムおよび方法 | |
US6266785B1 (en) | File system filter driver apparatus and method | |
US9582373B2 (en) | Methods and systems to hot-swap a virtual machine | |
US8694820B2 (en) | Failure recovery method | |
KR100326982B1 (ko) | 높은 크기 조정 가능성을 갖는 고 가용성 클러스터 시스템 및 그 관리 방법 | |
US8549364B2 (en) | Failure detection and recovery of host computers in a cluster | |
JP4726416B2 (ja) | コンピュータ・クラスタを操作するための方法 | |
CN100375028C (zh) | 在存储区域网络中安装远程引导的操作系统的系统和方法 | |
US7953890B1 (en) | System and method for switching to a new coordinator resource | |
US20080281959A1 (en) | Managing addition and removal of nodes in a network | |
US20180260123A1 (en) | SEPARATION OF DATA STORAGE MANAGEMENT ON STORAGE devices FROM LOCAL CONNECTIONS OF STORAGE DEVICES | |
US20040205377A1 (en) | Fault tolerant multi-node computing system for parallel-running a program under different environments | |
JP2002229837A (ja) | 共有ディスク・パラレル・データ・ファイル内のデータに対するアクセスを制御する方法 | |
US8015432B1 (en) | Method and apparatus for providing computer failover to a virtualized environment | |
CN108600284B (zh) | 一种基于Ceph的虚拟机高可用实现方法及系统 | |
US20040073648A1 (en) | Network calculator system and management device | |
US7120821B1 (en) | Method to revive and reconstitute majority node set clusters | |
US9800569B2 (en) | Data protection backup agent management | |
US8065569B2 (en) | Information processing apparatus, information processing apparatus control method and control program | |
US7752497B2 (en) | Method and system to detect errors in computer systems by using state tracking | |
CN113765697B (zh) | 管理数据处理系统的日志的方法和系统及计算机可读介质 | |
US20100205164A1 (en) | Maintaining Data Integrity | |
JP2003030167A (ja) | クラスタ化コンピュータ・システムでの入出力ブリッジ・デバイスのアトミック所有権変更動作 | |
KR100305491B1 (ko) | 사건롤업방법및장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |