CN1508714A - 确定高可用性集群之活跃度的方法和系统 - Google Patents
确定高可用性集群之活跃度的方法和系统 Download PDFInfo
- Publication number
- CN1508714A CN1508714A CNA2003101137732A CN200310113773A CN1508714A CN 1508714 A CN1508714 A CN 1508714A CN A2003101137732 A CNA2003101137732 A CN A2003101137732A CN 200310113773 A CN200310113773 A CN 200310113773A CN 1508714 A CN1508714 A CN 1508714A
- Authority
- CN
- China
- Prior art keywords
- node
- information
- liveness
- zone
- sector
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供了一种确定高可用性集群之活跃度的方法和系统。通过使用诸如盘之类的共享非易失存储器,增强多节点数据处理系统中的活跃度确定,共享非易失存储器与规定的传输协议结合使用,可以提供可同时用于节点活跃度信息传输和普通数据传输的独立通信通路。该通路与其他网络通路具有同等重要性,并且来自共享存储器通路的活跃度指示与来自其他通路的活跃度指示具有同等重要性。
Description
技术领域
本发明涉及高可用性集群之活跃度的确定,具体地说,涉及使用共享非易失存储器,增强多节点数据处理系统中的活跃度的确定。
背景技术
在高可用性集群中,能够区分出现故障的远程节点和网络分区事件是非常重要的,因为上述事件是以完全不同的方式处理的。不幸的是,网络分区向系统监视例程提供的症状与远程节点故障提供的症状相同。特别地,虽然接管故障节点的资源是安全的,但对于因网络分区而呈现故障症状的节点,上述处理是不安全的。
在讨论本发明所解决的问题前,值得说明一下采用本发明可获益最大的使用范围和环境。特别地,本发明在一个多节点数据处理系统中运行。此类系统的示例是由国际商业机器公司(本发明之受让人)制造和销售的pSeries数据处理机。典型系统包括多个独立的数据处理节点,各节点具有其自己独立的存储器和操作系统软件(请注意,尽管节点的典型配置旨在针对特定的问题,但是大多数情况下,所有分配的节点均使用相同的操作系统)。这些系统以并行和分布方式运行,以完成严格定义的、用户指定的数据处理目标。通常,此类机器通过交换消息进行通信,如通过诸如IBM公司的消息传递接口(MPI)之类的公开定义的协议。为了解决特定的问题,或者为了提供更高的可用性,可以将节点组织成所选节点的集群。通过称为HACMP(高可用性集群多处理)的程序产品,可以在pSeries机器中协调上述组织结构。当节点、网络或适配器出现故障时,HACMP使得应用程序能够继续运行。请注意,某些节点或全部节点会不时地加入或离开不同节点分组。节点出现故障时,HACMP提供了可使其他节点接管故障节点工作的机制。但是,重要的是用户的应用可以继续运行,特别是在用户的应用已经消耗了大量数据处理时间和/或不可能重新启动用户的应用时。因此,组成员是流动的。此流动性可以允许数据处理工作继续,即,与完成工作的实际节点无关。因此可以看出,组成员的流动性在分布式和并行处理环境中具有强大优势;但是,如上所述,在监视系统看来(例如,HACMP),通过网络分区提供的流动性就好像出现了节点故障。因此,问题变为如何区分由网络故障或所有节点的网络适配器故障引起的此类事件与实际节点故障。
有若干技术可用于协助标识这两种情况。特别地,可以通过使用共享盘通路(disk path)来进行节点活跃度检查,其中当主通信网络出现故障时,共享盘通路可以提供备份通信通路。主通信通路包括使用基于IP(网际协议)的冗余网络或诸如RS-232端口和线路之类的非IP网络。
本发明使用共享盘作为活跃度确定介质。从分布式集群中的活跃度确定子系统的角度,引入上述技术的目的在于使共享盘作为通信网络。其他集群子系统将共享盘用作“法定设备”或备份通信基础,但是它们不会将盘用作“心跳网络”的一部分。将盘用作法定设备可以工作,但会强迫“分区”的两端执行其恢复过程,而“盘心跳”允许分区的两端照常工作,因为每端都知道另一端是活动的。
发明内容
根据本发明的实施方式,提供了用于确定数据处理节点集群之活跃度的方法,其中至少有两条用于传送活跃度信息的通路,并且至少有一条通路包括一个共享盘,并且连续不断地与其他活跃度确定通路持续同时使用该盘共享通路。从而使确定活跃度无需求助辅助通信通路,使用辅助通信通路需要启动开销。通常,此类辅助通信通路的使用是通过不同通信通路上的活跃度故障指示触发的。相反,本发明提供的盘通信通路以并行方式连续运行。共享盘通信通路能够与经由其他更加典型的通路接收的活跃度确定信号平等地参与确定节点的活跃度。
为了通过共享盘(或其他非易失存储介质)提供合适的通信通路,共享盘配备了控制和数据扇区,该扇区与集群中自身的节点关联。每个控制扇区均包括一个读取部分和一个写入部分。只有关联的节点才能将数据写入其写入部分。读取部分包含供其他节点读取的数据。与序号使用相结合的上述结构使得共享盘能够作为活跃度(或其他)信息的独立通信通路。
因此,本发明的目的在于以共享盘的方式为节点间通信提供一个全新的、分离的独立网络通路。
同时,本发明的目的也在于将共享盘用作在多节点数据处理系统中的确定活跃度的机制。
本发明进一步的目的在于,通过使用共享盘机制,提供一个全新的独立通信通路,并使该通路与活跃度确定所用的其他通路平等。
本发明的又一目的在于,避免由于建立专用的基于盘的活跃度确定通道而引起的开销。
同时,本发明的目的还在于提供使用共享盘(或其他非易失存储设备)的协议,从而使共享盘能够作为网络通信通道。
本发明的进一步的目的在于,以有效方式使用上述共享盘通信通路,避免不必要的磁盘存取操作。
本发明的另一目的在于提供非易失存储系统数据结构,它能够传送包含控制信息和数据信息的信息扇区,以及提供只包含数据扇区的数据结构。
最后,但并不限于此,本发明的目的在于提高多节点数据处理系统的可靠性和性能,特别是通过利用现有共享数据存储资源并以意想不到的方式使用上述资源,实现其目的。
列举本发明之各种实施方式适合的目的,并非暗示或建议将任一或所有这些目的作为本发明最一般的实施方式或其更具体的实施方式的本质特征。
附图说明
说明书的结论部分具体指出并明确声称了作为本发明的主题。但是,通过结合附图参考以下说明书,可以更好地了解本发明的组织和实施方法,其目的以及其优点,其中附图为:
图1是一个示意框图,显示了本发明的使用环境,并具体显示了所解决问题的性质。
图2是一个示意框图,显示了通过普通通信网络以及本发明使用的共享盘的“活跃度数据包”流,后者使用特别定义的协议,可以将共享盘用作“活跃度数据包”传送的单独通路。
图3是与图2类似的功能框图,特别显示了现有集群服务的层次结构扮演的角色。
图4是与图2和图3类似的功能框图,但特别显示了网络接口模块的使用,以及与其他组件的交互,它作为提供命令的一种机制,所述命令执行为共享盘通信建立的协议。
图5是盘心跳的盘布局。节点1“拥有”一组扇区,节点2“拥有”另一组扇区。只有扇区的属主才能进行写入;以及
图6是一个示意框图,显示了用于建立信息传送协议的存储区域的数据结构,并特别显示了独立的读取部分和写入部分。
具体实施方式
1-背景
首先,请注意,本文使用的术语“适配器”指将硬件数据处理节点连接到各种形式的通信网络或交换机的通信设备。在上述pSeries产品中,交换机或网络负责将消息从某个节点传送到指定节点,特别是与指定节点相连的某个适配器。确定节点的活跃度和适当的适配器的功能,特别是涉及由于通信问题而引起的节点故障现象时,是高可用性分布式集群数据处理系统的核心。为了提供高可用性服务,集群系统应能够确定该系统中正在运行的节点、网络和网络适配器。系统应能够检测上述任一组件中的故障,并将有关故障的信息传送到更高层的软件子系统,并且如果可能的话,由集群软件和应用程序进行恢复。
通常,通过使用在分布式系统的各节点中运行的守护程序,确定节点、网络和网络适配器的活跃度。守护程序运行分布式协议,并交换被强迫通过数据处理系统中的不同网络通路的活跃度消息。如果在预定时间间隔内没有收到此类活跃度消息,则认为发送节点或网络适配器不工作,亦即,其他节点认为它们“无效”。
在高可用性数据处理集群中,准确确定适配器、网络和节点事件是非常重要的,因为集群管理器子系统要对此类事件作出反应,以使终端用户感觉到集群资源仍然是可用的。例如,如果集群中的某个节点出现故障,则集群管理器会将故障节点托管的或控制的全部资源转移到另一个工作节点。(在上述pSeries数据处理系统中,由称为HACMP的程序产品提供集群管理器功能。)在这种情况下,如果检测到某个节点宕机(“无效”),则集群能否采取正确的行动取决于检测为宕机的节点实际是否宕机。否则,如果该节点实际并未宕机,则很有可能集群中有两个节点都在试图控制同一资源。此类资源共用可能对集群造成破坏效果,特别当此类资源是盘时,此时其结果是数据库讹误或文件系统讹误。
图1显示了使用本发明的多节点、共享存储环境。为方便起见,只显示了4个节点。特别地,节点1、节点2、节点3和节点4(参考编号分别为101-104)可以存取非易失存储设备110,为了更好地理解本发明的操作和优点,最好认为存储设备110由旋转磁盘存储设备组成。通常,节点101至104通过使用网际协议(IP)传输,通过网络150进行通信。本发明要预防和加强的是此通路中的故障(它是传输节点活跃度信息的常用介质)。请注意,本发明不仅能够以备份通路的方式运行,并且还能传送网络150传送的同类数据。图1特别显示了网络完整无损时的情况,节点101至104能够通信,并且共享盘110由节点104拥有。当网络连接出现故障时(大写的“X”表示中断),节点101和102认为节点103和104出现故障。因此节点102取得盘的所有权,从而有可能导致盘讹误,因为节点104仍在对盘进行写入。本发明提供了一种机制以帮助预防此偶然性,同时还提供了其他服务。
预先考虑到图1所示情况,为了提供准确的适配器/节点事件通知,活跃度子系统通常需要处理两种常见的“假事件”源:
(1)由于CPU或存储器不足(或其他原因)导致守护程序被阻塞,从而不能及时发送活跃度消息;
(2)阻止活跃度消息到达其目的地的网络问题。
条目(2)中的网络问题是现有方法解决的具体问题。
上述网络问题的典型解决方案是为集群配置多个网络,或者至少为每个节点配置多个适配器,所有适配器均连接到同一网络。节点中配置多个适配器可以防止由于某个适配器出现故障而将宿主节点标识为宕机。另一方面,与配置多个适配器相比,配置多个网络可以防止由于某个网络出现故障而认为所有节点均宕机。
2-盘心跳
使用多个网络似乎解决了各网络或适配器内的断线问题,但是仍然需要关注的是IP子系统成为了一个单故障点:如果IP通信失败,则将“隔离”一个或多个节点,并错误地认为这些节点宕机。请注意,IP子系统是管理应用程序和网络之间的IP信息包流的操作系统的一部分。由于此错误检测的可能性,集群通常求助于“非IP心跳”,后者的要点在于使用不依赖IP的通信介质传输活跃度信息。因此,通过使用“非IP”网络,能够避免依赖IP通信在集群内的节点之间传送活跃度信息而造成单故障点。
一种“非IP”网络是连接一对节点的RS-232串行线。串行连接相对价格低廉,并且操作系统内核为此类连接提供了基本的支持,以通过RS-232串行连接传送数据。该方法的两个缺点为:
(1)需要连接集群内的所有节点,至少为“菊花链”拓扑,其中需要将各节点连接到集群中的两个其他节点;以及
(2)在某些系统中,适配器卡插槽很少,因此需要两个额外插槽用于集群活跃度是不合要求的。
另一种可能的“非IP”网络使用共享盘通路:SCSI总线。该方法能够解决RS-232网络的两个缺点—无需额外硬件—但是该方法有一个缺点,即,该方法依赖操作系统(并非所有设备类型均可用)中的专门支持,以允许节点使用SCSI总线通信。
本发明提供的另一种方法是不使用盘通路,而是使用共享盘自身传送活跃度信息。要从某个节点发送到其他节点的数据被写入共享盘中,然后由目的节点进行检索。这就是使盘“具有”网络功能的“积木”。
图2显示了本发明的一种操作方式,其中为简单起见,只考虑两个节点的操作。特别地,图2显示了通过使用本发明允许同时进行两种形式的数据传送。网络连接150特定用于传送从节点101到节点102的“活跃度”信息包,反之亦然。此外,借助读取、写入协议和控制信息,本发明提供通过共享盘110进行通信的附加通路。
在以拓扑服务子系统为最佳使用环境的情况下介绍了本文推荐的机制,拓扑服务子系统是IBM公司的可靠可伸缩集群技术(RSCT)基础设施的一部分。拓扑服务是系统的活跃层,负责确定集群中的工作节点、网络和网络适配器集合。就软件层次结构而言,拓扑服务运行在分组服务之下,分组服务提供诸如集群管理器(包括HACMP)和并行数据库之类的高层服务使用的分组通信和协议。
图3显示了现有服务及其相互关系。特别地,节点101在最底层使用拓扑服务201(节点102使用拓扑服务202),后者与分组服务301(对于节点102,为分组服务302)进行通信。分组服务是IBM公司提供的实用程序层,实际运行需要通过共享设备110在节点101和节点102之间传送数据的协议。正如在图3中所见,分组服务执行协议消息的实际传送。即使节点101和节点102之间不存在经由网络通路150的IP通信,分组服务协议也能继续运行。在这种情况下,分组服务(如302)将其协议消息传送到本地拓扑服务(如202)守护程序,后者经由盘将以上消息传送到对等节点102。在目的节点,拓扑服务守护程序将该消息发送到本地分组服务守护程序。
3-RSCT中的盘心跳
3.1-拓扑服务和网络接口模块
拓扑服务在其高层适配器成员协议(用于确定正在工作并且可以访问的适配器和节点的集合)与其低层适配器特定通信之间具有严格定义的接口。接口被设计为利用低层网络接口模块(NIM)处理所有适配器的错综关系,其中NIM为活跃度确定软件(如,拓扑服务)与用于确定活跃度的通信设备之间的软件层。该层负责数据的实际传送,其中活跃度确定软件处理分布式系统协议。借助以上分层结构,在拓扑服务中为新网络类型添加支持意味着只需为适配器添加新的NIM。
NIM实现的用以执行此新功能的命令如下:
-连接到本地适配器(表示特定于适配器);
-从本地适配器断开连接;
-发送消息—将消息发送到给定目的地;
-开始发送活跃度消息;
-停止发送活跃度消息;
-开始监视活跃度消息;
-停止监视活跃度消息;
-NIM活跃度检查;
-退出。
NIM对拓扑服务的响应包括以下种类:
-响应“连接”命令;
-提供本地适配器工作/宕机状态;
-提供远程适配器的工作/宕机状态;
-入站消息—由远程节点发送;
-响应NIM活跃度检查。
如图4所示,拓扑服务守护程序201a(为可靠可伸缩集群技术(RSCT)的一部分)利用辅助进程“NIM(网络接口模块)”处理与各个特定网络适配器的低层通信。由拓扑服务守护程序201a生成的协议包被发送到各个NIM,然后由各个NIM将上述数据包传送到物理介质。接收端的处理正好相反:由NIM接收数据包,然后转发到拓扑服务守护程序201a。IP NIM140使用标准套接字UNIX原语发送、接收数据包,而盘NIM 120使用其自己的协议,该协议基于将数据包存储在盘上直至其可被目的的节点检索。
为了将盘用作活跃度通信介质,只需创建实现上述命令和响应的NIM。在实现上述功能后,盘就“具有”拓扑服务使用的任何其他网络的功能。盘然后将用于运行活跃度协议和传送用于RSCT分组服务子系统的节点到节点消息。即使全部IP网络断线,集群仍然能够继续运行,认为远程节点仍在工作,并通过盘NIM“路由”集群管理器协议。通过绕过IP网络(如果IP网络失败)并使用任何可用的盘通路计算节点到节点路由的拓扑服务,实现盘NIM“路由”集群管理协议。
3.2-盘网络接口模块
为了将共享盘用作通信介质,要分配盘的某一部分专门用于新盘NIM。盘的该部分只供盘NIM使用,基础操作系统不对该部分进行写访问;其含义是:(1)将整个盘分区分配给盘NIM;或者(2)操作系统不使用某些盘存储块。
方法(1)往往会浪费盘空间,同时要求数据处理系统管理员设置专用分区,这增加了使集群工作和运行的总的手工工作量。方法(2)消除了上述缺点,但是通常只保留很少的盘区域供新盘NIM使用。
在远端检索数据包前,盘NIM使用NIM盘区域作为临时数据包存储区域。由于盘的读写单位是扇区而不是单个字节,因此不允许多个节点对同一扇区进行写入,否则将重写其他节点写入的数据。因此,扇区归各节点“拥有”,这意味着由NIM协议指定某个节点或其他节点对扇区的专用写访问。
图5从更高层显示了为实现本发明之目的而在共享盘110上提供的数据结构。特别地,该图显示了两个节点(节点1和节点2)的数据结构布局。每个节点都分配了一个扇区,同时用于控制和数据:节点1的控制/数据扇区为111,节点2的控制/数据扇区为121。节点1“拥有”一组扇区,节点2“拥有”一组扇区。只有扇区的属主才能对扇区进行写入。节点拥有的其他扇区(如图所示,节点1的数据扇区为112和113,节点2的数据扇区为122和123)仅用于传送数据,并借助图6中特别显示的指针或链表链接到控制/数据扇区。如果只传送少量数据,则使用控制/数据扇区111和121内的可用存储空间,这样可以避免对不同扇区进行单独的盘存取操作。因此,共享盘区域不仅用于“实时”存储数据包,而且用于存储并发信息和流控制信息。
某些扇区归“正在传送”数据包的节点“拥有”,其他扇区归“正在接收”数据包的节点“拥有”。盘的“写入区域”包括实际“传送”的数据包,“读取区域”包括是否已读取给定数据包的信息。
注意,由于盘连接的两端均需发送和接收数据包,因此每端均有一个“写入区域”和一个“读取区域”。
为了区分数据包,把一个单调增加的数据包序号与各数据包关联起来。当写入节点放置新数据包时,该数据包还包含了一个新序号,从而写入程序知道另一个数据包可用。一旦“消耗”该数据包后,写入程序在其自己的区域内放置刚刚读取的数据包序号。这就通知写入程序数据包使用的盘区域可用于下一个数据包。当读取程序接收数据包较慢时,为了避免丢失数据包,只有读取程序通知已经读取了该数据包之后,写入程序才会重写先前写入的数据包。
以上机制在写入节点和读取节点之间建立了流控制。如果读取程序停止检索数据包,则这会迫使写入程序停止在盘上写入新数据包。然后,写入程序开始将新数据包缓冲到存储器中,并最终必须抛弃这些数据包。NIM可以接受上述行为,因为当读取进程停止消耗数据包时,该NIM与用完操作系统数据包缓冲空间的IP NIM没什么不同。假设较高层的拓扑服务协议发出所需的消息发送重试。
图6提供节点1的控制/数据扇区111的详细视图。其他节点的结构与此类似。将控制/数据扇区111被分为读取部分111a和写入部分111b。读取部分111a包含标识“最后读取的序号”115,该标识与另一个节点(如节点2)写入的数据包关联。写入部分111b指属主节点(此时为节点1)使用的扇区111的一部分,用于在另一个节点读取数据前存储数据。如图6所示,该区域包含要传送的数据和/或要传送的共享盘110上的各种数据扇区的指针。非属主节点利用写入部分111b定位要读取的数据包。
3.3-最小化盘存取次数
在执行本发明的方法时,需要降低和/或最小化盘存取频率,以避免使用同一共享盘的集群应用性能恶化。
读取程序节点的正常操作是周期性地读取写入程序的控制扇区,等待写入程序节点添加新数据包。在添加新数据包后,读取程序检索该数据包,并利用刚刚读取的数据包的序号更新其控制扇区。
写入程序有要传送的新数据包后,它首先读取读取程序的控制扇区,以检索最后读取的序号。写入程序使用序号信息确定已经读取的数据包,以及可供新数据包使用的盘空间。写入程序确定之后,首先将新数据包复制到数据扇区中的适当位置,最后利用新数据包的序号更新写入程序的控制扇区。
虽然上述过程是正确的,但会使得写入程序进行太多的盘存取。通过使用以下观察可以改善此过程:
(1)在稳定状态中,读取程序应在数据包被写入后不久检索数据包;这意味着写入程序发现写入数据包的“空闲”空间应该没什么问题;以及
(2)需要经由盘NIM传送到远程节点的数据包通常较小(几百字节或更少)。
考虑到上述观察,在本发明的最佳实施方式中实现以下优化:
(1)如果写入程序的数据区域中没有可用空间,则写入程序只需检索读取程序的控制扇区(最后读取的消息的序号);以及
(2)将小数据包写入到写入程序的控制扇区中,而不是数据扇区中;此过程能够节省一次盘存取。
借助以上优化,如果盘中的NIM区域适合X个数据包,则在总共X个数据包写入的约(X-1)次中,写入程序只需进行一次盘存取—写入其控制扇区中—以将数据包传送到远程节点。在(总共X个数据包)的剩余数据包写入中,写入程序发现没有写入空间,因此它将检索读取程序的控制扇区,并释放写入数据包所需的空间。
优化也可以在读取程序端进行。不是在每读取一个数据包时更新“最后读取的序号”字段,而是读取Y个数据包时更新一次。这样不仅能够节省读取程序端的盘存取,而且与上述写入程序端的优化一致,因为写入程序只需以不那么频繁的时间间隔检索“最后读取的序号”值,因此无需频繁更新该值。
3.4-NIM重启和同步
用于从写入程序向读取程序传送数据包的协议必须经受住写入程序端和读取程序端的现有NIM进程(或者是由于NIM故障或者是由于节点上集群关机)。
当写入进程重启时,需要确定在其先前“具体化”(调用)中最后写入的序号。将该序号重新设置为某些初始值不会起作用,因为,如果读取程序NIM的进程没有重启,它将期望下一条消息带有下一个序号。
为了发现要使用的序号,写入程序将检索其控制扇区,并恢复写入程序先前具体化过程写入的数据包的序号。要使用的序号比写入程序的控制扇区中列出的序号大1。
当读取进程重启时,将像通常一样检查写入程序的扇区,以确定可用的数据包。但是,不应将数据包传回到拓扑服务的上层,因为读取进程可能已经很长时间处于未激活状态,写入程序区域中的数据包也可能是“陈旧的”。因为拓扑服务的总目的是提供活跃度确定,因此处理陈旧数据包会对子系统的行为造成不利影响。因此,将抛弃在读取程序启动时检索的数据包。通过将“最后读取的序号”设置为写入程序之控制扇区中所有序号的最大序号,读取程序将该数据包标记为“已读”。
如果写入进程启动时读取进程处于未激活状态,则可能阻止写入进程,因为写入程序的区域中“最后读取的序号”字段没有被更新。由于NIM的根本目的是与远程节点交换信息,所以在远程节点(及其NIM)启动前,NIM无法执行有用的操作,因此,不将远程节点处于未激活状态看作问题时,NIM无法发送消息。
3.5-冷启动和扇区分配
首次启动盘NIM时,不会初始化为NIM消息交换保留的盘区域。因此,此时不存在有关已公布数据包的有效信息。通过使用控制扇区中的“幻数”表示可以获得有效信息,解决上述问题。正如本文使用的那样,术语“幻数”指写入到存储器/盘位置中的一个较大的数值,用以表示包含该数的全部存储器/盘区域包括某类数据。选择“幻数”的数值,以便在同一位置写入的任何其他种类的数据均与指定数的数值不同。由于机器第一次启动时幻数没有写入,因此NIM“知道”区域尚未初始化,并将继续其自己的初始化过程。
假设只向盘NIM提供与上层传送给其他NIM之信息完全相同的信息,则盘NIM面临的基本问题是:确定用于控制和用于数据扇区的盘区域。尽管可以在NIM中对为盘心跳而保留的数据块组的位置进行硬编码(或根据文件系统或盘类型进行确定),但是仍然要在盘NIM区域内部进行部分分配。某个节点可能正向“区域1”中写数据,而另一个节点可能正向“区域2”中写数据,但是需要确定哪个节点写到哪个区域中。因此,引入了一个协议以确定各节点使用的区域。
在本协议中使用盘扇区(位于已知位置)。假设各节点可以以最小单位读取、写入上述扇区(通常如此),因为扇区是最小的盘传送单位。该扇区包含以下数据段:
-节点唯一编号;
-其他方已知标记;以及
-幻数
每个节点都能够生成一个唯一数字。该数字可以是机器和/或操作系统标识符(例如Unix“uname”系统调用提供的标识符)或集群节点号。
协议:
-Loop
*写入{本地“节点唯一编号”,“未知”,“幻数”}
*等待一个随机时间
*读取扇区
直到节点唯一编号!=本地节点唯一编号
(这意味着本地节点不读取写到盘上的数据)
-检索远程节点唯一编号。比较本地节点唯一编号与远程节点唯一编号。
如果本地数字小于远程数字,则本地使用“区域1”否则使用“区域2”
-Loop
*写入{本地“节点唯一编号”,“已知”,“幻数”}
*等待一个随机时间
*读取扇区
直到节点唯一编号!=本地节点唯一编号AND
其他方已知=已知
此时,本地节点知道要使用哪个区域,同时远程节点也具有相同信息。
然而,本地节点A不能确信远程节点B能够退出上述循环,因为远程节点正在等待{“A的节点唯一编号”,“已知”,“幻数”}模式,但是节点B可能已经用{“B的节点唯一编号”,“已知”,“幻数”}重写了该扇区,通过退出上述循环,节点A将不再更新共享扇区。
因此存在退出阶段:
-Loop
*如果不是第一次进入循环
-等待随机时间Y (>X)秒
*写入{本地“节点唯一编号”,“已知”,“幻数”}(I)
*读取扇区(1)(II)
如果节点唯一编号=本地节点唯一编号
-等待X秒
-读取扇区(2)
直至节点唯一编号=本地节点唯一编号
该算法的正确性依赖于各节点在步骤(I)和(II)之间花费的时间小于X秒。
以上程序循环提供的主要功能的特征如下:如果远程节点在本地节点写入其记录后的X秒内未写入记录,则认为远程节点能够读取本地节点写入的内容。
另外,如果远程节点仍然在前一个循环中,并且“休眠”了足够的时间使本地节点可以退出循环,这意味着远程节点在其“写入”之后“读取”之前休眠。远程节点的下一个读取操作将检索本地节点写入的记录,从而促使远程节点退出循环。本地节点现在安全地停止写入其“节点唯一编号”,并允许两个NIM启动标准协议,接受上层软件的请求。
上述说明假设非易失存储设备是一个旋转磁盘。但是请注意,也可使用任何类型的非易失存储设备,包括光盘驱动器。对此类设备唯一要求是:可以将信息写入到设备上的离散可寻址区域中,并读取该区域中的信息;对于磁盘驱动器而言,此类区域称为扇区。
尽管根据本发明的某些最佳实施方式详细叙述本发明,但是熟悉此技术的人员可以进行许多更改和变更。因此,所附加权利要求书旨在覆盖属于本发明之实质和范围内的所有此类更改和变更。
Claims (15)
1.一种确定数据处理节点集群之活跃度的方法,所述方法包括以下步骤:
提供至少两条用于传送活跃度信息的通路,其中至少一条所述通路包括一个共享非易失数据存储设备,并且连续不断地与其他活跃度确定通路同时使用所述非易失数据存储设备的所述通路,从而确定节点的活跃度,而无需求助由指示其他通信通路的活跃度故障触发的辅助通信通路。
2.权利要求1的方法,其中所述非易失数据存储设备选自磁盘或光盘。
3.一种在多节点数据处理系统中的通信的方法,其中多节点数据处理系统包括至少一非易失数据存储设备,所述通信方法包括:
确定为第一节点的写访问保留的所述存储设备的区域是否可用;
从所述节点的所述第一节点向为所述第一节点的写访问保留的所述存储设备的所述区域传送信息,所述信息包括已更新的序号;
由只能读取为所述第一节点的写访问保留的所述存储设备的所述区域的第二节点,检索所述信息;以及
从所述第二节点向为所述第二节点的写访问保留的所述存储设备的区域,传送所述已更新的序号,从而所述第一节点能够确定其关联的写访问区域何时可用于信息传输。
4.权利要求3的方法,其中所述非易失数据存储设备选自磁盘或光盘。
5.权利要求3的方法,还包括:
根据与第一节点生成的数据包关联的序号,确定写入序号;
根据与第二节点读取的数据包关联的最大和最小序号,确定读取序号,从而第一节点能够确定其写入区域是否可用;以及
以单调方式改变所述写入序号,将所述序号连同新信息传送到为所述第一节点的写访问保留的所述存储设备的所述区域。
6.权利要求3的方法,还包括以下步骤:
每当重新引导所述第二节点时,根据所述第二节点的写入区域中的数据包,确定所述第二节点的写入序号;
根据所述第一节点的写入区域中的数据包,确定读取序号;以及
将所述读取序号传送到为所述第二节点的写访问保留的所述存储设备的所述区域中,从而所述第一节点能够确定其写入区域是否可用。
7.权利要求3的方法,其中所述信息为有关所述第一节点的活跃度信息。
8.权利要求3的方法,其中为所述第一节点的写访问保留的所述区域包括一个扇区,在所述扇区内写入控制信息和数据。
9.权利要求8的方法,其中为所述第一节点的写访问保留的所述区域还包括至少一个附加扇区,用于传送数据。
10.权利要求8的方法,其中限制传送信息的大小被限制为适合所述扇区,从而减少盘存取操作次数。
11.权利要求3的方法,其中所述确定步骤限于确定所述第一节点的所述写访问区域中是否有可用于信息传输的空间,从而避免为进行此类确定而访问所述设备。
12.权利要求3的方法,其中通过活跃度网络抽象层处理对所述非易失数据存储设备的存取。
13.一种初始化非易失存储设备上的信息的方法,其中多节点数据处理系统中的至少两个节点共享非易失存储设备,所述方法包括以下步骤:
第一节点将信息写入到所述第一节点和第二节点已知的位置节点中的所述设备的某个扇区上,所述信息包括:所述第一节点的节点标识符,表示所述第二节点之节点标识符是否已知的标记,以及表示所述扇区中的所述信息包含某类数据的数字;
等待一个随机时间;
所述第一节点读取所述扇区中的所述信息;
重复所述步骤,直至所述扇区的唯一节点标识符与所述第一节点的标识符不同;以及
选择所述设备上的某个区域供所述第一节点进行更多通信,根据所述标识符之间的差异进行所述选择。
14.权利要求13的方法还包括以下步骤:
第一节点将信息写入到所述设备上的所述选定扇区中,信息还包括:所述第一节点的所述节点标识符,表示所述第二节点之节点标识符是否已知的标记,以及表示所述扇区中的所述信息包含某类数据的数字;
等待一个随机时间;
所述第一节点读取所述扇区中的所述信息;
重复所述步骤,直至所述扇区的节点标识符与所述第一节点的标识符不同,并且直至所述标记表示所述第二节点已知所述第一节点的节点标识符,从而所述第一节点知道要使用的区域,同时所述第二节点也知道要使用的区域。
15.一种具有计算机可执行指令的计算机可读介质,所述指令使得计算机提供至少两条用于传送活跃度信息的通路,其中至少一条所述通路包括一个共享非易失数据存储设备,并且连续不断地与其他活跃度确定通路同时使用所述非易失数据存储设备的所述通路,从而确定节点的活跃度无需求助通过指示共享所述非易失数据存储设备的多节点数据处理系统中的其他通信通路的活跃度故障触发的辅助通信通路。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/323,010 | 2002-12-18 | ||
US10/323,010 US7003645B2 (en) | 2002-12-18 | 2002-12-18 | Use of a storage medium as a communications network for liveness determination in a high-availability cluster |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1508714A true CN1508714A (zh) | 2004-06-30 |
CN1278254C CN1278254C (zh) | 2006-10-04 |
Family
ID=32593089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200310113773.2A Expired - Fee Related CN1278254C (zh) | 2002-12-18 | 2003-11-21 | 确定高可用性集群之活跃度的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7003645B2 (zh) |
JP (1) | JP4106014B2 (zh) |
CN (1) | CN1278254C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297396A (zh) * | 2012-02-28 | 2013-09-11 | 国际商业机器公司 | 群集系统中管理故障转移的装置和方法 |
CN103905499A (zh) * | 2012-12-27 | 2014-07-02 | 深圳市金蝶中间件有限公司 | 利用共享磁盘构建通信通道的方法和系统 |
CN104750658A (zh) * | 2013-12-27 | 2015-07-01 | 英特尔公司 | 辅助式一致共享存储器 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1635545B1 (en) * | 2004-09-14 | 2013-04-10 | Sony Ericsson Mobile Communications AB | Method and system for transferring of digital rights protected content using USB or memory cards |
US7376805B2 (en) * | 2006-04-21 | 2008-05-20 | Hewlett-Packard Development Company, L.P. | Distributed storage array |
US7937610B2 (en) * | 2007-04-27 | 2011-05-03 | International Business Machines Corporation | Fast node failure detection via disk based last gasp mechanism |
JP5096799B2 (ja) * | 2007-05-29 | 2012-12-12 | 株式会社野村総合研究所 | クラスタシステム、計算機、および障害対処方法 |
US7783813B2 (en) * | 2007-06-14 | 2010-08-24 | International Business Machines Corporation | Multi-node configuration of processor cards connected via processor fabrics |
US10572188B2 (en) * | 2008-01-12 | 2020-02-25 | Hewlett Packard Enterprise Development Lp | Server-embedded distributed storage system |
GB2459433B (en) | 2008-03-07 | 2012-06-06 | Hewlett Packard Development Co | Distributed network connection policy management |
GB2458157B (en) * | 2008-03-07 | 2012-04-25 | Hewlett Packard Development Co | Virtual machine liveness check |
US20110231602A1 (en) * | 2010-03-19 | 2011-09-22 | Harold Woods | Non-disruptive disk ownership change in distributed storage systems |
US8755268B2 (en) | 2010-12-09 | 2014-06-17 | International Business Machines Corporation | Communicating information in an information handling system |
CN103458045B (zh) * | 2013-09-13 | 2017-04-19 | 汉柏科技有限公司 | 分布式集群的动态部署方法和系统 |
CN104394202B (zh) * | 2014-11-13 | 2018-01-05 | 西安交通大学 | 一种移动社会网络中的节点活跃度量化方法 |
WO2018056044A1 (ja) * | 2016-09-21 | 2018-03-29 | 日本電気株式会社 | 計算機並びにクラスタ管理システム、方法及び非一時的なコンピュータ可読媒体 |
JP6995637B2 (ja) | 2018-01-16 | 2022-01-14 | 株式会社Fts | 燃料タンク |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0695906A (ja) * | 1992-09-17 | 1994-04-08 | Fujitsu Ltd | Scmpシステムおけるsvpのssu制御権の自動切り替え方法 |
US6304980B1 (en) * | 1996-03-13 | 2001-10-16 | International Business Machines Corporation | Peer-to-peer backup system with failure-triggered device switching honoring reservation of primary device |
US6151688A (en) * | 1997-02-21 | 2000-11-21 | Novell, Inc. | Resource management in a clustered computer system |
US6735200B1 (en) * | 2000-03-21 | 2004-05-11 | International Business Machines Corporation | Method and apparatus for monitoring the availability of nodes in a communications network |
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 |
US7051115B2 (en) * | 2001-04-19 | 2006-05-23 | Lenovo (Singapore) Pte. Ltd. | Method and apparatus for providing a single system image in a clustered environment |
-
2002
- 2002-12-18 US US10/323,010 patent/US7003645B2/en not_active Expired - Fee Related
-
2003
- 2003-11-21 CN CN200310113773.2A patent/CN1278254C/zh not_active Expired - Fee Related
- 2003-12-15 JP JP2003417234A patent/JP4106014B2/ja not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297396A (zh) * | 2012-02-28 | 2013-09-11 | 国际商业机器公司 | 群集系统中管理故障转移的装置和方法 |
US9189316B2 (en) | 2012-02-28 | 2015-11-17 | International Business Machines Corporation | Managing failover in clustered systems, after determining that a node has authority to make a decision on behalf of a sub-cluster |
CN103297396B (zh) * | 2012-02-28 | 2016-05-18 | 国际商业机器公司 | 群集系统中管理故障转移的装置和方法 |
CN103905499A (zh) * | 2012-12-27 | 2014-07-02 | 深圳市金蝶中间件有限公司 | 利用共享磁盘构建通信通道的方法和系统 |
CN103905499B (zh) * | 2012-12-27 | 2017-03-22 | 深圳市金蝶天燕中间件股份有限公司 | 利用共享磁盘构建通信通道的方法和系统 |
CN104750658A (zh) * | 2013-12-27 | 2015-07-01 | 英特尔公司 | 辅助式一致共享存储器 |
Also Published As
Publication number | Publication date |
---|---|
JP2004199682A (ja) | 2004-07-15 |
US7003645B2 (en) | 2006-02-21 |
US20040123050A1 (en) | 2004-06-24 |
JP4106014B2 (ja) | 2008-06-25 |
CN1278254C (zh) | 2006-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1278254C (zh) | 确定高可用性集群之活跃度的方法和系统 | |
US9626329B2 (en) | Apparatus for enhancing performance of a parallel processing environment, and associated methods | |
CN1291304C (zh) | 外部存储装置及外部存储装置的数据恢复方法 | |
JP4188602B2 (ja) | クラスタ型ディスク制御装置及びその制御方法 | |
US7778984B2 (en) | System and method for a distributed object store | |
US20080281959A1 (en) | Managing addition and removal of nodes in a network | |
US8612553B2 (en) | Method and system for dynamically purposing a computing device | |
JP4566874B2 (ja) | Ipネットワークにおけるストレージアクセス管理機能及びシステム | |
EP1357465A2 (en) | Storage system having virtualized resource | |
CN1671134A (zh) | 存储系统 | |
EP2012234A2 (en) | Job management device, cluster system, and job management program | |
JP2010277289A (ja) | 管理プログラム、管理装置および管理方法 | |
JP2007115019A (ja) | ストレージのアクセス負荷を分散する計算機システム及びその制御方法 | |
JP2009199584A (ja) | 階層型ストレージシステムにおけるhddのスピンダウンとスピンアップを管理する方法及び装置 | |
US7228352B1 (en) | Data access management system in distributed processing system | |
JP2005056392A (ja) | 地理的ミラーリングに関するリソースの妥当性検査およびランキングのための方法および装置 | |
CN1641611A (zh) | 多重连接管理系统 | |
US8255676B2 (en) | Non-disruptive methods for updating a controller of a storage system | |
US20060190764A1 (en) | System for providing an alternative communication path in a SAS cluster | |
US20070271239A1 (en) | Method for transferring data between terminal apparatuses in a transparent computation system | |
CN105739930A (zh) | 一种存储架构及其初始化方法和数据存储方法及管理装置 | |
JP2007080012A (ja) | 再起動方法、システム及びプログラム | |
CN110989923A (zh) | 一种分布式存储系统的部署方法及装置 | |
CN1279439C (zh) | 将数据流式传输至一网络中的计算机的系统和方法 | |
US8074109B1 (en) | Third-party voting to select a master processor within a multi-processor computer |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20061004 Termination date: 20101121 |