(117,127,129,131)从第一服务器(109,121,集群环境中用于控制客户端对服务的访问 123,125)移除,并且将第一地址(117,127,129,的方法 131)分配给所述多个服务器(109,121,123,125)转让专利

申请号 : CN201280069735.9

文献号 : CN104137085B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : M.蒂德里克E.鲁格U.特洛彭斯

申请人 : 国际商业机器公司

摘要 :

123,125)移除,并且将第一地址(117,127,129,131)从第三组地址(137)移动到第二组地址(135);-i)确定对所述第一服务器(117,127,129,131)的访问将不再被禁止;-j)将第二组地CN 102301681 A,2011.12.28,CN 102027732 A,2011.04.20,址(135)的第二地址(117,127,129,131)分配给第一服务器(109,121,123,125);以及-k)将第二地址添加到名称服务器(103),从而允许第一服务器(109,121,123,125)的故障恢复。

权利要求 :

1.一种用于控制多个客户端对服务的访问的方法,所述服务由多个服务器(109,121,

123,125)的每一个提供,该多个服务器(109,121,123,125)的每个提供该服务,所述方法通过地址池控制器(111)执行,地址池控制器(111)可操作地耦接到名称服务器(103),用于控制客户端对服务器的访问,所述方法包括:-a)创建第一、第二和第三组地址(133,135,137),其中第一组地址(133)包括在名称服务器(103)中注册的可以被客户端使用的地址,并且其中第二组地址(135)包括可用于自由分配给新的服务器的、没有在名称服务器(103)中注册的当前不能被客户端使用的地址,其中第三组地址(137)包括没有在名称服务器(103)中注册的可以被客户端使用的地址,第二组地址(135)和第三组地址(137)不相交;

-b)确定所述多个服务器(109,121,123,125)的第一个为发生故障的、并且对其的访问将被禁止的服务器,第一服务器(109,121,123,125)与第一组地址(133)的第一地址(117,

127,129,131)关联;

-c)将第一地址(117,127,129,131)从第一组地址(133)移动到第三组地址(137);

-d)将第一地址(117,127,129,131)从第一服务器(109,121,123,125)移除,并且将第一地址(117,127,129,131)分配给所述多个服务器(109,121,123,125)的第二个;

-e)将第一地址(117,127,129,131)从名称服务器(103)移除;

-f)监视第一地址(117,127,129,131)的一个或多个使用参数值;

-g)评估一个或多个监视的使用参数值,用于确定是否所述监视的一个或多个使用参数值的至少一个低于最小使用阈值;以及-h)如果所述确定是否所述监视的一个或多个使用参数值的至少一个低于最小使用阈值返回至少一个使用参数值低于最小使用阈值,则将第一地址(117,127,129,131)从第二服务器(109,121,123,125)移除,并且将第一地址(117,127,129,131)从第三组地址(137)移动到第二组地址(135);

-i)确定对所述第一服务器(117,127,129,131)的访问将不再被禁止;

-j)将第二组地址(135)的第二地址(117,127,129,131)分配给第一服务器(109,121,

123,125);以及

-k)将第二地址添加到名称服务器(103),从而允许第一服务器(109,121,123,125)的故障恢复。

2.如权利要求1所述的方法,其中所述地址(117,127,129,131)包括IP地址、光纤信道地址和/或URL。

3.如权利要求1所述的方法,其中名称服务器(103)包括DNS服务器,其中第一组地址(133)的每个地址(117,127,129,131)在DNS服务器中注册。

4.如权利要求1至3的任何一项所述的方法,其中所述多个服务器(109,121,123,125)的每个服务器与至少一个地址(117、127、129、131)关联,其中所述地址(117,127,129,131)在名称服务器(103)中注册。

5.如权利要求1所述的方法,其中步骤k)进一步包括:

-将第二地址(117,127,129,131)从第二组地址(135)移除,并且将第二地址(117,127,

129,131)添加到第一组地址(133)作为另外的第一地址(117,127,129,131)。

6.如权利要求1、2、3和5的任何一项所述的方法,其中第二服务器(109,121,123,125)保持分配给第一地址(117,127,129,131)的进程,其中分配给第一地址(117,127,129,131)的进程是在事件发生之前在第一服务器(109,121,123,125)上已经启动的进程和/或在事件发生之后正由客户端请求的进程,其中客户端在事件发生之前已经高速缓存了第一地址(117,127,129,131)。

7.如权利要求4所述的方法,其中第二服务器(109,121,123,125)保持分配给第一地址(117,127,129,131)的进程,其中分配给第一地址(117,127,129,131)的进程是在事件发生之前在第一服务器(109,121,123,125)上已经启动的进程和/或在事件发生之后正由客户端请求的进程,其中客户端在事件发生之前已经高速缓存了第一地址(117,127,129,131)。

8.如权利要求1、2、3和5的任何一项所述的方法,

其中在修复第一服务器之后触发步骤i)中的所述确定。

9.如权利要求4所述的方法,

其中在修复第一服务器之后触发步骤i)中的所述确定。

10.如权利要求6所述的方法,

其中在修复第一服务器之后触发步骤i)中的所述确定。

11.一种用于控制多个客户端对服务的访问的地址池控制器(111),所述服务由多个服务器(109,121,123,125)的每一个提供,地址池控制器(111)适于执行下面的步骤:-创建第一、第二和第三组地址(133,135,137),其中第一组地址(133)包括在名称服务器(103)中注册的地址,并且其中第二组地址(135)包括没有在名称服务器(103)中注册的地址,其中第三组地址(137)包括在名称服务器(103)中没有注册的地址,第二组地址(135)和第三组地址(137)不相交;

-确定所述多个服务器(109,121,123,125)的第一个为发生故障的、并且对其的访问将被禁止的服务器,第一服务器(109,121,123,125)与第一组地址(133)的第一地址(117,

127,129,131)关联;

-将第一地址(117,127,129,131)从第一组地址(133)移动到第三组地址(137);

-将第一地址(117,127,129,131)从第一服务器(109,121,123,125)移除,并且将第一地址(117,127,129,131)分配给所述多个服务器(109,121,123,125)的第二个;

-将第一地址(117,127,129,131)从名称服务器(103)移除;

-监视第一地址(117,127,129,131)的一个或多个使用参数值;

-评估一个或多个监视的使用参数值,用于确定是否所述监视的一个或多个使用参数值的至少一个低于最小使用阈值;以及-如果所述确定是否所述监视的一个或多个使用参数值的至少一个低于最小使用阈值返回至少一个使用参数值低于最小使用阈值,则将第一地址(117,127,129,131)从第二服务器(109,121,123,125)移除,并且将第一地址(117,127,129,131)从第三组地址(137)移动到第二组地址(135);

-确定对所述第一服务器(117,127,129,131)的访问将不再被禁止;

-将第二组地址(135)的第二地址(117,127,129,131)分配给第一服务器(109,121,

123,125);以及

-将第二地址添加到名称服务器(103),从而允许第一服务器(109,121,123,125)的故障恢复。

说明书 :

集群环境中用于控制客户端对服务的访问的方法

技术领域

[0001] 本发明涉及计算机系统,并且更具体地涉及用于控制多个客户端对服务的访问的方法。服务由多个服务器的每一个提供。

背景技术

[0002] 集群系统提供用于执行各种类型的复杂应用的便利平台。它们包括通过软件和网络连接合并在统一系统中的多个服务器。服务器经由外部网络向一个或多个外部设备提供诸如存储服务的服务。
[0003] 虽然集群系统提供许多优点,但是它们经受一些限制。一个限制与集群系统的可用性有关。具体地,集群系统的服务器在处理来自外部设备的请求的同时,该服务器可能需要修复。对修复的需要可能是由于服务器的故障或者是通过服务器管理(host)的软件可能需要更新。
[0004] 现有技术教导建立高度可用的方案的过程。主要的思想是如果集群的一个服务器故障,则活动的服务器继续该服务,因而服务器的故障不会导致外部设备上的客户端的运转中断(outage)。通常使用两种方法。在第一种方法中,DNS服务器包含服务器的IP地址。一旦此服务器故障,活动的服务器就改变DNS服务器上的DNS入口(entry),使得通过新的DNS名称查找,外部设备的请求被重定向到活动的服务器的IP地址。关于此方法的问题是外部设备上的客户端常常高速缓存DNS入口,并且尝试重新连接到发生故障的服务器。这导致重新连接的超时。第二种方法是IP切换方法。将在活动的服务器上激活发生故障的服务器的IP地址。关于此方法的问题是在被修复之后将IP地址被重新分配给服务器时,外部设备被断开连接。

发明内容

[0005] 本发明的实施例的目标是提供用于控制多个客户端对服务的访问的改进的计算机实现的方法、数据处理系统和相应的计算机可读存储介质。所述目标通过独立权利要求的主题解决。在从属权利要求中描述了有利实施例。
[0006] 如在此使用的术语“计算机可读存储介质”涵盖可以存储可通过计算设备的处理器执行的指令的任何有形存储介质。计算机可读存储介质可以被称为计算机可读非瞬时存储介质。计算机可读存储介质也可以被称为有形计算机可读介质。在一些实施例中,计算机可读存储介质也可能能够存储通过计算设备的处理器能够访问的数据。计算机可读存储介质的示例包括,但不限于:软盘、打孔带、打孔卡片、磁性硬盘驱动器、固态硬盘、快闪存储器、USB拇指驱动器、随机存取存储器(RAM)、只读存储器(ROM)、光盘、磁光盘和处理器的注册文件。光盘的示例包括致密盘(CD)和数字多功能盘(DVD)、例如CD-ROM、CD-RW、CD-R、DVD-ROM、DVD-RW或DVD-R盘。术语计算机可读存储介质还指代能够通过计算机设备经由网络或通信链路访问的各种类型的记录介质。例如数据可以通过调制解调器、通过因特网、或通过局域网取回。提及计算机可读存储介质应该被解释为可能包括多个计算机存储介质。程序的各种可执行组件或多个程序可以存储在不同的位置中。计算机可读存储介质可以例如包括在相同计算机系统之内的多个计算机可读存储介质。计算机可读存储介质也可以是分布在多个计算机系统或计算设备当中的计算机可读存储介质。
[0007] 术语“计算机存储器”或“存储器”是计算机可读存储介质的示例。计算机存储器是处理器可访问的任何存储器。计算机存储器的示例包括,但不限于:RAM存储器、寄存器和寄存器文件。在有些情况中,计算机存储器还可以包括:硬盘驱动器、软盘驱动器或固态硬盘。例如,部分存储器事实上可能是硬盘驱动器上的交换空间。提及“计算机存储器”或“存储器”应该被解释为可能包括多个存储器。存储器例如可能包括相同计算机系统之内的多个存储器。存储器还可以包括分布在多个计算机系统或计算设备当中的多个存储器。
[0008] 如在此使用的术语“处理器”涵盖能够执行程序或机器可执行指令的电子组件。提及包括“处理器”的计算设备应该被解释为可能包含多于一个处理器或处理核。处理器例如可以是多核处理器。处理器也可以指代在单个计算机系统之内或分布在多个计算机系统当中的处理器的集合。
[0009] 如在此使用的术语“网络”指网络系统,包括可以或不可以使用用于数据传输的TCP/IP协议组的公共和专用网络。示例包括因特网、内部网、外部网、电话网和其它有线和无线网络。
[0010] 如在此使用的术语“集群”指包括群集在一起的多个网络连接的服务器实例的系统。集群中的每个实例可以包含它自己的资源,诸如CPU和存储器,或者与其它实例共享资源。集群中的所有实例可以彼此通信,通常通过专用互连。
[0011] 如在此使用的术语“名称服务器”指包含网络有关的信息的文件的服务器,网络有关的信息诸如网络中所有计算机的主机名称到网络IP(“因特网协议”)地址的映射。名称服务器应请求向其它计算机和工作站提供这样的映射信息。例如,名称服务器可以是域名系统(DNS)服务器、光纤信道名称服务器、或因特网存储名称服务(iSNS)。
[0012] 如在此使用的术语“故障越过(fail-over)/故障恢复”指将业务从发生故障的服务器重定向到工作服务器和/或一旦它被重激活,恢复到最初故障的服务器。
[0013] 如在此使用的术语“I/O请求”指任何输入/输出请求、命令、CRUD(复制、读取、更新和删除)操作、或由应用使用来与计算机系统交互的其它进程。
[0014] 在一方面中,本发明涉及用于控制多个客户端对服务的访问的方法,所述服务由多个服务器的每一个提供,多个服务器的每个提供服务,该方法通过地址池控制器执行,地址池控制器可操作地耦接到名称服务器用于控制客户端对服务器的访问,所述方法包括:
[0015] -a)创建第一、第二和第三组地址,其中第一组地址包括在名称服务器中注册的地址,并且其中第二组地址包括没在在名称服务器中注册的地址,其中第三组地址包括在名称服务器中没有注册的地址,第二和第三组地址不相交(disjoint);
[0016] -b)确定多个服务器的第一个为已经发生故障、并且对其的访问将被禁止的服务器,第一服务器与第一组地址的第一地址关联;
[0017] -c)将第一地址从第一组地址移动到第三组地址;
[0018] -d)将第一地址从第一服务器移除,并且将第一地址分配给所述多个服务器的第二个;
[0019] -e)将第一地址从名称服务器移除;
[0020] -f)监视第一地址的一个或多个使用参数值;
[0021] -g)评估一个或多个监视的使用参数值,用于确定是否所述监视的一个或多个使用参数值的至少一个低于最小使用阈值;以及
[0022] -h)如果确定返回至少一个使用参数值低于最小使用阈值,则将第一地址从第二服务器移除,并且将第一地址从第三组地址移动到第二组地址;
[0023] -i)确定对所述第一服务器的访问将不再被禁止;
[0024] -j)将第二组地址的第二地址分配给第一服务器;以及
[0025] -k)将第二地址添加到名称服务器,从而允许第一服务器的故障恢复。
[0026] 所述实施例可能是有利的,因为它们减少了常常发生在服务器集群中的I/O请求故障的数量。这些故障可能由于集群的服务器的故障而发生。例如,在由第一服务器的故障触发禁止访问的情况中,一旦使得故障恢复,则将不存在I/O请求故障。这与常规的IP切换方法相反。在这些方法中,通过将地址从第二服务器移动到导致I/O请求故障的第一服务器来执行故障恢复。另一个优点是在第一服务器故障之前高速缓存了它的地址并且尝试使用该地址重新连接到发生故障的服务器的、外部设备上的客户端将由第二服务器提供服务。这不是传统方法中的情况,在传统方法中重新连接导致超时。这些优点允许集群环境的更高的可用性。
[0027] 根据另一实施例,所述地址包括IP地址、光纤信道地址和/或URL。
[0028] 根据另一实施例,名称服务器包括DNS服务器,其中第一组IP地址的每个地址在DNS服务器中注册。
[0029] 所述实施例可能是有利的,因为本发明的方法可以用于多个名称服务器,多个名称服务器诸如域名系统(DNS)服务器、光纤信道名称服务器、或因特网存储名称服务(iSNS)。这使得建立集群系统具有灵活性。
[0030] 根据另一实施例,所述多个服务器的每个服务器与至少一个地址关联,其中地址在名称服务器中注册。
[0031] 根据实施例,名称服务器可以从一个客户端接收对地址的请求,并且通过返回地址来实现请求,所述地址是分配给多个服务器的地址的一个。
[0032] 根据另一实施例,步骤k)进一步包括:从第二组地址移除第二地址,并且将第二地址添加到第一组地址作为另一第一地址。
[0033] 根据另一实施例,第二服务器保持分配给第一地址的进程,其中分配给第一地址的进程是在事件发生之前在第一服务器上已经启动的进程和/或在事件发生之后由客户端请求的进程,其中客户端在事件发生之前已经高速缓存了第一地址。
[0034] 所述实施例可能是有利的,因为它们保护在第一服务器上运行的客户端进程免于第一服务器的故障或可能禁止客户端对第一服务器的访问的任何事件。这些进程将在第二服务器上运行。
[0035] 根据另一实施例,步骤i)中的确定在修复第一服务器之后被触发。
[0036] 例如,事件的解除(lifting)是修复不可用的第一服务器和/或更新第一服务器的安装的服务实例的结果。
[0037] 在又一方面,本发明涉及包括计算机可读指令的计算机可读非瞬时存储介质,该计算机可读指令当通过处理器执行时,使得处理器执行上述实施例的任何一个的方法步骤。
[0038] 在另一方面,本发明涉及用于控制多个客户端对服务的访问的地址池控制器,所述服务由多个服务器提供,多个服务器的每个提供相同服务,地址池控制器适于执行以下步骤:
[0039] -创建第一、第二和第三组地址,其中第一组地址包括在名称服务器中注册的地址,并且其中第二组地址包括没有在名称服务器中注册的地址,其中第三组地址包括在名称服务器中没有注册的地址,第二和第三组地址不相交;
[0040] -确定多个服务器的第一个为已经发生故障、并且对其的访问将被禁止的服务器,第一服务器与第一组地址的第一地址关联;
[0041] -将第一地址从第一组地址移动到第三组地址;
[0042] -将第一地址从第一服务器移除,并且将第一地址分配给所述多个服务器的第二个;
[0043] -将第一地址从名称服务器移除;
[0044] -监视第一地址的一个或多个使用参数值;
[0045] -评估一个或多个监视的使用参数值,用于确定是否所述监视的一个或多个使用参数值的至少一个低于最小使用阈值;以及
[0046] -如果确定返回至少一个使用参数值低于最小使用阈值,则将第一地址从第二服务器移除,并且将第一地址从第三组地址移动到第二组地址;
[0047] -确定对所述第一服务器的访问将不再被禁止;
[0048] -将第二组地址的第二地址分配给第一服务器;以及
[0049] -将第二地址添加到名称服务器,从而允许第一服务器的故障恢复。
[0050] 根据另一实施例,本发明涉及用于更新多个服务器的一个或多个服务的方法,多个服务器的每一个向一个或多个客户端提供服务,服务器可操作地耦接到名称服务器,所述方法包括步骤:
[0051] 1、确定多个服务器的第一服务器,其中第一服务器的安装的服务实例需要更新,[0052] 2、确定所述多个服务器的起始服务器,
[0053] 3、在起始服务器上启动软件更新,从而将起始服务器定义为第一更新的服务器,[0054] 4、将第一服务器的工作负载重定向到第一更新的服务器,并且
[0055] 5、将第一服务器定义为另一起始服务器。
[0056] 服务器被编组到从最低到最高排序的负载级别。用于确定最低负载的服务器的标准包括当前未解决的I/O请求的数量、当前连接的客户端的数量、当前的CPU、RAM和/或网络利用。
[0057] 在步骤1中,控制器确定多个服务器的第一服务器。假定第一服务器的安装的服务实例需要更新。第一服务器与第一地址关联。第一地址包括IP地址、光纤信道地址和/或URL。
[0058] 在步骤2中,控制器确定多个服务器的起始服务器。基于三个不同的替换进程来确定起始服务器。
[0059] 在第一进程中,起始服务器被定义为不与任何地址关联的热备份服务器。因而,没有客户端可以连接热备份服务器。
[0060] 在第二替换进程中,起始服务器被定义为与第二地址关联的第一最低负载的服务器。另外,将第二地址从第一最低负载的服务器移除,并且将其分配给第二最低负载的服务器。这可能导致对于无状态I/O协议的I/O请求丢失,以及对于有状态I/O协议的连接中断。
[0061] 在第三替换进程中,如第二替换进程中那样定义起始服务器,并且另外,将第二地址从名称服务器移除。因而,在名称服务器上查找第二地址的新连接将不会接收到第二地址。然而,在将第二地址从名称服务器移除之前,客户端可能已经查找第二地址。这样的客户端可能已经建立对于第一最低负载的服务器的有状态会话。使用消耗(draining)进程来终止这些进程。例如,一旦连接的有状态客户端的数量低于第一阈值,则第二地址将被移动到第二最低负载的控制器。
[0062] 对于很多工作量,可以仅通过等待某一时间段来实现此消耗进程。例如,用于办公文档的文件服务器可能在当全部个人计算机被关闭时的办公时间末尾或在周末变得客户端较少。
[0063] 在步骤3中,控制器在起始服务器上启动软件更新。然后起始服务器被标记为第一更新的服务器。
[0064] 在步骤4中,控制器将第一服务器的工作量重定向到第一更新的服务器。另外,它将第一地址从第一服务器移除并且将它分配给第一更新的服务器。
[0065] 这可能导致对于无状态I/O协议的I/O请求丢失,以及对于有状态I/O协议的连接中断。因为第一地址已经被移动到已经更新的服务器,所以在全部服务器的更新期间将至多存在一次重新连接。
[0066] 如果所确定的第一服务器是第二最低负载的服务器,则将第一地址和第二地址从第二最低负载的服务器移除并且将它们分配给第一更新的服务器。然后第一更新的服务器被标记为第二更新的服务器。
[0067] 在步骤5中,控制器将第一服务器定义为另一起始服务器。
[0068] 在全部服务器的更新的末尾,在第二替换进程中,控制器将第一地址从第二更新的服务器移动到第一更新的服务器。在第三替换进程中,控制器执行这些步骤:
[0069] -将第二更新的服务器的第一地址从名称服务器移除,
[0070] -监视第一地址的工作量,
[0071] -如果达到预定义的阈值,则将第一地址移动到第一更新的服务器,并且[0072] -将第一地址添加到名称服务器。
[0073] 如本领域技术人员将理解,本发明的各方面可以被具体化为系统、方法或计算机程序产品。因此,如果不另外明确声明,则本发明的各方面可以采用完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或合并软件和硬件方面的实施例的形式,它们在这里可以统称为“模块”或“系统”。可以利用一个或多个计算机可读介质的任意组合。

附图说明

[0074] 在下面,将参照附图仅作为示例来更详细地描述本发明的优选实施例,附图中:
[0075] 图1示出用于运行在集群环境中控制客户端对服务的访问的方法的系统架构。
[0076] 图2是用于在集群环境中控制客户端对服务的访问的方法的流程图。

具体实施方式

[0077] 以下,图中相似标号的元件是相似的元件,或者执行相当的功能。如果功能相当,则先前已经讨论过的元件在稍后的图中将不一定讨论。
[0078] 图1描绘所提出的系统架构100,其可操作以运行用于控制多个客户端对由多个服务器的每个提供的服务的访问的过程。
[0079] 系统100提供客户端101。例如,客户端101可以是应用服务器、数据库服务器、PC、膝上型计算机、PDA、平板PC或者移动电话。它可以提供用户验证、网络/服务器访问、远程显示、对包括键盘、鼠标、本地USB的输入/输出的支持、和/或打印能力。客户端101包括查找服务,诸如DNS客户端。
[0080] 客户端101经由外部网络105通信地耦接到集群式文件存储器107。外部网络105可以是例如因特网协议(IP)网络。
[0081] 集群式文件存储器107包括地址池控制器111和多个服务器109、121、123和125。地址池控制器111控制客户端101对通过多个服务器109、121、123和125的每一个提供的服务之一的访问。每个服务器109、121、123和125可以执行任何服务器功能,该服务器功能可以包括例如数据服务器、应用服务器或网络服务器功能。每个服务器109、121、123和125被分配一个或多个地址117、127、129和131。地址117、127、129和131可以是例如IP地址、光纤信道地址或URL。
[0082] 服务器109、121、123和125可以利用内部存储容量115。内部存储容量可以是服务器109、121、123和125的部分,或者是服务器109、121、123和125可经由内部网络113访问集群式文件存储器107的部分。内部网络113可以是例如非IP消息传递协议网络、以太网或无限带网络。内部存储容量115可以包括一个或多个互连的存储器件,诸如磁盘驱动器、磁带、固态磁盘(SSD)或非易失性RAM模块。
[0083] 当客户端101请求诸如I/O请求的服务时,查找服务联系名称服务器103来查找用于提供该服务的一个地址。例如,名称服务器103可以是DNS服务器。名称服务器103可以通过回答地址117、127、129和131来实现查找服务请求。为了发出I/O请求,客户端101经由接入点119连接到具有分配的地址117、127、129和131的服务器109、121、123和125。服务器109、121、123和125使能并管理I/O请求,并且将这些请求翻译成对内部存储容量115的请求以检索并存储信息。
[0084] 地址池控制器111管理三组地址133、135和137。第一组地址133包括在名称服务器103中注册的地址。第二组地址包括没有在名称服务器103中注册的地址。第三组地址也包括没有在名称服务器中注册的地址。第二和第三组地址是不相交的(disjoint)。将参照图2更详细地描述系统100的操作。
[0085] 图2是用于控制多个客户端对服务的访问的方法的流程图。该流程图描述本发明的一般方法。通过多个服务器109、121、123和125的每一个来提供该服务。
[0086] 在步骤201中,地址池控制器111创建第一、第二和第三组地址。
[0087] 在步骤203中,地址池控制器111将多个服务器的第一个109确定为到其的访问将被禁止的服务器。第一服务器109与第一组地址133的第一地址117关联。
[0088] 由第一服务器109的故障触发访问的禁止。
[0089] 通过第一服务器109成功提供服务的到第一地址117的任何连接不再能够由第一服务器109提供服务。而且,任何尝试到第一地址的新连接将不会成功。
[0090] 在步骤205中,地址池控制器111将第一地址117从第一服务器109移除,并且将第一地址分配给多个服务器121、123和125的第二个121。
[0091] 第一地址117可能仍然有一定数量的分配的进程。这些进程是在事件发生之前在第一服务器109上已经启动的进程和/或在事件发生之后由客户端请求的进程。通常,客户端在事件发生之前已经高速缓存第一地址117。
[0092] 地址池控制器111将第一地址117从第一组地址133移动到第三组地址137。在步骤207中,地址池控制器111从名称服务器103移除第一地址117。因而第三组地址137包括没有在名称服务器103中注册但仍然可以被客户端使用的地址。
[0093] 第二服务器121或地址池控制器111监视第一地址117的一个或多个使用参数。使用参数可以是例如在与最初分配给发生故障的服务器109的地址117关联的第二服务器121上运行的进程的数量。
[0094] 第二服务器121或地址池控制器111评估一个或多个监视的使用参数值。如果监视的一个或多个使用参考值的至少一个低于最小使用阈值,则地址池控制器111移除第二服务器121上的第一地址117,并且将第一地址117从第三组地址137移动到第二组地址135。因而第二组地址135包括可用于自由分配给新的服务器的地址。这些地址没有在名称服务器103中注册,并且当前不能被客户端使用。
[0095] 在故障恢复过程中,第一服务器一被修复,地址池控制器111就在步骤209中确定对第一服务器109的访问将不再被禁止。因而,在步骤211中,地址池控制器111分配第二组地址135的任意第二地址给第一服务器109。例如,这可能再次是第二地址117或者是之前没有使用过的地址。在步骤213中,地址池控制器111将第二地址(例如117)添加到名称服务器。另外,地址池控制器111将第二地址(例如117)从第二组地址135移动到第一组地址133。第一组地址133包括在名称服务器103中注册并可以被客户端使用的地址。
[0096] 参考标号列表
[0097] 100 系统
[0098] 101 客户端
[0099] 103 名称服务器
[0100] 105 外部网络
[0101] 107 集群式文件存储器
[0102] 109,121,123,125 服务器
[0103] 111 控制器
[0104] 113 内部网络
[0105] 115 存储容量
[0106] 117,127,129,131 地址
[0107] 119 接入点
[0108] 133,135,137 地址组
[0109] 201-213 步骤