CN1577314A - 在群集化计算机系统中的节点之间传输数据的方法和设备 - Google Patents

在群集化计算机系统中的节点之间传输数据的方法和设备 Download PDF

Info

Publication number
CN1577314A
CN1577314A CNA2004100549551A CN200410054955A CN1577314A CN 1577314 A CN1577314 A CN 1577314A CN A2004100549551 A CNA2004100549551 A CN A2004100549551A CN 200410054955 A CN200410054955 A CN 200410054955A CN 1577314 A CN1577314 A CN 1577314A
Authority
CN
China
Prior art keywords
node
data port
destination node
source node
clustered data
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
Application number
CNA2004100549551A
Other languages
English (en)
Other versions
CN100382070C (zh
Inventor
蒂莫西·R·布洛克
鲍勃·R·塞尔诺豪斯
约翰·C·昂特霍尔兹纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1577314A publication Critical patent/CN1577314A/zh
Application granted granted Critical
Publication of CN100382070C publication Critical patent/CN100382070C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1017Server selection for load balancing based on a round robin mechanism
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Abstract

一种利用群集基础设施内的群集数据端口服务来提供群集化计算机系统中的节点之间的可靠和高效通信的设备、程序产品和方法。该群集数据端口服务提供抽象化传输服务,该传输服务以从用户程序的角度来看有效地使用群集数据端口作为单个数据端口的方式封装和管理在源节点、目标节点和一个或多个备份节点之间多条连接路径的建立。

Description

在群集化计算机系统中的节点之间 传输数据的方法和设备
技术领域
本发明一般涉及群集化计算机系统,特别涉及群集化计算机系统中节点之间的数据传输。
背景技术
“群集化”一般是指其中多个计算机或节点连网在一起以协作执行计算机任务的计算机系统组织。计算机群集的一个重要方面是群集中的所有节点呈现单个系统映像,也就是,从用户的角度,群集中的节点看上去就像是统一的单个计算机或实体一样。
群集化经常用于其高性能和可靠性很重要的较大型多用户计算机系统中。例如,群集化可以用来提供冗余或容错,从而,如果群集中的任何节点出现故障,则由该节点先前执行的操作将由群集中的其它节点处理。群集化还用来提高总体性能,因为与单台计算机相比,多节点经常可以并行处理数目更多的任务。经常地,还可以使用负载均衡来保证任务公平地分配给多个节点以防止单个节点变得过载,从而最大化总体系统性能。例如,群集化的一个特定应用是向诸如数据库或存储设备的共享资源提供多用户访问,因为多节点可以处理相对较大数目的用户访问请求,并且即使当群集中的任何给定节点出现故障时共享资源通常还是对用户可用。
群集通常通过在单个节点内执行“作业”或“进程”来处理计算机任务。在某些情况下,由不同节点执行的作业相互协作来处理计算机任务。这些协作性作业通常能够相互通信,并且通常采用称作“组”的逻辑实体在群集中进行管理。组通常分配有某种形式的标识符,并且该组中的每个作业以该标识符标记以表示其是该组的成员。典型地,经常称作“成员”的这些作业驻留在群集中的不同节点上。
组内的成员作业通常使用基于有序消息的方案相互通信,其中维持组成员之间发送的消息的特定次序,从而每一个成员以与每一个其它成员相同的次序看见由其它成员发送的消息,从而保证节点之间的同步。对要由组成员执行的操作的请求经常称作“协议”,并且通常通过使用一个或多个协议由组成员协作执行任务。
在传统群集化计算机系统中的不同节点上执行的程序之间的通信经常是以用户级(从群集化基础设施的角度来看)建立的,也就是,在位于群集化基础设施所提供的底层服务之上且依赖于其的程序代码-通常是操作系统或内核中的程序或模块或者应用程序-的引导下建立的。换一种方式说,当在群集化计算机系统的一个节点上执行的“用户”程序如应用程序或者内核或操作系统程序需要将数据传输到群集化计算机系统中的另一个节点时,经常要求用户程序本身发起建立与该另一个节点的网络连接,并管理所建立网络连接上数据的发送和接收。通过单个所建立网络连接向其它节点进行数据传输。
然而,群集化计算机系统中该数据传输机制的一个缺点是通常需要用户程序本身处理故障事件,例如用户程序试图向其发送数据的节点不可用。例如,在节点故障的情况下,需要用户程序通过建立到备份节点的新网络连接将其数据流重定向到该备份节点。
与大多数群集化计算机系统特别是在高可用性应用中采用的群集化计算机系统的总体目标相一致,希望是在群集基础设施内而不是在用户程序代码中处理诸如故障恢复、负载均衡和其它高可用性技术的功能性,从而减轻或消除让用户程序开发人员具体配置用户程序来解决群集化相关可靠性和性能问题的需要。
这样,需要用户程序管理与在群集化计算机系统中的节点之间进行数据通信有关的节点故障有悖于大多数群集化计算机系统的设计目标。因此需要一种有助于群集化计算机系统的节点之间的可靠和高效数据通信而减轻对特定用户程序的支持的依赖的方式。
发明内容
本发明解决了与现有技术相关联的这些和其它问题,其中提供了一种利用群集基础设施内的群集数据端口服务来提供群集化计算机系统中的节点之间的可靠和高效通信的设备、程序产品和方法。具体地说,根据本发明的群集数据端口服务提供抽象化传输服务,该传输服务以从用户程序的角度来看有效地使用群集数据端口作为单个数据端口的方式封装和管理在源节点、目标节点和一个或多个备份节点之间多个网络连接的建立。
根据本发明的群集数据端口支持从源节点和目标节点之间的多条连接路径中选择的能力以及将数据流从目标节点选择性地切换到备份目标节点的能力。在根据本发明的一些实施例中,给定连接路径的故障或者给定目标节点的故障可以由该群集数据端口纠正,而这经常是采用有效地对任何利用该服务的用户程序隐藏的方式,或者至少是采用使这些用户程序免于必须涉及管理底层通信层协议的方式。而且,在其它实施例中,还可以支持诸如负载均衡、多发送模型和消息加密等等的附加功能。
在其它应用中,根据本发明的群集数据端口可以用来帮助在群集化环境中的源节点与指定目标节点之间传输大量数据,例如,用于即使当生产和拷贝盘安置于地理上相互远离的位置时也支持这些盘之间的镜像。
作为本发明特征的这些和其它优点和特性在本文所附且形成其另一部分的权利要求书中阐述。然而,为了更好地理解本发明以及利用它所实现的优点和目的,应当参照附图及相应描述性内容,其中描述了本发明的多个示例性实施例。
附图说明
图1是根据本发明的群集化计算机系统的方框图,并且示出根据本发明的群集数据端口。
图2是图1的群集化计算机系统中的节点的方框图。
图3是在图2的节点中采用的主要群集化软件组件的软件分层图。
图4是图3所示的群集数据端口服务中的主要对象的对象图。
图5是在图3所示的群集数据端口服务中采用的任务模型的方框图。
图6是用于初始化图3所示的群集数据端口服务、采用该群集数据端口服务传输以及终止该群集数据端口服务的协同程序流程的流程图。
图7是图3所示的群集数据端口服务的状态图。
图8是示出由图3所示的群集数据端口服务执行的发送消息例程的程序流程的流程图。
图9是示出图3所示的群集数据端口服务中的正常同步消息流程的流程图。
图10是示出由图3所示的群集数据端口服务中的网络故障引起并且导致源节点发起对目标节点进行复位的消息超时流程的流程图。
图11是示出由图3所示的群集数据端口服务中的网络故障引起并且导致源节点发起对备份目标节点进行故障恢复的消息超时流程的流程图。
具体实施方式
以下所述的实施例利用群集化基础设施内的群集数据端口服务来提供抽象化(abstracted)传输服务,该传输服务适于以从用户程序的角度来看有效地利用群集数据端口来作为单个数据端口的方式封装和管理在源节点、目标节点和一个或多个备份节点之间多个网络连接的建立。
现在参照附图,其中在若干附图内相同标号表示相同的部件,图1示出示例性群集化计算机系统10,该系统包括以分布式方式彼此互连的多个节点,例如,源节点12、主目标节点14和多个备份目标节点16。
本领域内公知,群集化基础设施(图1中未示出)通常分布在所有这些节点之间,从而帮助包括在此描述的群集数据端口服务的群集相关任务的分布式执行。群集的每个节点可以包括相同的群集化基础设施程序代码,或者不同节点可以包括与其它节点不同的群集化基础设施程序代码,只要共同驻留在所有节点上的程序代码能够以在此描述的方式管理群集数据端口服务即可。
节点12、14和16通常通过群集化网络18耦接在一起,群集化网络18实际上可以包括任何网络拓扑结构,包括局域网(LAN)、高速互连如无限频带(Infiniband)和远程输入/输出(RIO)、广域网(WAN)等的各种配置及其组合。还应该理解,各节点12、14、16可以在物理上与其它节点紧邻,或者可以在地理上与其它节点分离,这在本技术领域内是公知的。而且,在群集化计算机系统10中可以允许各种互连类型、网络类型、节点类型等以高效且可靠的方式彼此共存。
另外位于每个节点12、14、16中的是一个或多个网络连接20,这些网络连接通过连接路径22将相应节点耦接到群集化网络18。例如,网络连接20可以表示单个网络适配卡或者在卡上提供多个端口的情况下表示相同卡上的不同端口,只要每个连接20拥有到网络18的单独连接路径22即可。下面将变得更清楚,通过提供从节点12、14和16到网络18的多条连接路径22,可以在任何节点对之间建立多个逻辑连接,从而允许在群集化计算机系统中为每个节点提供的连接冗余和故障恢复(从故障连接中恢复)以及可选地负载均衡(提供较高的总体吞吐量)。
根据本发明的群集数据端口在图1中以24概略表示,其提供源节点12与主目标节点14之间的逻辑通信。根据本发明的群集数据端口主要支持从源节点12和节点14、16中的任一个之间的多条连接路径22中选择性地且动态地进行选择的能力,以及将数据流从主目标节点14选择性地且动态地切换到备份目标节点16的能力,从而有效地替换备份目标节点16作为新的主目标节点。这样,从源节点和目标节点之间的可用连接路径的立场和能够用作数据端口目标节点的节点的立场,根据本发明的群集数据端口经常都能够支持冗余。
现在参照图2,其中示出了群集化计算机系统10中源节点12的示例性硬件配置。应该理解,节点14、16可以类似地进行配置,或者可以使用不同的硬件配置。节点12一般性地表示例如多种多用户计算机中的任一种,如网络服务器、中型计算机、大型计算机等。然而,应该理解,本发明也可以在其它计算机和数据处理系统例如单用户计算机如工作站、台式计算机、便携式计算机等或者其它可编程电子设备(例如,包括嵌入式控制器等)中实现。
节点12一般包括一个或多个系统处理器26,这些处理器通过位于高速缓存系统30内的一级或多级高速缓存耦接到主存储装置28。而且,主存储装置28通过系统输入/输出(I/O)总线32和多个接口设备例如输入/输出适配器34、工作站控制器35和存储控制器36耦接到多种外部设备,其中,输入/输出适配器34、工作站控制器35和存储控制器36分别提供对一个或多个外部网络37、一个或多个工作站38和/或一个或多个存储设备如直接存取存储设备(DASD)39的外部访问。在替代方案中可以采用任何数目的替代计算机架构。
如图3所示,在每个节点12内执行的主要软件组件包括IP/物理层组件40、UDP组件41、TCP组件42、界面(socket)组件43、群集通信(CC)组件44、群集拓扑结构服务(CTS)组件46、群集数据端口服务(CDPS)组件47、群集引擎(CLUE)组件48、群集控制(CCTL)组件50(其中驻留有群集信息对象(CIO)51)、群集弹性组管理器组件52(其中驻留有一个或多个弹性组对象(RGO)53)、库组件54、群集化API组件56以及包括群集管理器应用60在内的多个作业/应用58。
通常,IP/物理层组件40提供工业标准通信栈和对网络的物理接口。UDP和TCP组件41和42分别提供UDP和TCP分组传输协议,并且界面组件43提供TCP上的界面支持。
CC组件44为可靠多播群集化通信服务提供支持,而CTS组件46监视群集化计算机系统的网络拓扑结构,并且存储诸如节点布局、节点间网络互连规范、节点地理位置和节点状态信息的信息。CDPS组件47为根据本发明的群集数据端口提供支持,并且下面将作更详细的描述。
CLUE组件48提供分布式有序组消息传递服务。CCTL组件50管理节点上群集化的配置和激活,通常支持各种适于管理群集化环境的群集初始化和节点管理操作。CIO51在群集的每一个节点上复制,以提供动态和一致的群集注册表(registry),其中每个节点具有所有必要群集设置以及群集的状态信息的一致局部副本。群集弹性组管理器组件52同步维护存储在RGO53中的群集内组成员资格状态信息的副本。
库组件54为群集提供其它支持服务。群集化API组件56通过作业/应用58向外部接口提供底层群集化功能性。群集管理器应用60提供用户接口从而诸如系统管理员的用户可以管理系统内的群集化操作。
在所示实施例中,作业/应用58驻留在节点的操作系统和/或内核内,而不允许用户级应用和作业直接访问群集数据端口服务。然而,在其它实施例中,可以允许用户级应用和作业访问根据本发明的群集数据端口服务。
以下的讨论将集中于用来实现上述群集数据端口服务的特定例程和数据结构。为实现本发明的实施例而执行的例程,不管作为操作系统或特定应用的一部分、组件、程序、对象、模块还是指令序列来实现,在此都将称作“计算机程序代码”或简单地“程序代码”。该计算机程序代码通常包括一条或多条指令,这些指令在不同时期驻留在计算机中的不同的存储器和存储设备内,并且当由计算机中的一个或多个处理器读取和执行时,使该计算机执行实施本发明各方面的步骤或单元所需的步骤。而且,虽然本发明已经并且在下面也将在全功能计算机和计算机系统的上下文中描述,但是本领域的技术人员应该理解,本发明的各个实施例能够作为各种形式的程序产品来分发,并且不管用来实际上执行分发的特定类型的信号承载介质,本发明同样适用。信号承载介质的例子包括但不限于诸如易失性和非易失性存储器设备、软盘和其它移动盘、硬盘驱动器、光盘(例如,CD-ROM、DVD等)等等的可记录类型介质,以及诸如数字和模拟通信链路的传输型介质。
另外,下面所述的各个程序代码可以根据在本发明的特定实施例中实现其的应用或软件组件来标识。然而,应该理解,下面任何特定程序术语的采用仅是为了方便起见,因此本发明不应限于仅在由这种术语标识和/或隐含的任何特定应用中使用。而且,考虑到可以采用通常是无数种方式将计算机程序组织成例程、过程、方法、模块、对象等,并且可以采用各种方式在驻留于典型计算机内的各种软件层(例如,操作系统、库、API、应用、小应用程序(applet)等)之间分配程序功能性,因此应该理解,本发明不限于在此所述的程序功能性的特定组织和分配。
本领域的技术人员应该认识到,图1-3所示的示例性实施例不旨在限制本发明。实际上,本领域的技术人员应该认识到,在不脱离本发明范围的情况下可以采用其它替代硬件和/或软件环境。
图4-11进一步示出上面结合图1-3描述的群集化计算机系统中所采用的群集数据端口服务的特定实现。该实现可以例如用来提供群集化服务以在群集化环境中源节点与N个指定目标节点之一之间传输大量数据。在本实现中,取决于目标节点在群集中的可用性,目标节点被认为是可切换的,并且还可以是远程的(例如,相对于数米,离源节点数公里)。
如上所述,传统群集化环境经常依赖于应用或操作系统代码来控制与目标节点的单个逻辑或TCP连接以处理全部通信。目标节点的不可用性需要源节点应用代码通过建立对新目标节点的新逻辑或TCP连接来对其数据流进行重定向。
另一方面,下面描述的群集数据端口服务提供抽象化传输服务,该传输服务对采用指定备份目标节点对多个与指定目标节点的逻辑或TCP连接的建立进行封装和管理,这对于用户(即,操作系统或内核组件)而言看上去如同单个数据端口或数据管道一样。通过允许在多个与目标节点的逻辑或TCP连接之间对通信量进行负载均衡的数据端口服务来提高吞吐量。在群集服务或网络服务检测到目标节点的可用性变得可疑,从而表示源节点有可能不能与目标节点通信的情况下,群集数据端口服务可以在同一数据端口下将数据流切换到备份目标节点,而不使操作系统或应用代码涉及通信层协议,或者可选地在一些实现中甚至不通知该节点。
下述群集数据端口服务还可以配置成提供同步和异步调用者发送模型,以及支持消息加密。因而,在此所述的服务可以用来提供允许各种操作系统或内核组件利用群集化环境中的服务的一般消息传递服务。
在所示实施例中,群集化计算机系统中的每个节点作为来自国际商业机器公司的eServer iSeries中型计算机实现。其中实现的群集数据端口服务可以在该环境中使用以支持诸如独立辅助存储池(ISAP)的存储设备的远程镜像,在此称作远程IASP支持。采用远程IASP支持,可以允许管理员配置远程系统上的IASP,作为本地系统上的IASP的逻辑镜像(前者可以称作拷贝盘,而后者可以称作生产盘)。IASP最初被远程拷贝,然后可选地通过同步或异步镜像操作来保持同步。系统是远程的以提供站点灾难保护。
在此所述的群集数据端口服务可以用来支持在本地系统(源节点)上的IASP与远程系统(目标节点)上的一个或多个IASP之间镜像数据的传输。另外,IASP可以配置为在多节点之间可切换的DASD。例如,作为典型镜像拓扑结构的一部分,多个源节点可以“共享”用于备份的可切换DASD,而多个目标节点可以同样共享用作镜像目标的另一个可切换DASD。
如上所述,群集端口数据服务仅可用于操作系统或内核用户,例如,驻留在iSeries计算机的系统许可内部码(SLIC)中的组件。这样的用户通常需要在期望用作源或目标目的地(destination)的每一个群集节点上注册组件唯一客户端名称和相关回调函数集(其引用客户端名称)。注册可能需要被延迟直到群集可工作为止。
在所示实施例中,由群集数据端口服务在到当前指定目标节点的可用规定IP地址路径之间对用户发送的请求进行负载均衡。用户通常负责提供和保持规定期望数据传输路径的任何目的地节点ID和IP地址信息。如果需要,用户还可以控制中止通信并将数据路径重定向到新目的地节点。通知通过用户提供的回调函数回流给用户。
虽然群集数据端口服务通常为从源到目标的高吞吐量通信流而优化,但是单个数据端口实例还可以支持目标到源消息发送,因而调用者通信无需局限于从源到目标的单向通信。
由于有可能在节点之间建立多个逻辑或TCP连接,因此群集数据端口服务可以依赖于界面异步I/O完成端口(IOCP,I/O completion port)来最小化支持该服务所需的任务数。这些服务还可以提供支持异步发送、接收回调、以及改善在多个TCP连接之间对发送进行负载均衡的效率的结构。与群集数据端口服务耦接的增强式界面支持还可以确保保持有序消息递送(delivery)而不管同时跨越多个连接的负载均衡消息传递。
流控制可以由界面层处理,从而不需要调用者执行重试。然而,通常需要调用者确保在流控制激活期间不发生无限制发送。最好在调用者侧提供某种监视/扼流能力。调用者可以可选地例如通过设置流控制属性标志来请求流控制状态改变的通知。通知可以通过调用者提供的流控制回调来进行。调用者可以使用该通知来开始/停止资源监视以确保流控制激活时不发生无限制发送。采用该模型,发送通常不被拒绝返回到调用者,而是排入队列,并且最终由下面层处理。这意味着通信中止期间的数据端口级缓冲以“切换”目的地节点,从而为流控制机制提供一致的外观(look)。
多个任务可以尝试对公共数据端口句柄的连接和发送。对这些连接可以进行使用计数,以确保关闭时采用数据端口完成所有任务(即,重复连接将破坏(bump)使用计数,从而如果进行有控制关闭则要求多次关闭)。来自多个任务的发送在目标节点上递送时仅对于单个发送任务可以是有序的。
目标节点上的群集数据端口和界面服务通常确保关于单个发送任务的有序消息递送。可以支持调用者级异步发送和同步发送模型。
在所示实现中,SLIC组件或用户的接口最好作为用户被认为“拥有”的群集数据端口对象上的方法调用来提供。该对象可以在注册调用中构造,并且在注销调用中销毁。
在此所述的群集数据端口服务实现最好提供以下功能:高吞吐量可靠有序消息传递服务(例如,对于IP连接每分钟至少1GB的吞吐量);多条(例如,4条或更多条)与目标节点的连接路径之间的负载均衡;单个数据端口实例下的多个目标节点支持,从而允许用户“切换”目的地节点,其中每次只有一个处于活动状态;同步和异步发送模型;流控制通知;源/目标节点和数据端口连接路径上的群集事件错误通知;消息加密;并发发送任务支持;以及双向消息流。然而应该理解,可以在根据本发明的群集数据端口服务的不同实现中支持不同能力以及功能组合。
现在参照图4,进一步说明在此所述的群集数据端口服务实现中主要对象的对象图。具体地说,每当希望使用群集数据端口服务在源节点和目标节点之间传送数据时,由SLIC组件或其它用户应用通过用户接口创建数据端口对象或实例70。数据端口内部对象72由数据端口对象70创建,并为其所知,并且包括诸如客户端名称、数据端口属性和界面数据的信息。对象72通常在创建关联数据端口对象70的期间创建,其中所创建的数据端口对象70包括数据端口内部对象72的句柄。在数据端口内部对象72内还可以实现节点的故障恢复。
数据端口内部对象72具有群集客户端对象74,其存储诸如客户端名称的信息以及诸如发送、通知和上调方法的各种回调方法,这些方法可以用来与客户端通信。群集客户端对象74另外还向群集化基础设施注册,因而包括群集对象76的句柄。群集对象76包括各种方法和数据,例如registerclient()、unregisterclient()和receivedclientmsg()方法、以及发送/接收协议和注册客户端列表。通过对象74和76之间的交互将数据端口捆绑到群集化环境中。通过如此做,可以通过这些对象来发起诸如向数据端口通知节点、通信链路、群集进程(作业)的故障等的活动。
数据端口内部对象72还具有数据端口地址表78,该地址表存储远程IP地址、与(由节点ID标识的)特定节点通过其耦接到群集化网络的可用IP地址相关的节点ID对。另外,对于当数据端口上发生各种事件时所要调用的可以由用户向数据端口注册的各种函数,数据端口内部对象72还具有数据端口回调表80,该回调表标识用户回调函数及其参数数据区域。例如,每当发生数据传输错误时,用户可能希望被通知。通过注册适当的用户回调方法,数据错误的发生可以导致执行回调函数以向用户通知该错误。
群集数据端口服务所采用的其它对象和服务包括数据端口网络处理程序82、界面组件84以及TCP/IP栈86。网络处理程序82为数据端口提供网络接口,并且可以另外实现各种功能,例如多个IP地址之间的负载均衡以及在节点故障恢复之后重新发送数据。界面组件84和TCP/IP栈86分别处理界面和TCP/IP通信。
应该理解,对于根据本发明的群集数据端口服务,可以采用其它对象架构。
下一步,图5示出在此所述的群集端口数据服务中所采用的任务模型。具体地说,图5示出在源节点和目标节点上执行用于实现在此所述的数据端口功能性的任务。从源节点侧,可以支持多个用户任务100,从而发送数据以在数据端口上传输。应该理解,用户可以为多个任务发送数据。由任务100发起的流控制发送采用TCP/IP栈在路由器任务(图5中未示出)下发送。
从目标节点侧看,从源发送的发送消息由路由器任务102接收,路由器任务102在界面中将事件投递到I/O完成端口(IOCP)队列104。这些事件以106概略示出,并且由配置成等待I/O或者“记录”完成的一个或多个数据端口任务108处理。适当时,任务108还可以在目标节点中通过TCP栈在路由器任务下再次利用流控制发送消息来发送确认(图5中未示出)。该确认以及从目标节点到源节点的任何发送数据在源节点中由路由器任务110接收。源节点中的互补IOCP队列112用来接收由任务110投递的事件114。当在队列上接收到这些事件时,数据端口任务116处理这些事件。而且,通常响应对先前发送的确认,任务116还将执行对用户任务的回调例程以向用户任务通知发送消息的完成。
下一步,图6示出初始化根据本发明的群集数据端口、在其上传输数据以及终止该群集数据端口的过程中,源节点和目标节点之间的协同流程。如方框120和122所示,通常,在源节点和目标节点的每一个上异步地向数据端口注册客户端(或用户)。在方框124,在以后的某个时间,在源节点上创建一个或多个数据界面。下一步,当希望在源节点和目标节点之间建立连接时,在方框126和128执行群集消息传递协议,其中在这些节点之间执行端口协商和地址交换。下一步,在方框130,目标节点在其上创建并绑定数据界面。然后,在方框132,通过将一个或多个发送和接收界面从源节点通知到目标节点,建立逻辑或TCP连接。在方框134,目标节点监听引入的连接。当源节点通知每个发送和接收界面时,在方框136,接受该新界面,由此控制返回到方框134,以监听另外的引入连接。一旦所有TCP连接由源节点传递到目标节点,则在源节点和目标节点之间建立一条或多条连接路径。如下所述,如果在源节点和目标节点之间建立多条连接路径,则可以在源节点中利用负载均衡算法以在多条连接路径之间分布消息通信量。
在以后的某个时间,每当希望将用户数据从源节点发送到目标节点时,源节点执行发送用户数据方框138,该方框以消息的形式将用户数据传递到目标节点。该进入消息在方框140适当地处理,并且通常导致在方框142传输确认(ACK)。在方框144,将由目标节点传输的确认返回到源节点,并且对其进行处理。一般,由源节点传输到目标节点的每个消息以类似的方式处理,如方框138-144所示。
为了实现数据端口的终止,源节点可以在方框146发出停止连接命令,从源节点的角度,这停止了数据端口上的进一步通信。然而,数据端口保持活动,直到源节点在方框148关闭连接为止。同样地,目标节点可以独立地关闭连接,如方框150所示。
下一步,图7示出根据本发明用于群集数据端口服务中的一个适当状态图。该状态图在很多方面都遵循上面结合图6所述的操作序列。另外,该图还示出了可以由根据本发明的群集数据端口服务支持的多个用户应用接口。然而,应该理解,根据本发明可以支持大范围的其它接口。
如图7所示,数据端口最初响应数据端口的创建,例如通过在创建数据端口对象期间执行的构造器方法(ctor()),进入空闲(IDLE)状态160。在创建期间,创建器可以指定诸如要与数据端口相关联的IP地址、主目标节点和备份目标节点列表以及备份次序或算法的参数。例如通过析构器方法(dtor())来销毁数据端口对象,将数据端口转变到销毁(DESTRUCTED)状态162,从而系统最终收集该数据端口。
数据端口响应用来向数据端口注册用户的registerdpclient()方法从空闲状态160转变到注册(REGISTERED)状态164。如上所述,关于向数据端口注册,客户端可以提供诸如可以被调用以从数据端口接收事件的回调方法列表的信息。在替代方案中可以采用其它向客户端通知数据端口活动的方式。
从目标节点的角度,数据端口可以响应源节点试图连接到目标节点时所执行的connectreq()方法而转变到被连接(CONNECTEDTO)状态166。如果关闭连接,则可以调用closeconnect()方法来使数据端口返回到注册状态164。
从源节点的角度,该节点响应initialize()方法,从注册状态164转变到初始化(INITIALIZED)状态168。initialize()方法可以例如用于在所创建的数据端口实例中设置地址表。一旦初始化,数据端口就响应发起前述群集消息传递协议以在源节点和目标节点之间交换界面的connect()方法,从状态168转变到连接中(CONNECTING)状态170。一旦连接过程完成,则调用connectcomplete()方法,从而将数据端口转变到连接(CONNECTED)状态172。一旦处于连接状态,就可以发起其它连接,以例如允许多个用户任务利用数据端口。然而,该其它连接请求不导致数据端口从状态172转变。另外,当处于连接状态时,数据端口配置成以在此所述的方式接收和发送消息。
数据端口可以以众多不同方式从连接状态转变到停止(STOPPED)状态174。例如,可以调用显式的stop()方法来转变到状态174。另一方面,可以使用close()方法来关闭连接。如果多个连接活动(即CNT>1),则close()方法将不导致从状态172转变。然而,如果在仅存在一个连接的情况下调用close()方法,或者请求立即关闭数据端口,则将转变到停止状态174。数据端口还可以响应reset()方法从状态174转变回到状态172。否则,如果当处于状态174时在数据端口上调用新connect()方法,则数据端口可以转变回到连接中状态170。而且,如果试图使用close()方法来关闭数据端口,并且在连接数为一或者指定立即关闭的情况下,则转变回到初始化状态168。否则,如果当处于停止状态174时调用close()方法,但是连接数大于一,则数据端口保持处于状态174。
应该理解,数据可以通过使用消息或者通过其它数据格式在群集数据端口中的源节点和目标节点之间传送。而且,在源节点和目标节点之间传送的消息可以采用任何数量的不同形式,并且可以包括例如定义该消息格式的预定首标。在给定通信场景中可能对消息重新排序的情况下,最好例如在消息首标中包括顺序号以确保可以在目标节点重组该消息。一个适合的首标格式和定序协议在如Timothy R.Block等人在2003年4月24日提交且转让给本发明的受让人的美国专利申请No.10/422,680中有描述,通过引用将其合并于此。
从源节点到目标节点的消息传输进一步示出于图8中的发送消息例程180。例程180在源节点数据端口上执行,或者如果目标节点与源节点进行数据通信,则也可以由目标节点数据端口执行。
如果在源节点和目标节点之间建立了多条这样的连接路径,则例程180通过使用负载均衡算法选择连接路径而在方框182开始。可以采用各种负载均衡算法,例如连接路径的循环选择,或者在替代方案中,诸如当连接路径无事可做时让界面联系数据端口并且使用那条连接路径进行下一次传输的替代负载均衡算法。在替代方案中还可以使用本领域公知的其它负载均衡算法。
一旦选择了连接路径,则在方框184将消息传递到所选连接路径以进行传输。然后,控制转到方框186,以判定是否从目标节点接收到确认。如果是,则控制转到方框188,由此消息传输完成。另外,可以将“成功(OK)”状态返回给用户。
回到方框186,如果尚未接收到确认,则控制转到方框190,以判定消息是否超时,即在预定时间段内尚未接收到确认。如果消息尚未超时,则方框190将控制返回到方框186。然而,如果在预定时间段内没有接收到确认,则方框190将控制转到方框192,以判定是否激活了“自动切换”模式。
自动切换是指当检测到目标节点中的故障时自动地通过切换到备份节点来进行故障恢复,而无需客户端或用户的特定发起。因而,如果没有激活自动切换模式,则方框192将控制转到方框194,以终止例程180,并且将“失败(FAIL)”状态返回到客户端。在这样的情形下,发起切换到备份节点的故障恢复通常是客户端的责任。
另一方面,如果激活了自动切换模式,则方框192将控制转到方框196,以判定另一个备份节点是否可用。如果没有这样的备份节点可用,则控制转到方框194,从而以“失败”状态终止例程180。否则,控制转到方框198,从而例如使用上面结合图6所述的相同协议来发起连接序列,以将源节点连接到备份目标节点。一旦连接序列完成,则控制转到方框182,从而使用前述负载均衡算法从为新目标节点建立的连接路径中选择新连接路径。然后,以上述方式使用所选连接路径传输消息。
应该理解,在根据本发明的一些实现中,可以省略方框192。在一些这样的实现中,自动故障恢复可以一直要求用户发起,而在其它实施例中,自动故障恢复可以以有效地对用户隐藏的方式进行。
如上所述,可以支持同步和异步消息传递格式。例如,图9示出当在源节点和目标节点之间传输时在同步模式中可能发生的正常发送消息流程。在每个节点内,示出了可以由用户、数据端口和界面中的每一个做出的函数调用。图9所示的流程从目标侧上的用户发送确认的角度来看是同步的,这对于其中需要同步消息传递的存储管理应用可能是有利的。然而,应该注意,从数据端口的角度来看,消息传递在本质上是非同步的。
如图9所示,在源节点上通过从用户到数据端口的send(M1)调用来发起从源节点到目标节点的示例性消息M1的通信。作为该调用的结果,数据端口将startsend(M1)调用传递到源节点上的界面。然后,数据端口将“成功”状态返回给用户,从而指示消息已被发送。
另外,在先前的某个时间,目标节点上的数据端口通过对界面的startrecv()和waitforcmpt()调用,初始化了界面以接收来自源节点的通信。
在以后的某个时间,在源节点和目标节点上的界面之间传输消息M1。当接收到消息时,界面向目标节点的数据端口报告记录完成(即接收到消息,并已将其存储在IOCP队列的记录中)。数据端口通过回调函数rcvddata(M1,SN)向目标节点的用户通知已接收到该数据,其中,SN是消息的顺序号。然后,用户处理所接收的消息,并且通过对数据端口的sendack(SN,RC)调用向源节点发起确认通信,其中RC存储适于该消息的返回码。然后,数据端口通过startsend(A1)调用向源节点发起确认A1的传输。数据端口还向目标节点用户返回“成功(SUCCESS)”状态。然后,源节点和目标节点上的界面协作以将确认传输到源节点。另外,在该传输之前,源节点上的数据端口通过对界面的startrecv()和waitforcmpt()调用初始化了该界面,以接收确认。
一旦界面接收到确认,则该界面向数据端口通知已接收到N个确认(说明可以接收到多个确认的可能性)。响应该通知,数据端口向用户发出回调函数,以释放为消息M1分配的缓冲区,并且转发由目标节点产生的返回码RC。
在异步模式中,发生类似的流程,但是一旦从界面接收到“记录完成(RECORD COMPLETE)”状态的通知,目标节点上的数据端口将确认发送到源节点,而不是要求用户发起确认传输。在另一个替代模式中,一旦消息的传输完成,就可以将确认发送到源节点用户。
接下来,图10示出由群集化数据端口服务中的网络故障引起并且导致源节点发起对目标节点的复位的示例性消息超时流程。具体地说,图10示出用户试图发送两条消息M1和M2,但是在适当时间段内没有接收到确认之后,导致源节点界面报告等待超时。作为这一超时的结果,源节点上的数据端口通过对用户的nack()调用,将每一条消息M1和M2的无确认报告回到源节点上的用户。另外,在发送无确认之前,源节点上的数据端口对用户进行connstatus(dwn)调用,以向用户或客户端通知所有后续发送都将立即失败,并且所有先前的发送都将最终无确认。然后,不接受任何另外的发送,直到接收到连接“上(up)”状态之后为止。
在以后的某个时间,源节点检测到连接状态变化。为了恢复到目标节点的连接,数据端口对界面执行startsend(OOB reset msg)调用,从而导致将复位消息传输到目标节点。作为该消息的结果,目标节点上的界面向该数据节点报告在IOCP队列上接收到完成记录。当在所接收的记录中检测复位消息时,目标节点上的数据端口向目标节点的界面发出复位,然后通过对界面的startsend(reset ACK)调用发起对复位确认的传输。其后,界面将复位确认传输到源节点,这导致源节点中的界面通过“记录完成”指示向数据端口报告的确认的接收。然后,数据端口通过对用户的connstatus(up)调用来报告连接步骤现在已被重新建立。然后在重新建立了连接的情况下,用户发起消息M1的重新发送,该重新发送以上面结合图9所述的方式成功地进行处理。注意,消息M2的重新传输以类似方式发生,但是未在图10中单独示出。
接下来,图11示出由群集数据端口服务中的网络故障引起并且导致源节点发起的切换到备份目标节点的故障恢复的消息超时流程。如图10的流程一样,源节点试图发送消息M1和M2,但是由于试图传输失败而导致超时之后,数据端口对用户进行无确认调用。然后,假定没有检测到连接状态变化,并且返回了所有无确认,则源节点可以发起与新目标节点的连接。如上面结合图8所述,该连接可以例如在向用户通知目标节点失败之后由用户或客户端发起,或者替代地,在数据端口本身中发起故障恢复的情况下,通过自动切换发起。一旦与替代目标节点建立新连接,就重新发送消息M1和M2,但是将这些消息传输到备份目标节点,而不是原始主目标。
应该理解,在根据本发明的不同实施例中,可以采用不同的消息流程。而且,应该理解,本领域的普通技术人员在了解本公开内容后可以实现群集基础设施中的前述群集数据端口服务功能性。
在不脱离本发明的精神和范围的情况下,可以对在此所述的实施例进行各种附加修改。因此,本发明在于所附权利要求。

Claims (36)

1.一种在群集化计算机系统中源节点和目标节点之间进行通信的方法,该方法包括:
在源节点和目标节点之间建立群集数据端口,该群集数据端口配置成从源节点和目标节点之间的多条连接路径中选择,并将数据流从目标节点选择性地切换到备份目标节点;以及
使用群集数据端口将数据从源节点传送到目标节点。
2.如权利要求1所述的方法,其特征在于,建立群集数据端口包括在源节点和目标节点之间建立多个逻辑连接,每一个逻辑连接配置成在所述多条连接路径中的一条连接路径上传送数据。
3.如权利要求2所述的方法,其特征在于,建立群集数据端口包括在源节点和目标节点之间交换与源节点和目标节点中至少一个相关联的网络地址。
4.如权利要求2所述的方法,其特征在于,建立群集数据端口包括向群集数据端口注册驻留在源节点上的客户端。
5.如权利要求4所述的方法,其特征在于,注册客户端包括向群集数据端口标识与客户端相关联的至少一个回调函数,其中群集数据端口配置成通过调用回调函数来向客户端通知数据端口事件。
6.如权利要求1所述的方法,其特征在于,将数据从源节点传送到目标节点包括在群集数据端口中执行负载均衡,以将数据分布在所述多条连接路径之中。
7.如权利要求1所述的方法,其特征在于,每条连接路径包括TCP连接。
8.如权利要求1所述的方法,其特征在于,群集数据端口配置成根据从由异步消息传递协议和同步消息传递协议构成的组中选择的消息传递协议,在源节点和目标节点之间传送数据。
9.如权利要求1所述的方法,还包括:响应不能与目标节点通信,采用群集数据端口将数据流从目标节点切换到备份目标节点。
10.如权利要求9所述的方法,其特征在于,将数据流从目标节点切换到备份目标节点包括在源节点和备份目标节点之间建立逻辑连接。
11.如权利要求9所述的方法,还包括:向群集数据端口服务的客户端通知不能与目标节点通信,其中响应客户端发起群集数据端口故障恢复,将数据流从目标节点切换到备份节点。
12.如权利要求9所述的方法,其特征在于,将数据流从目标节点切换到备份节点由群集数据端口发起。
13.如权利要求1所述的方法,还包括:响应不能与目标节点通信,采用群集数据端口复位源节点和目标节点之间的逻辑连接。
14.如权利要求1所述的方法,还包括:使用群集数据端口将数据从目标节点传送到源节点。
15.如权利要求1所述的方法,其特征在于,目标节点远离于源节点,并且其中将数据从源节点传送到目标节点包括传送镜像数据,以支持源节点和目标节点之间的远程镜像。
16.一种设备,包括:
存储器;
至少一个处理器;以及
驻留在存储器中并且配置成在所述至少一个处理器上执行以实现用于包括多个节点的类型的群集化计算机系统的群集数据端口的程序代码,该群集数据端口配置成支持所述多个节点中源节点和目标节点之间的通信,该群集数据端口还配置成从源节点和目标节点之间的多条连接路径中选择,并将数据流从目标节点选择性地切换到备份目标节点。
17.如权利要求16所述的设备,其特征在于,群集数据端口配置成在源节点和目标节点之间建立多个逻辑连接,每一个逻辑连接配置成在所述多条连接路径中的一条连接路径上传送数据。
18.如权利要求17所述的设备,其特征在于,群集数据端口配置成在源节点和目标节点之间交换与源节点和目标节点中至少一个相关联的网络地址。
19.如权利要求17所述的设备,其特征在于,群集数据端口配置成注册驻留在源节点上的客户端。
20.如权利要求19所述的设备,其特征在于,群集数据端口配置成在客户端注册期间从客户端接收与客户端相关联的至少一个回调函数,其中群集数据端口配置成通过调用回调函数来向客户端通知数据端口事件。
21.如权利要求16所述的设备,其特征在于,群集数据端口配置成对源节点和目标节点之间传送的数据进行负载均衡,以将数据分布在所述多条连接路径之中。
22.如权利要求16所述的设备,其特征在于,每条连接路径包括TCP连接。
23.如权利要求16所述的设备,其特征在于,群集数据端口配置成根据从由异步消息传递协议和同步消息传递协议构成的组中选择的消息传递协议,在源节点和目标节点之间传送数据。
24.如权利要求16所述的设备,其特征在于,群集数据端口配置成响应不能与目标节点通信,将数据流从目标节点切换到备份目标节点。
25.如权利要求24所述的设备,其特征在于,群集数据端口配置成通过在源节点和备份目标节点之间建立逻辑连接来将数据流从目标节点切换到备份目标节点。
26.如权利要求24所述的设备,其特征在于,群集数据端口还配置成向群集数据端口的客户端通知不能与目标节点通信,其中群集数据端口配置成响应客户端发起群集数据端口故障恢复,将数据流从目标节点切换到备份节点。
27.如权利要求24所述的设备,其特征在于,群集数据端口配置成发起将数据流从目标节点切换到备份节点。
28.如权利要求16所述的设备,其特征在于,群集数据端口配置成响应不能与目标节点通信,复位源节点和目标节点之间的逻辑连接。
29.如权利要求16所述的设备,其特征在于,群集数据端口配置成支持源节点和目标节点之间的双向通信。
30.如权利要求16所述的设备,其特征在于,目标节点远离于源节点,并且其中群集数据端口配置成将镜像数据从源节点传送到目标节点,以支持源节点和目标节点之间的远程镜像。
31.一种群集化计算机系统,包括:
多个节点;以及
群集数据端口,驻留在所述多个节点中至少一个上,并且配置成支持所述多个节点中源节点和目标节点之间的通信,该群集数据端口配置成从源节点和目标节点之间的多条连接路径中选择,并将数据流从目标节点选择性地切换到备份目标节点。
32.如权利要求31所述的群集化计算机系统,其特征在于,群集数据端口配置成使用负载均衡算法从所述多个连接路径中选择。
33.如权利要求31所述的群集化计算机系统,其特征在于,群集数据端口配置成响应源节点不能与目标节点通信,将数据流从目标节点切换到备份目标节点。
34.如权利要求31所述的群集化计算机系统,其特征在于,目标节点远离于源节点,并且其中群集数据端口配置成将镜像数据从源节点传送到目标节点,以支持源节点和目标节点之间的远程镜像。
35.一种程序产品,包括:
配置成实现用于包括多个节点的类型的群集化计算机系统的群集数据端口的程序代码,该群集数据端口配置成支持所述多个节点中源节点和目标节点之间的通信,该群集数据端口还配置成从源节点和目标节点之间的多条连接路径中选择,并将数据流从目标节点选择性地切换到备份目标节点;以及
承载该程序代码的信号承载介质。
36.如权利要求35所述的程序产品,其特征在于,信号承载介质包括可记录介质和传输介质中至少一个。
CNB2004100549551A 2003-07-24 2004-07-26 在群集化计算机系统中的节点之间传输数据的方法和设备 Active CN100382070C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/626,086 US7526549B2 (en) 2003-07-24 2003-07-24 Cluster data port services for clustered computer system
US10/626,086 2003-07-24

Publications (2)

Publication Number Publication Date
CN1577314A true CN1577314A (zh) 2005-02-09
CN100382070C CN100382070C (zh) 2008-04-16

Family

ID=34080344

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100549551A Active CN100382070C (zh) 2003-07-24 2004-07-26 在群集化计算机系统中的节点之间传输数据的方法和设备

Country Status (4)

Country Link
US (1) US7526549B2 (zh)
KR (1) KR20050012130A (zh)
CN (1) CN100382070C (zh)
TW (1) TWI338230B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110016A (zh) * 2009-12-25 2011-06-29 华为技术有限公司 数据库集群系统中获取数据库连接的方法、装置和系统
CN102271147A (zh) * 2010-06-03 2011-12-07 北京神州绿盟信息安全科技股份有限公司 信息递送系统和方法
CN101379763B (zh) * 2005-10-03 2012-03-21 杰恩邦德公司 用于分布式电信系统中的资源迁移的系统、方法和计算机可读介质
CN102404383A (zh) * 2010-09-28 2012-04-04 微软公司 在分布式基础设施中执行计算
CN102662800A (zh) * 2012-04-20 2012-09-12 浪潮电子信息产业股份有限公司 一种保证远程异步镜像业务不中断的方法
US8724645B2 (en) 2010-09-28 2014-05-13 Microsoft Corporation Performing computations in a distributed infrastructure
CN103975318A (zh) * 2011-12-06 2014-08-06 博科通迅系统有限公司 用于镜像设备的无损连接故障切换
CN105359481A (zh) * 2013-07-01 2016-02-24 英派尔科技开发有限公司 存储网络内的数据迁移
CN106095618A (zh) * 2016-06-06 2016-11-09 北京中油瑞飞信息技术有限责任公司 数据操作的方法和系统
CN109597830A (zh) * 2018-11-22 2019-04-09 阿里巴巴集团控股有限公司 一种数据流通方法、装置、设备及介质

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4080970B2 (ja) * 2003-07-30 2008-04-23 株式会社日立製作所 パス切替えを提供するスイッチ
JP4315016B2 (ja) * 2004-02-24 2009-08-19 株式会社日立製作所 コンピュータシステムの系切替方法
US8001550B2 (en) * 2004-03-22 2011-08-16 The Code Corporation Object identifier readers that are configured to automatically send and/or store data read from an object identifier
JP4382602B2 (ja) * 2004-04-23 2009-12-16 株式会社日立製作所 リモートコピーシステム
US20050267920A1 (en) * 2004-05-13 2005-12-01 Fabrice Helliker System and method for archiving data in a clustered environment
US20050267892A1 (en) * 2004-05-21 2005-12-01 Patrick Paul B Service proxy definition
US20050278374A1 (en) * 2004-05-21 2005-12-15 Bea Systems, Inc. Dynamic program modification
US20060136555A1 (en) * 2004-05-21 2006-06-22 Bea Systems, Inc. Secure service oriented architecture
US20060031433A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Batch updating for a service oriented architecture
US7653008B2 (en) * 2004-05-21 2010-01-26 Bea Systems, Inc. Dynamically configurable service oriented architecture
US20060031354A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Service oriented architecture
US20050270970A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Failsafe service oriented architecture
US20060031930A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Dynamically configurable service oriented architecture
US20050273497A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Service oriented architecture with electronic mail transport protocol
US20060031481A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Service oriented architecture with monitoring
US20050278335A1 (en) * 2004-05-21 2005-12-15 Bea Systems, Inc. Service oriented architecture with alerts
US7310684B2 (en) * 2004-05-21 2007-12-18 Bea Systems, Inc. Message processing in a service oriented architecture
US20050273517A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Service oriented architecture with credential management
US20060031353A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Dynamic publishing in a service oriented architecture
US20060031355A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Programmable service oriented architecture
US20050273516A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Dynamic routing in a service oriented architecture
US20050273502A1 (en) * 2004-05-21 2005-12-08 Patrick Paul B Service oriented architecture with message processing stages
US20050273520A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Service oriented architecture with file transport protocol
US20060007918A1 (en) * 2004-05-21 2006-01-12 Bea Systems, Inc. Scaleable service oriented architecture
US8615601B2 (en) * 2004-05-21 2013-12-24 Oracle International Corporation Liquid computing
US20060080419A1 (en) * 2004-05-21 2006-04-13 Bea Systems, Inc. Reliable updating for a service oriented architecture
US20050267947A1 (en) * 2004-05-21 2005-12-01 Bea Systems, Inc. Service oriented architecture with message processing pipelines
US20050264581A1 (en) * 2004-05-21 2005-12-01 Bea Systems, Inc. Dynamic program modification
US20060069791A1 (en) * 2004-05-21 2006-03-30 Bea Systems, Inc. Service oriented architecture with interchangeable transport protocols
US8825832B2 (en) * 2004-07-21 2014-09-02 Hewlett-Packard Development Company, L.P. Method and system for managing connections
US7590098B2 (en) * 2004-10-27 2009-09-15 Honeywell International Inc. Publish/subscribe model in a wireless sensor network
US7630336B2 (en) * 2004-10-27 2009-12-08 Honeywell International Inc. Event-based formalism for data management in a wireless sensor network
US7715308B2 (en) * 2004-12-09 2010-05-11 Honeywell International Inc. Fault tolerance in a wireless network
KR100670798B1 (ko) * 2004-12-17 2007-01-17 한국전자통신연구원 데이터베이스 캐시 시스템
US7389300B1 (en) * 2005-05-27 2008-06-17 Symantec Operating Corporation System and method for multi-staged in-memory checkpoint replication with relaxed consistency
US8195976B2 (en) 2005-06-29 2012-06-05 International Business Machines Corporation Fault-tolerance and fault-containment models for zoning clustered application silos into continuous availability and high availability zones in clustered systems during recovery and maintenance
JP4349349B2 (ja) * 2005-08-30 2009-10-21 ソニー株式会社 データ送受信システム、送信装置、受信装置及びデータ送受信方法
WO2007038445A2 (en) 2005-09-26 2007-04-05 Advanced Cluster Systems, Llc Clustered computer system
EP1932287A2 (en) * 2005-09-29 2008-06-18 Koninklijke Philips Electronics N.V. Target class addressing of updates in ambient databases
US8429396B1 (en) 2006-05-31 2013-04-23 Juniper Networks, Inc. Peer discovery and secure communication in failover schemes
US8082289B2 (en) * 2006-06-13 2011-12-20 Advanced Cluster Systems, Inc. Cluster computing support for application programs
US8555335B2 (en) * 2006-11-01 2013-10-08 Microsoft Corporation Securing distributed application information delivery
US8533331B1 (en) * 2007-02-05 2013-09-10 Symantec Corporation Method and apparatus for preventing concurrency violation among resources
US8996394B2 (en) * 2007-05-18 2015-03-31 Oracle International Corporation System and method for enabling decision activities in a process management and design environment
US20080307036A1 (en) * 2007-06-07 2008-12-11 Microsoft Corporation Central service allocation system
US8185916B2 (en) 2007-06-28 2012-05-22 Oracle International Corporation System and method for integrating a business process management system with an enterprise service bus
JP5217988B2 (ja) * 2008-12-08 2013-06-19 富士通株式会社 情報処理装置、プログラムおよび情報処理装置の制御方法
JP4888742B2 (ja) * 2009-02-25 2012-02-29 ソニー株式会社 情報処理装置および方法、並びにプログラム
EP2241977B1 (en) * 2009-04-17 2015-05-27 Accenture Global Services Limited Exchangeable application components
US8694653B2 (en) 2010-12-10 2014-04-08 Microsoft Corporation Targeted data transfer between operational domains
US8776207B2 (en) 2011-02-16 2014-07-08 Fortinet, Inc. Load balancing in a network with session information
JP5782925B2 (ja) * 2011-08-31 2015-09-24 富士通株式会社 情報処理装置、プログラム、および制御方法
EP2701065B1 (de) * 2012-08-24 2015-02-25 Siemens Aktiengesellschaft Verfahren zum Betreiben eines redundanten Automatisierungssystems
US9152458B1 (en) * 2012-08-30 2015-10-06 Google Inc. Mirrored stateful workers
US9742877B2 (en) * 2012-12-04 2017-08-22 International Business Machines Corporation Clustering support across geographical boundaries
TWI505102B (zh) * 2013-06-20 2015-10-21 Wistron Neweb Corp 電腦系統資源集中管理方法及使用該方法之電腦系統
US9389797B2 (en) * 2013-07-26 2016-07-12 Netapp, Inc. System and method for providing arbitrary protection topologies in a computing cluster
US9473964B2 (en) 2013-10-16 2016-10-18 Pismo Labs Technology Limited Methods and systems for estimating network performance
TWI506557B (zh) * 2013-10-17 2015-11-01 Chunghwa Telecom Co Ltd 叢集環境中平衡實體機資源負載的方法
US9912542B2 (en) * 2014-09-17 2018-03-06 Netapp, Inc. Methods and systems for managing port reachability in a clustered system
CN104935672B (zh) * 2015-06-29 2018-05-11 新华三技术有限公司 负载均衡服务高可用实现方法和设备
CN106856489B (zh) * 2015-12-08 2020-09-08 阿里巴巴集团控股有限公司 一种分布式存储系统的服务节点切换方法和装置
CN107135191B (zh) * 2016-02-29 2020-02-21 阿里巴巴集团控股有限公司 检查分布式业务处理完整度的方法及装置
US10534541B2 (en) * 2016-09-20 2020-01-14 Seagate Technology Llc Asynchronous discovery of initiators and targets in a storage fabric
CN108881200B (zh) * 2018-06-08 2020-08-11 江苏中威科技软件系统有限公司 基于tcp的多终端同时在线的方法和系统
US11100135B2 (en) 2018-07-18 2021-08-24 EMC IP Holding Company LLC Synchronous replication in a storage system
US10802935B2 (en) * 2018-07-23 2020-10-13 EMC IP Holding Company LLC Method to support synchronous replication failover
US11068191B2 (en) 2019-01-23 2021-07-20 EMC IP Holding Company LLC Adaptive replication modes in a storage system
US11347594B2 (en) 2019-11-26 2022-05-31 International Business Machines Corporation Inter-processor communications fault handling in high performance computing networks
US11226879B2 (en) * 2020-05-08 2022-01-18 International Business Machines Corporation Fencing non-responding ports in a network fabric
CN116662016B (zh) * 2023-07-25 2023-10-20 太平金融科技服务(上海)有限公司 端口切换方法、装置、计算机设备、存储介质和程序产品

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN85104907B (zh) * 1985-06-25 1987-10-14 株式会社日立制作所 分级多处理器系统及其控制方法
US5680461A (en) * 1995-10-26 1997-10-21 Sun Microsystems, Inc. Secure network protocol system and method
CN1125406C (zh) * 1998-06-08 2003-10-22 黑龙江大学 支持计算机机群并行计算的并行通信处理器
US6438576B1 (en) * 1999-03-29 2002-08-20 International Business Machines Corporation Method and apparatus of a collaborative proxy system for distributed deployment of object rendering
US6606315B1 (en) * 1999-07-02 2003-08-12 Cisco Technology, Inc. Synchronizing service instructions among forwarding agents using a service manager
US6587866B1 (en) * 2000-01-10 2003-07-01 Sun Microsystems, Inc. Method for distributing packets to server nodes using network client affinity and packet distribution table
US6487866B1 (en) * 2000-07-10 2002-12-03 The United States Of America As Represented By The National Aeronautics & Space Administration Multipurpose thermal insulation test apparatus
FI20010552A0 (fi) * 2001-03-19 2001-03-19 Stonesoft Oy Tilatietojen käsittely verkkoelementtiklusterissa
US7042877B2 (en) * 2001-04-27 2006-05-09 The Boeing Company Integrated analysis of incoming data transmissions
US6877107B2 (en) * 2001-07-05 2005-04-05 Softwired Ag Method for ensuring operation during node failures and network partitions in a clustered message passing server

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101379763B (zh) * 2005-10-03 2012-03-21 杰恩邦德公司 用于分布式电信系统中的资源迁移的系统、方法和计算机可读介质
CN102110016A (zh) * 2009-12-25 2011-06-29 华为技术有限公司 数据库集群系统中获取数据库连接的方法、装置和系统
CN102110016B (zh) * 2009-12-25 2012-11-21 华为技术有限公司 数据库集群系统中获取数据库连接的方法、装置和系统
CN102271147A (zh) * 2010-06-03 2011-12-07 北京神州绿盟信息安全科技股份有限公司 信息递送系统和方法
CN102271147B (zh) * 2010-06-03 2013-12-25 北京神州绿盟信息安全科技股份有限公司 信息递送系统和方法
CN102404383A (zh) * 2010-09-28 2012-04-04 微软公司 在分布式基础设施中执行计算
US8724645B2 (en) 2010-09-28 2014-05-13 Microsoft Corporation Performing computations in a distributed infrastructure
CN102404383B (zh) * 2010-09-28 2014-12-17 微软公司 在分布式基础设施中执行本地计算的方法
US9106480B2 (en) 2010-09-28 2015-08-11 Microsoft Technology Licensing, Llc Performing computations in a distributed infrastructure
CN103975318B (zh) * 2011-12-06 2017-06-09 博科通迅系统有限公司 用于镜像设备的无损连接故障切换
CN103975318A (zh) * 2011-12-06 2014-08-06 博科通迅系统有限公司 用于镜像设备的无损连接故障切换
CN102662800A (zh) * 2012-04-20 2012-09-12 浪潮电子信息产业股份有限公司 一种保证远程异步镜像业务不中断的方法
CN105359481A (zh) * 2013-07-01 2016-02-24 英派尔科技开发有限公司 存储网络内的数据迁移
CN105359481B (zh) * 2013-07-01 2018-09-25 英派尔科技开发有限公司 用于数据传输的方法、计算机可读介质和数据存储系统
CN106095618A (zh) * 2016-06-06 2016-11-09 北京中油瑞飞信息技术有限责任公司 数据操作的方法和系统
CN109597830A (zh) * 2018-11-22 2019-04-09 阿里巴巴集团控股有限公司 一种数据流通方法、装置、设备及介质
CN109597830B (zh) * 2018-11-22 2023-05-05 创新先进技术有限公司 一种数据流通方法、装置、设备及介质

Also Published As

Publication number Publication date
TW200513870A (en) 2005-04-16
CN100382070C (zh) 2008-04-16
US20050021751A1 (en) 2005-01-27
KR20050012130A (ko) 2005-01-31
TWI338230B (en) 2011-03-01
US7526549B2 (en) 2009-04-28

Similar Documents

Publication Publication Date Title
CN100382070C (zh) 在群集化计算机系统中的节点之间传输数据的方法和设备
US20190082013A1 (en) Storage area network attached clustered storage system
US8429450B2 (en) Method and system for coordinated multiple cluster failover
US8856352B2 (en) System and method for supporting one-way remote method invocation for session replication in a server cluster
US6760859B1 (en) Fault tolerant local area network connectivity
CN1881944B (zh) 改进型分布式核心操作系统
US20080183991A1 (en) System and Method for Protecting Against Failure Through Geo-Redundancy in a SIP Server
US20030037061A1 (en) Data storage system for a multi-client network and method of managing such system
US20030158933A1 (en) Failover clustering based on input/output processors
US6934952B2 (en) Method and apparatus for managing multiple instances of server code on a machine
US20090198791A1 (en) Techniques for distributed storage aggregation
CN1701569A (zh) 具有改进的故障转移通知的ip冗余
JP2004519024A (ja) 多数のノードを含むクラスタを管理するためのシステム及び方法
US7246261B2 (en) Join protocol for a primary-backup group with backup resources in clustered computer system
CN1317658C (zh) 利用机群节点相互备份的容错方法
CN101056254B (zh) 一种网络存储设备的扩展方法、系统及其装置
CN110704250B (zh) 一种分布式系统的热备份装置
CN102368711B (zh) 一种面向并行文件系统的通信系统
US7904551B2 (en) Unicast clustering messaging
CN1453979A (zh) 短消息系统
CN1203427C (zh) 一种具有tcp连接容错功能的负载平衡调度方法
CN103139199A (zh) 以平台消息总线机制实现子系统间信息交互的方法
US20070179963A1 (en) Computer system incorporating duplicated database servers
CN1561041A (zh) 一种以太网接口热备份的装置及方法
Goft et al. The AS/400 cluster engine: A case study

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