自主监视Web高可用性的制作方法

文档序号:6494978阅读:189来源:国知局
专利名称:自主监视Web高可用性的制作方法
技术领域
本发明涉及用于为使用Web服务的整个应用提供高可用性处理环境的系统和方法。
背景技术
就Web服务而言,包括同样的服务器的群集的当前系统无法为由此类系统处理的整个应用提供高可用性处理环境。实际上,此类系统最多为所述应用的局部部分而不是整个应用提供高可用性。因此,需要一种用于为使用Web服务的整个应用提供高可用性处理环境的系统和方法。

发明内容
在一个方面中,本发明提供了一种用于维护高可用性数据处理环境的系统,所述系统包括网络,所述网络具有多个群集,所述网络的每个群集都包括多个同样的服务器,所述网络的每个群集都被直接连接到所述网络的至少一个其他群集,其中每对彼此直接相连的群集的特征在于,所述群集对的第一群集中的每个服务器都通过通信链路被直接连接到所述群集对的第二群集中的至少一个服务器;以及控制服务器,所述控制服务器适合于监视所述通信链路的运行状态,所述通信链路的所述运行状态是所述通信链路是运行的还是非运行的,所述控制服务器通过所述控制服务器与每个群集中的至少一个服务器之间的通信通道被直接链接到所述至少一个服务器。
本发明还提供了一种用于维护高可用性数据处理环境的方法,所述方法包括提供具有多个群集的网络,所述网络的每个群集都包括多个同样的服务器,所述网络的每个群集都被直接连接到所述网络的至少一个其他群集,其中每对彼此直接相连的群集的特征在于,所述群集对的第一群集中的每个服务器都通过通信链路被直接连接到所述群集对的第二群集中的至少一个服务器;以及提供适合于监视所述通信链路的运行状态的控制服务器,所述通信链路的所述运行状态是所述通信链路是运行的还是非运行的,所述控制服务器通过所述控制服务器与每个群集中的至少一个服务器之间的通信通道被直接链接到所述至少一个服务器。
本发明有利地提供了一种用于为使用Web服务的整个应用提供高可用性处理环境的系统和方法。


现在将参考附图仅以实例的方式描述本发明的优选实施例,这些附图是图1示出了根据本发明的实施例的包括控制服务器和链接的群集网络的系统,所述网络包括与应用服务器群集相连的Web服务器群集,所述应用服务器群集与数据库服务器群集相连,每个群集都包括多个服务器和一个负载平衡器,所述控制服务器链接到每个群集中的每个服务器;图2示出了根据本发明的实施例的移除了所述数据库服务器群集的负载平衡器之后的图1;图3示出了根据本发明的实施例的移除了所述控制服务器与所述数据库服务器群集的数据库服务器之间的通信链路之后的图2;图4示出了根据本发明的实施例的移除了所述应用服务器群集的负载平衡器之后的图1;图5示出了根据本发明的实施例的包括控制服务器和链接的群集网络的系统,所述网络包括与数据库服务器群集相连的Web服务器群集,每个群集都包括多个服务器和一个负载平衡器,所述控制服务器链接到每个群集中的每个服务器;图6示出了根据本发明的实施例的移除了所述数据库服务器群集的负载平衡器之后的图5;
图7示出了根据本发明的实施例的移除了所述控制服务器与所述数据库服务器群集的数据库服务器之间的通信链路之后的图6;图8示出了根据本发明的实施例的将服务节点添加到每个群集之后的图1;图9示出了根据本发明的实施例的图1以示出所述Web服务器群集的第一Web服务器与所述应用服务器群集的第一应用服务器之间的通信链路;图10示出了根据本发明的实施例的图1以示出所述Web服务器群集的第二Web服务器与所述应用服务器群集的第一应用服务器之间的通信链路;图11示出了根据本发明的实施例的与图1的系统关联的全局数据集;图12示出了根据本发明的实施例的与图1的系统的Web服务器群集关联的本地数据集;图13示出了根据本发明的实施例的与图1的系统的应用服务器群集关联的本地数据集;图14示出了根据本发明的实施例的与图2的系统关联的全局数据集;图15示出了根据本发明的实施例的与图3的系统关联的全局数据集;图16是根据本发明的实施例的描述了用于减少图1的系统中的非运行通信链路和非运行服务器的第一方法的流程图;图17是根据本发明的实施例的描述了响应于非运行通信链路的图16的过程的流程图;图18是根据本发明的实施例的描述了响应于非运行服务器的图16的过程的流程图;图19是根据本发明的实施例的描述了用于减少图1的系统中的非运行通信链路和非运行服务器的第二方法的流程图;图20示出了根据本发明的实施例的用于维护高可用性处理环境的计算机系统。
具体实施例方式
图1示出了根据本发明的实施例的包括控制服务器(C)25和链接的群集网络的系统20,所述网络包括与应用服务器群集22相连的Web服务器群集21,所述应用服务器群集22与数据库服务器群集23相连,每个群集都包括多个服务器和一个负载平衡器,所述控制服务器链接到每个群集中的每个服务器。
Web服务器群集21包括同样的Web服务器W1和W2。虽然图1的Web服务器群集21中仅示出了两个这样的Web服务器W1和W2,但是Web服务器群集21通常包括两个或更多个此类同样的Web服务器。负载平衡器LW适合于将数据业务均匀地分配到Web服务器群集21的Web服务器(例如,W1和W2)之中。此类数据业务可能源自从Web服务器群集21请求文档或网页的Web浏览器(未示出)。
定义地说,Web服务器是响应于来自Web浏览器(或其他发出请求的软件)的请求而提供文件的软件。当Web服务器接收到对静态HTML(即,超文本标记语言)页的请求时,所述服务器读取该请求,查找该页并将其发送到发出请求的浏览器(或其他发出请求的软件)。常见的Web服务器包括Microsoft IIS、Netscape Enterprise Server、Java WebServer以及Apache HTTP Server。所述Web服务器可以与数据库服务器通信以访问为发出请求的Web浏览器服务所需的信息。当Web浏览器请求静态HTML页时,如下文将要讨论的图5-7中例示的,Web服务器与数据库服务器之间的这种通信是直接的。
但是,所述Web浏览器(或其他发出请求的软件)可以请求动态Web内容,例如包括动态数据(由使用所述Web浏览器获得所请求的Web内容的用户所提供)的Web内容。这种对动态内容的需求将出现在Web销售应用、个性化Web广告应用、流视频应用等之中。需要动态Web内容的应用无法用直接连接到数据库服务器的Web服务器的简单模型来执行。相反,需要用作所述Web服务器与所述数据库服务器之间的中间软件的应用服务器。应用服务器可以通过将代码串插入HTML来处理动态内容。应用服务器的实例包括IBM Websphere、Sun Java Web Server等。
返回图1,应用服务器群集22包括同样的应用服务器A1和A2。虽然在图1的应用服务器群集22中仅示出了两个这样的应用服务器A1和A2,但是应用服务器群集22通常包括两个或更多个此类同样的应用服务器。负载平衡器LA适合于将数据业务均匀地分配到应用服务器群集22的应用服务器(例如,A1和A2)之中。此类数据业务可以源自Web服务器群集21。
在图1中,数据库服务器群集23包括同样的数据库服务器D1和D2。虽然在图1的数据库服务器群集23中仅示出了两个这样的数据库服务器D1和D2,但是数据库服务器群集23通常包括两个或更多个此类同样的数据库服务器。负载平衡器LD适合于将数据业务均匀地分配到数据库服务器群集23的数据库服务器(例如,D1和D2)之中。此类数据业务可以源自应用服务器群集22。
定义地说,数据库服务器是将存储在一个或多个数据库中的信息提供给发出请求的软件(例如提供给请求所述信息的应用服务器(例如,图1的应用服务器A1或A2)或提供给请求所述信息的Web服务器(例如,将在下文中讨论的图5的Web服务器W1或W2))的软件。
在图1中,Web服务器群集21直接与应用服务器群集22相连,应用服务器群集22直接与数据库服务器群集23相连,并且Web服务器群集21间接与数据库服务器群集23相连。如应用到在此包括在权利要求中的群集和服务器的,“直接相连”和“间接相连”的定义在下面提供。
作为定义,如果第一群集的服务器S1和第二群集的服务器S2彼此直接相连,则群集系统(如图1的系统20)中被表示为所述第一群集和所述第二群集的两个群集彼此直接相连。作为定义,如果连接S1和S2的通信链路不包括任何在S1与S2之间进行干预的服务器,则服务器S1和S2彼此直接相连。在所述通信链路中包括所述第一或第二群集的所述负载平衡器并不会使S1与S2之间的直接连接无效。图9和10中具体示出了两个此类服务器之间的“通信链路”的概念。图9示出了根据本发明的实施例的图1以示出所述Web服务器群集的第一Web服务器与所述应用服务器群集的第一应用服务器之间的通信链路。
图9示出了根据本发明的实施例的图1以示出直接将群集21的Web服务器W1与群集22的应用服务器A1相连的通信链路41。由于通信链路41上没有服务器,根据上述“直接相连”的定义,Web服务器W1与应用服务器A1直接相连。注意,通信链路41上存在的负载平衡器LA并不会使Web服务器W1与应用服务器A1之间的直接连接无效。此外,由于Web服务器W1与应用服务器A1直接相连,所以群集21与群集22直接相连。通信链路41以及图10中的通信链路42和43可以表示任何公知的通信链路,例如因特网、内联网、电缆、电话布线、例如在计算机系统内的硬布线、光纤等。
图10示出了根据本发明的实施例的图1以示出直接将群集21的Web服务器W2与群集22的应用服务器A1相连的通信链路42。由于通信链路42上没有服务器,根据上述“直接相连”的定义,Web服务器W2与应用服务器A1直接相连。注意,通信链路42上存在的负载平衡器LA并不会使Web服务器W2与应用服务器A1之间的直接连接无效。此外,由于Web服务器W2与应用服务器A1直接相连,所以群集21与群集22直接相连。
图10还示出了将应用服务器A1与数据库服务器D1直接相连的通信链路43。通信链路42和43的串行组合是间接连接Web服务器W2与数据库服务器D1的复合通信链路。由于所述复合通信链路包括在Web服务器W2与数据库服务器D1之间进行干预的服务器A1,所以所述复合通信链路间接地(而不是直接地)将Web服务器W2与数据库服务器D1相连。
返回图1,上述讨论阐明了Web服务器群集21为何直接连接到应用服务器群集22,应用服务器群集22为何直接连接到数据库服务器群集23以及Web服务器群集21为何间接连接到数据库服务器群集23。
在图1中,控制服务器25是按如下方式链接到负载平衡器和服务器的软件。控制服务器25分别通过通信通道31、34和37链接到负载平衡器LW、LA和LD。控制服务器25分别通过通信通道32、33、35、36、38和39链接到服务器W1、W2、A1、A2、D1和D2。通信通道31-39可以表示任何公知的通信通道,如因特网、内联网、电缆、电话布线、例如计算机系统内的硬布线、光纤等。
为了理解控制服务器25的功能,考虑其中浏览器在用户指示下从Web服务器群集21请求动态内容(例如,动态网页)的应用。所述请求由Web服务器群集21的负载平衡器LW来处理,其尝试将数据业务均匀地分配到所述Web服务器(即,W1和W2)之中。所述请求通过W1和/或W2被传输到应用服务器群集22的负载平衡器LA,其尝试将数据业务均匀地分配到所述应用服务器(即,A1和A2)之中。接着,应用服务器A1和/或A2通过使数据库群集23从有关的一个或多个数据库访问所请求的信息来尝试获得所述请求的信息。负载平衡器LD尝试将数据业务均匀地分配到所述数据库服务器(即,D1和D2)之中。在被从有关的一个或多个数据库检索之后,所请求的信息被提供给应用服务器A1和/或A2,其操纵并重新组织所请求的信息以生成所请求的动态内容。所述生成的动态内容被传递回Web服务器W1和/或W2并随后被传递回发出请求的Web浏览器和用户。
注意,群集21、22和23过程可以并行地处理应用,以致对于高效处理所述应用来说,负载平衡器LW、LA和LD的将数据业务均匀地分配到所包括的服务器之中的功能是重要的。如果群集21、22和23中的所有服务器都完全运行(即,正常执行功能),则所述应用可以以最佳效率来执行。但是,如果服务器变为非运行,则可能降低效率并且最小化由于服务器变为非运行而导致的效率损失是很重要的。通过向每个服务器发送提示信号以期望接收到响应于该提示信号的返回信号,每个负载平衡器可以定期地测试其群集内的每个服务器的运行状态。服务器的运行状态是所述服务器是运行的(即,正确地工作)还是非运行的(不正确地工作或不工作)。所述返回信号或没有返回信号指示每个所述服务器的运行状态。如果负载平衡器确定其群集中的服务器是非运行的,则所述服务器适合于“故障转移”非运行的服务器(即,将该非运行的服务器从可用于接收并处理进入所述群集的数据业务中移除)并尝试将数据业务均匀地分配到所述群集中的剩余服务器之中。
尽管负载平衡器LW、LA和LD的上述功能是有益的,但是所述负载平衡器并未有助于优化整体应用的处理,因为没有将其他群集的不工作的服务器通知给定群集的负载平衡器和服务器。因此,所述给定群集的负载平衡器和服务器不能以考虑其他群集中的一个或多个服务器的非运行状态的方式来调整其对应用的处理。例如,如果Web服务器群集21的负载平衡器和服务器可以知道应用群集22的一个或多个应用服务器已变为非运行,则Web服务器群集21将能够减少向应用群集22的服务做出的并行请求的数量,并将其一部分或全部应用转向另一个完全运行的应用服务器群集,直到应用群集22的所有群集都变为完全运行为止。遗憾的是,当前的负载平衡器并不知道另一个群集的一个或多个服务器已变为非运行。如以下将结合图16-19说明的,本发明的控制服务器25通过与系统20的服务器和负载平衡器通信来解决此问题。
图2示出了根据本发明的实施例的移除了数据库服务器群集23的负载平衡器LD之后的图1。图2示出了可以在没有负载平衡器的情况下存在群集。当没有负载平衡器时,可以以另一种方式来模拟负载平衡器的功能。在图2中,例如,连接数据库服务器D1和D2的通信链路27使得D1和D2能够彼此通信并彼此传递数据,以便在D1和D2之间或通常在数据库服务器群集23的数据库服务器之间均匀地分配数据业务。以类似的方式,所述系统的任何群集都可以在没有负载平衡器的情况下工作并仍然在群集的服务器之间平衡数据业务。作为另一个实例,图4示出了根据本发明的实施例的移除了应用服务器群集22的负载平衡器LA并且添加了连接应用服务器A1和A2的通信链路28之后的图1。
图3示出了根据本发明的实施例的移除了控制服务器25与数据库服务器群集23的数据库服务器D2之间的通信通道39之后的图2。如上所述,控制服务器25与系统20的服务器之间的通信通道使得控制服务器25能够通知群集的服务器另一个群集的服务器的非运行状态,如以下将结合图16-19详细说明的。在图3中,由于移除了通信通道39,可以由通过通信通道38的控制服务器25与数据库服务器D1之间的通信结合通过通信链路27的数据库服务器D1与D2之间的通信来间接地实现控制服务器25与数据库服务器D2之间的通信。
图5示出了移除应用服务器群集22之后的图1的系统20。因此,图5中的系统20包括根据本发明的实施例的控制服务器25和链接网络,其包括直接连接到数据库服务器群集23的Web服务器群集21。控制服务器25链接到群集21和23中的每个服务器。群集21和23分别包括如图1中的负载平衡器LW和LD。由于Web服务器群集21直接与数据库服务器群集23相连,并且没有干预应用服务器群集,所以图5中的系统20适合于处理需要静态Web内容的应用,但是不适合于处理需要动态Web内容的应用。
图6示出了根据本发明的实施例的移除了数据库服务器群集23的负载平衡器LD之后的图5。图6类似于以上描述的图2。
图7示出了根据本发明的实施例的移除了控制服务器25与数据库服务器群集23的数据库服务器D2之间的通信通道39之后的图6。图7类似于以上描述的图3。
图8示出了根据本发明的实施例的将服务节点添加到每个群集之后的图1。群集的服务节点向所述群集中的服务器提供诸如硬件服务、软件服务、帮助台服务之类的支持服务。服务节点SW、SA和SD已分别被添加到Web服务器群集21、应用服务器群集22和数据库服务器群集23。控制服务器25分别通过通信通道46、51和54与服务节点SW、SA和SD相连。在Web服务器群集21中,服务节点SW分别通过通信路径47和48与Web服务器W1和W2相连。在应用服务器群集22中,服务节点SA分别通过通信路径52和53与应用服务器A1和A2相连。在数据库服务器群集23中,服务节点SD分别通过通信路径55和56与数据库服务器D1和D2相连。
作为如何使用服务节点的一个实例,考虑其中控制服务器25已确定应用服务器群集22的应用服务器A1是非运行的情况。然后,控制服务器25可以通过通信通道51与服务节点SA通信以指示通信通道51做出应用服务器A1是非运行的原因的判定。在做出所述判定之后,服务节点SA可以有助于使应用服务器A1运行(例如,通过修复与应用服务器A1是非运行的原因关联的问题)。服务节点SA可以利用通信路径52和/或53来帮助确定应用服务器A1是非运行的原因和/或有助于使应用服务器A1运行。
虽然图1-4和8-9的系统20已被描述为包括三个群集(即,群集21-23),并且虽然图5-7的系统20已被描述为包括两个群集(即,群集21和23),但是本发明的系统通常包括多个群集,并且因此并不仅限于2或3个群集。此外,应当理解,可以在系统20上并行地执行多个应用。
在图1-10中,控制服务器25用作系统20的控制中心并用于协调跨整个系统20的信息交换。因此,所述控制服务器可以利用系统20中的服务器间的所有直接通信链路的映射。因此,控制服务器25可以访问描述了所有所述直接通信链路的全局数据集。定义地说,数据集是按照任何数据格式或数据组织格式的数据的任何集合。数据集的实例包括平面文件、数据表、关系数据库表等。
因此,图11示出了根据本发明的实施例的与图1的系统关联的全局数据集。图11中的全局数据集是一个表,其列出了所述系统中的每个通信链路(即,LINK1、LINK2…)以及由每个这样的通信链路直接彼此相连的服务器。作为一个实例,图11将LINK1列出为直接连接服务器W1和A1,并且图9示出了LINK1表示通信链路41作为另一个实例,图10将LINK3列出为直接连接服务器W2和A1,并且图10示出了LINK3表示通信链路42。
图14和15分别示出了根据本发明的实施例的与图2和图3的系统关联的全局数据集。与图2相对应,图14的全局数据集将LINK9示出为连接数据库服务器D1和D2;因此,LINK9对应于图2的通信链路27。与图3相对应,图15的全局数据集示出了缺少图14的LINK8;对应于上述图3的通信链路39的缺失。
虽然控制服务器25可以访问描述了系统20中的全部通信链路的全局数据集,但是每个单独的群集都可以访问本地数据集(其只描述了那些将每个单独的服务器直接连接到每个单独的服务器下游的下一个群集的通信链路)。因此,与图1相比,图12中的表是用于图1的Web服务器群集21的本地数据集;即,图12的链路LINK1、LINK2、LINK3和LINK4与图1的群集21的Web服务器和群集22的应用服务器之间的通信链路相对应。类似地,与图1相比,图13中的表是用于图1的应用服务器群集22的本地数据集;即,图13的链路LINK5、LINK6、LINK7和LINK8与图1的群集22的应用服务器和群集23的数据库服务器之间的通信链路相对应。
图16-18是根据本发明的实施例的描述了用于优化通过图1-10的系统20的数据业务并且特别关注于控制服务器25的角色的第一方法的流程图。
图16的流程图包括方法步骤61-66。步骤61提供了一种具有控制服务器和包括多个群集的网络的系统(例如,图1-10的系统20)。所述网络的每个群集都包括多个同样的服务器,并且所述网络的每个群集都直接与所述网络的至少一个其他群集相连。每对彼此直接相连的群集的特征在于,所述群集对的第一群集中的每个服务器都通过通信链路被直接连接到所述群集对的第二群集中的至少一个服务器。例如,用图9作示例说明,所述第一群集(例如,群集21)的第一服务器(例如,W1)可以通过通信链路41直接连接到所述第二群集(例如,群集22)的第二服务器(例如,A1)。所述控制服务器适合于监视所述通信链路的运行状态。所述通信链路的运行状态是所述通信链路是运行的(即,正确地工作)还是非运行的(即,不正确地工作或不工作)。所述控制服务器通过所述控制服务器与每个群集中的至少一个服务器之间的通信通道被直接链接到所述至少一个服务器。
在步骤62中,所述控制服务器适合于通过向所述第一服务器发送查询信号来监视所述第一群集的第一服务器与所述第二群集的第二服务器之间的第一通信链路的运行状态。所述查询信号请求所述第一服务器向所述控制服务器发送指示所述通信链路的运行状态的响应信号。
在步骤63中,所述控制服务器判定所述第一服务器是否在预定时间段内对步骤62中发送的查询信号做出了响应。所述预定时间段可以被选择为等于或大于其中合理地预期所述第一服务器响应所述查询信号的最小时间段。
在步骤63中,如果所述控制服务器判定所述第一服务器在所述预定时间段内没有如此做出响应,则所述控制服务器假设所述第一服务器是非运行的,并且因此接着在步骤64执行响应于所述第一服务器是非运行的过程。结合图18在下文中详细描述步骤64。执行步骤64之后,由于所述第一服务器适合于出于监视目的反复地(例如,定期地)向所述第一服务器发送所述查询信号,所述过程循环回步骤62。
在步骤63中,如果所述控制服务器判定所述第一服务器已在预定时间段内使用预期响应信号做出了响应,则接着执行步骤65。在步骤65中,所述控制服务器检查来自所述第一服务器的响应信号以判定所述第一与第二服务器之间的通信链路是否是运行的。在步骤65中,如果所述控制服务器判定所述第一与第二服务器之间的通信链路是非运行的,则接着在步骤66执行响应于所述通信链路是非运行的过程。结合图17在下文中详细描述步骤66。执行步骤66之后,由于所述第一服务器适合于出于监视目的反复地(例如,定期地)向所述第一服务器发送所述查询信号,所述过程循环回步骤62。
图17是根据本发明的实施例的描述了响应于图16或图19的所述第一与第二服务器之间的非运行通信链路的图16的步骤66的过程(或图19的步骤86的过程)的流程图。图17的流程图包括方法步骤70-74。在图17中,假设所述第一群集具有负载平衡器。
在步骤70中,所述控制服务器通知所述第一群集的负载平衡器所述第一与第二服务器之间的通信链路是非运行的。
在步骤71中,在被通知所述通信链路是非运行的之后,所述负载平衡器适合于根据非运行的第一通信链路来故障转移所述第一服务器。这意味着所述负载平衡器将禁止所述第一服务器处理通过所述通信链路传输的数据业务。
在步骤72中,所述控制服务器通知所述第一群集的服务节点所述第一与第二服务器之间的通信链路是非运行的。
在步骤73中,所述服务节点适合于确定所述通信链路是非运行的原因。所述服务节点可以利用自身与所述第一群集的服务器之间的通信路径来帮助确定所述通信链路是非运行的原因。
在步骤74中,在确定了所述通信链路是非运行的原因之后,所述服务节点适合于促使所述通信链路运行(例如,通过修复与所述通信链路是非运行的原因关联的问题)。所述服务节点可以利用自身与所述第一群集的服务器之间的通信路径来帮助促使所述通信链路运行。
虽然步骤72-74在图17中被示为在步骤70-71之后,但是本发明的范围包括其中步骤72-74与步骤70-71同时发生的实施例和其中步骤72-74先于步骤70-71的实施例。
图18是根据本发明的实施例的描述了响应于图16或图19的非运行的第一服务器的图16的步骤64的过程(或图19的步骤84的过程)的流程图。图18的流程图包括方法步骤75-79。在图18中,假设所述第一群集具有负载平衡器。
在步骤75中,所述控制服务器通知所述第一群集的负载平衡器所述第一服务器是非运行的。
在步骤76中,在被通知所述第一服务器是非运行的之后,所述负载平衡器适合于故障转移所述第一服务器。
在步骤77中,所述控制器服务器通知所述第一群集的服务节点所述第一服务器是非运行的。
在步骤78中,所述服务节点适合于确定所述第一服务器是非运行的原因。所述服务节点可以利用自身与所述第一群集的服务器之间的通信路径来帮助确定所述第一服务器是非运行的原因。
在步骤79中,在确定所述第一服务器是非运行的原因之后,所述服务节点适合于促使所述第一服务器运行(例如,通过修复与所述第一服务器是非运行的原因关联的问题)。所述服务节点可以利用自身与所述第一群集的服务器之间的通信路径来帮助促使所述第一服务器运行。
虽然步骤77-79在图18中被示为在步骤75-76之后,但是本发明的范围包括其中步骤77-79与步骤75-76同时发生的实施例和其中步骤77-79先于步骤75-76的实施例。
图19和17-18是根据本发明的实施例的描述了用于优化通过图1-10的系统20的数据业务并且特别关注于控制服务器25的角色的第二方法的流程图。
图19的流程图包括方法步骤81-87。步骤81提供了一种具有控制服务器和包括多个群集的网络的系统(例如,图1-10的系统20)。所述网络的每个群集都包括多个同样的服务器,并且所述网络的每个群集都直接与所述网络的至少一个其他群集相连。每对彼此直接相连的群集的特征在于,所述群集对的第一群集中的每个服务器都通过通信链路被直接连接到所述群集对的第二群集中的至少一个服务器。例如,用图9作示例说明,所述第一群集(例如,群集21)的第一服务器(例如,W1)可以通过通信链路41直接连接到所述第二群集(例如,群集22)的第二服务器(例如,A1)。所述控制服务器适合于监视所述通信链路的运行状态。所述控制服务器通过所述控制服务器与每个群集中的至少一个服务器之间的通信通道被直接链接到所述至少一个服务器。
在步骤82中,所述控制服务器适合于接收来自所述第一群集的第一服务器或来自所述第一群集的负载平衡器的消息,所述消息指示实体是非运行的。所述非运行的实体是所述第一群集的服务器或是所述第一群集的第一服务器与所述第二群集的第二服务器之间的通信链路。
在步骤83中,所述控制服务器分析从所述实体接收的消息以确定所述第一群集的服务器是否是非运行的。
在步骤83中,如果所述控制服务器从所述消息确定所述第一群集的服务器是非运行的,则接着在步骤84执行响应于所述第一服务器是非运行的过程。已经结合图18在上文中详细描述了步骤84。执行步骤84之后,由于所述第一服务器适合于出于监视目的反复地(例如,定期地)向所述第一服务器发送所述查询信号,所述过程可以转移到图16的步骤62。
在步骤83中,如果所述控制服务器没有从所述消息确定所述第一群集的第一服务器是非运行的,则接着执行步骤85。在步骤85中,所述控制服务器确定所述通信链路是否是运行的。在步骤85中,如果所述控制服务器确定所述通信链路是非运行的,则由于步骤82假设由所述控制服务器接收的消息指定实体(即,所述第一群集的服务器或所述通信链路)是非运行的,如在步骤87中指出的那样出现错误。在步骤85中,如果所述控制服务器确定所述通信链路是非运行的,则接着在步骤86执行响应于所述通信链路是非运行的过程。已经结合图17在上文中详细描述了步骤86。执行步骤86之后,由于所述第一服务器适合于出于监视目的反复地(例如,定期地)向所述第一服务器发送所述查询信号,所述过程可以转移到图16的步骤62。
如以上说明的,本发明的系统20通常包括多个群集并且不限于2或3个群集。此外,可以在系统20上并行地执行多个应用。因此,以上结合图16-19描述的方法通过系统20促进了一个或多个并行应用的高效处理。因此,系统20向应用提供了一种高可用性处理环境,因为就处理整个应用所需的所有服务器而言,出于整个应用的处理目的,系统20增加(并且在某些情况下可能最大化)了对其中的服务器的应用的可用性。
图20示出了根据本发明的实施例的用于维护高可用性处理环境的计算机系统90。计算机系统90包括处理器91、与处理器91相连的输入设备92、与处理器91相连的输出设备93以及每个都与处理器91相连的存储设备94和95。输入设备92可以是键盘、鼠标等。输出设备93可以是打印机、绘图仪、计算机屏幕、磁带、可移动硬盘、软盘等。存储设备94和95可以是硬盘、软盘、磁带、诸如光盘(CD)或数字视频光盘(DVD)之类的光存储装置、动态随机存取存储器(DRAM)、只读存储器(ROM)等。存储设备95包括计算机代码97。计算机代码97可以包括由图1-10的控制服务器25使用的用于维护根据本发明的高可用性处理环境的算法。处理器91执行计算机代码97。存储设备94包括输入数据96。输入数据96包括计算机代码97所需的输入。输出设备93显示来自计算机代码97的输出。存储设备94和95中的任一或两者(或图20中没有示出的一个或多个其他存储设备)可以被用作其中包含有计算机可读程序代码和/或其中存储有其他数据的计算机可用介质(或计算机可读介质或程序存储设备),其中所述计算机可读程序代码包括计算机代码97。通常,计算机系统90的计算机程序产品(或可替代地,制品)可以包括所述计算机可用介质(或所述程序存储设备)。
虽然图20将计算机系统90示出为硬件和软件的特定配置,但是如本领域的技术人员所公知的,硬件和软件的任何配置都可以用于以上结合图20的特定计算机系统90说明的目的。例如,存储设备94和95可以是单个存储设备的一部分而不是单独的存储设备。
虽然出于示例目的描述了本发明的实施例,但是对于本领域的技术人员来说,许多修改和更改都将变得显而易见。因此,所附权利要求旨在将所有此类修改和更改都包括为落入本发明的范围之内。
权利要求
1.一种用于维护高可用性处理环境的系统,所述系统包括网络,所述网络具有多个群集,所述网络的每个群集都包括多个同样的服务器,所述网络的每个群集都被直接连接到所述网络的至少一个其他群集,其中每对彼此直接相连的群集的特征在于,所述群集对的第一群集中的每个服务器都通过通信链路被直接连接到所述群集对的第二群集中的至少一个服务器;以及控制服务器,所述控制服务器适合于监视所述通信链路的运行状态,所述通信链路的所述运行状态是所述通信链路是运行的还是非运行的,所述控制服务器通过所述控制服务器与每个群集中的至少一个服务器之间的通信通道被直接链接到所述至少一个服务器。
2.根据权利要求1的系统,还包括全局数据集,所述全局数据集包括所述网络中的每个通信链路的标识,所述全局数据集可由所述控制服务器访问;以及本地数据集,所述本地数据集特定于所述多个群集中的每个群集,所述本地数据集包括所述每个群集的服务器被连接到其以便使数据流出所述群集的所述网络中的每个通信链路的标识,所述全局数据集可由所述每个群集的所述服务器访问。
3.根据权利要求1的系统,其中所述控制服务器适合于通过将查询信号发送给所述第一群集的第一服务器来监视所述第一服务器与所述第二群集的第二服务器之间的第一通信链路的运行状态,所述查询信号请求所述第一服务器将指示所述第一通信链路的所述运行状态的响应信号发送给所述控制服务器,所述第一通信链路的所述运行状态是所述第一通信链路是运行的还是非运行的。
4.根据权利要求3的系统,其中所述第一服务器适合于通过将提示信号通过所述第一通信链路发送给所述第二服务器来响应所述查询信号,所述提示信号提示所述第二服务器通过所述第一通信链路将返回信号发送给所述第一服务器,所述返回信号或没有所述返回信号指示了所述第一通信链路的运行状态。
5.根据权利要求3的系统,其中所述第一群集具有适合于将数据业务均匀地分配到所述第一群集所包括的服务器之中的负载平衡器,并且其中当从所述第一服务器接收到所述响应信号并且所述响应信号指示所述第一通信链路是非运行的时,所述控制服务器适合于通知所述负载平衡器所述第一通信链路是非运行的。
6.根据权利要求3的系统,其中当被通知所述第一通信链路是非运行的时,所述负载平衡器适合于根据所述第一通信链路来故障转移所述第一服务器。
7.根据权利要求3的系统,其中当从所述第一服务器接收到所述响应信号并且所述响应信号指示所述第一通信链路是非运行的时,所述控制服务器适合于通知所述第一群集中的服务节点所述第一通信链路是非运行的。
8.根据权利要求7的系统,其中当被通知所述第一通信链路是非运行的时,所述服务节点适合于确定所述第一通信链路是非运行的原因。
9.根据权利要求8的系统,其中在做出所述原因的所述确定时,所述服务节点适合于促使所述第一通信链路运行。
10.根据权利要求3的系统,其中所述第一群集具有适合于将数据业务均匀地分配到所述第一群集所包括的服务器之中的负载平衡器,并且其中在将所述查询信号发送给所述第一服务器之后的预定时间段内没有接收到来自所述第一服务器的所述响应信号时,所述控制服务器适合于确定所述第一服务器是非运行的并适合于通知所述负载平衡器所述第一服务器是非运行的。
11.根据权利要求10的系统,其中当被通知所述第一服务器是非运行的时,所述负载平衡器适合于故障转移所述第一服务器。
12.根据权利要求10的系统,其中在将所述查询信号发送给所述第一服务器之后的预定时间段内没有接收到来自所述第一服务器的所述响应信号时,所述控制服务器适合于通知所述第一群集中的服务节点所述第一服务器是非运行的。
13.根据权利要求12的系统,其中当被通知所述第一服务器是非运行的时,所述服务节点适合于确定所述第一服务器是非运行的原因。
14.根据权利要求13的系统,其中在做出所述原因的所述确定时,所述服务节点适合于促使所述第一服务器运行。
15.根据权利要求1的系统,其中所述多个群集中的每个群集都具有适合于将数据业务均匀地分配到每个群集所包括的服务器之中的负载平衡器。
16.根据权利要求1的系统,其中所述控制服务器适合于接收来自所述第一群集的第一服务器或来自所述第一群集的负载平衡器的消息,所述消息指示实体是非运行的,所述实体是从包括所述第一群集的服务器和所述第一群集的所述第一服务器与所述第二群集的第二服务器之间的通信链路的组中选择的。
17.根据权利要求16的系统,其中在接收到所述消息之后,所述控制服务器适合于通知所述第一群集的服务节点所述实体是非运行的。
18.根据权利要求1的系统,其中所述控制服务器被直接链接到所述第一群集的第一服务器并且没有被直接链接到所述第一群集的第二服务器,其中所述第一服务器被直接连接到所述第二服务器,并且其中所述控制服务器适合于通过与连接有所述第一服务器与所述第二服务器之间的直接通信的所述第一服务器的直接通信来监视所述第二服务器的运行状态,所述第二服务器的所述运行状态是所述第二服务器是运行的还是非运行的。
19.根据权利要求1的系统,其中所述多个群集中的至少一个群集不具有适合于将数据业务均匀地分配到所述第一群集所包括的服务器之中的负载平衡器。
20.根据权利要求1的系统,其中所述多个群集包括Web服务器的Web群集、应用服务器的应用群集以及数据库服务器的数据库群集,所述Web群集被直接连接到所述应用群集,所述应用群集被直接连接到所述数据库群集,所述Web群集适合于通过所述应用群集用作所述Web群集与所述数据库群集之间的中间群集的方式与所述数据库群集通信。
21.根据权利要求20的系统,其中所述Web群集具有适合于将数据业务均匀地分配到所述Web群集所包括的所述Web服务器之中的负载平衡器,其中所述应用群集具有适合于将数据业务均匀地分配到所述应用群集所包括的所述应用服务器之中的负载平衡器,并且其中所述数据库群集具有适合于将数据业务均匀地分配到所述数据库群集所包括的所述数据库服务器之中的负载平衡器。
22.根据权利要求20的系统,其中所述Web群集具有适合于将数据业务均匀地分配到所述Web群集所包括的所述Web服务器之中的负载平衡器,其中所述应用群集具有适合于将数据业务均匀地分配到所述应用群集所包括的所述应用服务器之中的负载平衡器,并且其中所述数据库群集不具有适合于将数据业务均匀地分配到所述数据库群集所包括的所述数据库服务器之中的负载平衡器。
23.根据权利要求1的系统,其中所述多个群集包括Web服务器的Web群集和数据库服务器的数据库群集,所述Web群集被直接连接到所述数据库群集,所述Web群集适合于与所述数据库群集直接通信。
24.根据权利要求23的系统,其中所述Web群集具有适合于将数据业务均匀地分配到所述Web群集所包括的所述Web服务器之中的负载平衡器,并且其中所述数据库群集具有适合于将数据业务均匀地分配到所述数据库群集所包括的所述数据库服务器之中的负载平衡器。
25.根据权利要求23的系统,其中所述Web群集具有适合于将数据业务均匀地分配到所述Web群集所包括的所述Web服务器之中的负载平衡器,并且其中所述数据库群集不具有适合于将数据业务均匀地分配到所述数据库群集所包括的所述数据库服务器之中的负载平衡器。
26.一种用于维护高可用性处理环境的方法,所述方法包括提供具有多个群集的网络,所述网络的每个群集都包括多个同样的服务器,所述网络的每个群集都被直接连接到所述网络的至少一个其他群集,其中每对彼此直接相连的群集的特征在于,所述群集对的第一群集中的每个服务器都通过通信链路被直接连接到所述群集对的第二群集中的至少一个服务器;以及提供适合于监视所述通信链路的运行状态的控制服务器,所述通信链路的所述运行状态是所述通信链路是运行的还是非运行的,所述控制服务器通过所述控制服务器与每个群集中的至少一个服务器之间的通信通道被直接链接到所述至少一个服务器。
27.根据权利要求26的方法,所述方法还包括提供包括所述网络中的每个通信链路的标识的全局数据集,所述全局数据集可由所述控制服务器访问;以及提供特定于所述多个群集中的每个群集的本地数据集,所述本地数据集包括所述每个群集的服务器被连接到其以便使数据流出所述群集的所述网络中的每个通信链路的标识,所述全局数据集可由所述每个群集的所述服务器访问。
28.根据权利要求26的方法,所述方法还包括监视所述第一群集的第一服务器与所述第二群集的第二服务器之间的第一通信链路的运行状态,所述监视由所述控制服务器来执行,所述监视包括将查询信号发送给所述第一服务器,所述查询信号请求所述第一服务器将指示所述第一通信链路的所述状态的响应信号发送给所述控制服务器,所述第一通信链路的所述运行状态是所述第一通信链路是运行的还是非运行的。
29.根据权利要求28的方法,其中所述第一服务器适合于通过将提示信号通过所述第一通信链路发送给所述第二服务器来响应所述查询信号,所述提示信号提示所述第二服务器通过所述第一通信链路将返回信号发送给所述第一服务器,所述返回信号或没有所述返回信号指示了所述第一通信链路的运行状态。
30.根据权利要求28的方法,其中所述第一群集具有适合于将数据业务均匀地分配到所述第一群集所包括的服务器之中的负载平衡器,并且其中当所述控制服务器从所述第一服务器接收到所述响应信号并且所述响应信号指示所述第一通信链路是非运行的时,所述方法还包括通知所述负载平衡器所述第一通信链路是非运行的,所述通知由所述控制服务器来执行。
31.根据权利要求28的方法,其中当所述负载平衡器被通知所述第一通信链路是非运行的时,所述方法还包括根据所述第一通信链路来故障转移所述第一服务器,所述故障转移由所述负载平衡器来执行。
32.根据权利要求28的方法,其中当所述控制服务器从所述第一服务器接收到所述响应信号并且所述响应信号指示所述第一通信链路是非运行的时,所述方法还包括通知所述第一群集中的服务节点所述第一通信链路是非运行的,所述通知由所述控制服务器来执行。
33.根据权利要求32的方法,其中当所述服务节点被通知所述第一通信链路是非运行的时,所述方法还包括确定所述第一通信链路是非运行的原因,所述确定由所述服务节点来执行。
34.根据权利要求33的方法,其中在所述服务节点做出所述原因的所述确定时,所述方法还包括促使所述第一通信链路运行,所述促使由所述服务节点来执行。
35.根据权利要求28的方法,其中所述第一群集具有适合于将数据业务均匀地分配到所述第一群集所包括的服务器之中的负载平衡器,并且其中在将所述查询信号发送给所述第一服务器之后的预定时间段内所述控制服务器没有接收到来自所述第一服务器的所述响应信号时,所述方法还包括确定所述第一服务器是非运行的并通知所述负载平衡器所述第一服务器是非运行的,所述做出所述第一服务器是非运行的所述确定以及所述通知由所述控制服务器来执行。
36.根据权利要求35的方法,其中当负载平衡器被通知所述第一服务器是非运行的时,所述方法还包括故障转移所述第一服务器,所述故障转移由所述负载平衡器来执行。
37.根据权利要求35的方法,其中在将所述查询信号发送给所述第一服务器之后的预定时间段内所述控制服务器没有接收到来自所述第一服务器的所述响应信号时,所述方法还包括通知所述第一群集中的服务节点所述第一服务器是非运行的,所述通知由所述控制服务器来执行。
38.根据权利要求37的方法,其中当所述服务节点被通知所述第一服务器是非运行的时,所述方法还包括确定所述第一服务器是非运行的原因,所述做出所述原因的所述确定由所述服务节点来执行。
39.根据权利要求38的方法,其中在所述服务节点做出所述原因的所述确定时,所述方法还包括促使所述第一服务器运行,所述促使由所述服务节点来执行。
40.根据权利要求26的方法,其中所述多个群集中的每个群集都具有负载平衡器,并且其中所述方法还包括将数据业务均匀地分配到每个群集所包括的服务器之中,所述分配由所述负载平衡器来执行。
41.根据权利要求26的方法,其中所述控制服务器适合于接收来自所述第一群集的第一服务器或来自所述第一群集的负载平衡器的消息,所述消息指示实体是非运行的,所述实体是从包括所述第一群集的服务器和所述第一群集的所述第一服务器与所述第二群集的第二服务器之间的通信链路的组中选择的。
42.根据权利要求41的方法,其中在所述控制服务器接收到所述消息之后,所述方法还包括通知所述第一群集的服务节点所述实体是非运行的,所述通知由所述控制服务器来执行。
43.根据权利要求26的方法,其中所述控制服务器被直接链接到所述第一群集的第一服务器并且没有被直接链接到所述第一群集的第二服务器,其中所述第一服务器被直接连接到所述第二服务器,所述方法还包括通过与连接有所述第一服务器与所述第二服务器之间的直接通信的所述第一服务器的直接通信来监视所述第二服务器的运行状态,所述监视由所述控制服务器来执行,所述第二服务器的所述运行状态是所述第二服务器是运行的还是非运行的。
44.根据权利要求26的方法,其中所述多个群集中的至少一个群集不具有适合于将数据业务均匀地分配到所述第一群集所包括的服务器之中的负载平衡器。
45.根据权利要求26的方法,其中所述多个群集包括Web服务器的Web群集、应用服务器的应用群集以及数据库服务器的数据库群集,所述Web群集被直接连接到所述应用群集,所述应用群集被直接连接到所述数据库群集,所述Web群集适合于通过所述应用群集用作所述Web群集与所述数据库群集之间的中间群集的方式与所述数据库群集通信。
46.根据权利要求45的方法,其中所述Web群集具有适合于将数据业务均匀地分配到所述Web群集所包括的所述Web服务器之中的负载平衡器,其中所述应用群集具有适合于将数据业务均匀地分配到所述应用群集所包括的所述应用服务器之中的负载平衡器,并且其中所述数据库群集具有适合于将数据业务均匀地分配到所述数据库群集所包括的所述数据库服务器之中的负载平衡器。
47.根据权利要求45的方法,其中所述Web群集具有适合于将数据业务均匀地分配到所述Web群集所包括的所述Web服务器之中的负载平衡器,其中所述应用群集具有适合于将数据业务均匀地分配到所述应用群集所包括的所述应用服务器之中的负载平衡器,并且其中所述数据库群集不具有适合于将数据业务均匀地分配到所述数据库群集所包括的所述数据库服务器之中的负载平衡器。
48.根据权利要求26的方法,其中所述多个群集包括Web服务器的Web群集和数据库服务器的数据库群集,所述Web群集被直接连接到所述数据库群集,所述Web群集适合于与所述数据库群集直接通信。
49.根据权利要求48的方法,其中所述Web群集具有适合于将数据业务均匀地分配到所述Web群集所包括的所述Web服务器之中的负载平衡器,并且其中所述数据库群集具有适合于将数据业务均匀地分配到所述数据库群集所包括的所述数据库服务器之中的负载平衡器。
50.根据权利要求48的方法,其中所述Web群集具有适合于将数据业务均匀地分配到所述Web群集所包括的所述Web服务器之中的负载平衡器,并且其中所述数据库群集不具有适合于将数据业务均匀地分配到所述数据库群集所包括的所述数据库服务器之中的负载平衡器。
全文摘要
一种用于维护高可用性数据传输和处理环境的方法。提供了群集的网络。所述网络的每个群集都包括至少两个同样的服务器。所述网络的每个群集都被直接连接到所述网络的至少一个其他群集。每对彼此直接相连的群集的特征在于,所述群集对的第一群集中的每个服务器都通过通信链路被直接连接到所述群集对的第二群集中的至少一个服务器。提供了适合于监视所述通信链路的运行状态(即,所述通信链路是运行的还是非运行的)的控制服务器。所述控制服务器通过所述控制服务器与每个群集中的至少一个服务器之间的通信通道被直接链接到所述至少一个服务器。
文档编号G06F11/20GK1856978SQ200480027435
公开日2006年11月1日 申请日期2004年9月17日 优先权日2003年9月26日
发明者I·艾哈迈德, J·奥文夏因, J·布莱克本 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1