跨地理边界的集群支持的制作方法

文档序号:7776773阅读:232来源:国知局
跨地理边界的集群支持的制作方法
【专利摘要】本发明提出了一种提供跨地理边界的计算机集群支持方法。在集群中通过令每个节点在内核内的网络设备驱动器(NDD)级别进行操作而对集群间的通信进行管理。采用多种各类型的NDD(以太网、SAN、DISK等)来提供冗余,以使得节点能够可靠地交换心跳。为了符合该架构,对于远程节点而言,在基于传输控制协议(TCP)的通信接口上使用伪NDD与其它NDD一起进行工作。因此,散布在与本地节点相关的NDD上的相同分组能够被散布在用于远程节点的TCPSOCK?NDD接口上。节点(本地和远程)接收相同分组并且以相同的方式对其进行重组和处理。
【专利说明】跨地理边界的集群支持
【技术领域】
[0001]本公开内容涉及一种对计算机系统集群提供增强的方法,该计算机系统集群包括各个地理位置或地点中的系统。
【背景技术】
[0002]集群是在一起工作的独立计算机的群体,其给出单个系统印象的假象。集群经常被用来确保任务关键性应用和资源是高度可用的。为了提供有效的集群解决方案,许多供应商提出了“集群感知(cluster aware) ”的操作系统(OS)。这些解决方案中的大多数(如果不是全部)集群通信是点对多点的。集群的一个节点上诸如关键处理终结或挂起之类的事件被快速且直接地送至集群中的所有其它节点。有关一个节点的状态和健康信息也在集群的所有节点之间进行共享。这些活动自然地导致了用于集群网络通信的多播架构。因此,许多现有的集群产品采用多播方法。通常,在这样的架构中,使用集中储存盘来定义集群配置数据。该集中储存盘需要可在集群中的所有节点上进行访问。在一种方法中,提供了使用多播架构的解决方案,然而该解决方案并不进行缩放以包括位于被地理边界所隔开的不同地点处的节点。首先,该方法由于通信链路跨越大幅距离而并不进行缩放。对于要进行工作的多播通信而言,每条端到端的链路都必须支持多播转发,支持所期望的多播组,并且支持所期望的端口。如果这些条件中的任意一个得不到满足,则多播通信就将被打断,这由于电信公司通常并不支持这种距离上的多播转发这一事实而发生。第二,该方法由于多播的本质而并不进行缩放。更具体地,其中使用一对多通信的多播需要使用用户数据报协议(UDP)。然而,由于UDP并不具有内建的可靠性,所以站点间的通信有所受损。

【发明内容】

[0003]提出了一种跨地理边界提供计算机集群支持的方法。在集群中通过令每个节点在内核内的网络设备驱动器(NDD)级别进行操作而对集群间的通信进行管理。采用多种各类型的NDD(以太网、SAN、DISK等)来提供冗余,以使得节点能够可靠地交换心跳。为了符合该架构,对于远程节点而言,在基于传输控制协议(TCP)的通信接口上使用伪NDD与其它NDD 一起进行工作。因此,散布在与本地节点相关的NDD上的相同分组能够被散布在用于远程节点的TCPSOCK NDD接口上。节点(本地和远程)接收相同分组并且以相同的方式对其进行重组和处理。
[0004]以上是
【发明内容】
并且因此必然包含简化形式和一般形式而省略了细节;因此,本领域技术人员将会意识到,该
【发明内容】
仅是说明性的而并非意在以任何方式进行限制。仅由权利要求所限定的本发明的其它方面、发明特征和优势将由于以下所给出的非限制性的详细描述而变得明显。
【专利附图】

【附图说明】
[0005]通过参考附图,本发明可以更好地被理解,并且使得其多个目标、特征和优势对于本领域技术人员而言变得明显,其中:
[0006]图1是可以在其中实施这里所描述的方法的数据处理系统的框图;
[0007]图2提供了图1所示的信息处理系统环境的扩展以图示出这里所描述的方法能够在操作于网络环境之中的各种信息处理系统上执行;
[0008]图3是描绘在支持跨地理边界的集群时所采用的各个组件之间的通信的组件图;
[0009]图4是描绘节点在与集群中的其它节点进行通信时所使用的各个层的层次图;
[0010]图5是示出节点在启动操作期间所执行的用于支持跨地理边界的集群的逻辑的流程图的描绘;
[0011]图6是示出在节点处执行的用于构建在与集群中的其它节点进行通信时所使用的通信网络设备驱动器的逻辑的流程图的描绘;
[0012]图7是示出在节点处执行的用于创建在与远程集群节点进行通信时所使用的基于伪TPC的网络设备驱动器的逻辑的流程图的描绘;并且
[0013]图8是描绘在与集群节点进行通信时所使用的节点的集群通信层的节点操作的流程图。
【具体实施方式】
[0014]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0015]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0016]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0017]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0018]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、c++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0019]下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0020]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
[0021]计算机程序指令可以被加载到计算机、其它可编程数据处理装置或其它设备上以使得一系列操作步骤得以在该计算机、其它可编程装置或其它设备上执行,以产生计算机实施的过程,从而在计算机或其它可编程装置上执行的指令提供用于实施流程图和/或框图的一个或多个框中所指定的功能/动作。
[0022]图1图示了信息处理系统100,这是能够执行这里所描述的计算操作的计算机系统的简化示例。信息处理系统100包括耦合至处理器接口总线112的一个或多个处理器110。处理器接口总线112将处理器110连接至北桥115,其也被称作存储器控制器集线器(MCH)。北桥115连接至系统存储器120并且为(多个)处理器110提供了用于访问系统存储器的手段。图形控制器125也连接至北桥115。在一个实施例中,PCI Express总线118将北桥115连接至图形控制器125。图形控制器125连接至显示设备130,诸如计算机监视器。
[0023]北桥115和南桥135使用总线119互相连接。在一个实施例中,该总线是在北桥115和南桥135之间的每个方向以高速传输数据的直接媒体接口(DMI)总线。在另一个实施例中,外部组件互连(PCI)总线将北桥和南桥进行连接。也被称之为I / O控制器集线器(ICH)的南桥135是总体上实施以比北桥所提供的功能更慢的速度进行操作的功能的芯片。南桥135通常提供用来连接各种组件的各种总线。这些总线例如包括PCI和PCIExpress总线、ISA总线、系统管理总线(SM总线或SMB)和/或短管脚计数(LPC)总线。LPC总线经常连接低带宽设备,诸如引导R0M196和“旧有”1 / O设备(使用“超级I / O’’芯片)。“旧有”1 / O设备(198)例如可以包括串行和并行端口、键盘、鼠标和/或软盘控制器。LPC总线还将南桥135连接至信任平台模块(TPM) 195。经常包括在南桥135之中的其它组件包括直接存储器访问(DMA)控制器、可编程中断控制器(PIC)以及存储设备控制器,其使用总线184将南桥135连接至诸如硬盘的非易失性存储设备185。
[0024]扩展插槽155是将可热插拔设备连接至系统处理系统的插槽。扩展插槽155支持PCI Express和USB连接,因为其使用通用串行总线(USB)和PCI Express总线二者连接至南桥135。南桥135包括USB控制器140,其提供到连接至USB的设备的USB连接性。这些设备包括网络相机(相机)150、红外(IR)接收器148、键盘和轨迹板144,以及提供无线个人域网络(PAN)的蓝牙设备146。USB控制器140还向诸如鼠标、可移动非易失性存储设备145、调制解调器、网卡、ISDN连接器、传真机、打印机、USB集线器以及许多其它类型的USB连接设备的其它各种USB连接设备142提供USB连接性。虽然可移动非易失性存储设备145被示为USB连接设备,但是可移动非易失性存储设备145可以使用诸如火线接口等的不同接口进行连接。
[0025]无线局域网(LAN)设备175经由PCI或PCI Express总线172连接至南桥135。LAN设备175通常实施空中(over-the-air)调制技术的IEEE802.11标准之一,该空中调制技术全部使用相同协议在信息处理系统100和另一计算机系统或设备之间进行无线通信。光学存储设备190使用串行ATA(SATA)总线188连接至南桥135。串行ATA适配器和设备通过高速串行链路进行通信。串行ATA总线还将南桥135连接至诸如硬盘之类的其它形式的存储设备。诸如声卡之类的音频电路160经由总线158连接至南桥135。音频电路160还提供诸如在端口 162中的音频线性输入和光学数字音频、光学数字输出和耳机插口 164、内部扬声器166和内部麦克风168之类的功能。以太网控制器170使用诸如PCI或PCIExpress总线之类的总线连接至南桥135。以太网控制器170将信息处理系统100连接到诸如局域网(LAN)、互联网和其它公众及私人计算机网络之类的计算机网络。
[0026]虽然图1示出了一种信息处理系统,但是信息处理系统可以采用许多形式。例如,信息处理系统可以采用台式机、服务器、便携式、膝上计算机、笔记本或者其它形式因素的计算机或数据处理系统的形式。此外,信息处理系统可以采用其它形式因素,诸如个人数字助理(PDA)、游戏设备、ATM机、便携式电话设备、通信设备或者包括处理器和存储器的其它设备。
[0027]图1所示并且在这里所描述的用于提供安全功能的信任平台模块(TPM195)仅是硬件安全模块(HSM)的一个示例。因此,这里所描述并要求保护的TPM包括任意类型的HSM,包括但并不局限于符合信任计算群体(TCG)标准并且被称作“信任平台模块(TPM)规范版本1.2”的硬件安全设备。TPM是可以整合到诸如图2中所概述的那些的任意数量的信息处理系统之中的硬件安全子系统。
[0028]图2提供了图1所示的信息处理系统环境的扩展,以说明这里所描述的方法能够在操作于联网环境之中的各种信息处理系统上执行。信息处理系统的类型从诸如手持计算机/移动电话210的小型手持设备到诸如大型机计算机270的大型机主机系统。手持计算210的示例包括个人数字助理(PDA)、诸如MP3播放器、便携式电视和紧致盘播放器的个人娱乐设备。信息处理系统的其它示例包括笔型或平板电脑计算机220、膝上电脑或笔记本计算机230、工作站240、个人计算机系统250和服务器260。并未在图2中单独示出的其它类型的信息处理系统由信息处理系统280进行表示。如所示出的,各种信息处理系统可以使用计算机网络200联网在一起。能够用来对各种信息处理系统进行互连的计算机网络的类型包括局域网(LAN)、无线局域网(WLAN)、互联网、公共交换电话网(PSTN)、其它无线网络,以及能够被用来对信息处理系统进行互连的任意其它网络拓扑。许多信息处理系统包括非易失性数据存储,诸如硬盘和/或非易失性存储器。图2所示的一些信息处理系统描绘了单独的非易失性数据存储(服务器260采用非易失性数据存储265、大型机计算机270采用非易失性数据存储275,并且信息处理系统280采用非易失性数据存储285)。非易失性数据存储可以是处于各种信息处理系统之外的组件或者可以处于信息处理系统之一的内部。此外,可移动的非易失性数据存储设备145能够使用各种技术在两个或更多信息处理系统之间进行共享,诸如将可移动非易失性存储设备145连接至信息处理系统的USB端口或其它连接器。
[0029]图3— 8描绘了跨地理边界提供计算机集群支持并且能够在如图1 一图2所示的信息处理系统和网络上执行的方法。在该方法中,集群通信层提供方对通信服务进行集群并且驻留在设备驱动层之上。利用在节点初始化时所创建的设备驱动程序,该方法将架构进行扩展以引入基于TCP套接字的内核伪NDD (网络设备驱动器)接口,其中通信的根本手段从TCP层进行抽象以处理地点之间的通信。当分组从节点发送至其它节点时,TCPSOCKNDD被配置为在接收节点位于远程时使用TCP发送分组并且当接收节点位于本地时使用诸如以太网、SAN或DISK的现有接口发送分组。以这种方式,发送处理(在集群通信层)无需了解接收节点是位于远程还是本地。节点间的通信在集群中通过令每个节点在内核内的网络设备驱动器(NDD)层操作而进行管理。利用多种类型的NDD(以太网、SAN、DISK等)来提供冗余以使得节点能够可靠地交换心跳。进一步的通信冗余在数据碎片层进行维护。这确保了到达节点的分组能够进行组装而无论它们是通过哪个NDD而出现(surface up)。为了符合该架构,对于远程节点而言,通过基于传输控制协议(TCP)的通信接口来实施伪NDD以连同其它NDD —起进行工作。因此,散布在与本地节点相关的NDD上的相同分组能够被散布在用于远程节点的TCPSOCK NDD接口上。所有节点(本地和远程)接收相同分组并且以相同的方式对其进行重组和处理。
[0030]图3是描绘在支持跨地理边界的集群时所采用的各种组件之间的通信的组件图。在图3所示的示例中,集群包括来自两个不同地理地点一地点1(300)和地点2(350) —的计算机系统。地点I被示为具有彼此处于本地的四个系统(节点)。地点I的节点包括节点A(310)、节点B(320)、节点C(330)和节点D (340)。同样,地点2被示为具有三个系统(彼此处于本地的节点。地点2的节点包括节点X (360)、节点Y (370)和节点Z (380))。如这里进一步详细解释的,由每个节点创建网络设备驱动器(NDD)以与每个其它节点进行通信。在本地节点的情况下,利用诸如以太网、SAN或DISK之类的用来传送UDP (用户数据报协议)多播的现有接口。如果Μ)Ρ多播超过了以太网分组的大小,则UDP多播作为多个帧进行传送。然而,在远程节点的情况下,创建基于伪TCP的NDD接口来向远程节点发送相同的帧。
[0031]参见节点A(310),如所示出的,该节点具有NDD以使用诸如以太网、SAN和DISK之类的现有接口向每个本地节点B、C和D发送分组。此外,使用伪TCPSOCK NDD从节点A向远程节点X、Y和Z发送分组。同样,节点B、C和D将军具有利用现有接口向(地点I中的)每个其它本地节点发送分组的NDD,并且节点B、C和D将均使用这里所描述的伪TCP接口创建NDD以向远程节点X、Y和Z发送分组。
[0032]转向地点2,使用相同技术来与本地和远程节点进行通信。地点2处的每个节点(节点X、Y和Z)将具有利用现有接口向地点2的其它节点发送分组的NDD。同样,地点2的每个节点将使用这里所描述的伪TCPSOCK NDD接口向地点I的远程节点A、B、C和D发送分组。以这种方式,过程无需了解接收节点是位于本地还是远程。相反,该过程利用了所创建的NDD并且分组基于接收节点是本地还是远程节点而使用所期望的接口进行传送。
[0033]图4是描绘与集群中的其它节点进行通信时所使用的各个层的层次图。图3中所描绘的每个节点能够利用图4中所提供的分层方法对来自节点上所运行的过程的通信的类型(本地或远程)进行抽象。活动节点400 (例如,图3所描绘的任意节点,等等)被示为使用各种NDD接口向集群中的其它节点发送和接收分组。框405表示使用伪TCPSOCKNDD接口从活动节点发送至集群中的远程节点的分组。框410表示使用诸如用户数据报协议(M)P)多播之类的现有接口从活动节点发送至集群中的本地节点的分组。同样,框415表示活动节点经由伪TCPSOCK NDD接口从远程节点接收分组,而框420则表示活动节点使用现有NDD接口从本地节点接收分组
[0034]每个节点被示为包括处理与集群中的其它节点的通信的集群通信层425。实质上,该集群通信层具有发送分组以及从其它节点接收分组的过程(框405至420)。然而,代替必须理解哪些节点是本地的而哪些是远程的的是,集群通信层利用了通过提供网络设备驱动器(NDD)450以及预定义驱动器(490)而对各个节点的地理接近度进行抽象的驱动器层440。以这种方式,从集群通信层抽象出发送以及从集群中的各个节点接收分组的手段。
[0035]现在转向驱动器层,当对活动节点进行初始化时,创建伪TCPSOCK NDD驱动器450以与每个远程节点进行通信。此外,使用现有接口作为驱动器以与每个本地节点进行通信(例如,使用来自预定义驱动器490的UDP多播等)。如所示出的,用来与远程节点(450)进行通信的NDD包括对应于集群中的每个远程节点的单独NDD。在所示出的示例中,活动节点400使用NDD460与远程节点I进行通信,使用NDD470与远程节点2进行通信,直至使用NDD480与远程节点η进行通信。而且如所示出的,每个所创建的NDD提供能够在内部将内核API用于基于套接字的通信的NDD接口以与节点进行通信(例如,创建(socreate)、发送(sosend)、接收(soreceive)等)。
[0036]图5是示出由节点在用于支持跨地理边界的集群的启动操作期间所执行的逻辑的流程图的描绘。处理在500开始,在那里的步骤510,节点进行引导(例如,初始化、热引导、冷引导等)。在步骤520,初始化处理检查指示被初始化的节点是集群的一部分的集群标志。进行有关节点是否是集群的成员的决策(决策525)。如果节点不是集群的成员,则决策525走向“否”分支,在那里的步骤530,节点继续初始化并且作为非集群系统(节点)进行操作。另一方面,如果节点是集群的成员,则决策525走向“是”分支以便进行进一步的集群初始化。
[0037]在步骤540,从集群配置数据存储550读取集群配置数据。集群配置数据包括与集群中所包括的本地和远程节点相关的数据。此外,集群配置数据可以包括角色信息,其识别该节点在集群中的功能或其所扮演的角色(例如,主要责任、备用责任等)。在步骤560,该节点基于其在集群内的角色或功能进行填充(例如,初始化等)。在预定义的过程570,该过程构建用于与集群中的远程节点进行通信的通信网络设备驱动器(NDD)(见图6以及针对处理细节的相对应文本)。运行预定义处理570的结果是用来与集群中的其他节点进行通信的驱动器的集合(NDD580)。在所示出的示例中,节点A对应于NDD581,节点B对应于NDD582,节点X对应于NDD583,直至节点η对应于NDD585。节点利用以太网、SAN和DISKNDD的现有集合与所有本地节点进行通信,但是针对每个远程节点使用唯一的伪TCPSOCKNDD 接口。
[0038]图6是示出在节点处执行的用来构建在与集群中的其它节点进行通信时使用的通信网络设备驱动器的逻辑的流程图的描绘。处理在600开始,在那里的步骤610,从集群配置数据存储550选择作为集群成员的第一节点。进行有关所选择的节点是否为远程节点的决策(决策620)。如果所选择的节点是远程节点,则决策620走向“是”分支,在那里的预定义处理630,创建与远程节点相对应的伪TCPSOCK NDD以打开与远程节点的套接字并且使用TCP向所选择的节点传送数据分组(见图7以及针对处理细节的相对应文本)。所创建的NDD存储在NDD (驱动器层)580中。另一方面,如果所选择的节点是本地节点,则决策620走向“否”分支,在那里的步骤640,选择现有驱动器(例如,以太网、SAN或DISK等)并且将其用来与本地节点进行通信,并且该驱动器信息被存储在驱动器层580中。
[0039]在所选择的节点已经被处理并且已经创建了 NDD以与所选择节点进行通信之后,进行有关集群中是否存在附加节点的决策(决策650)。如果存在附加节点,则决策650走向“是”分支,其循环回去以如以上所描述的针对下一个节点选择并创建NDD。继续该循环直至针对所有节点都已经创建了 NDD,此时决策650走向“否”分支,处理在那里在695返回至调用例程(见图5)。
[0040]图7是示出在节点处执行的用来创建用来与远程集群节点进行通信的基于伪TPC的网络设备驱动器的逻辑的流程图的描绘。在步骤710,该过程包括驱动器中允许该驱动器被其它过程所使用的应用编程接口(API)。该API被节点中的较高层(例如,集群通信层等)用来与该节点发送和接收分组,以使得该较高层处理仅需要参考APl而无需决定该节点位于远程还是本地。所包括的APl包括过程处理以及用户接收和状态函数。过程处理720包括用于初始化(ndd_open)、关闭(ndd_close)、发出分组(ndd_output)以及控制功能(ndd_ctl)的函数。用户接收和状态函数包括用于从其它节点接收分组(nd_receive)的函数以及状态通知函数(nd_status)。
[0041]图8是描绘节点在与集群节点进行通信时所使用的集群通信层的节点操作的流程图。注意,图8所示的处理在NDD已经建立并存储在活动节点的数据层之后进行。处理在800开始,在那里的步骤810,活动节点需要与集群中的另一个节点进行通信。在该示例中,活动节点需要与节点X进行通信。在步骤820,该处理使用针对节点X所创建的NDD (例如,为了向节点X发送分组),参考与节点X相对应的NDD的发送API (ndd_output)。
[0042]在步骤830,使用NDD的输出函数(API)将数据分组从活动节点发送至所期望的节点(节点X)。注意,该过程并不了解节点X是本地还是远程节点。如果节点X是本地节点(节点X840),则该NDD是通过局域网835向节点X840发送数据分组的现有接口(例如,UDP多播等)。另一方面,如步骤850所示,如果节点X是远程节点,则针对节点X所创建的NDD经由该节点的输出函数(例如,与节点X相对应的NDD中所包括的ndd_output API)将数据添加至全局发送队列860。当NDD输出被调用时,该架构调用在队列860中对消息进行排队的tCpS0Ck_ndd_add2_Sendq并且唤醒发送线程。该发送线程拾取消息并且在内部调用sosend O以发送该集群消息。
[0043]存在正在运行的、从全局发送队列860获取数据并且经由常规TCP / IP套接字发送该数据的内核线程。该内核了解在建立与远程节点的连接时所要使用的IP地址。一旦建立了连接,套接字指针就被用于与远程节点的后续通信。该套接字指针唯一识别该连接并且内部存储于TCPSOCK NDD的私有数据结构中。在NDD指针和套接字指针之间存在有一对一的映射。以这种方式,通过仅调用与所期望节点相对应的ndd_output例程,就将业务发送至正确的接收方。内核线程处理被示为在870开始,在那里的步骤875,内核线程从全局发送队列860读取分组并且如以上所描述的经由常规TCP / IP套接字发送该分组。当节点X880是远程节点时,使用TCP / IP套接字,该数据分组通过网络200 (例如,互联网等)发送至节点X880。在步骤890,如果在全局发送队列中没有数据,则内核线程进入休眠并且等待要在全局发送队列中进行排队的数据,在那时内核线程唤醒并处理该数据。
[0044]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0045]虽然已经示出并描述的本发明的特定实施例,但是对于本领域技术人员将会显而易见的是,基于这里的教导,可以进行变化和修改而并不背离本发明及其较为宽泛的方面。因此,所附权利要求将因为所有这样的变化和修改处于本发明的实际精神和范围之内而将其包含在它们的范围之内。此外,所要理解的是,本发明仅由所附权利要求所限定。本领域技术人员将要理解的是,如果所介绍的请求保护的要素的具体数量是有意图的,则该意图将在权利要求中明确引用,并且在没有这样的意图的情况下则没有这样的限制。对于非限制性示例而言,为了帮助理解,以下所附权利要求包含了引导性短语“至少一个”和“一个或多个”的使用以引入请求保护的要素。然而,甚至在相同权利要求包括引导性短语“一个或多个”或“至少一个”以及诸如“一个”(“a”或“an”)的不定冠词时,这样的短语的使用并不应当被理解为隐含了由不定冠词“一个”(“a”或“an”)所引入的请求保护的要素就将包含这样被引入本发明的请求保护的要素的任何特定权利要求仅包含一个这样的要素;对于定冠词在权利要求中的使用同样如此。
【权利要求】
1.一种用于管理集群中的节点间通信的方法,所述方法由作为所述集群的节点的信息处理系统所实施,所述方法包括: 使用处理器创建多个网络设备驱动器NDD,其中所述NDD中的每个NDD对应于所述集群中的节点,并且其中所述NDD中的每个NDD被存储在能由所述处理器访问的存储器中;将基于传输控制协议TCP的接口包括在所创建NDD的第一集合中,其中所创建NDD的所述第一集合中的每一个对应于所述集群中包括的远程节点;以及 将现有接口包括在所创建NDD的第二集合中,其中NDD的所述第二集合中的每一个对应于所述集群中包括的本地节点。
2.根据权利要求1的方法,进一步包括: 在驱动器层中存储所述NDD ;以及 通过参考与所述集群中的第二节点相对应的所述NDD而将多个分组发送至所述第二节点。
3.根据权利要求2的方法,其中分组从集群通信层进行发送,所述集群通信层在所述发送之前并未确定所述第二节点是否位于远程。
4.根据权利要求1的方法,其中所述NDD选自包括如下的群组:存储域网络SAN驱动器、磁盘驱动器、以太网驱动器和基于传输控制协议TCP的伪NDD驱动器。
5.根据权利要求1的方法,其中所述基于TCP的接口通过实施TCPSOCKNDD框架接口而利用基于套接字的内核接口,并且提供伪NDD层支持。
6.根据权利 要求5的方法,其中所述基于TCP的接口提供选自包括如下的群组的基于TCP的处理机:初始化、分配、释放、控制、发送和接收。
7.根据权利要求6的方法,其中所述基于TCP的接口利用多个基于TCP/ IP套接字的内核接口。
8.根据权利要求5的方法,其中所述基于TCP的接口与其它非基于TCP的网络设备驱动器NDD接口无缝操作。
9.一种信息处理系统,包括: 一个或多个处理器; 存储器,耦合至至少一个所述处理器; 网络接口,将所述信息处理系统连接至计算机网络; 指令集合,存储在所述存储器中并且由至少一个所述处理器执行,以管理集群中的节点间通信,其中所述指令集合执行如下操作: 创建多个网络设备驱动器NDD,其中所述NDD中的每个NDD对应于所述集群中的节点,并且其中所述NDD中的每个NDD被存储在所述存储器中; 将基于传输控制协议TCP的接口包括在所创建NDD的第一集合中,其中所创建NDD的所述第一集合中的每一个对应于所述集群中包括的远程节点;以及 将现有接口包括在所创建NDD的第二集合中,其中NDD的所述第二集合中的每一个对应于所述集群中包括的本地节点。
10.根据权利要求9的信息处理系统,进一步包括: 在驱动器层中存储所述NDD ;以及 通过参考与所述集群中的第二节点相对应的所述NDD而将多个分组发送至所述第二节点。
11.根据权利要求10的信息处理系统,其中分组从集群通信层进行发送,所述集群通信层在所述发送之前并未确定所述第二节点是否位于远程。
12.根据权利要求9的信息处理系统,其中所述NDD选自包括如下的群组:存储域网络SAN驱动器、磁盘驱动器、以太网驱动器和基于传输控制协议TCP的伪NDD驱动器。
13.根据权利要求9的信息处理系统,其中所述基于TCP的接口通过实施TCPSOCKNDD框架接口而利用基于套接字的内核接口,并且提供伪NDD层支持。
14.根据权利要求13的信息处理系统,其中所述基于TCP的接口提供选自包括如下的群组的基于TCP的处理机:初始化、分配、释放、控制、发送和接收。
15.根据权利要求14的信息处理系统,其中所述基于TCP的接口利用多个基于TCP/IP套接字的内核接口。
16.根据权利要求13的信息处理系统,其中所述基于TCP的接口与其它非基于TCP的网络设备驱动器NDD接口无缝操作。`
【文档编号】H04L29/08GK103856554SQ201310577252
【公开日】2014年6月11日 申请日期:2013年11月18日 优先权日:2012年12月4日
【发明者】E·E·克鲁兹-阿奎拉, P·I·加内施, M·坎达萨米, C·J·吴 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1