自治地保持高可用性网络引导服务的装置、系统和方法

文档序号:7969067阅读:129来源:国知局
专利名称:自治地保持高可用性网络引导服务的装置、系统和方法
技术领域
本发明涉及网络引导服务,并且更具体地涉及自治地提供保持和维持按需提供的网络服务同时对可网络引导的系统应用程序提供高可用性的方法。
背景技术
自举,或简称为引导,是启动计算机的处理。自举通常指这样的指令序列,其实际开始计算机操作系统(诸如GRUB或LILO)的启动,并且启动内核(诸如NTLDR)的装载。另外,某些计算机具有通过网络引导的能力。
网络引导,也被称为远程引导,含意是可以使用位于网络服务器上的文件,通过网络(诸如局域网(LAN)),引导计算机或客户设备。为了执行网络引导,客户计算机执行固件(诸如引导ROM),而引导服务器运行如本领域技术人员公知的网络引导服务(NBS)。当给客户计算机加电时,将引导映像文件从引导服务器下载到客户计算机的存储器内,并且然后执行。该引导映像文件可以包含用于客户计算机的操作系统或用于在引导操作系统之前执行客户管理任务的预操作系统(per-OS)应用程序。
网络引导有助于减少与管理客户计算机相关的拥有的整体成本。引导故障构成整个计算故障中的大部分,并且可能难以远程解决并且是对于远程解决来说费时的。另外,引导故障可以阻止计算机连接网络直到解决故障为止,这对于依赖企业关键应用程序的高可用性的任何企业来说都是昂贵的。
网络引导确保网络上的每一个计算机可以连接到网络(假如该计算机能够那样的话),而不管该计算机是否具有操作系统、损坏的操作系统、未格式化的硬盘驱动器或没有硬盘驱动器。网络引导允许系统管理员自动执行客户设备维护任务,诸如将应用程序或OS部署在新计算机上,扫描病毒以及关键文件备份和恢复。网络引导还允许系统管理员引导无盘系统,诸如瘦(thin)客户和嵌入式系统。
存在各种网络引导协议,但是作为当前工业标准的规范的是预引导执行环境(PXE)规范,它是有线管理(WfM)规范(通过网络帮助确保内建管理特征和维护功能的一致性水平的一种开放的工业规范)的一部分。
预引导执行环境(PXE)是一种通过网络接口自举客户计算机的协议,并且独立于客户计算机上的可用数据存储设备(诸如硬盘驱动器)和安装的操作系统。客户计算机安装有引导固件,它与网络引导服务器通信以便将引导映像文件下载到客户计算机存储器,并且然后执行该引导映像。
PXE环境一般地包括位于与多个客户计算机相同的广播域上的网络引导服务器,其中网络引导服务器配置为将引导映像下载到作出请求的客户计算机。在客户计算机上下载引导映像的该处理一般使用动态主机配置协议(DHCP)服务器、简单文件传输协议(TFTP)和PXE服务。
DHCP是客户-服务器联网协议。DHCP服务器提供特定于通常请求客户计算机使用网际协议(IP)参加到网络中所需的信息的DHCP客户计算机的配置参数。在PXE环境中,DHCP服务器给客户计算机提供IP地址。
TFTP是具有非常基本形式的FTP的功能的非常简单的文件传输协议。TFTP服务将引导映像文件从网络引导服务器传输到客户计算机。PXE服务向客户计算机提供将被下载的引导映像文件的文件名。PXE服务可以用一组预定义的应用编程接口(API)(计算机软件的一部分与另一部分相联系的方式的一组定义)扩展客户计算机固件。
引导映像下载处理还可以使用网际协议(IP)(一种由源和目的地主机用于跨包交换互连网络传递数据的面向数据的协议)、用户数据报协议(UDP)、(网际协议组中的核心协议,UDP是最小的面向消息的传输层协议)、以及通用网络设备接口(UNDI)(一种能够操作所有兼容网络接口的与硬件独立的驱动器,诸如网络接口卡(NIC))。
使用诸如DHCP、PXE和TFTP的协议和服务实现的网络引导服务正逐渐变得可用。顾客对增加对NBS的依赖性、集成和按需提供的服务的需求在急速增长。改进NBS响应时间和服务可靠性的需求随着NBS集成和使用的增加而增加。采用NBS的网络通常包括多个客户和管理服务器(诸如IBM基于PXE的远程部署管理器(RDM))。采用RDM,可以使用多个在管理服务器的控制下象往常一样工作的部署服务器。这些远程部署服务器不具有主网络引导管理功能,基本上起RDM服务器的从属的作用。
在受管理的PXE环境中,当新客户硬件引导到网络时,客户计算机通常这样操作以获得操作系统映像,从而该客户计算机可由终端用户使用。该处理,原则上,在客户计算机引导到网络,并且从DHCP服务器获得IP地址,从而客户计算机可以在网络层或7层开放系统互连(OSI)参考模型的第3层上在网络上通信时开始。该处理还给客户计算机提供可用引导服务器的身份。
接着,客户计算机定位引导服务器,该引导服务器被连接到并且服务于客户计算机所连接的相同的子网络、或子网(分级网络的一个划分部分)。从而,客户计算机可以然后从引导服务器请求其它指令。所述指令通常告诉客户计算机所请求的引导映像或网络自举程序(NBP)的文件路径。最后,客户计算机可能通过TFTP,联系发现的资源,将该NBP下载到客户计算机的随机访问存储器(RAM)。然后客户计算机可以验证NBP,并且着手执行NBP。
该事件序列是直观的。然而,其不考虑网络中断、硬件故障或软件故障。首先,如果子网的PXE服务器不可用,则该子网上没有客户计算机可被处理。并且,如果管理服务器不可用,则整个网络上没有客户计算机可被处理。
本发明描述的这样的方法,采用该方法通过确保没有单个故障点可以强化NBS环境。本发明使得NBS环境具有冗余能力,从而即使在存在许多网络、硬件和/或软件故障的情况下,NBS环境的服务将保持可用。在按需提供环境中,这是至关重要的。
当前技术可以使用冗余副本主服务器提供类似的容错。然而,在任意给定时间,至少一个服务器(通常为冗余副本主服务器)保持为未使用。在另一方面,描述的系统和方法是一种高度可用的解决方案,它结合以下特点所有网络资源的完全的使用率、系统效率的提高、同时不给网络资源施加沉重负担以便保持网络系统的完整性。
从前面的讨论中,可以明了存在对克服传统网络引导服务的局限性的装置、系统和方法的需求。具体地,这种装置、系统和方法将有益地保持和维持系统网络引导服务的所有方面的可访问性。

发明内容
作为现有技术目前状况的响应,并且具体地,作为对当前可用的网络引导服务仍然没有完全解决的现有技术中的问题和需求的响应,开发了本发明的若干实施例。因此,开发本发明以便提供克服上面所述的现有技术中的缺点中的许多或全部的用于自治地保持高可用性网络引导服务的装置、系统和方法。
给保持网络服务的工具提供包含多个模块的逻辑单元,所述模块配置为在功能上执行维持网络服务所需的操作。在所述实施例中这些模块包括监视模块、检测模块和替代模块。其它实施例包括配置模块、复制模块,激活模块和提升模块。
监视模块监视分布式逻辑链表,以便确保作为分布式逻辑列表的成员的多个部署服务器间的当前逻辑关系的正确表示。在一个实施例中,主部署服务器、主后备部署服务器和一个或多个副部署服务器是所述分布式逻辑链表的成员。
活动监视包括在预定的心跳(heartbeat)间隔内周期地验证分布式逻辑链表的准确性。另外,活动监视可以包括在预定的心跳间隔内周期地监视部署服务器的网络引导服务的完整性。该心跳间隔是一个时间段,在该时间段中期望部署服务器声明代表它自己的网络引导服务的活动完整功能以及分布式逻辑链表内的直接下游部署服务器的网络引导服务的活动完整功能。
检测模块检测分布式逻辑链表的逻辑关联中的不一致。在一个实施例中,检测模块可以响应主部署服务器故障、被去除或离线,检测逻辑链中的不一致。检测模块也可以响应主后备部署服务器和/或副部署服务器故障、被去除或离线,检测逻辑链的完整性中的不一致。另外,检测模块可以响应将部署服务器添加到系统,检测逻辑链的完整性中的不一致。
在一个实施例中,替代模块替代分布式逻辑链表内的出现故障的部署服务器的网络引导服务。在另一个实施例中,响应检测到出现故障的部署服务器或部署服务器的出现故障的组件,检测模块可以向替代模块发送信号。然后,替代模块可以通知主部署服务器接管出现故障的部署服务器的网络引导服务,并且维持对该出现故障的部署服务器的子网的网络服务。在另一个实施例中,主部署服务器可将出现故障的部署服务器的网络引导服务分配给另一个活动地起作用的部署服务器。因此,以很少的系统管理员干预或无需系统管理员的干预,自治地保持对附接到该系统的所有子网的网络引导服务的完整性。
配置模块配置部署服务器的分布式逻辑链表的逻辑关联。如上所述,配置模块包括验证模块、更新模块、去除模块和确认模块。配置模块根据服务保持协议中提出的处理操作。
在一个实施例中,验证模块验证分布式逻辑链表的逻辑关联。主部署服务器可以请求副部署服务器验证服务器联系表的内容。然后确认模块可以响应该验证请求确认服务器联系表的准确性。响应接收到来自逻辑链中的各个部署服务器的各个服务器联系表正确地表示该逻辑链的逻辑关联的确认,验证模块可以验证活动的主表的内容。
在另一个实施例中,验证模块验证链接在分布式逻辑链表内的部署服务器的可用性。通过验证模块,主部署服务器可以验证副部署服务器提供对系统上的子网的网络引导服务的可用性。验证模块还可以验证副部署服务器(诸如PXE服务器)的各个组件的活动的功能。
在一个实施例中,更新模块更新分布式逻辑链表的逻辑关联。通过更新模块,主部署服务器可以向链接在逻辑链内的所有部署服务器发送主同步脉冲。主同步脉冲请求副部署服务器更新服务器联系表以便将消息的发起者指示为主部署服务器。因此,主部署服务器例行地声明对管理资源和分布式逻辑链表的管理的活动的控制。响应检测模块检测到由于部署服务器的故障或插入而出现的分布式逻辑链表内的异常,更新模块可以发送请求以便更新一个或多个服务器联系表。
响应替代发生故障的主部署服务器,主后备部署服务器还可以通过更新模块发送主同步脉冲。在另一个实施例中,更新模块请求更新目标副部署服务器的服务器联系表,以便将目标指示为新的主后备部署服务器。
在一个实施例中,去除模块去除分布式逻辑链表内的逻辑关联。通过去除模块,主部署服务器可以向链接于逻辑链内的副部署服务器发送请求,以便去除服务器联系表的内容。例如,响应将副部署服务器添加到网络引导服务系统,去除模块可以请求将前一个链末端副部署服务器的服务器联系表的内容去除。然后更新模块更新前一个链末端副部署服务器和插入的副部署服务器两者的服务器联系表。
在一个实施例中,确认模块确认分布式逻辑链表的逻辑关联。确认模块还可以确认来自主部署服务器或与逻辑链表相关联的其它部署服务器的请求。通过确认模块,副部署服务器可以发送消息,以便确认服务器联系表是否被更新。在另一个实施例中,副部署服务器可以确认未更新服务器联系表。响应更新模块请求更新服务器联系表,确认模块可以确认更新的服务器联系表。
复制模块将活动的管理资源和活动的主表从主部署服务器复制到主后备部署服务器。不活动的管理资源和不活动的主表分别是活动的管理资源和活动的主表的完整拷贝。活动的管理资源包括部署映像,其包括网络自举程序和任何其它可网络部署的应用。
在一个实施例中,响应在活动的管理资源中添加、去除或替代部署映像,复制模块在不活动的管理资源中添加、去除或替代相同的部署映像的副本。以相同的方法,复制模块以不活动的主表的内容实时地复制活动的主表的内容。因此,在任意时刻,主后备部署服务器配备有所有管理资源的副本,并且能够执行当前主部署服务器的所有管理功能。
在一个实施例中,激活模块激活并且启用主后备部署服务器的不活动的管理资源和不活动的主表。如上所述,不活动的管理资源和不活动的主表分别是活动的管理资源和活动的主表的副本。因此,主后备部署服务器只是激活所有管理功能,并且准备一旦被提升为主部署服务器,则作为新的主部署服务器操作。
在一个实施例中,提升模块将主后备部署服务器提升为主部署服务器。在另一个实施例中,提升模块将副部署服务器提升为主后备部署服务器。在另一个实施例中,系统管理员可以禁止自动提升处理。因此,响应去除主部署服务器,将不提升主后备部署服务器。然后去除的主部署服务器可以作为主部署服务器被再次插入系统。在去除主部署服务器并且禁止自动提升服务的期间,整个系统的网络引导服务将离线。
还给出了本发明的一种用于自治地保持高可用性网络引导服务的系统。该系统可以包含在部署服务器内,该部署服务器被配置为执行网络服务处理的保持。
具体地,在一个实施例中,该系统可以包括配置为管理网络引导处理的保持的主部署服务器;耦合到主部署服务器的主后备部署服务器,主后备部署服务器配置为复制主部署服务器的管理功能;以及耦合到主后备部署服务器的副部署服务器,副部署服务器配置为给多个连接的计算机客户提供网络引导服务。
该系统还包括与主部署服务器通信的服务保持工具,该服务保持工具配置为自治地处理用于保持网络引导服务,并且维护部署服务器的分布式逻辑链表的操作。保持工具可以包括监视模块,其配置为活动地监视分布式逻辑链表;耦合到监视模块的检测模块,该检测模块配置为检测分布式逻辑链表配置中的改变;以及与检测模块通信的替代模块,该替代模块配置为替代分布式逻辑链表中的故障元素的网络引导服务。
在一个实施例中,该系统可以包括配置为指示阻止提升部署服务器作为主部署服务器的阻止指示器;以及配置为指示用于将部署服务器定位在分布式逻辑链表内更高或更低位置的优先级的优先级指示器。在另一个实施例中,主部署服务器可以包括活动主表,其配置为记录作为分布式逻辑链表的当前元素的所有成员。另外,主后备部署服务器可以包括配置为复制活动的主表的所有当前元素的不活动的主表。
在一个实施例中,部署服务器可以包括配置为记录分布式逻辑链表上的部署服务器的直接上游元素和直接下游元素的服务器联系表。
还给出信号承载介质以便存储程序,当执行该程序时,该程序执行用于自治地保持高可用性网络引导服务的操作。在一个实施例中,这些操作包括自治地监视分布式逻辑链表,检测分布式逻辑链表内的改变和替代分布式逻辑链表的故障元素。
在另一个实施例中,所述操作可以包括配置分布式逻辑链表,并且响应从检测模块接收到信号,重新配置分布式逻辑链表,以及复制与主部署服务器相关联的活动的管理资源。
该说明书全文中提及的特征、优点或类似的语言不暗示利用本发明可以实现的所有特征和优点应是在或者是在本发明的任一单个实施例中。而是,提及这些特征和优点的语言应被理解为意味着结合实施例描述的特定特征、优点或特性包括在本发明的至少一个实施例中。因此,整个本说明书中对所述特征、优点的讨论和类似的语言可以但不必指同一个实施例。
另外,本发明描述的特征、优点和特性可以用任何适合的方式结合在一个或多个实施例中。相关领域的技术人员应当理解可以实现本发明而不采用特定实施例的一个或多个特定特征或优点。在其它情况下,在某些实施例中可以认识到可能未出现在本发明的所有实施例中的附加的特征和优点。
从下面的描述和所附权利要求中将会更完整地理解本发明的这些特征和优点,或可以通过以下提出的本发明的实现来学习到本发明的这些特征和优点。


为了容易地理解本发明的优点,通过参考在附图中示出的特定实施例给出上面简单描述的本发明的更具体的描述。应当理解这些附图仅示出了本发明的典型实施例,并且因此不认为是对其范围的限制,将通过使用附图以附加的具体特性和细节描述和解释本发明,其中图1是示出了网络引导服务系统的一个实施例的示意方框图;图2是示出了主部署服务器的一个实施例的示意方框图;图3是示出了主后备部署服务器的一个实施例的示意方框图;图4是示出了副部署服务器的一个实施例的示意方框图;图5是示出了服务保持工具的一个实施例的示意方框图;图6a和6b是示出了主表数据结构的一个实施例的示意方框图;图7是示出了服务器联系表数据结构的一个实施例的示意方框图;图8是示出了包数据结构的一个实施例的示意方框图;和图9a,9b和9c是示出了服务保持方法的一个实施例的示意流程图。
具体实施例方式
本说明书中描述的许多功能单元被标记为模块,以便更特别地强调它们的实现独立性。例如,模块可以实现为包括定制的VLSI电路或门阵列、诸如逻辑芯片的现货半导体、晶体管或其它离散组件的硬件电路。模块还可以被实现在诸如场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等的可编程硬件设备内。
模块还可以被实现在由各种类型的处理器执行的软件内。可执行代码的识别出的模块可以例如包括计算机指令的一个或多个物理块或逻辑块,其可以例如被组织为对象、程序或函数。然而,识别出的模块的可执行部分不必物理地位于一起,而是可以包括存储在不同位置内的不同指令,当将这些不同指令逻辑地结合在一起时构成该模块,并且实现该模块的声明的目的。
实际上,可执行代码模块可以是单个指令,或许多指令,并且甚至可以在若干不同的代码段上分布、在不同的程序间分布以及跨若干存储器设备分布。类似地,此处可操作数据可以被在模块中识别和示出,并且可以以任意适合的形式体现和在任意适合类型的数据结构内组织。可操作数据可被作为单个数据集合收集或可以分布于不同位置(包括在不同的存储设备上),并且可以仅作为电子信号至少部分地存在于系统或网络上。
图1示出了网络引导系统100的一个实施例。系统100给多个联网的客户提供网络引导服务。系统100示出了部署服务器和客户的物理布局和它们的物理连接。部署服务器和客户的逻辑布局和逻辑关联可以与物理布局和物理连接不同。
系统100包括多个部署服务器。在多个部署服务器中可以有主部署服务器102、主后备部署服务器104、以及副部署服务器106。系统100还包括一个或多个子网108、客户网络110和服务器网络112。子网108包括一个或多个计算机客户114。主部署服务器102、主后备部署服务器104和副部署服务器106通过客户网络110连接到附接到子网108的多个计算机客户114。部署服务器可以通过服务器网络112传递服务器间通信。
虽然系统100被示出为具有一个主部署服务器102、一个主后备部署服务器104、一个副部署服务器106、3个子网108、一个客户网络110、一个服务器网络112且每个子网108具有3个计算机客户114,但可以采用任意数目的主部署服务器102、主后备部署服务器104、副部署服务器106、子网108、客户网络110、服务器网络112和计算机客户114。虽然部署服务器可以给多个子网提供服务,在任意单个子网上可能不会有多于1个部署服务器。
主部署服务器102、主后备部署服务器104和副部署服务器106中的每一个给连接到每个部署服务器所服务的子网108的多个客户计算机114提供网络自举程序(NBP)服务。每个部署服务器可以给一个或多个子网108提供服务,但是每个子网108可能不会由多于1个的部署服务器提供服务。目前,当部署服务器故障并且离线时,它所服务的整个子网108也离线。
另外,包括在下游子网108内的多个客户计算机114不能被服务,因为在没有活动的网络连接的情况下,所有的网络引导服务是不可用的。为了防止子网范围的网络引导服务中断,主部署服务器102、主后备部署服务器104和副部署服务器106被链接在分布式逻辑链表内。在一个实施例中,主部署服务器102在分布式逻辑链表内位于最顶端或最高处。主后备部署服务器104是分布式逻辑链表内的第二个元素,其直接位于主部署服务器102之下。任何其它的部署服务器逻辑地关联在主后备部署服务器104下。
由主部署服务器102管理分布式逻辑链表,并且该分布式逻辑链表允许主部署服务器102识别何时部署服务器出现故障。响应部署服务器出现故障,主部署服务器102接管出现故障的部署服务器的功能和网络引导服务。除了主部署服务器102目前已经为其服务的计算机客户108(如果有的话)之外,主部署服务器102为附接到出现故障的部署服务器的计算机客户108服务。
在一个实施例中,除了给附接于由主部署服务器102服务的子网108或多个子网108的多个计算机客户114提供网络自举程序服务之外,主部署服务器102监视管理功能和资源,并且维护分布式逻辑链表的所有成员的主表。在另一个实施例中,主后备部署服务器104复制主部署服务器102的管理资源而不启用管理功能,并且维护主部署服务器102的主表的副本。
在一个实施例中,副部署服务器106维护这样一个表,其包括分布式逻辑链表内直接上游的下一个部署服务器和直接下游的下一个部署服务器的诸如IP地址的标识。如果副部署106位于分布式逻辑链表的末端,则该表上直接下游的下一个部署服务器的标识为空。与主部署服务器102类似,主后备部署服务器104和副部署服务器106给附接于它们每个分别服务的子网108或多个子网108的多个计算机客户114提供网络自举程序服务。
类似于存储区域网络(SAN),客户网络110和/或服务器网络112可以传递传统块I/O。客户网络110和/或服务器网络112还可以诸如通过传输控制协议/网际协议(TCP/IP)网络或类似的通信协议传递文件I/O。可替换地,可以通过背板或系统总线直接连接部署服务器。在一个实施例中,系统100包括两个或更多客户网络110和/或两个或更多服务器网络112。
在某些实施例中,可以使用超文本传输协议(HTTP)、文件传输协议(FTP)、传输控制协议/网际协议(TCP/IP)、通用因特网文件系统(CIFS)、网络文件系统(NFS/NetWFS)、小型计算机系统接口(SCSI)、因特网小型计算机系统接口(iSCSI)、串行先进技术附接(SATA)、集成驱动电子设备/先进技术附接(IDE/ATA)、电子和电气工程师协会标准1394(IEEE 1394)、通用串行总线(USB)、光纤连接(FICON)、企业系统连接(ESCON)、固态存储器总线或任意类似接口实现客户网络110和/或服务器网络112。
图2示出了主部署服务器200的一个实施例。主部署服务器200可以基本上与图1的主部署服务器102类似。主部署服务器200包括通信模块202、活动管理资源204、多个部署映像205、存储器设备206、PXE服务器208、阻止指示器210、优先级指示器212和服务保持工具214。存储器设备206包括活动的主表216。在一个实施例中,活动的管理资源204可以包括多个部署映像205。主部署服务器200管理部署服务器的分布式逻辑链表。在一个实施例中,主部署服务器200在逻辑链的顶端。术语“分布式逻辑链表”可以与“逻辑链”、“逻辑表”或“逻辑链表”互换使用。
通信模块202可以管理通过服务器网络112和/或客户网络110在主部署服务器200和其它部署服务器之间的服务器间通信。通信模决202还可以管理通过客户网络110在主部署服务器200和多个计算机客户114间的网络通信。在一个实施例中,通信模块202发送服务器间消息包,以便查询和维持分布式逻辑链表的准确性。在另一个实施例中,通信模块202可配置为确认来自将被添加到分布式逻辑链表内的部署服务器链的新部署服务器的请求。
活动的管理资源204包括计算机客户114可用的程序和应用程序以便进行请求和下载。在某些实施例中,活动的管理资源204还可以包括多个用于管理和保持用于网络引导系统100的服务、以及多个部署映像205的应用程序。部署映像205可以包括网络自举程序和任意其它网络部署程序。在一个实施例中,管理资源204仅在主部署服务器200内是活动和启用的。
示出的存储器设备206包括活动的主表216。存储器设备206可以起缓冲区(未示出)的作用,以便提高网络引导服务系统100的I/O性能,并且存储为主部署服务器200的操作而设计的微代码。该缓冲区或高速缓存用于保持来自客户计算机114的最近请求的结果,并且用于预取具有在不远的将来被请求的高可能性的数据。存储器设备206可由一个或多个非易失半导体设备(诸如闪速存储器、静态随机访问存储器(SRAM)、非易失随机访问存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、NAND/AND、NOR、分位线NOR(DINOR)或任意其它类似的存储器设备)构成。
主部署服务器200维护活动的主表216。活动的主表216是主联系表。活动的主表216对分布式逻辑链表的所有部署服务器当前成员进行索引。主部署服务器200通过在它自己和分布式逻辑链表成员间传递消息维护活动主表216。分布式逻辑链表的成员可以包括任意部署服务器。主表216指示主部署服务器200是部署服务器的逻辑链的活动的主部署服务器。
在一个实施例中,主部署服务器200查询该逻辑链的成员的当前状态,并且接收来自被查询的成员的确认,以便确认该成员当前是活动的并且在线。响应未接收到对查询的确认或响应,主部署服务器200可以确定逻辑链的成员不活动并且离线。在一个实施例中,响应主部署服务器200确定出逻辑链的成员不活动且离线,主部署服务器200可以将该成员从逻辑链中去除,并且更新活动的主表216,以便反映不起作用的成员。
预引导执行环境(PXE)服务器208提供来自主部署服务器200的PXE功能。因此,除了监视管理资源和维护分布式逻辑链表之外,主部署服务器200应答来自连接于主部署服务器200所服务的子网108的客户计算机114的PXE请求。另外,主部署服务器200给当前下载网络自举程序的计算机客户114提供容错。例如,如果用于特定子网108的PXE服务器208在计算机客户114正处于下载网络自举程序的中间时出现故障,主部署服务器200可以替代故障PXE服务器208的PXE功能,并且接管对该特定子网108的网络引导服务。
阻止指示器210指示是否阻止部署服务器成为主部署服务器200。在一个实施例中,阻止指示器210可以是二进制值。在另一个实施例中,可以由系统管理员确定该二进制值,其中二进制1可以表示阻止部署服务器成为主部署服务器200,并且二进制0可以表示允许部署服务器成为主部署服务器200。在另一个实施例中,可由硬件特征、软件版本和部署服务器的其它类似属性确定阻止指示器210。在一个实施例中,在主部署服务器200保持不活动且在线时锁定活动的主部署服务器200的阻止指示器210不能被改变。
优先级指示器212表示部署服务器与相同逻辑链上的另一个部署服务器相比是否更具有成为主部署服务器200的资格。例如,主部署服务器200可以确定某个部署服务器比逻辑链中的另一个部署服务器具有更少的运行时间,并且因此具有更小的出现故障的可能。主部署服务器200还可以确定部署服务器与该链中的另一个部署服务器相比具有改进的硬件特征和/或较新的软件/固件安装版本。因此,主部署服务器200可以给某个部署服务器优先级,以便确保该部署服务器被放置在逻辑链内较高处。在一个实施例中,如果主部署服务器200出现故障,逻辑链中较高的部署服务器将在逻辑链更下部的部署服务器之前被提升为主部署服务器200。
优先级指示器212可以配置为指示插入的部署服务器是新的主部署服务器200。例如,系统管理员可能会从逻辑链中去除主部署服务器200,但又希望将去除的主部署服务器200作为主部署服务器200返回到逻辑链。响应去除主部署服务器200,主部署服务器200的直接下游的部署服务器被提升为新的主部署服务器200。在一个实施例中,当将去除的主部署服务器200重新插入逻辑链中时,将重新插入的主部署服务器200附加在链的末端,即逻辑链的最后的部署服务器。在另一个实施例中,重新插入的主部署服务器200取代当前的主部署服务器200,并且作为主部署服务器200再次添加到逻辑链。根据优先级指示器212的值,重新插入的主部署服务器200取代当前的主部署服务器200。优先级指示器212可以编码为二进制值,或任意其它类似的编码方案。
一般地,服务保持工具214可以实现网络服务处理的保持。参考图5详细示出并且描述服务保持工具214的一个例子。
服务器联系表218是分布式逻辑链表,其存储直接上游的下一个部署服务器和直接下游的下一个部署服务器的标识(诸如IP地址)。服务器联系表218是自我修复和自我维护的。响应该表的失效,诸如部署服务器离线,修复断开的逻辑链并且绕过离线的部署服务器重新路由。因此,当需要时以新的逻辑关联更新服务器联系表218,并且更新活动的主表216,以反映分布式逻辑链表的当前状态。
响应将部署服务器插入网络系统100,维护该逻辑链,并且将插入的部署服务器附加到逻辑链的末端。因此,除了活动的主表216之外,仅需要更新前一个链末端部署服务器和新的链末端部署服务器的服务器联系表218。当然,不活动的主表304连续保持活动的主表216上存储的所有数据的实时副本。
图3示出了主后备部署服务器300的一个实施例。主后备部署服务器300可以基本上与图1的主后备部署服务器104类似。主后备部署服务器300包括类似于图2的主部署服务器200的通信模块202、多个部署映像205、存储器设备206、PXE服务器208、阻止指示器210、优先级指示器212和服务保持工具214。在一个实施例中,在主后备部署服务器300保持为活动和在线时锁定主后备部署服务器300的阻止指示器210不可改变。
主后备部署服务器300还可以包括不活动管理资源302(活动管理资源204的未激活副本)。类似于主部署服务器200,响应给子网提供部署映像205服务,主后备部署服务器300可以包括多个部署映像205。相反,主后备部署服务器300的存储器设备206包括不活动的主表304。主后备部署服务器300是主部署服务器200的后备副本。在一个实施例中,主后备部署服务器300是逻辑链中的第二个部署服务器,因此直接跟在主部署服务器200之后。
在一个实施例中,在主后备部署服务器300中管理资源302和主表304是不活动和禁止的。虽然主后备部署服务器300的不活动管理资源302和不活动的主表304是禁止的,它们是主部署服务器200的活动管理资源204和活动的主表216的实时副本。在主部署服务器200出现故障的情况下,主后备部署服务器300激活并且启用不活动管理资源302、不活动的主表304以及主部署服务器200的所有必需的管理功能。
在一个实施例中,不活动的主表304指示主后备部署服务器300是部署服务器逻辑链的不活动主服务器。因此,当主后备部署服务器300被提升为活动的主部署服务器200时,不活动的主表304不需要更新,而是在作为活动的主表216被激活时,已经包括逻辑链的所有成员的最新表。
图4示出了副部署服务器400的一个实施例。副部署服务器400可以基本上与图1的副部署服务器106类似。副部署服务器400包括类似于图2的主部署服务器200和图3的主后备部署服务器300的通信模块202、存储器设备206、PXE服务器208、阻止指示器210、优先级指示器212、服务保持工具214、服务器联系表218。
与主部署服务器200和主后备部署服务器300不同,附接于副部署服务器400的存储器设备206不包括活动的主表216,也不包括不活动的主表304。而是,副部署服务器400上的存储器设备206仅包括服务器联系表218。副部署服务器400也不包括任何管理资源。
图5示出了服务保持工具500的一个实施例,它可以基本上类似于图2的服务保持工具214。服务保持工具500保持与分布式逻辑链表相关联的网络服务。服务保持工具500包括监视分布式逻辑链表的监视模块502、检测分布式逻辑链表的逻辑设置中的变化的检测模块504、以及替代分布式逻辑链表的故障成员的网络引导服务的替代模块506。主部署服务器200、主后备部署服务器300和一个或多个副部署服务器400是分布式逻辑链表的成员。
服务保持工具500还包括配置分布式逻辑链表的配置模块508、复制主部署服务器200的管理资源的复制模块510、激活主后备部署服务器300的管理资源的激活模块512、以及将主后备部署服务器300提升为主部署服务器200和/或将副后备部署服务器400提升为主后备部署服务器300的提升模块514。监视模块502包括心跳间隔516,其确定监视模块502监视分布式逻辑链表的频率。
配置模块508包括验证分布式逻辑链表的当前逻辑设置的验证模块518、更新分布式逻辑链表的逻辑设置的更新模块520、去除分布式逻辑链表的存储内容的去除模块522、以及确认分布式逻辑链表的当前内容的确认模块524。可以根据服务保持协议激活服务保持工具500。服务保持协议可以建立主部署服务器200可以监视分布式逻辑链表的方式、检测网络引导服务丢失以及随后替代和维持网络引导服务的方式。
如图2中所述,服务保持工具500保持网络引导服务的预先配置的等级,并且维持对网络自举程序和其它网络部署应用程序的高的可用性。响应部署服务器离线(或是有计划的或是意外的),服务保持工具500保持与部署服务器离线之前相同的网络引导服务等级。服务保持工具500给网络系统100提供多步服务保持,并且去除网络基础设施中的单个故障点。
监视模块502监视分布式逻辑链表,以便确保作为分布式逻辑链表的成员的多个部署服务器间的当前逻辑关系的正确表示。在一个实施例中,主部署服务器200、主后备部署服务器300和一个或多个副部署服务器400是分布式逻辑链表的成员。
在一个实施例中,主部署服务器200连续地与主后备部署服务器300和一个或多个副部署服务器400来回发送消息(非常类似通信心跳),以便确认分布式逻辑链表的所有成员是活动的,并且部署服务器间存在活动的逻辑链路。当部署服务器在预定的通信超时间隔内未能检测到来自另一个部署服务器的预期的活动通信心跳时,逻辑链失效。在一个实施例中,部署服务器请求来自逻辑链中直接下游的部署服务器的应答。响应接收到应答,部署服务器通知主部署服务器200,因此主部署服务器200验证活动的主表216的内容。
如上所述,活动监视包括在预定的心跳间隔516内周期地验证分布式逻辑链表的准确性。因此,活动监视可以包括在预定的心跳间隔516内周期地监视部署服务器的网络引导服务的完整性。心跳间隔516是期望部署服务器表明代表其自己的网络引导服务的活动完整功能和分布式逻辑链表内直接下游的部署服务器的网络引导服务的活动完整功能的时间段。
在部署服务器是逻辑链中的最后的副部署服务器400的情况下,链末端的部署服务器仅声明代表其自己的网络引导服务的活动完整功能。因此,由其自身相关地验证以及由直接上游的另一个部署服务器独立验证每个部署服务器。在逻辑链中没有直接上游的部署服务器的主部署服务器200的情况下,主后备部署服务器300和/或任意副后备部署服务器400可以验证主部署服务器200在线,并且维持网络引导服务的活动功能。
检测模块504检测分布式逻辑链表的逻辑关联的不一致。在一个实施例中,检测模块504可以响应主部署服务器200出现故障、被去除或离线,检测到逻辑链中的不一致。检测模块504还可以响应主后备部署服务器300和/或副后备部署服务器400出现故障、被去除或离线,检测到逻辑链的完整性中的不一致。另外,检测模块504可以响应部署服务器被添加到系统100而检测到逻辑链的完整性中的不一致。最后,但不是排他地,检测模块504可以检测部署服务器的单个或个别组件或服务故障。
在一个实施例中,监视模块502和检测模块504可以与某些用于保持网络引导服务的协议相关联。响应检测模块504未能检测到分布式逻辑链表的完整性中的任何不一致,可以执行维持协议以便维持逻辑链的完整性。响应检测模块504检测到部署服务器离线,可以执行恢复协议以便恢复和修复逻辑链的完整性。响应检测模块504检测到将部署服务器添加到系统100,可以执行恢复和插入协议以便恢复并将新的部署服务器插入逻辑链,并且相应地修改逻辑链,以便反映分布式逻辑链表的新元素。
在一个实施例中,替代模块506替代分布式逻辑链表内的出现故障的部署服务器的网络引导服务。在另一个实施例中,响应检测到出现故障的部署服务器或部署服务器的故障组件,检测模块504可以向替代模块506发送信号。然后替代模块506可以通知主部署服务器200,以便接管出现故障的部署服务器的网络引导服务,并且维持对出现故障的部署服务器的子网108的网络服务。在另一个实施例中,主部署服务器200可以将出现故障的部署服务器的网络引导服务分配给另一个活动地起作用的部署服务器。因此,以很少的系统管理员干预或没有系统管理员干预自治地保持对附接于系统100的所有子网108的网络引导服务的完整性。
配置模块508配置部署服务器的分布式逻辑链表的逻辑关联。如上所述,配置模块508包括验证模块518、更新模块520、去除模块522以及确认模块524。配置模块508根据服务保持协议中提出的处理操作。
在一个实施例中,附接于网络引导服务系统100的部署服务器在能力和功能上是等同的,并且每一个提供相同等级的网络引导服务。附接于系统100的部署服务器竞争成为活动的主部署服务器200。配置模块508将在线的第一个活动的部署服务器配置为主部署服务器200。然后将主部署服务器200检测到的第一个活动的部署服务器配置为主后备部署服务器300。将所有其它部署服务器配置为副部署服务器400。
在一个实施例中,系统管理员可以给部署服务器分配优先级。预先配置的优先级指示器212可以确定哪个部署服务器被配置为主部署服务器200,并且然后配置模块508可以根据它们各自的优先级等级对其余的部署服务器排序。在另一个实施例中,配置模块508可以根据阻止指示器210的值给部署服务器排序。响应阻止指示器210指示阻止将部署服务器提升为主部署服务器200,配置模块508可以将该部署服务器放置在逻辑链的末端。
在一个实施例中,验证模块518验证分布式逻辑链表的逻辑关联。主部署服务器200可以请求副部署服务器400验证服务器联系表218的内容。然后确认模块524可以响应该验证请求确认服务器联系表218的准确性。响应从逻辑链内的每个部署服务器接收到各个服务器联系表218准确地表示逻辑链的逻辑关联的确认,验证模块518可以验证活动的主表216的内容。
在另一个实施例中,验证模块518验证分布式逻辑链表内链接的部署服务器的可用性。主部署服务器200通过验证模块518可以验证副部署服务器400给系统100上的子网108提供网络引导服务的可用性。验证模块518还可以验证副部署服务器400的各个组件(诸如PXE服务器208)的活动功能。
在一个实施例中,更新模块520更新分布式逻辑链表的逻辑关联。通过更新模块520,主部署服务器200可以向逻辑链中链接的所有部署服务器发送主同步脉冲。主同步脉冲请求副部署服务器400更新服务器联系表218,以便将消息的发起者指示为主部署服务器200。因此,主部署服务器200例行地声明对管理资源和分布式逻辑链表的管理的活动的控制。响应检测模块504检测到分布式逻辑链表内由于部署服务器的故障或插入产生的异常,更新模块520可以发送请求以便更新一个或多个服务器联系表218。
响应替代故障的主部署服务器200,主后备部署服务器300还可以通过更新模块520发送主同步脉冲。在另一个实施例中,更新模块520请求更新目标副部署服务器400的服务器联系表218,以便将目标指示为新的主后备部署服务器300。
在一个实施例中,去除模块522去除分布式逻辑链表的逻辑关联。通过去除模块522,主部署服务器200可以向逻辑链内链接的副部署服务器400发送请求,以便去除服务器联系表218的内容。例如,响应将副部署服务器400添加到网络引导服务系统100,去除模块522可以请求去除前一个链末端副部署服务器400的服务器联系表218的内容。然后更新模块520更新前一个链末端副部署服务器400和插入的副部署服务器400两者的服务器联系表218。
在一个实施例中,确认模块524确认分布式逻辑链表的逻辑关联。确认模块524还可以确认来自主部署服务器200或与逻辑链相关联的其它部署服务器的请求。通过确认模块524,副部署服务器400可以发送消息,以便确认是否更新服务器联系表218。在另一个实施例中,副部署服务器400可以确认未更新服务器联系表218。响应更新模块520请求更新服务器联系表218,确认模块524可以确认更新的服务器联系表218。
复制模块510将活动的管理资源204和活动的主表216从主部署服务器200复制到主后备部署服务器300。不活动管理资源302和不活动的主表304分别是活动管理资源204和活动的主表216的完整拷贝。活动的管理资源204可以包括部署映像205,其包括网络自举程序和任意其它可网络部署的应用程序。
在一个实施例中,响应在活动的管理资源204内添加、去除或替代部署映像205,复制模块510在不活动管理资源302内添加、去除或替代相同的部署映像205的副本。复制模块510还可以在副部署服务器400内添加、去除或替代相同部署映像205的副本。以相同方式,复制模块510实时地以不活动的主表304的内容复制活动的主表216的内容。因此,在任意时刻,主后备部署服务器300配备有所有管理资源的副本,并且能够执行当前主部署服务器200的所有管理功能。
在另一个实施例中,响应主后备部署服务器300替代出现故障的主部署服务器200作为新的主部署服务器200,复制模块510可以配置为复制活动的管理资源204和活动的主表216的内容。复制模块510复制活动的管理资源204和活动的主表216到替代被提升的主后备部署服务器300作为新的主后备部署服务器300的副部署服务器400内。
在一个实施例中,激活模块512激活并且启用主后备部署服务器300的不活动管理资源302和不活动的主表304。如上所述,不活动管理资源302和不活动的主表304分别是活动的管理资源204和活动的主表216的副本。因此,主后备部署服务器300仅激活所有的管理功能,并且准备一旦被提升为主部署服务器200就作为新的主部署服务器200操作。
在另一个实施例中,激活模块512激活添加到部署服务器的分布式逻辑链表的副部署服务器400的PXE服务器208。主部署服务器200可以将子网108分配给新添加的副部署服务器400,并且然后通过激活模块512激活网络引导服务。
在一个实施例中,提升模块514将主后备部署服务器300提升为主部署服务器200。在另一个实施例中,提升模块514将副部署服务器400提升为主后备部署服务器300。在另一个实施例中,系统管理员可以禁止自动提升处理。因此,响应去除主部署服务器200,将不提升主后备部署服务器300。可以将去除的主部署服务器200再次作为主部署服务器200插入系统100。在主部署服务器200被去除并且禁止自动提升服务的时间段内,整个系统100的网络引导服务将离线。
图6a和6b是示出了可以由图2的主部署服务器和/或图3的主后备部署服务器300实现的主表数据结构600的一个实施例的示意框图。为了方便起见,主表数据结构600在第一部分600a和第二部分600b中示出,但是被通称为主表数据结构600。此处参考图1的网络引导服务系统100描述主表数据结构600。
主表数据结构600可以包括多个字段,每个字段由一个位或一系列的位构成。在一个实施例中,主部署服务器200采用与部署服务器的分布式逻辑链表相关联的主表数据结构600。主表数据结构600包括长度可以改变的多个字段。示出的主表数据结构600不是对主表数据结构600的全部的描述,而是给出了某些关键元素。
主表数据结构600a可以包括主服务器ID602、主后备服务器ID604和一个或多个下一个下游服务器ID606。主表数据结构600b可以包括下面的字段总逻辑元素608、主后备服务器状态610和一个或多个下一个下游服务器状态612。
主服务器ID602表示当前主部署服务器200的标识。在一个实施例中,部署服务器的标识包括分配给特定部署服务器的网际协议(IP)地址。主后备服务器ID604表示当前主后备部署服务器300的标识。下一个下游服务器ID606表示直接逻辑关联在逻辑链内的主后备部署服务器300下的副部署服务器400的标识。从逻辑地关联在主后备部署服务器300下的第一副部署服务器400往下直到逻辑链底部的链末端副部署服务器400的下一个下游服务器ID606的单独字段被包括在主表数据结构600内。
如前所述,主后备部署服务器300以一个例外保持活动的主表216的拷贝。修改主服务器ID602以便表示主后备部署服务器300的标识。换言之,将主服务器ID602从主表数据结构600中去除,从而,主后备服务器ID604位于主服务器ID602的位置,将主后备部署服务器300指示为主部署服务器200。因此,在将主后备部署服务器300提升为主部署服务器200后,不活动的主表304立即生效,并且在提升之后成为活动的主表216。然后提升后的主部署服务器200(前主后备部署服务器300)将下一个可用的下游副部署服务器400提升为新的主后备部署服务器300,并且复制模块510启动活动的管理资源204的复制。
总逻辑元素608字段表示与分布式逻辑链表逻辑关联的部署服务器的总数。在一个实施例中,存储的总逻辑元素608的值排除了主部署服务器200,从而,可以从0到n变化。响应主部署服务器200是唯一的部署服务器,总逻辑元素608字段存储值“0”。因此存储的值“0”表示没有主后备部署服务器300。存储的值“1”表示有主后备部署服务器300但是没有副部署服务器400。存储的值“2”表示存在主后备部署服务器300和一个副部署服务器400。存储的值“3”或更多,直到n,表示存在两个或更多,直到n-1个逻辑链接的副部署服务器400。
主后备服务器状态610字段表示主后备部署服务器300的当前操作状态。在一个实施例中,主后备服务器状态610字段可以包括布尔逻辑1字节逐位累积值,其中位0表示主后备部署服务器300对来自主部署服务器200的心跳信号的响应。另外,对于主后备部署服务器300,位1和位2可以分别表示下一个上游和下游部署服务器的响应。
在一个实施例中,位0设置为“0”可以表示主后备部署服务器300以完全功能在线,并且位0设置为“1”可以表示主后备部署服务器300未响应来自主部署服务器200的心跳信号。在另一个实施例中,位1和/或位2设置为“1”可以表示上游部署服务器和/或下游部署服务器报告主后备部署服务器300离线。而位1和/或位2设置为“0”可以表示上游部署服务器和/或下游部署服务器报告主后备部署服务器300在线。
下一个下游服务器状态612字段表示主后备部署服务器300的直接下游副部署服务器400的当前操作状态,并且当多个副部署服务器400被添加到系统100时以同样方式继续。类似于主后备服务器状态610,下一个下游服务器状态612字段可以包括布尔逻辑1字节逐位累积值,其中位0表示副部署服务器400对来自主部署服务器200的心跳信号的响应。另外,对于副部署服务器400,位1和位2可以分别表示下一个上游和下游部署服务器的响应。
在一个实施例中,位0设置为“0”可以表示副部署服务器400以全部功能在线,并且位0设置为“1”可以表示副部署服务器400未响应来自主部署服务器200的心跳信号。在另一个实施例中,位1和/或位2设置为“1”可以表示上游部署服务器和/或下游部署服务器报告副部署服务器400离线。而位1和/或位2设置为“0”可以表示上游部署服务器和/或下游部署服务器报告副部署服务器400在线。
图7示出了与副部署服务器400相关联的服务器联系表数据结构700的一个实施例。服务器联系表数据结构700可以包括多个字段,每个字段由1位或一系列位构成。在一个实施例中,副部署服务器400采用与部署服务器的分布式逻辑链表相关联的服务器联系表数据结构700。服务器联系表数据结构700包括长度可以改变的多个字段。示出的服务器联系表数据结构700不是对服务器联系表数据结构700的全部的描述,而是给出了某些关键元素。服务器联系表数据结构700包括服务器角色702、主服务器ID704、上游服务器ID706和下游服务器ID708。
服务器角色702表示服务器联系表数据结构700的所有者或持有者的角色。在一个实施例中,服务器角色702可以是范围从x00到x0F的十六进制值或其它类似的编码。例如,0(x00)可以表示服务器联系表数据结构700的所有者是主部署服务器200,并且1(x01)可以表示服务器联系表数据结构700的所有者是主后备部署服务器300。值2(x02)可以表示有效的副部署服务器400。服务器角色702还可以结合图2的阻止指示器210工作,其中15(x0F)可以表示阻止相关联的部署服务器被提升为主部署服务器200。
主服务器ID704表示当前主部署服务器200的标识。类似于主表数据结构600,部署服务器的标识可以包括分配给特定部署服务器的网际协议(IP)地址。上游服务器ID706表示逻辑关联在分布式逻辑链表内的直接上游的部署服务器的标识。下游服务器ID708表示逻辑关联在分布式逻辑链表内直接下游的部署服务器的标识。
图8给出了与主部署服务器200、主后备部署服务器300和/或副部署服务器400相关联的消息包数据结构800的一个实施例。消息包数据结构800可以包括多个字段,每个字段由1位或一系列位构成。在一个实施例中,主部署服务器200采用消息包数据结构800将消息发送到另一个部署服务器。消息包数据结构800包括长度可以改变的多个字段。示出的消息包数据结构800不是对消息包数据结构800的全部的描述,而是给出了某些关键元素。消息包数据结构800包括源ID802、目的地ID804和厂商选项806。
源ID802表示消息包的发起者的标识。类似于主表数据结构600,部署服务器的标识可以包括分配给特定部署服务器的网际协议(IP)地址。目的地ID804表示消息包的目标的标识。厂商选项806表示消息包的定义。换句话说,厂商选项806是消息包描述符。PXE协议使用厂商选项标签,即“选项60”,以将PXE响应和标准DHCP响应区分开。供应商选项806给出对PXE消息包的进一步定义,并且与已有的“选项60”厂商选项标签结合使用。
在一个实施例中,厂商选项806可以与验证模块518结合使用,以便将消息包指示为对验证服务器联系表218的请求。在另一个实施例中,厂商选项806可以与更新模块520结合使用,以便将消息包指示为对更新服务器联系表218的请求。在另一个实施例中,厂商选项806可以与确认模块524结合使用,以便将消息包指示为更新了服务器联系表218的确认。因此,厂商选项806可以与前面描述的所有通信和消息(包括与发现和插入协议、维持协议、恢复协议和与系统100上的网络引导服务的保持相关联的任意其它协议相关联的消息)结合使用。
图9a,9b和9c给出了示出了可由图5的服务保持工具500实现的服务保持方法900的一个实施例的示意流程图。为了方便起见,服务保持方法900在第一部分900a、第二部分900b和第三部分900c中示出,但是其被统称为服务保持方法900。此处参考图1的网络引导服务系统100描述服务保持方法900。
服务保持方法900a包括指定902主部署服务器200,指定904主后备部署服务器300,指定906一个或多个副部署服务器400,配置908活动的主表216、不活动的主表304和服务器联系表218,验证910活动的主表216和任意服务器联系表218,监视912部署服务器的逻辑分布以及确定914是否检测到事件的操作。
服务保持方法900b包括确定916检测到的事件是否是主部署服务器200故障,确定918检测到的事件是否是主后备部署服务器300故障,将主后备部署服务器300提升920为主部署服务器200,激活922被提升为后备部署服务器200的主后备部署服务器300内的不活动管理资源302,将新的主部署服务器200下游的下一个可用副部署服务器400提升924为新的主后备部署服务器300,以及将新的主部署服务器200的管理资源复制926到新的主后备部署服务器300的操作。
服务保持方法900c包括确定938检测到的事件是否是副部署服务器400故障,确定940检测到的事件是否是副部署服务器400插入,以及在需要时提升942插入的副部署服务器400的操作。服务保持方法900c还包括替代928故障的部署服务器的网络引导服务,去除930联系表的当前内容,更新932服务器联系表218的内容,验证934服务器联系表218的内容,以及确认936服务器联系表218的内容正确的操作。
服务保持方法900启动与主部署服务器200、主后备部署服务器300和/或副部署服务器400相关联的服务保持装置500的服务保持能力。虽然为了清楚起见以某个连续顺序给出了服务保持方法900,网络引导服务系统100可以并行地和/或不必以给出的顺序执行这些操作。
服务保持方法900开始并且配置模块508指定902主部署服务器200,因此开始建立部署服务器的分布式逻辑链表。主部署服务器200是分布式逻辑链表的最顶端节点。在一个实施例中,配置模块508指定902在线的第一个可用部署服务器作为主部署服务器200。在另一个实施例中,系统管理员可以指定902主部署服务器200。
接着,配置模块508指定904主后备部署服务器300。在一个实施例中,配置模块508将在线的第二个可用部署服务器指定904为主后备部署服务器300。主后备部署服务器300是分布式逻辑链表的第二个节点。配置模块508可以指定904联系主部署服务器200的第一个部署服务器作为主后备部署服务器300。在另一个实施例中,系统管理员可以指定904主后备部署服务器300。
接着,在需要时配置模块508指定906一个或多个副部署服务器400。在一个实施例中,配置模块508指定906主部署服务器200和主后备部署服务器300之后的所有其它部署服务器作为副部署服务器400。所有副部署服务器400是逻辑地关联在分布式逻辑链表内的主部署服务器200和主后备部署服务器300之下的节点。在另一个实施例中,系统管理员可以指定906副部署服务器400。在另一个实施例中,系统管理员可以基于各个设备属性,诸如阻止配置模块508指定相关联的部署服务器作为主部署服务器200的阻止指示器210,以特定顺序放置副部署服务器400。
在部署服务器的指定之后,配置模块508配置908主部署服务器200的活动的主表216。配置模块508可以向复制模块510发送信号,以便将活动的主表216拷贝到不活动的主表304内。另外,配置模块508可以配置908各个部署服务器的服务器联系表218。然后,验证模块518可以验证910活动的主表216和任意服务器联系表218。
在验证之后,初始化监视模块502,并且开始监视912分布式逻辑链表内的部署服务器的逻辑关联。接着,检测模块504确定914是否发生了事件。事件可以包括部署服务器故障、从系统100去除部署服务器、或将部署服务器添加到系统100、以及其它与分布式逻辑链表内的异常相关联的可能事件、或其它系统事件。如果检测模块504未在预配置的间隔(诸如心跳间隔516)内检测到事件,则服务保持方法900继续通过监视模块502监视912分布式逻辑链表的完整性。
因此,如果检测模块504检测到事件,则检测模块504可以确定916检测到的事件是否是由于主部署服务器200出现故障引起的。在一个实施例中,检测模块504可以结合验证模块518估计产生事件的原因。如果检测模块504未确定916故障的主部署服务器200触发了该事件,则检测模块504可以确定918检测到的事件是否是由于主后备部署服务器300出现故障引起的。
如果检测模块504确定916出现故障的主部署服务器200触发了该事件,则提升模块514将主后备部署服务器300提升为新的主部署服务器200。接着,激活模块512激活922并且启用被提升的主部署服务器300的不活动管理资源302。激活模块512还可以激活不活动的主表304成为活动的主表216。
接着,提升模块514将下一个可用的副部署服务器400提升924为新的主后备部署服务器300。提升模块514提升924逻辑关联在新的主部署服务器200的直接下游的下一个符合条件的副部署服务器400。只要阻止指示器210不阻止副部署服务器400提升,副部署服务器400就是符合提升条件。
在提升之后,复制模块510将主部署服务器200的活动的管理资源204复制926到新的主后备部署服务器300的不活动管理资源302。复制模块510还可以将主部署服务器200的活动的主表216复制926到新的主后备部署服务器300的不活动的主表304。
接着,替代模块506替代928故障的部署服务器,(在该情况下,主部署服务器200)的网络引导服务。新的主部署服务器200可以接管出现故障的部署服务器的网络引导服务,或可以将网络引导服务分配给逻辑链中的另一个部署服务器。然后去除模块522去除930受影响的服务器联系表218的当前内容,或请求受出现故障的部署服务器影响的任意部署服务器去除930服务器联系表218。一般地,出现故障的部署服务器影响逻辑上位于出现故障的部署服务器的直接上游和/或直接下游的部署服务器的服务器联系表218。
然后更新模块520更新932受影响的服务器联系表218的内容。接着,验证模块518验证934受影响的服务器联系表218的更新内容。在验证之后,确认模块524确认936更新和验证了服务器联系表218。然后,服务保持方法900返回以便监视912分布式逻辑链表的完整性和相关联的部署服务器的状态。
如果检测模块504确定918检测到的事件是由于主后备部署服务器300出现故障引起的,则提升模块514将逻辑链中下游的下一个符合条件的副部署服务器400提升924为新的主后备部署服务器300。然后复制模块510将主部署服务器200的活动的管理资源204复制到新的主后备部署服务器300的不活动的管理资源302。
然后替代模块506替代928出现故障的部署服务器(在该情况下,主后备部署服务器300)的网络引导服务。接着,去除模块522去除930任何受影响的服务器联系表218的当前内容,或请求受出现故障的部署服务器影响的任意部署服务器去除930它们的服务器联系表218。
然后,更新模块520更新932受影响的联系表218的内容。接着,验证模块518验证934受影响的联系表218的更新内容。在验证之后,确认模块524确认936更新和验证了服务器联系表218。然后,服务保持方法900返回以便监视912分布式逻辑链表的完整性和相关联的部署服务器的状态。
如果检测模块504确定918检测到的事件不是由于主后备部署服务器300出现故障引起的,则检测模块504确定938检测到的事件是否是由于副部署服务器400出现故障引起的。如果检测模块504确定938检测到的事件不是由于副部署服务器400出现故障引起的,则检测模块504确定940检测到的事件是否是由于插入副部署服务器400引起的。
如果检测模块504确定938检测到的事件是由于副部署服务器400出现故障引起的,则替代模块506替代928出现故障的部署服务器(在该情况下,副部署服务器400)的网络引导服务。接着,去除模块522去除930受影响的服务器联系表218的当前内容,或请求受出现故障的部署服务器影响的任意部署服务器去除930它们的服务器联系表218。
然后,更新模块520更新932受影响的联系表218的内容。接着,验证模块518验证934受影响的联系表218的更新内容。在验证之后,确认模块524确认936更新和验证了服务器联系表218。然后,服务保持方法900返回以便监视912分布式逻辑链表的完整性和相关联的部署服务器的状态。
如果检测模块504确定940检测到的事件不是由于插入副部署服务器400引起的,则服务保持方法900结束。在一个实施例中,服务保持方法900通知系统管理员检测模块504检测到未知事件。在另一个实施例中,服务保持方法900可以返回以便监视912分布式逻辑链表的完整性。可替换地,服务保持方法900可以包括附加定义的事件,并且继续推测触发的事件的原因。
如果检测模块504确定940检测到的事件是由于插入副部署服务器400引起的,则当需要时提升模块514可以提升942插入的副部署服务器400。例如,系统管理员可以给予插入的副部署服务器400由优先级指示器212指示的高于已经逻辑链接于逻辑链中的其它副部署服务器400的优先级。
接着,去除模块522去除930任何受影响的服务器联系表218的当前内容或请求受出现故障的部署服务器影响的任意部署服务器去除930它们的服务器联系表218。然后,更新模块520更新932受影响的联系表218的内容。
在更新之后,验证模块518验证934受影响的联系表218的更新内容。在验证之后,确认模块524确认936更新和验证了服务器联系表218。然后,服务保持方法900返回以便监视912分布式逻辑链表的完整性和相关联的部署服务器的状态。
本发明揭示的网络引导服务的保持会对整体系统依赖性和可用性具有真实的和正面影响。在某些实施例中,本发明改进了运行时间、应用可用性和实时业务性能,所有这些都导致降低拥有的整体成本。除了改进系统资源的利用率之外,本发明的实施例去除了单点故障的风险,并且允许维持网络引导服务器以及任意其它类型的服务器的表的完整性的系统和方法。
作为逻辑流程图一般地提出此处包括的示意流程图。同样,给出的顺序和带标记的操作表示本方法的一个实施例。可以构思在功能上、逻辑上或效果上与示出的方法的一个或多个操作或其一个或多个部分等同的其它操作和方法。另外,提供所采用的格式和符号是为了解释该方法的逻辑操作,并且理解为不是对该方法的范围的限制。虽然在流程图中可能采用了各种箭头类型和线型,它们应被理解为不是对相应方法的范围的限制。实际上,某些箭头或其它连接符可能仅仅是用来表示该方法的逻辑流。例如,箭头可以表示等待或监视给出的方法的列举出的操作间的未指定时期。另外,特定方法发生的顺序可以严格遵守也可以不严格遵守示出的相应操作的顺序。
贯穿本说明书提及“一个实施例”,“一实施例”或类似的语言的含义是结合该实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书的短语“在一个实施例中”,“在一实施例中”和类似语言的出现可以,但是不必是,都指相同的实施例。
提及的信号承载介质可以采用能够产生信号、引起信号产生、或引起机器可读指令的程序在数字处理装置上执行的任何形式。信号承载介质可以体现为传输线、压缩盘、数字视频盘、磁带、Bernoulli驱动器、磁盘、穿孔卡、闪速存储器、集成电路或其它数字处理装置存储器设备。
另外,本发明所描述的特征、结构或特性可以任意适合的方式组合在一个或多个实施例内。在下面的描述中,提供了许多特定细节,诸如编程、软件模块、用户选择、网络事务处理、数据库查询、数据库结构、硬件模块、硬件电路、硬件芯片等的例子,以便提供对本发明的实施例的彻底理解。然而,本领域的技术人员可以认识到本发明可以不使用一个或多个所述特定细节,或采用其它方法、组件、材料等实现。在其它情况下,不详细示出或详细描述公知结构、材料或操作,以便避免使本发明的方面变模糊。
可以用其它特定形式体现本发明而不脱离其精神或基本特性。所描述的实施例在所有方面将被认为仅是说明性的而不是限制性的。因此,由所附权利要求而不是前面的描述指示本发明的范围。在权利要求的等同物的含义和范围内的所有改变都将包括在其范围内。
权利要求
1.一种用于自治地保持高可用性网络引导服务的装置,该装置包括监视模块,配置为活动地监视分布式逻辑链表;与所述监视模块耦合的检测模块,所述检测模块配置为检测分布式逻辑链表配置中的改变;和与所述检测模块通信的替代模块,所述替代模块配置为替代所述分布式逻辑链表的出现故障的元素的网络引导服务。
2.如权利要求1的装置,还包括与所述监视模块耦合的配置模块,所述配置模块配置为配置所述分布式逻辑链表,并且响应从所述检测模块接收到信号,重新配置所述分布式逻辑链表。
3.如权利要求2的装置,还包括与所述配置模块耦合的验证模块,所述验证模块配置为验证与所述分布式逻辑链表相关联的服务器联系表和/或主表。
4.如权利要求2的装置,还包括与所述配置模块耦合的去除模块,所述去除模块配置为去除与所述分布式逻辑链表相关联的服务器联系表和/或主表。
5.如权利要求2的装置,还包括与所述配置模块耦合的更新模块,所述更新模块配置为更新与所述分布式逻辑链表相关联的服务器联系表和/或主表。
6.如权利要求2的装置,还包括与所述配置模块耦合的确认模块,所述确认模块配置为确认对与所述分布式逻辑链表相关联的服务器联系表和/或主表的修改。
7.如权利要求1的装置,还包括与所述监视模块耦合的复制模块,所述复制模块配置为复制与主部署服务器相关联的活动的管理资源。
8.如权利要求1的装置,其中所述活动监视包括在预定的心跳间隔内周期地验证与所述分布式逻辑链表相关联的服务器联系表和/或主表。
9.如权利要求1的装置,还包括激活模块,其配置为激活与主部署服务器相关联的管理功能和/或激活与部署服务器相关联的网络引导服务。
10.如权利要求1的装置,还包括提升模块,其配置为将副部署服务器提升为主后备部署服务器和/或将主后备部署服务器提升为主部署服务器。
11.一种用于自治地保持高可用性网络引导服务的系统,该系统包括主部署服务器,配置为管理保持网络引导服务器的服务的处理;与所述主部署服务器耦合的主后备部署服务器,所述主后备部署服务器配置为复制所述主部署服务器的管理功能;与所述主后备部署服务器耦合的副部署服务器,所述副部署服务器配置为给多个连接的计算机客户提供网络引导服务;和与所述主部署服务器通信的服务保持工具,所述服务保持工具配置为自治地处理用于保持网络引导服务和维护分布式逻辑链表的操作。
12.如权利要求11的系统,其中所述服务保持工具包括监视模块,配置为活动地监视分布式逻辑链表;与所述监视模块耦合的检测模块,所述检测模块配置为检测分布式逻辑链表配置中的改变;和与所述检测模块通信的替代模块,所述替代模块配置为替代所述分布式逻辑链表的出现故障的元素的网络引导服务。
13.如权利要求11的系统,其中所述主部署服务器、主后备部署服务器和/或副部署服务器包括阻止指示器,配置为表示阻止提升部署服务器作为主部署服务器;和优先级指示器,配置为表示将部署服务器定位到分布式逻辑链表内的较高或较低位置的优先级。
14.如权利要求11的系统,其中所述主部署服务器包括活动的主表,所述活动的主表配置为记录作为所述分布式逻辑链表的当前元素的所有成员。
15.如权利要求14的系统,其中所述主后备部署服务器包括不活动的主表,所述不活动的主表配置为复制所述活动的主表的所有当前元素。
16.如权利要求11的系统,其中部署服务器包括服务器联系表,所述服务器联系表配置为记录所述分布式逻辑链表上的部署服务器的直接上游元素和直接下游元素。
17.一种信号承载介质,有形地包含机器可读指令的程序,该机器可读指令的程序可由数字处理装置执行,以便执行自治地保持高可用性网络引导服务的操作,所述操作包括自治地监视分布式逻辑链表;检测所述分布式逻辑链表内的改变;和替代所述分布式逻辑链表的出现故障的元素。
18.如权利要求17的信号承载介质,其中所述操作还包括配置所述分布式逻辑链表,以及响应从所述检测模块接收到信号,重新配置所述分布式逻辑链表。
19.如权利要求17的信号承载介质,其中所述操作还包括复制与主部署服务器相关联的活动的管理资源。
20.一种用于部署计算基础设施的方法,包括将计算机可读代码集成到计算系统内,其中与所述计算系统相结合的所述代码能够执行如下操作确定客户硬件配置,所述客户硬件配置包括多个网络引导服务器的分布式逻辑链表;主部署服务器,配置为管理保持多个网络引导服务器的服务和维护与所述分布式逻辑链表相关联的主表的处理;主后备部署服务器,配置为复制所述主部署服务器的所有管理功能;及副部署服务器,配置为给多个连接的计算机客户提供网络引导服务,并且维护与所述分布式逻辑链表相关联的服务器联系表;执行用于所述硬件配置的服务保持处理,所述服务保持处理被配置为监视分布式逻辑链表;检测分布式逻辑链表内的改变;替代所述分布式逻辑链表的出现故障的元素;以及更新系统网络,以便提供安全的和高可用性的部署管理网络,所述部署管理网络配置为防止欺诈服务器链接和连接到所述分布式逻辑链表;防止欺诈服务器给附接于系统网络的客户提供网络引导服务;和防止将欺诈操作系统或欺诈映像引导到系统网络内。
全文摘要
公开了一种用于自治地保持高可用性网络引导服务的装置、系统和方法。该装置包括监视模块、检测模块和替代模块。监视模块活动地监视分布式逻辑链表。检测模块检测分布式逻辑链表配置内的改变。替代模块替代分布式逻辑链表的故障元素的网络引导服务。该装置、系统和方法自治地提供按需提供的网络服务的保持,维持网络引导服务的高可用性。
文档编号H04L12/28GK1992723SQ200610136149
公开日2007年7月4日 申请日期2006年10月13日 优先权日2005年12月29日
发明者理查德·艾兰·达严, 考弗·科科赛, 杰弗里·B.·詹宁斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1