CN103167010A - 用于在集群中指示节点存活的方法和设备 - Google Patents
用于在集群中指示节点存活的方法和设备 Download PDFInfo
- Publication number
- CN103167010A CN103167010A CN2011104300124A CN201110430012A CN103167010A CN 103167010 A CN103167010 A CN 103167010A CN 2011104300124 A CN2011104300124 A CN 2011104300124A CN 201110430012 A CN201110430012 A CN 201110430012A CN 103167010 A CN103167010 A CN 103167010A
- Authority
- CN
- China
- Prior art keywords
- cluster
- node
- shared resource
- host node
- persistence
- 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.)
- Granted
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
本发明的实施方式涉及用于在集群中指示节点存活的方法和设备。特别地,公开了一种用于在集群中的主节点处向集群的至少一个从节点指示主节点存活的方法,主节点和至少一个从节点遵循小型计算机系统接口SCSI协议,该方法包括:创建针对集群的共享资源的持久性预留;以及通过周期性地更改持久性预留的状态来更新集群的世代指示,其中世代指示是至少一个从节点通过访问共享资源可获得的。还公开了用于在集群中的从节点处检测集群中的主节点是否存活的方法,包括:向集群的共享资源进行注册;定期访问共享资源以获得集群的世代指示;以及通过确定世代指示与先前获得的世代指示相比是否被更新,来检测主节点是否存活。还公开了相应的设备。
Description
技术领域
本发明的实施方式总体上涉及分布式信息处理领域,更具体地,涉及用于在集群中指示节点存活的方法和设备。
背景技术
随着计算技术的发展,集群已经成为了一种重要的现代计算架构。在集群中,通常需要系统中的特定节点(可以是设备,也可以是应用程序等)向其他节点指示其存活(aliveness),即,该节点目前处于可操作状态或有效工作状态。例如,在多个节点组成的集群中,通常存在一个或多个节点充当该集群的主节点,其例如负责控制集群以及其他成员节点的行为。此类主节点需要不断地向集群中的其他节点(称为“从节点”)指示其存活。如果主节点没有指示其存活,则从节点可以认为主节点已经发生故障。此时,集群系统中的从节点可以“竞争”成为新的主节点,以便确保整个集群系统的正常运转。可以理解,主节点向其他节点指示其存活是维护集群正常操作的基础之
除了集群中的主节点之外,另一个需要指示存活的常见场景是对共享资源持续性互斥占有(即,对该共享资源的排他性使用要持续一段时间)的节点向等待使用该共享资源的节点指示其存活。具体而言,由于目前资源的所有者节点要独占资源直到其放弃或者出现故障,因此需要向共享资源的其他等待节点指示其目前正在正常地使用该资源,以避免出现死锁的现象。如果资源的所有者节点不再指示其存活,则其他等待节点可以结束等待,并主动竞争对该共享资源的使用。
在现有技术中,一种指示节点存活的方法是基于网络心跳消息。需要向其他节点指示其存活的节点在网络上以预定间隔发送心跳消息,以宣称其存活。其他节点如果能够在预定间隔接收到网络上的心跳消息,则表明主节点目前处于存活状态。反之,如果在预定间隔没有接收到心跳消息,则可以认为主节点已经出现故障。这种方法存在较为明显的缺陷。首先,网络心跳的丢失可能是主设备和/或从设备端的网络造成的。因此,需要其他辅助算法来确定问题究竟发生在主节点还是从节点侧的网络。其次,很多基于共享存储的集群在节点之间并不存在强网络连接(例如,虚拟机文件系统VMFS)。此时,网络心跳机制可能根本无法工作。另外,网络分割问题仅仅表示网络连接问题,并不足以表明主节点已经发生故障。由网络分割问题引起的后续集群保护动作可能不必要地破坏数据完整性。
除了网络心跳之外,另一已知的存活指示策略是磁盘心跳。例如,可以设置由主节点和所有从节点可访问的共享存储(例如,磁盘),并且在该磁盘上设置专门的区域。主节点持续地更新该区域中的存储内容,由此将其存活通知给其他节点。与网络心跳相比,磁盘心跳克服了其某些缺点。然而,在磁盘心跳策略中,系统必须预留附加的存储空间以用于磁盘心跳信息。另外,预留存储空间中的磁盘心跳信息的损坏可能导致“裂脑”(split-brain)问题。而且,尽管将磁盘心跳与重要互斥数据一起存储能够提供更为准确的判断。但是频繁地访问/更新不同扇区中的磁盘心跳信息使得读写头来回移动,从而影响了其他数据I/O存取的效率。除此之外,磁盘心跳信息还必须具有主节点的标识信息,以便其他节点能够知道究竟谁是主节点。然而,在某些特定的集群配置中,可能同时存在多个主节点。此时,系统必须设计非常复杂的算法来跟踪主节点的存活。
因此,本领域中需要一种在集群中更为准确、有效和方便地指示设备存活的技术方案。
发明内容
鉴于以上问题,本发明提出一种更为有效和方便地在集群中指示主节点存活的方法和设备。
在本发明的一个方面,提供一种用于在集群中的主节点处向至少一个从节点指示该主节点存活的方法。该方法包括:创建针对该集群的共享资源的持久性预留;以及通过周期性地更改该持久性预留的状态来更新该集群的世代指示,其中该世代指示是该至少一个从节点通过访问该共享资源可获得的。
在本发明的另一方面,提供一种用于在集群中的主节点处向至少一个从节点指示该主节点存活的设备。该设备包括:创建装置,配置用于创建针对该集群的共享资源的持久性预留;以及更新装置,配置用于通过周期性地更改该持久性预留的状态来更新该集群的世代指示,其中该世代指示是该至少一个从节点通过访问该共享资源可获得的。
在本发明的又一方面,提供一种用于在集群中的从节点处检测该集群中的主节点是否存活的方法。该方法包括:向该集群的共享资源进行注册;定期访问该共享资源以获得该集群的世代指示;以及通过确定该世代指示与先前获得的世代指示相比是否被更新,来检测该主节点是否存活。
在本发明的再一方面,提供一种用于在集群中的从节点处检测该集群中的主节点是否存活的设备。该设备包括:注册装置,配置用于向该集群的共享资源进行注册;访问装置,配置用于定期访问该共享资源以获得该集群的世代指示;以及检测装置,配置用于通过确定该世代指示与先前获得的世代指示相比是否被更新,来检测该主节点是否存活。
根据本发明的实施方式,在由SCSI兼容的设备构建的分布式集群系统中,主节点可以通过操作针对共享资源的持久性预留,从而在集群的成员情况未发生变化的情况下使系统的世代指示不断更新。相应地,从节点可以通过访问共享资源来获得世代指示,并且根据该指示是否被定期更新来检测主节点是否存活。在本发明的优选实施方式中,主节点和从节点对共享资源的所有操作都可以利用已有的SCSI命令来实现。以此方式,主节点可以高效、方便和灵活地向从节点指示其存活状态。
附图说明
通过参考附图阅读下文的详细描述,本发明实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示出了可在其中使用本发明实施方式的应用环境架构100的框图;
图2示出了根据本发明一个示例性实施方式的用于在集群的主节点处向其他节点指示主节点存活的方法200的流程图;
图3示出了根据本发明一个示例性实施方式的用于在集群的从节点处检测主节点是否存活的方法300的流程图;
图4示出了根据本发明一个示例性实施方式的用于在集群的主节点处向其他节点指示主节点存活的设备400的框图;
图5示出了根据本发明一个示例性实施方式的用于在集群的从节点处检测主节点是否存活的设备500的框图;以及
图6示出了适合用来实践本发明实施方式的计算机系统600的框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考附图中示出的若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
注意,在此使用的术语“节点”可以表示物理上的计算设备(例如,计算机),也可以表示虚拟机器或者应用、进程或线程。而且,在此使用的术语“主节点”既可以表示一个集群中负责控制集群运转的主控节点,也可以表示目前拥有对互斥共享资源的使用权的节点,等等。相应地,术语“从节点”既可以表示一个集群中处于从属地位的节点,也可以表示等待使用互斥共享资源的节点,等等。
此外,尽管下文针对本发明实施方式描述将主要参考小型计算机系统接口(SCSI)协议给出,但是这仅仅是示例性的。其目的是更好地向本领域技术人员阐释本发明的基本原理和思想,而并非以任何方式限制本发明的范围。实际上,本发明的实施方式适用于任何目前已知将来开发的类似协议。
下面参考图1,其示出了可在其中实现本发明实施方式的集群100的框图。在图1中,示出了节点1110、节点2 112...、以及节点N 114。这些节点通过连接介质120彼此连接并且可以配合操作,从而构成分布式系统或者集群100。尽管未在图中示出,集群100中还可以包括其他的节点和数据存储设备、控制设备、共享资源,等等。
如上所述,根据本发明的实施方式,节点110-114可以是物理上的计算设备。例如,节点可以是个人计算机(PC)之类的传统桌面型计算设备,也可以是个人数字助理(PDA)、蜂窝电话、智能电话、膝上型计算机等移动终端。应当理解,上面列举的仅仅是若干可能的示例,并非意在限制本发明的范围。实际上,节点110-114可以是具有信息处理和通信能力的任何物理设备,不论是现在已知还是将来开发的。备选地或附加地,节点110-114也可以是虚拟节点,例如包括但不限于虚拟机、应用程序、进程、线程,等等。特别地,根据本发明的优选实施方式,节点110-114遵循小型计算机系统接口(例如,SCSI-3)协议。
根据本发明的实施方式,连接介质120可以是网络。特别地,连接介质120可以是有线网络、无线网络或其组合,包括但不限于以下至少一个:蜂窝电话网络,以太网,基于IEEE 802.11、802.16、802.20等的无线局域网(WLAN),和/或全球微波接入互操作性(WiMAX)网络。此外,连接介质120可以是公共网络(诸如,因特网)、专用网络(诸如,企业内部网)或其组合。备选地或附加地,连接介质120也可以是总线等用户设备间互连和通信的设备。本发明的范围在此方面不受限制。
此外,如图1所示,集群100还可以包括共享资源130。在此使用的术语“共享资源”是指集群中的节点110均有资格访问和使用的资源,包括物理资源和逻辑资源,例如SCSI存储设备等。节点110对共享资源130的访问可以借助于连接介质120实现。备选地或附加地,节点110也可以通过其他适当的技术手段来访问和使用共享资源130。
在集群100中,一个或多个节点可以充当主节点,即,集群的控制节点或者排他使用互斥共享资源的节点。其他节点相应地充当从节点。应当理解,集群100中的主节点和从节点的角色可以发生互换。例如,主节点可以主动放弃其主节点身份,或者因为故障而丧失主节点身份。此时,从节点可以通过“竞争”而成为新的主节点。
现在参考图2,其示出了根据本发明一个示例性实施方式的用于在集群的主节点处向其他节点指示主节点存活的方法200的流程图。方法200可由集群中的主节点或者与主节点关联的设备(例如,下文参考图4描述的设备400)来执行。
方法200开始之后,在步骤S202,使主节点创建针对所在集群的共享资源的持久性预留(persistent reservation)。
如上所述,共享资源是集群中的成员均可访问的资源(例如,存储资源),其可以是物理资源,也可以是逻辑单元。在此使用的术语“持久性预留”表示节点对共享资源或其特定部分具有排他性的使用权,并且这种排他性使用将持续一段时间。换言之,在这段时间内,集群内的其他节点不能对已被持续性预留的共享资源部分进行修改(例如,禁止执行写操作)。逻辑上,可以将持久性预留理解在共享资源上述施加的互斥锁。应当理解,在集群内的共享资源的不同部分上,可以允许一个或多个节点创建一个或多个持久性预留,这取决于集群的设置和配置。
如前文所述,根据本发明的实施方式,集群中的节点可以遵循SCSI协议。在这样的实施方式中,步骤S202可以通过两个子步骤来实现。首先,在第一子步骤,可以使主节点向共享资源进行注册。例如,主节点可以生成或以其他方式获得一个与之关联的键值(记为k1)。主节点可以利用与其关联的键值k1向所述共享资源进行注册。根据本发明的实施方式,例如可以通过使用SCSI的命令PERSISTENTRESERVE OUT来实现这一子步骤,其中该命令所具有的服务动作码为“REGISTER”,并且指明注册键值为k1。如本领域已知的,SCSI的协议命令PERSISTENT RESERVE OUT是一个原语命令。因此,通过使用该命令,主节点可以容易地完成向共享资源的注册(有关SCSI命令的更多细节,可参考本领域已知的关于SCSI协议的各种资料,例如,可以参见可从http://www.t10.org/drafts.htm获得的SCSI规范文档。
接下来,在步骤S202的第二子步骤,主节点可以在共享资源上创建与注册键值相关联的持久性预留。例如可以使用SCSI命令PERSISTENT RESERVE OUT来实现这一动作,该命令的服务动作码被设置为“RESERVE”。如本领域已知的,此时SCSI协议支持在共享资源上创建与该节点的注册键值k1相关联的具有特定类型(TYPE)和范围(SCOPE)的持久性预留。
接下来,方法200进行到步骤S204,在此主节点通过更改已经创建的持久性预留的状态来更新集群的世代(generation)指示。注意,在此使用的术语“世代”是集群中反应集群成员情况的变化的信息。具体而言,每当有新的节点加入集群变为集群的成员时,世代指示可以增加以表示集群成员情况的更新。反之,当有成员节点退出集群时,该世代指示也将相应地更改。
然而,在遵循例如SCSI协议的集群架构下,在步骤S204,有可能在集群成员情况不发生改变的情况下,通过更改对共享资源的持久性预留的状态,使集群的世代指示发生变化。具体而言,根据本发明的某些实施方式,主节点可以利用与持久性预留相关联的键值(即,k1)向所述共享资源重复注册。例如可以通过使用SCSI命令PERSISTENT RESERVE OUT来实现这一动作,其服务动作码被设置为“REGISTER AND IGNORE EXISTING KEY”,并且指明预留键值为k1。在SCSI协议中,通过由主节点调用以及向共享资源发出上述命令,可以在集群的成员情况不发生改变的情况下使得世代指示发生改变。
如下文所述,集群中的从节点可以通过读取主节点在共享资源上创建的持久性预留的状态来获得世代指示,并且可以根据世代指示的更新情况来检测主节点是否处于存活状态。这将在下文参考图3详细描述。
接下来,方法200进行到步骤S206,在此主节点确定其是否放弃主节点身份。可以理解,这包括确定主节点是否放弃对集群的主控地位,或者结束对互斥性共享资源的独占使用。如果主节点确定不放弃主节点身份(步骤S206的分支“否”),则方法200在预定的时间间隔之后返回执行步骤S204。以此方式,只要主节点存活并且不放弃主节点身份,便可以定期地通过更改持续性预留的状态来更新世代指示。这样,只要从节点发现集群的世代指示在不断地改变,便可以判断主节点目前处于存活。
另一方面,如果主节点确定放弃其主节点身份(步骤S206的分支“是”),则方法200进行到步骤S208,在此主节点可以释放对共享资源的持久性预留。例如可以使用SCSI命令PERSISTENTRESERVE OUT来实现这一动作,该命令的服务动作码被设置为“RELEASE”。在这种情况下,其他从节点将检测到世代指示不再定期改变。由此,集群中的从节点可以判定主节点没有处于存活状态。从节点可以相应地采取各种适当的后续动作,例如竞争成为新的主节点,等等。
方法200在步骤S208之后结束。
通过方法200,可以灵活地将SCSI协议中的世代指示用于指示主节点的存活(而并不实际改变集群的配置)。如本领域已知的,上文提及的各种SCSI命令是原语命令,其获得固件级别的支持,因此能够高效地实现。当然,本发明的原理和精神同样适用于类似于SCSI协议的其他协议。
现在参考图3,其示出了根据本发明一个示例性实施方式的用于在集群的从节点处检测主节点是否存活的方法300的流程图。方法300可由集群中的每个从节点或者与从节点关联的设备(例如,下文参考图5描述的设备500)来执行。
方法300开始之后,在步骤S302,从节点可以向集群的共享资源进行注册。
在遵循SCSI协议的实施方式中,这例如可以通过SCSI协议中的PERSISTENT RESERVE OUT命令来实现,该命令的服务动作码被设置为“REGISTER”,并且指明与从节点相关联的注册键值(记为k2)。
接下来,方法300进行到步骤S304,在此从节点可以通过访问共享资源而获得集群的世代指示。
根据本发明的某些实施方式,步骤S304可以分为两个子步骤。在第一子步骤中,从节点可以从共享资源读取针对共享资源的当前持久性预留的有关信息。以遵循SCSI协议的集群为例,这例如可以使用SCSI命令PERSISTENT RESERVE IN来实现,该命令的服务动作码被设置为“READ RESERVATION”。作为响应,共享资源将向从节点返回与共享资源的当前持久性预留有关的信息。接下来,在第二子步骤,从节点可以解析出所述集群的世代指示。
如本领域已知的,当从节点对共享资源调用SCSI命令PERSISTENT RESERVE IN时,由共享资源返回给从节点的响应中包含有指示集群的当前世代的字段。该字段在SCSI协议中被称为“持久性预留世代”(PRGENERATION)字段,是一个32位的计数器,由共享资源的固件维护。与PERSISTENT RESERVE OUT类似,PERSISTENT RESERVE IN命令也是原语命令,因此从节点能够高效地在步骤S304高效、方便地获得集群的世代指示信息。
接下来,方法300进行到步骤S306,在此确定在步骤S304获得的世代指示与先前获得的世代指示相比是否被更新,从而检测所述主节点是否存活。
如果从节点确定世代指示被更新(步骤S306的分支“是”),则其认为集群的主节点目前处于存活状态。此时,方法300在预定的时间间隔之后返回步骤S304。以此方式,从节点可以定期通过访问集群的共享资源而获得集群的世代指示。
另一方面,如果从节点确定世代指示未被更新(步骤S306的分支“否”),则其可以认为主节点目前没有处于存活状态(例如,主节点发生故障,或者主动放弃主节点身份)。
此时,方法300可以进行到步骤S308,在此移除主节点创建的对共享资源的持久性预留。根据本发明的某些实施方式,步骤S308可以通过使用SCSI命令PERSISTENT RESERVE OUT来实现,其具有服务动作码PREEMPT。该服务动作码允许通过指示与主节点相关联的注册键值来移除由主设备在共享资源上进行的注册。注意,步骤S308是可选的,例如在主节点已经主动释放持久性预留的情况下步骤S308无需执行。
接下来,方法300可以可选地进行到可选的步骤S310,在此从节点可以请求成为新的主节点。用于从多个从节点中选择一个或多个成为主节点的各种机制和策略均可与本发明的实施方式结合使用,不论是目前已知的还是将来开发的。本发明的范围在此方面不受限制。
方法300在步骤S310之后结束。
通过方法300,每个从节点可以周期性地通过访问共享资源而获取集群的世代指示。如果世代指示被持续不断地更新,则从节点认为主节点处于正常操作状态,即存活状态。反之,如果从节点发现集群的世代指示不再更新,则可以认定主节点不再处于存活状态。此时,从节点可以执行清除主节点的注册、竞争成为新的主节点等各种后续操作。
下面参考图4,其示出了根据本发明一个示例性实施方式的用于在集群中的主节点处向至少一个从节点指示所述主节点存活的设备400的框图。所述集群中的所述主节点和所述至少一个从节点遵循小型计算机系统接口SCSI协议。根据本发明的实施方式,设备400可以驻留在集群的主节点处;备选地,设备400也可以定位在主节点外部并且与主节点可操作地通信。
如图所示,设备400包括:创建装置402,配置用于创建针对所述集群的共享资源的持久性预留;以及更新装置404,配置用于通过周期性地更改所述持久性预留的状态来更新所述集群的世代指示,其中所述世代指示是所述至少一个从节点通过访问所述共享资源可获得的。
根据本发明的某些实施方式,设备400还可以包括注册装置,配置用于利用与所述主节点相关联的键值向所述共享资源进行注册。在这样的实施方式,创建装置402可以配置用于在所述共享资源上创建与所述键值相关联的所述持久性预留。
根据本发明的某些实施方式,更新装置404可以包括:重复注册装置,配置用于周期性地利用与所述持久性预留相关联的所述键值向所述共享资源重复注册。
根据本发明的某些实施方式,设备400还包括:释放装置,配置用于响应于所述主节点将要放弃主节点身份而释放对所述共享资源的所述持久性预留。
根据本发明的某些实施方式,所述创建装置402和所述更新装置404可以配置用于基于SCSI命令来执行各自操作。
下面参考图5,其示出了根据本发明一个示例性实施方式的用于在集群中的从节点处检测所述集群中的主节点是否存活的设备500的框图。所述主节点和所述至少一个从节点遵循小型计算机系统接口SCSI协议。根据本发明的实施方式,设备500可以驻留在集群的从节点处;备选地,设备500也可以定位在从节点外部并且与从节点可操作地通信。
如图所示,设备500包括:注册装置502,配置用于向所述集群的共享资源进行注册;访问装置504,配置用于定期访问所述共享资源以获得所述集群的世代指示;以及检测装置506,配置用于通过确定所述世代指示与先前获得的世代指示相比是否被更新,来检测所述主节点是否存活。
根据本发明的某些实施方式,访问装置504可以包括:读取装置,配置用于读取针对所述共享资源的当前持久性预留的有关信息;以及解析装置,配置用于从所述信息中解析出所述集群的世代指示。
根据本发明的某些实施方式,设备500还可以包括:移除装置,配置用于响应于确定所述世代指示未被更新而移除所述主节点向所述共享资源的注册。
根据本发明的某些实施方式,设备500还可以包括:请求装置,配置用于请求成为所述集群的新主节点。
根据本发明的某些实施方式,所述注册装置502和所述访问装置504配置用于基于SCSI命令来执行各自的操作。
注意,为清晰起见,在图4-图5中没有示出可选的装置以及各个装置所包含的子装置。然而,应当理解,设备400和500中记载的各个装置分别对应于上文参考图2和图3描述的方法200和300中的各个步骤。由此,上文针对方法200和300描述的操作和特征同样适用于设备400和500及其中包含的装置,在此不再赘述。
还应当理解,设备400和500可以利用各种方式实现。例如,在某些实施方式中,设备400和500可以利用软件和/或固件来实现。备选地或附加地,设备400和500可以部分地或者完全地基于硬件来实现。例如,设备400和500可以实现为集成电路(IC)芯片或专用集成电路(ASIC)。设备400和500也可以实现为片上系统(SOC)。现在已知或者将来开发的其他方式也是可行的,本发明的范围在此方面不受限制。
下面参考图6,其示出了适于用来实践本发明实施方式的计算机系统600的示意性框图。例如,图6所示的计算机系统600可以用于实现如上文描述的主节点和/或从节点。
如图所示,计算机系统600可以包括:CPU(中央处理单元)601、RAM(随机存取存储器)602、ROM(只读存储器)603、系统总线604、硬盘控制器605、键盘控制器606、串行接口控制器607、并行接口控制器608、显示控制器609、硬盘610、键盘611、串行外部设备612、并行外部设备613和显示器614。在这些设备中,与系统总线604耦合的有CPU 601、RAM 602、ROM 603、硬盘控制器605、键盘控制器606、串行控制器607、并行控制器608和显示控制器609。硬盘610与硬盘控制器605耦合,键盘611与键盘控制器606耦合,串行外部设备612与串行接口控制器607耦合,并行外部设备613与并行接口控制器608耦合,以及显示器614与显示控制器609耦合。应当理解,图6所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
如上所述,设备400和500可以实现为纯硬件,例如芯片、ASIC、SOC等。这些硬件可以集成在计算机系统600中。此外,本发明的实施方式也可以通过计算机程序产品的形式实现。例如,参考图2和图3描述的方法200和300可以通过计算机程序产品来实现。该计算机程序产品可以存储在例如图6所示的RAM 604、ROM 604、硬盘610和/或任何适当的存储介质中,或者通过网络从适当的位置下载到计算机系统600上。计算机程序产品可以包括计算机代码部分,其包括可由适当的处理设备(例如,图6中示出的CPU 601)执行的程序指令。所述程序指令至少可以包括用于实现方法200和300的步骤的指令。
上文已经结合若干具体实施方式阐释了本发明的精神和原理。根据本发明的实施方式,在与SCSI或类似协议兼容的节点所构成的集群中,可以通过灵活地转义使用指示集群世代的信息而实现节点存活的指示。根据本发明的实施方式,无需像磁盘心跳算法那样预留存储空间,因为世代指示(例如,PRGENERATION字段)仅仅是一个32位的计数器,并且通常是由集群存储的固件维护的,其操作效率更高。而且,通过操作共享资源上的持久性预留不会导致磁盘读写头的移动,而且不受磁盘数据损坏的影响。
此外,根据本发明的实施方式,由于对世代指示的更新可以在原子级别实现,因此可以容易地构建多主节点的集群配置。而且,从节点可以在单次IO操作中容易地获知主节点的存活性或有效性。另外,通过使用已有的SCSI(原语)命令来指示存活,可以使得集群的基础架构更加清晰和简洁。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
说明书中提及的通信网络可以包括各类网络,包括但不限于局域网(“LAN”),广域网(“WAN”),根据IP协议的网络(例如,因特网)以及端对端网络(例如,ad hoc对等网络)。
应当注意,尽管在上文详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明,但是应该理解,本发明并不限于所公开的具体实施方式。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
Claims (24)
1.一种用于在集群中的主节点处向所述集群的至少一个从节点指示所述主节点存活的方法,所述方法包括:
创建针对所述集群的共享资源的持久性预留;以及
通过周期性地更改所述持久性预留的状态来更新所述集群的世代指示,其中所述世代指示是所述至少一个从节点通过访问所述共享资源可获得的。
2.根据权利要求1所述的方法,其中创建针对所述集群的共享资源的持久性预留包括:
利用与所述主节点相关联的键值向所述共享资源进行注册;以及
在所述共享资源上创建与所述键值相关联的所述持久性预留。
3.根据权利要求2所述的方法,其中周期性地更改所述持久性预留的状态包括:
周期性地利用与所述持久性预留相关联的所述键值向所述共享资源重复注册。
4.根据权利要求1所述的方法,还包括:
响应于所述主节点将要放弃主节点身份,释放对所述共享资源的所述持久性预留。
5.根据权利要求1所述的方法,其中创建针对所述集群的共享资源的持久性预留以及周期性地更改所述持久性预留的状态是基于SCSI命令而执行的。
6.根据权利要求1-5任一项所述的方法,其中所述主节点和所述至少一个从节点遵循小型计算机系统接口SCSI协议。
7.一种用于在集群中的主节点处向所述集群中的至少一个从节点指示所述主节点存活的设备,所述设备包括:
创建装置,配置用于创建针对所述集群的共享资源的持久性预留;以及
更新装置,配置用于通过周期性地更改所述持久性预留的状态来更新所述集群的世代指示,其中所述世代指示是所述至少一个从节点通过访问所述共享资源可获得的。
8.根据权利要求7所述的设备,还包括注册装置,配置用于利用与所述主节点相关联的键值向所述共享资源进行注册;以及其中
所述创建装置被配置用于在所述共享资源上创建与所述键值相关联的所述持久性预留。
9.根据权利要求8所述的设备,其中所述更新装置包括:
重复注册装置,配置用于周期性地利用与所述持久性预留相关联的所述键值向所述共享资源重复注册。
10.根据权利要求7所述的设备,还包括:
释放装置,配置用于响应于所述主节点将要放弃主节点身份而释放对所述共享资源的所述持久性预留。
11.根据权利要求7所述的设备,其中所述创建装置和所述更新装置配置用于基于SCSI命令来执行各自操作。
12.根据权利要求7-11任一项所述的设备,其中所述主节点和所述至少一个从节点遵循小型计算机系统接口SCSI协议。
13.一种用于在集群中的从节点处检测所述集群中的主节点是否存活的方法,所述方法包括:
向所述集群的共享资源进行注册;
定期访问所述共享资源以获得所述集群的世代指示;以及
通过确定所述世代指示与先前获得的世代指示相比是否被更新,来检测所述主节点是否存活。
14.根据权利要求13所述的方法,其中定期访问所述共享资源以获得所述集群的世代指示包括:
读取针对所述共享资源的当前持久性预留的有关信息;以及
从所述信息中解析出所述集群的世代指示。
15.根据权利要求13所述的方法,还包括:
响应于确定所述世代指示未被更新,移除所述主节点向所述共享资源的注册。
16.根据权利要求13所述的方法,还包括:
请求成为所述集群的新主节点。
17.根据权利要求13所述的方法,其中向所述集群的共享资源进行注册以及定期访问所述共享资源是基于SCSI命令而执行的。
18.根据权利要求13-17任一项所述的方法,其中所述主节点和所述至少一个从节点遵循小型计算机系统接口SCSI协议。
19.一种用于在集群中的从节点处检测所述集群中的主节点是否存活的设备,所述设备包括:
注册装置,配置用于向所述集群的共享资源进行注册;
访问装置,配置用于定期访问所述共享资源以获得所述集群的世代指示;以及
检测装置,配置用于通过确定所述世代指示与先前获得的世代指示相比是否被更新,来检测所述主节点是否存活。
20.根据权利要求19所述的设备,其中访问装置包括:
读取装置,配置用于读取针对所述共享资源的当前持久性预留的有关信息;以及
解析装置,配置用于从所述信息中解析出所述集群的世代指示。
21.根据权利要求19所述的设备,还包括:
移除装置,配置用于响应于确定所述世代指示未被更新而移除所述主节点向所述共享资源的注册。
22.根据权利要求19所述的设备,还包括:
请求装置,配置用于请求成为所述集群的新主节点。
23.根据权利要求19所述的设备,其中所述注册装置和所述访问装置配置用于基于SCSI命令来执行各自的操作。
24.根据权利要求19-23任一项所述的设备,其中所述主节点和所述至少一个从节点遵循小型计算机系统接口SCSI协议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110430012.4A CN103167010B (zh) | 2011-12-16 | 用于在集群中指示节点存活的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110430012.4A CN103167010B (zh) | 2011-12-16 | 用于在集群中指示节点存活的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103167010A true CN103167010A (zh) | 2013-06-19 |
CN103167010B CN103167010B (zh) | 2016-12-14 |
Family
ID=
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141400A (zh) * | 2015-07-30 | 2015-12-09 | 杭州华为数字技术有限公司 | 一种高可用性集群管理方法及相关设备 |
CN107071189A (zh) * | 2016-11-28 | 2017-08-18 | 深圳市潮流网络技术有限公司 | 一种通讯设备物理接口的连接方法 |
CN108551765A (zh) * | 2015-09-30 | 2018-09-18 | 华睿泰科技有限责任公司 | 输入/输出隔离优化 |
CN109088908A (zh) * | 2018-06-06 | 2018-12-25 | 武汉酷犬数据科技有限公司 | 一种面向网络的分布式通用数据采集方法和系统 |
CN109144740A (zh) * | 2018-08-16 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种分布式锁实现方法和装置 |
CN110830582A (zh) * | 2019-11-13 | 2020-02-21 | 福建顶点软件股份有限公司 | 一种基于服务器集群选主方法和装置 |
CN111147546A (zh) * | 2019-11-29 | 2020-05-12 | 中科院计算技术研究所大数据研究院 | 一种边缘集群资源的处理方法及系统 |
CN112367236A (zh) * | 2021-01-12 | 2021-02-12 | 南京芯驰半导体科技有限公司 | Lin总线的数据调度方法及系统 |
WO2021255547A1 (en) * | 2020-06-17 | 2021-12-23 | International Business Machines Corporation | Preventing unauthorized package deployment in clusters |
CN113946624A (zh) * | 2021-10-11 | 2022-01-18 | 北京达佳互联信息技术有限公司 | 分布式集群、信息处理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1348134A (zh) * | 2000-10-13 | 2002-05-08 | 国际商业机器公司 | 在非并发群集环境中提供多路径输入/输出的方法和设备 |
CN101179466A (zh) * | 2007-10-15 | 2008-05-14 | 北京交通大学 | 一种基于集中服务的分布式对等网络的实现方法及系统 |
US20080298241A1 (en) * | 2007-05-31 | 2008-12-04 | Broadcomm Corporation | Apparatus and methods for reduction of transmission delay in a communication network |
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1348134A (zh) * | 2000-10-13 | 2002-05-08 | 国际商业机器公司 | 在非并发群集环境中提供多路径输入/输出的方法和设备 |
US20080298241A1 (en) * | 2007-05-31 | 2008-12-04 | Broadcomm Corporation | Apparatus and methods for reduction of transmission delay in a communication network |
CN101179466A (zh) * | 2007-10-15 | 2008-05-14 | 北京交通大学 | 一种基于集中服务的分布式对等网络的实现方法及系统 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141400A (zh) * | 2015-07-30 | 2015-12-09 | 杭州华为数字技术有限公司 | 一种高可用性集群管理方法及相关设备 |
CN105141400B (zh) * | 2015-07-30 | 2018-08-21 | 杭州华为数字技术有限公司 | 一种高可用性集群管理方法及相关设备 |
CN108551765A (zh) * | 2015-09-30 | 2018-09-18 | 华睿泰科技有限责任公司 | 输入/输出隔离优化 |
CN107071189A (zh) * | 2016-11-28 | 2017-08-18 | 深圳市潮流网络技术有限公司 | 一种通讯设备物理接口的连接方法 |
CN109088908A (zh) * | 2018-06-06 | 2018-12-25 | 武汉酷犬数据科技有限公司 | 一种面向网络的分布式通用数据采集方法和系统 |
CN109144740B (zh) * | 2018-08-16 | 2021-05-04 | 郑州云海信息技术有限公司 | 一种分布式锁实现方法和装置 |
CN109144740A (zh) * | 2018-08-16 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种分布式锁实现方法和装置 |
CN110830582A (zh) * | 2019-11-13 | 2020-02-21 | 福建顶点软件股份有限公司 | 一种基于服务器集群选主方法和装置 |
CN110830582B (zh) * | 2019-11-13 | 2022-02-15 | 福建顶点软件股份有限公司 | 一种基于服务器集群选主方法和装置 |
CN111147546A (zh) * | 2019-11-29 | 2020-05-12 | 中科院计算技术研究所大数据研究院 | 一种边缘集群资源的处理方法及系统 |
WO2021255547A1 (en) * | 2020-06-17 | 2021-12-23 | International Business Machines Corporation | Preventing unauthorized package deployment in clusters |
US11403401B2 (en) | 2020-06-17 | 2022-08-02 | International Business Machines Corporation | Preventing unauthorized package deployment in clusters |
GB2611680A (en) * | 2020-06-17 | 2023-04-12 | Ibm | Preventing unauthorized package deployment in clusters |
CN112367236A (zh) * | 2021-01-12 | 2021-02-12 | 南京芯驰半导体科技有限公司 | Lin总线的数据调度方法及系统 |
CN113946624A (zh) * | 2021-10-11 | 2022-01-18 | 北京达佳互联信息技术有限公司 | 分布式集群、信息处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108616382B (zh) | 升级网卡固件的方法、装置、网卡和设备 | |
EP3380937B1 (en) | Techniques for analytics-driven hybrid concurrency control in clouds | |
US8671099B2 (en) | Clustering devices in an internet of things (‘IoT’) | |
EP2851807B1 (en) | Method and system for supporting resource isolation under multi-core architecture | |
CN103207797B (zh) | 基于通用可扩展固件接口固件系统的胶囊式定制更新方法 | |
US20170255494A1 (en) | Techniques for computing resource discovery and management | |
TWI334543B (en) | Method of scheduling tasks in computer systems architectures, apparatus for implementing task scheduling, and computing system | |
US8713262B2 (en) | Managing a spinlock indicative of exclusive access to a system resource | |
CN110719320B (zh) | 公有云配置调整信息的生成方法和设备 | |
CN108665272A (zh) | 区块链数据处理方法、装置、设备和存储介质 | |
US9063929B2 (en) | Information processing apparatus, information processing method, computer-readable recording medium having stored therein program | |
CN110727664A (zh) | 用于对公有云数据执行目标操作的方法与设备 | |
US9716625B2 (en) | Identifying compatible system configurations | |
CN102891879A (zh) | 用于支持集群扩展的方法和设备 | |
CN107391672B (zh) | 数据的读写方法及消息化的分布式文件系统 | |
CN103853527A (zh) | 切换多线程程序中的对象锁定模式的方法和系统 | |
CN111383704B (zh) | 一种存储器内建自测试电路和对存储器的测试方法 | |
CN110308914B (zh) | 升级处理方法、装置、设备、系统及计算机可读存储介质 | |
CN110704851A (zh) | 公有云数据处理方法和设备 | |
CN110612510B (zh) | 无需专用仲裁器的输入/输出(i/o)隔离 | |
CN102904946B (zh) | 集群内节点管理方法和装置 | |
JP2023553220A (ja) | マルチインスタンスプロセスのためのプロセスマイニング | |
CN110908644B (zh) | 状态节点的配置方法、装置、计算机设备和存储介质 | |
WO2021119072A1 (en) | Gpu packet aggregation system | |
US20140164857A1 (en) | Testing Disk Drives Shared by Multiple Processors in a Supercomputer Complex |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200409 Address after: Massachusetts, USA Patentee after: EMC IP Holding Company LLC Address before: Massachusetts, USA Patentee before: EMC Corp. |