维护跨数据中心的数据服务器中的数据完整性的制作方法

文档序号:6594319阅读:260来源:国知局
专利名称:维护跨数据中心的数据服务器中的数据完整性的制作方法
技术领域
本发明涉及数据中心内的数据管理。更具体地说,本发明涉及维护多个数据中心 的数据服务器中的多个数据副本的数据完整性。
背景技术
数据中心是用于容纳计算机系统及其关联组件(例如,电信系统和存储系统)的 设施。几乎所有大型企业都拥有一个以上的数据中心,其中大量数据存储在存储系统中。数 据中心提供这些企业持续运营所必需的数据、应用、Web托管以及电子商务功能。数据中心 通常具有冗余或备用电源、冗余数据通信连接、环境控制(例如,空调、灭火)以及特殊的安 全设备。它们分散在不同的地理位置以便实现更好的灾难恢复和更高的区域运作效率。多数企业拥有多个数据中心。有些企业使用被动-主动(passive-active)数据 中心,其中将数据的一个副本置于主动数据中心(即,主数据中心)内,而其他包含该数据 的数据中心(即,后备数据中心)是被动数据中心。这种数据中心实施方式通常浪费了资 源,因为灾难很少在侵袭主动数据中心之后还使其后备数据中心保持完整。另一些企业使 用主动_主动数据中心,其中主数据中心和后备数据中心均为主动数据中心。主动_主动 数据中心更为复杂,但是它们可以非常高效地为客户提供服务并提高正常运营的服务器使 用率。然而,主动-主动数据中心需要数据中心之间具有可靠和持续的连接以保持数据 完整性和控制事务流。否则,不同数据中心内的数据可能无法保持必要的完整性,从而造成 整个系统运行失常。而且,通常很难跨不同数据中心所在的地理位置维护可靠和持续的连 接,因此,主动_主动数据中心目前仅用于不需要严格事务并且位于昂贵的专用Metrod网 络内的数据。许多企业需要主动_主动数据中心来实现更好的扩展性、更高的可靠性和更有效 的资源使用。良好的主动_主动数据中心必须能够在网络、计算机或数据中心的组件出现 故障时处理大量活动的数据复制副本、维护数据完整性及活动角色控制。

发明内容
根据第一方面,提供了一种用于维护数据片段的多个副本的数据完整性的方法, 所述多个副本存储在跨多个数据中心的多个数据服务器内,所述方法包括从所述多个数 据服务器选择主数据服务器以存储所述数据片段,并将所述数据片段复制到所述多个数据 服务器中的其他数据服务器;维护目录服务器群集,其中所述目录服务器中的一个目录服 务器被选择为主目录服务器;将所述数据片段的数据状态信息记录到所述主目录服务器, 并将所述数据状态信息复制到所述目录服务器群集中的其他目录服务器;以及响应于所述 主数据服务器发生故障,从所述多个数据服务器选择新的主数据服务器并更新所述目录服 务器群集。优选地,提供了一种用于维护多个数据中心的数据服务器中的数据片段的多个副本的数据完整性的方法、计算机程序产品和系统。优选地维护目录服务器群集,其中所述目 录服务器中的一个目录服务器被选为主目录服务器。所述数据片段优选地存储在从所述数 据服务器中选择的主数据服务器中。所述数据片段优选地被复制到从所述数据服务器选择 的一个或多个后备数据服务器。数据状态信息优选地被记录到所述主目录服务器。所述数 据状态信息优选地被复制到所述目录服务器群集。优选地在所述主数据服务器发生故障时 更新所述数据服务器和所述目录服务器群集。根据第二方面,提供了一种用于维护数据片段的多个副本的数据完整性的计算机 程序产品,所述多个副本存储在跨多个数据中心的多个数据服务器内,所述计算机程序产 品包括其中包含计算机可用程序代码的计算机可用介质,所述计算机可用程序代码包括 用于从所述多个数据服务器选择主数据服务器以存储所述数据片段,并将所述数据片段复 制到所述多个数据服务器中的其他数据服务器的指令;用于维护目录服务器群集的指令, 其中所述目录服务器中的一个目录服务器被选择为主目录服务器;用于将所述数据片段的 数据状态信息记录到所述主目录服务器,并将所述数据状态信息复制到所述目录服务器群 集中的其他目录服务器的指令;以及响应于所述主数据服务器发生故障,用于从所述多个 数据服务器选择新的主数据服务器并更新所述目录服务器群集的指令。根据第三方面,提供了一种计算机系统,包括处理器;在操作上与所述处理器耦 合的存储器;在操作上与所述处理器和所述存储器耦合的存储设备;以及用于维护数据片 段的多个副本的数据完整性的计算机程序产品,所述多个副本存储在跨多个数据中心的多 个数据服务器内,所述计算机程序产品包括其中包含计算机可用程序代码的计算机可用 介质,所述计算机可用程序代码包括用于从所述多个数据服务器选择主数据服务器以存 储所述数据片段,并将所述数据片段复制到所述多个数据服务器中的其他数据服务器的指 令;用于维护目录服务器群集的指令,其中所述目录服务器中的一个目录服务器被选择为 主目录服务器;用于将所述数据片段的数据状态信息记录到所述主目录服务器,并将所述 数据状态信息复制到所述目录服务器群集中的其他目录服务器的指令;以及响应于所述主 数据服务器发生故障,用于从所述多个数据服务器选择新的主数据服务器并更新所述目录 服务器群集的指令。根据第四方面,提供了一种用于维护数据片段的多个副本的数据完整性的计算机 系统,所述多个副本存储在跨多个数据中心的多个数据服务器内,所述计算机系统包括网 络分区管理器,其配置为检测和管理当所述多个数据中心之一出现故障时创建的第一和第 二网络分区;主控制器,其配置为控制所述第一和第二网络分区中的至少一个分区内的数 据中心的功能;路由器,其配置为将到所述第二网络分区的所有写入事务重定向到所述第 一网络分区;修复管理器,其配置为将所述第二网络分区内的选定数据服务器重新连接到 所述主控制器,以便所述主控制器能够消除对所述选定数据服务器的功能限制;恢复管理 器,其配置为在所述修复管理器建立到所述主控制器的连接之后恢复所述选定数据服务器 的状态和权限信息;临时重新分组管理器,其配置为移除发生故障的数据中心内的故障数 据服务器,并将所述多个数据服务器中的其他数据服务器重新分组;负载和业务控制器,其 配置为根据所述其他数据服务器中的每个服务器的服务能力将业务重定向到所述其他数 据服务器;以及数据中心间连接管理器,其配置为监视所述数据中心之间的连接。


现在仅通过实例的方式参考以下附图描述本发明的优选实施例,这些附图是图1是本发明的一个实施例的各种组件的方块图;图2是示出根据一个实施例的数据完整性和活动角色控制机制如何工作的方块 图;图3是示出根据一个实施例的本发明如何跨多个数据中心内的数据服务器维护 数据完整性的流程图;图4是根据一个优选实施例的其中可以使用本发明的计算机系统的概念图。
具体实施例方式现在将通过实例的方式参考附图中所示的实施例来更详细地描述本发明。应牢 记的是,以下所述实施例仅通过实例的方式提供,不应被理解为将发明概念限于任何特定 的物理配置。此外,如果使用并且除非另有说明,术语“上方”、“下方”、“前面”、“后面”、“上 面”、“下面”以及类似的此类术语并不被理解为将本发明限于特定的方向。相反,仅在相对 的基础上使用这些术语。所属技术领域的技术人员知道,本发明可以体现为系统、方法或计算机程序产品。 因此,本发明可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻 留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的 组合。此外,本发明还可以采取体现在任何有形的表达介质中的计算机程序产品的形式,该 介质中包含计算机可用的程序码。可以使用一个或多个计算机可用或计算机可读介质的任意组合。所述计算机可用 或计算机可读介质例如可以是(但不限于)电、磁、光、电磁、红外线或半导体系统、装置、设 备或传播介质。计算机可读介质的更具体的实例(非穷举列表)将包括以下项具有一条 或多条线的电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、 可擦写可编程只读存储器(EPR0M或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储 设备、诸如那些支持因特网或内联网的传输介质或磁存储设备。要指出的是,所述计算机可 用或计算机可读介质甚至可以是程序被打印在其上的纸张或其他适合的介质,因为所述程 序可以通过例如光扫描所述纸张或其他介质被电子地捕获,然后被编辑、解释或另外以适 合的方式被处理(如果必要),然后被存储在计算机存储器中。在本文档的上下文中,计算 机可用或计算机可读介质可以是任何能够包含、存储、传送、传播或传输由指令执行系统、 装置或设备使用或与指令执行系统、装置或设备结合的程序的介质。计算机可读信号介质 可以包括例如在基带中或作为载波的一部分传播的带有计算机可读程序代码的数据信号。 可以使用任何适当的介质(包括但不限于无线、线缆、光缆、RF等)来传输计算机可用程序 代码。用于执行本发明的操作的计算机程序代码可以使用包含一种或多种编程语言的 任意组合来编写,所述编程语言包括诸如Java 、Smalltalk、C++之类的面向对象的编程语 言或者诸如“C”编程语言或类似的编程语言之类的常规过程编程语言。(Java和所有基于 Java的商标和徽标是SunMicrosystems,Inc.在美国和/或其他国家/地区的商标。)所 述程序代码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算 机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络_包括局域网 (LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通 过因特网)连接到外部计算机。以下参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/ 或框图描述本发明。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中 各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算 机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算 机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规 定的功能/操作的装置。也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置 以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包 括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的制造品。也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计 算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而 在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定 的功能/操作的过程。附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程 序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代 表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个 用于实现规定的逻辑功能的可执行指令。还应指出,在有些作为替换的实现中,方框中所标 注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上 可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。还应指 出的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用 执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指 令的组合来实现。本发明优选地实现主动-主动数据中心,其中没有闲置的数据副本,并且多个数 据副本可以同时为客户机提供服务。因此,本发明优选地提高了数据中心内的服务器或机 器的使用率和可扩展性,并缩短了对用户发出的服务请求的响应时间。在本发明的一个实施例中,使用目录服务器群集(其中之一是主目录服务器)存 储数据的状态信息,所述数据的状态信息还被复制到跨地理位置的数据中心内的多个其他 服务器。每个数据片段(例如,数据表)被存储在其主服务器(也称为领机(leader))和 多个(例如数千个)复制服务器中。当所述主服务器出现故障时,将选择所述数据复制服 务器之一作为新的主服务器。任何服务器都可以是某些数据的主服务器并且是其他数据的 复制服务器,因此可以平衡所有服务器的工作负载和角色。启用领机选择机制以便针对某 个数据片段在任何时刻选择一个并且仅选择一个领机。如果旧的领机出现故障,则立即选 择新的领机。新的领机的状态信息被注册到主目录服务器并被复制到目录服务器群集。使 用依赖于服务器角色的数据上下文感知的路由和转发系统以确保将任何服务请求都路由 到具有正确角色(即,主/复制)的包含正确数据的最近服务器。
在本发明的一个实施例中,如图1中所示,具有八个组件网络分区管理器101、主 控制器102、路由器103、修复管理器104、恢复管理器105、临时重新分组管理器106、负载和 业务控制器107以及数据中心间连接管理器108。网络分区管理器101检测和管理断开连接的网络,并在检测到网络断开连接时启 动操作。主控制器102监听网络分区管理器101,并控制数据中心在网络断开连接时执行 的功能。例如,当数据中心由于故障组件而被分为多数组和少数组时,所述少数数据中心组 无法提交任何事务(即,将删除事务提交权限),同时保留所有非脏(non-dirty)读取。路由器103将所有写入事务重定向到所述多数数据中心组,并且将编辑脏记录。修复管理器104与断开连接的少数数据中心内的每个服务器都保持联系,并根据 计划(例如,在第一个10分钟内每隔10秒,在第一个10分钟之后每隔一分钟)持续地尝 试连接到分区的主控制器,以便主控制器可以消除对服务器功能(例如,提交写入事务)的 限制。恢复管理器105在修复管理器建立到所述主控制器的连接之后立即恢复服务器 的所有状态和权限。临时重新分组管理器106对每个组的每个领机执行ping操作。如果无法访问某 领机,则它会选取此无法访问的领机管理的所有服务器。然后它对此无法访问的领机的每 个成员执行Ping操作,并暂时移除无法访问的服务器。负载和业务控制器107根据其他数据中心的服务能力将针对断开连接的数据中 心的业务重定向到其他数据中心。数据中心间连接管理器108监视数据中心之间的连接。本发明优选地实现跨数据中心维护大量活动复制副本的主动_主动数据中心。例 如,数据中心内可以同时具有5000个活动副本。实施数据完整性和活动角色控制机制以确 保正确维护和更新这些大量的活动复制副本。图2是示出本发明的一个实施例中的数据完整性和活动角色控制机制如何工作 的方块图。在典型的工作模式下,数据中心间连接管理器108监视数据中心之间的连接(状 态201),并且网络分区管理器101主动监视网络中的可能故障(状态202)。当数据中心的 某组件运行异常时(例如,当机器发生故障或网络的一部分工作不正常时),网络分区管理 器101管理与数据中心的其余部分断开连接的数据中心的故障组件(状态203),并启动操 作以修复故障组件(状态204)。故障组件可以将数据中心分为两部分数据中心内的少数 服务器组和多数服务器组。在修复模式下,主控制器102接收来自网络分区管理器101的 故障信息,并控制少数组的功能(状态205)。例如,它可以撤消少数组中的数据中心的事务 提交权限。路由器103然后重定向来自少数数据服务器组的所有写入事务(状态206)。路 由器103还编辑保存已被写入少数组的数据的信息的脏记录(状态207)。修复管理器104 然后尝试将少数组中的服务器连接到主控制器102,以便标识故障服务器并将其从数据中 心移除(状态208)。一旦在服务器与主控制器102之间建立了连接,恢复管理器105就将 恢复服务器的所有状态和权限(状态209)。临时重新分组管理器106然后对每个组的每个 领机执行Ping操作(状态210)。如果无法访问某领机,将选取此无法访问的领机管理的所 有服务器。然后它对此无法访问的领机的每个成员执行Ping操作,并暂时移除无法访问的服务器。如果存在访问多数组中的其他数据中心的事务,则负载和业务控制器107根据各 个数据中心的服务能力将业务重定向到各个数据中心(状态211)。图3是示出本发明在一个实施例中如何跨多个数据中心内的数据服务器维护数 据完整性的流程图。在状态301,维护目录服务器群集以保存数据服务器上的数据的信息, 其中目录服务器之一被选为主目录服务器。对于选定的数据片段,选取主数据服务器。可 以针对不同的数据片段选择不同的主数据服务器(状态302)。然后将此数据片段复制到从 数据服务器中选择的一个或多个后备数据服务器。在状态303,将数据状态信息记录到主 目录服务器,然后将其复制到目录服务器群集。如果主数据服务器出现故障,则在状态304 可以有效地更新数据服务器和目录服务器群集。更新过程包括三个步骤。首先,针对数据 片段选择新的主数据服务器(状态311),并将此主数据服务器的信息注册到主目录服务器 (状态312),然后将注册信息复制到一个或多个其他目录服务器(状态313)。图4示出了可在其上实现本发明的计算机系统(402)。所述计算机系统可以是个 人计算机系统、工作站计算机系统、膝上型计算机系统、嵌入式控制器系统、基于微处理器 的系统、基于数字信号处理器的系统、手持设备系统、个人数字助理(PDA)系统、无线系统、 无线联网系统等中的任何一个。所述计算机系统包括用于传送信息的总线(404)或其他通 信机制,以及与总线(404)耦合以便处理信息的处理器(406)。所述计算机系统还包括耦合 到所述总线以便存储要由处理器(406)执行的信息和指令的主存储器,例如随机存取存储 器(RAM)或其他动态存储设备(例如,动态RAM (DRAM)、静态RAM (SRAM)、同步DRAM (SDRAM)、 闪存RAM)。此外,主存储器(408)可用于存储在要由处理器执行的指令的执行期间的临时 变量或其他中间信息。所述计算机系统还包括耦合到总线(404)以便存储处理器的静态信 息和指令的只读存储器(ROM) (410)或其他静态存储设备(例如,可编程ROM(PR0M)、可擦写 PROM(EPROM)和电可擦写PROM(EEPROM))。提供了诸如磁盘或光盘之类的存储设备(412), 存储设备(412)耦合到所述总线以便存储信息和指令。此存储设备是计算机可读介质的一 个实例。所述计算机系统还包括输入/输出端口(430)以输入信号以便耦合所述计算机系 统。此类耦合可以包括用于实现自动控制功能、远程控制功能等的直接电连接、无线连接、 网络连接等。可以安装适合的接口卡以提供所需的功能和信号电平。所述计算机系统还可以包括专用逻辑设备(例如,专用集成电路(ASIC))或可配 置逻辑设备(例如,通用逻辑阵列(GAL)或可重新编程现场可编程门阵列(FPGA)),可以使 用这些逻辑设备取代参考图1-图3所述的方法的任何部分或全部的功能。可以使用适当 的设备总线(例如,小型计算机系统接口(SCSI)总线、增强型集成电子设备(IDE)总线或 超级直接存储器存取(DMA)总线)向所述计算机系统添加其他可移除介质设备(例如,光 盘、磁带和可移除磁光介质)或固定高密度介质驱动器。此外,所述计算机系统还可以包括 光盘读取器、光盘读取器_写入器单元或光盘自动唱片点唱机,其中每一个都可以连接到 同一设备总线或其他设备总线。所述计算机系统可以经由总线耦合到诸如阴极射线管(CRT)、液晶显示器(LCD)、 语音合成硬件和/或软件之类的显示器(414),以便向计算机用户显示和/或提供信息。可 以通过显示卡或图形卡控制所述显示器。所述计算机系统包括诸如键盘(416)和光标控件 (418)之类的输入设备,以便将信息和命令选择传送到处理器(406)。可以通过用作输入设备(416)的语音识别硬件和/或软件实现此类命令选择。光标控件(418)例如是鼠标、轨 迹球、光标方向键、触摸屏显示器、光学字符识别硬件和/或软件等,以便将方向信息和命 令选择传送到处理器(406)并控制光标在显示器(414)上的移动。此外,打印机(未示出) 可以提供由所述计算机系统存储和/或生成的数据结构、信息等或任何其他数据的打印列表。所述计算机系统响应于处理器执行存储器(例如主存储器)中包含的由一个或多 个指令组成的一个或多个序列,执行本发明的部分或全部处理步骤。可以将此类指令从其 他计算机可读介质(例如存储设备)读取到主存储器中。还可以使用多处理布置中的一个 或多个处理器执行主存储器中包含的指令序列。在备选实施例中,可以使用硬连线电路取 代软件指令或将硬连线电路与软件指令结合使用。因此,各实施例不限于硬件电路和软件 的任何特定组合。本发明的计算机代码设备可以是任何已解释或可执行的代码机制,包括但不限于 脚本、解释器、动态链接库、Java类以及完整的可执行程序。此外,可以分发本发明的处理 部分以实现更好的性能、可靠性和/或降低成本。所述计算机系统还包括耦合到总线的通 信接口。通信接口(420)提供耦合到网络链路(422)的双向数据通信,网络链路(422)可 以例如连接到局部网络(424)。例如,通信接口(420)可以是连接到任何分组交换局域网 (LAN)的网络接口卡。再如,通信接口(420)可以是提供到相应类型电话线路的数据通信连 接的非对称数字用户线路(ADSL)卡、集成服务数字网络(ISDN)卡或调制解调器。还可以 通过通信接口(420)实现无线链路。在任何此类实施方式中,通信接口(420)发送和接收 承载表示各种类型信息的数字数据流的电、电磁或光信号。网络链路(422)通常通过一个或多个网络为其他数据设备提供数据通信。例如, 网络链路可以通过局部网络(424)(例如LAN)或通过由服务提供商运行的设备(其通过通 信网络(428)提供通信服务)提供到计算机(426)的连接。在优选实施例中,所述局部网 络和通信网络优选地使用承载数字数据流的电、电磁或光信号。通过各种网络的信号和网 络链路上并通过通信接口的信号(其承载发往和来自所述计算机系统的数字数据)是传输 信息的载波的示例性形式。所述计算机系统可以通过网络(多个)、网络链路和通信接口传 输通知和接收包括程序代码的数据。应理解的是,本发明不一定限于上面示出和描述的特定过程、布置、材料和组件, 可以在本发明的范围内进行各种变化。
权利要求
1.一种用于维护数据片段的多个副本的数据完整性的方法,所述多个副本存储在跨多 个数据中心的多个数据服务器内,所述方法包括从所述多个数据服务器选择主数据服务器以存储所述数据片段,并将所述数据片段复 制到所述多个数据服务器中的其他数据服务器;维护目录服务器群集,其中所述目录服务器中的一个目录服务器被选择为主目录服务器;将所述数据片段的数据状态信息记录到所述主目录服务器,并将所述数据状态信息复 制到所述目录服务器群集中的其他目录服务器;以及响应于所述主数据服务器发生故障,从所述多个数据服务器选择新的主数据服务器并 更新所述目录服务器群集。
2.如权利要求1中所述的方法,其中所述更新包括向所述主目录服务器注册包含所述新的主数据服务器的新数据状态信息;以及 将所述新数据状态信息复制到所述目录服务器群集中的其他目录服务器。
3.如权利要求2中所述的方法,还包括,在选择所述新的主数据服务器之前,管理由于 发生故障的主数据服务器而断开连接的多数数据服务器组和少数数据服务器组;控制所述少数组中的数据服务器的功能; 编辑所述少数数据服务器组中的数据的脏记录;通过尝试将所述少数组中的每个服务器连接到主控制器而移除所述发生故障的主数 据服务器;以及将连接到所述主控制器的数据服务器重新分组。
4.如权利要求1至3中的任一权利要求中所述的方法,还包括将来自用户的服务请 求路由到所述多个数据服务器中最近的数据服务器。
5.一种用于维护数据片段的多个副本的数据完整性的计算机程序产品,所述多个副本 存储在跨多个数据中心的多个数据服务器内,所述计算机程序产品包括其中包含计算机可用程序代码的计算机可用介质,所述计算机可用程序代码包括 用于从所述多个数据服务器选择主数据服务器以存储所述数据片段,并将所述数据片 段复制到所述多个数据服务器中的其他数据服务器的指令;用于维护目录服务器群集的指令,其中所述目录服务器中的一个目录服务器被选择为 主目录服务器;用于将所述数据片段的数据状态信息记录到所述主目录服务器,并将所述数据状态信 息复制到所述目录服务器群集中的其他目录服务器的指令;以及响应于所述主数据服务器发生故障,用于从所述多个数据服务器选择新的主数据服务 器并更新所述目录服务器群集的指令。
6.如权利要求5中所述的计算机程序产品,其中用于更新的指令包括用于向所述主目录服务器注册包含所述新的主数据服务器的新数据状态信息的指令;以及用于将所述新数据状态信息复制到所述目录服务器群集中的其他目录服务器的指令。
7.如权利要求6中所述的计算机程序产品,还包括,在用于选择所述新的主数据服务 器的指令之前,用于管理由于发生故障的主数据服务器而断开连接的多数数据服务器组和少数数据服务器组的指令;用于控制所述少数组中的数据服务器的功能的指令; 用于编辑所述少数数据服务器组中的数据的脏记录的指令;用于通过尝试将所述少数组中的每个服务器连接到主控制器而移除所述发生故障的 主数据服务器的指令;以及用于将连接到所述主控制器的数据服务器重新分组的指令。
8.如权利要求5至7中的任一权利要求中所述的计算机程序产品,还包括用于将来 自用户的服务请求路由到所述多个数据服务器中最近的数据服务器的指令。
9.一种计算机系统,包括 处理器;在操作上与所述处理器耦合的存储器;在操作上与所述处理器和所述存储器耦合的存储设备;以及用于维护数据片段的多个副本的数据完整性的计算机程序产品,所述多个副本存储在 跨多个数据中心的多个数据服务器内,所述计算机程序产品包括其中包含计算机可用程序代码的计算机可用介质,所述计算机可用程序代码包括 用于从所述多个数据服务器选择主数据服务器以存储所述数据片段,并将所述数据片 段复制到所述多个数据服务器中的其他数据服务器的指令;用于维护目录服务器群集的指令,其中所述目录服务器中的一个目录服务器被选择为 主目录服务器;用于将所述数据片段的数据状态信息记录到所述主目录服务器,并将所述数据状态信 息复制到所述目录服务器群集中的其他目录服务器的指令;以及响应于所述主数据服务器发生故障,用于从所述多个数据服务器选择新的主数据服务 器并更新所述目录服务器群集的指令。
10.如权利要求9中所述的计算机系统,其中用于更新的指令包括用于向所述主目录服务器注册包含所述新的主数据服务器的新数据状态信息的指令;以及用于将所述新数据状态信息复制到所述目录服务器群集中的其他目录服务器的指令。
11.如权利要求10中所述的计算机系统,还包括,在用于选择所述新的主数据服务器 的指令之前,用于管理由于发生故障的主数据服务器而断开连接的多数数据服务器组和少 数数据服务器组的指令;用于控制所述少数组中的数据服务器的功能的指令; 用于编辑所述少数数据服务器组中的数据的脏记录的指令;用于通过尝试将所述少数组中的每个服务器连接到主控制器而移除所述发生故障的 主数据服务器的指令;以及用于将连接到所述主控制器的数据服务器重新分组的指令。
12.如权利要求9至11中的任一权利要求中所述的计算机系统,还包括用于将来自 用户的服务请求路由到所述多个数据服务器中最近的数据服务器的指令。
13.如权利要求9中所述的计算机系统,包括网络分区管理器,其配置为检测和管理当所述多个数据中心之一出现故障时创建的第一和第二网络分区;主控制器,其配置为控制所述第一和第二网络分区中的至少一个分区内的数据中心的 功能;路由器,其配置为将到所述第二网络分区的所有写入事务重定向到所述第一网络分区;修复管理器,其配置为将所述第二网络分区内的选定数据服务器重新连接到所述主控 制器,以便所述主控制器能够消除对所述选定数据服务器的功能限制;恢复管理器,其配置为在所述修复管理器建立到所述主控制器的连接之后恢复所述选 定数据服务器的状态和权限信息;临时重新分组管理器,其配置为移除发生故障的数据中心内的故障数据服务器,并将 所述多个数据服务器中的其他数据服务器重新分组;负载和业务控制器,其配置为根据所述其他数据服务器中的每个服务器的服务能力将 业务重定向到所述其他数据服务器;以及数据中心间连接管理器,其配置为监视所述数据中心之间的连接。
14.如权利要求13中所述的计算机系统,其中所述第一网络分区包括的数据中心多于 所述第二网络分区。
15.如权利要求13或14中所述的计算机系统,其中所述功能包括删除选定网络分区内 的数据中心的事务提交权限,以及保留对所述选定网络分区的非脏读取。
16.如权利要求15中所述的计算机系统,其中所述选定网络分区是所述第一和第二网 络分区中数据中心数目较少的分区。
17.如权利要求13至16中的任一权利要求中所述的计算机系统,其中所述路由器还被 配置为编辑脏记录。
18.如权利要求13至17中的任一权利要求中所述的计算机系统,其中所述修复管理器 根据预设计划持续地尝试连接到分区的主控制器。
19.一种用于维护数据片段的多个副本的数据完整性的计算机系统,所述多个副本存 储在跨多个数据中心的多个数据服务器内,所述计算机系统包括网络分区管理器,其配置为检测和管理当所述多个数据中心之一出现故障时创建的第 一和第二网络分区;主控制器,其配置为控制所述第一和第二网络分区中的至少一个分区内的数据中心的 功能;路由器,其配置为将到所述第二网络分区的所有写入事务重定向到所述第一网络分区;修复管理器,其配置为将所述第二网络分区内的选定数据服务器重新连接到所述主控 制器,以便所述主控制器能够消除对所述选定数据服务器的功能限制;恢复管理器,其配置为在所述修复管理器建立到所述主控制器的连接之后恢复所述选 定数据服务器的状态和权限信息;临时重新分组管理器,其配置为移除发生故障的数据中心内的故障数据服务器,并将 所述多个数据服务器中的其他数据服务器重新分组;负载和业务控制器,其配置为根据所述其他数据服务器中的每个服务器的服务能力将业务重定向到所述其他数据服务器;以及数据中心间连接管理器,其配置为监视所述数据中心之间的连接。
20.如权利要求19中所述的计算机系统,其中所述第一网络分区包括的数据中心多于 所述第二网络分区。
21.如权利要求19或20中所述的计算机系统,其中所述功能包括删除选定网络分区内 的数据中心的事务提交权限,以及保留对所述选定网络分区的非脏读取。
22.如权利要求21中所述的计算机系统,其中所述选定网络分区是所述第一和第二网 络分区中数据中心数目较少的分区。
23.如权利要求19至22中的任一权利要求中所述的计算机系统,其中所述路由器还被 配置为编辑脏记录。
24.如权利要求19至24中的任一权利要求中所述的计算机系统,其中所述修复管理器 根据预设计划持续地尝试连接到分区的主控制器。
25.—种包括程序代码装置的计算机程序,当所述程序在计算机上运行时,所述程序代 码装置适于执行权利要求1至4中的任一权利要求中所述的方法。
全文摘要
一种用于维护多个数据中心的数据服务器内的数据片段的多个副本的数据完整性的方法、计算机程序产品和系统,包括维护目录服务器群集,其中所述目录服务器中的一个目录服务器被选择为主目录服务器;将所述数据片段存储在从所述数据服务器选择的主数据服务器中,并将所述数据片段复制到从所述数据服务器选择的一个或多个后备数据服务器中;将数据状态信息记录到所述主目录服务器,将所述数据状态信息复制到所述目录服务器群集;以及在所述主数据服务器发生故障时,更新所述数据服务器和所述目录服务器群集。
文档编号G06F11/14GK102105867SQ200980129274
公开日2011年6月22日 申请日期2009年7月31日 优先权日2008年8月5日
发明者沈金梅, 王浩 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1