跨集群文件系统同步更新的制作方法

文档序号:6497366阅读:244来源:国知局
跨集群文件系统同步更新的制作方法
【专利摘要】本发明的各实施例涉及可配置计算机资源的共享池中的数据的同步。以一致性点的形式捕获包括数据和元数据的文件系统更改的映像。创建连续一致性点,其中在连续一致性点之间的对所述文件系统中的数据和元数据的更改被捕获且放置于队列中,以便传送给目标站点处的目标文件系统。作为文件系统操作来传送所述更改,其中所述传送限于在所述一致性点中捕获和反映的更改。
【专利说明】跨集群文件系统同步更新
【背景技术】
[0001]本发明涉及跨集群文件系统的数据同步。更具体地说,本发明涉及跟踪文件系统中的更改以及使用标准协议将所述更改重放至另一文件系统。
[0002]在缓存远程文件数据的可伸缩且可写的缓存系统中,自远程站点取回数据且在缓存站点(亦称为源站点)进行更新,并且在远程站点(亦称为目标站点)重放数据。已知源站点与目标站点之间的网络连接性可能经受临时断开连接。当两个站点之间的断开连接发生时,源站点应仍可用于存取先前被缓存的数据,且因此,源站点继续支持数据及元数据更新。此时,由于两个站点之间的连接性恢复,因此数据及元数据更新需要与目标站点同步。

【发明内容】

[0003]本发明包括用于从与可配置计算资源的共享池通信的源数据站点向目标数据站点同步更新数据及元数据的方法、系统及制品。
[0004]在一个方面中,提供一种用于同步更新数据的方法。在周期性基础上在源文件系统中创建一致性点。每个一致性点表示在一时间点的文件系统数据及元数据,并且被用于建立恢复点。更具体地说,一致性点的周期性地创建包括在第一时间点创建第一一致性点及在第二时间点创建第二一致性点。比较所述第一与第二一致性点以标识任何差别。另外,基于对象之间的对应关系将源文件系统对象映射到目标文件系统对象。应用在所述第一与第二一致性点之间的所标识的差别。更具体地说,差别的应用包括作为一个或多个文件系统操作来重放所标识的差别。
[0005]在另一方面中,系统具备工具以支持一致性数据的同步。可配置计算机资源的共享池具备与其通信的功能单元,所述功能单元在其中具有工具以支持所述同步。所述工具包括数据管理器、差异(delta)管理器及数据移动器。所述数据管理器在所述共享池中的源站点处处理数据并且在所述源站点的源文件系统中周期性地创建一致性点。每个一致性点表示在一时间点的源文件系统数据及元数据以便建立恢复点。更具体地说,所述数据管理器在第一时间点创建第一一致性点及在第二时间点创建第二一致性点。与所述数据管理器通信的所述差异管理器用于比较所述第一一致性点与所述第二一致性点。更具体地说,所述差异管理器标识所述第一与第二一致性点之间的任何差别。与所述差异及应用管理器通信的所述数据移动器应用所述第一与第二一致性点之间的所标识的差别。差别的应用包括基于源文件系统对象至目标文件系统对象的映射而重放所标识的差别。
[0006]在又一方面中,经由网络连接作为服务而传递计算机程序产品。所述计算机程序产品包括具有计算机可读程序代码的计算机可读存储介质。提供计算机可读程序代码来处理可配置资源的共享池中的源站点处的数据,包括在所述源站点的源文件系统中周期性地创建一致性点。每个所创建的一致性点表示在一时间点的源文件系统数据及元数据,并且被用作恢复点。更具体地说,所述程序代码在第一时间点创建第一一致性点及在第二时间点创建第二一致性点。还提供计算机可读程序代码来比较所述第一一致性点与所述第二一致性点,并且具体地说标识所述第一与第二一致性点之间的任何差别。另外,提供计算机可读程序代码来将源文件系统对象映射至目标文件系统对象,其中所述映射基于所述对象之间的关系。提供计算机可读程序代码来应用所述第一与第二一致性点之间的所标识的差另IJ。更具体地说,所述程序代码基于所述映射而作为一个或多个文件系统操作来重放所标识的差别。
[0007]在再一方面中,提供一种方法来同步更新数据。更具体地说,在第一时间点在源文
件系统中创建第--致性点,及在第二时间点在所述源文件系统中创建第二一致性点。所
述第一一致性点表示在第一时间点的文件系统数据及元数据,并且用于建立第一恢复点。所述第二一致性点表示在第二时间点的文件系统数据及元数据,并且用于建立第二恢复点。在与所述源文件系统相关联的通信故障之后,比较所述第一一致性点与所述第二一致性点。所述比较包括标识所述第一与第二一致性点之间的更改。应用所述第一与第二一致性点之间的所标识的更改来支持所述同步。更具体地说,所述应用包括基于源文件系统对象至目标文件系统对象的映射,作为文件系统操作而重放所述更改。
[0008]结合附图, 自本发明的目前优选实施例的以下详细描述中,本发明的其他特征及优点将变得显而易见。
【专利附图】

【附图说明】
[0009]本文中所参看的图式形成本说明书的一部分。除非另有明确指示,否则在图式中所示的特征意欲作为本发明的仅仅一些实施例的说明,而非本发明的全部实施例的说明,这些附图是:
[0010]图1描绘根据本发明的实施例的云计算节点;
[0011]图2描绘根据本发明的实施例的云计算环境;
[0012]图3描绘根据本发明的实施例的抽象模型层;
[0013]图4描绘示出将对源站点处的数据及元数据的更改放置于队列中以传送至目标站点的过程的流程图;
[0014]图5描绘示出管理源站点处的一致性点的过程的流程图;
[0015]图6描绘示出检测源站点与目标站点之间的通信故障的过程以及使用源站点中的数据及元数据使目标站点最新的恢复管理的第一方面的流程图;
[0016]图7描绘示出调解在源站点处的两个一致性点中的目录项的过程的流程图;
[0017]图8描绘示出内嵌于计算机系统中以支持数据同步的工具的方块图;
[0018]图9描绘展示用于实施本发明的实施例的系统的方块图。
【具体实施方式】
[0019]应易于理解,可以各种各样的不同配置来布置及设计如本文中的图式中大体所描述及说明的本发明的组件。因此,如图式中所呈现的对本发明的装置、系统及方法的实施例的以下详细说明不意欲限制如所要求保护的本发明的范围,而仅仅是本发明的选定实施例的代表。
[0020]在本说明书中描述的功能单元已被标为管理器。可在诸如场可编程门阵列、可编程阵列逻辑、可编程逻辑器件或类似者的可编程硬件器件中实施管理器。亦可在用于由各种类型的处理器处理的软件中实施管理器。可执行程序代码的所标识管理器可例如包括计算机指令的一个或多个物理或逻辑块,所述块可例如组织为对象、程序、功能或其他构造。然而,所标识管理器的可执行码不需要在物理上定位在一起,而可包括存储于不同位置的全异指令,所述指令当在逻辑上被接合至一起时包括管理器且实现管理器的设定目的。
[0021]实际上,可执行程序代码的管理器可为单一指令或许多指令,并且甚至可被分布于若干不同码段的上、在不同应用间及跨若干存储器件。类似地,在本文中,操作数据可被标识并例示于管理器内,且可以任何合适的形式体现且组织于任何合适类型的数据结构内。操作数据可被收集以作为单一数据集或可分布于不同位置上(包括在不同存储器件上),且可至少部分地作为电子信号存在于系统或网络上。
[0022]贯穿本说明书引用的“选择实施例”、“一个实施例”或“实施例”意谓结合该实施例所描述的特定特征、结构或特性包括在本发明的至少一实施例中。因此,贯穿本发明在各种位置出现的短语“选择实施例”、“在一个实施例中”或“在实施例中”未必指同一实施例。
[0023]此外,所描述的特征、结构或特性可在一个或多个实施例中以任何合适的方式组合。在以下描述中,提供许多具体细节,诸如数据移动器、复制管理器、迁移管理器等的实例,从而提供对本发明的实施例的详尽理解。然而,本领域技术人员将认识到,可在无需具体细节中的一个或多个的情况下或者可用其他方法、组件、材料等来实践本发明。在其他情况下,未详细展示或描述公知的结构、材料或操作,以免使本发明的各方面模糊不清。
[0024]通过参看图式将最佳地理解本发明的所例示实施例,在所述图式中相同部分贯穿全文由相同数字指定。以下描述意欲仅为举例而言,且仅说明与如本文中所要求保护的本发明一致的器件、系统及程序的某些选定实施例。
[0025]云计算环境是面向服务的,聚焦于无状态、低耦合度、模块性及语义互操作性。在云计算的核心处为包括互连节点的网络的基础结构。现在参考图1,其中显示了云计算节点的一个例子。云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12 —起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任意系统的分布式云计算技术环境,
坐坐寸寸ο
[0026]计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0027]如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0028]系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。如以下将进一步描绘和说明的,存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0029]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0030]计算机系统/服务器12也可以与一个或多个外部设备14 (例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12—起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统
坐寸ο
[0031]现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
[0032]现在参考图3,其中显示了云计算环境50 (图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,
[0033]本发明的实施例不限于此。如图3所示,提供下列层和对应功能:硬件和软件层60、虚拟层62、管理层64及工作负载层66。硬件和软件层60包括硬件和软件组件。硬件
组件的例子包括:主机,在一个示例中为IBM? zSeries?系统;基于Risc (精简指令集计算机)体系结构的服务器,在一个示例中为IBM pSeries?系统;ibm xSeries?系统;IBM BladeCenter?系统;存储设备;网络和网络组件。软件组件的例子包括:网络应用服务器软件,在一个示例中为IBM WebSphere?应用服务器软件;数据库软件,在一个不例中为 IBM DB2?数据库软件。(IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
[0034]虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
[0035]在一个实例中,管理层64可提供以下功能:资源供应、计量和定价、用户门户、月艮务水平管理,以及服务水平协议(SLA)计划和履行。在下文中描述所述功能。资源供应提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取。计量和定价在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,这些资源可以包括应用软件许可。安全性为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户为消费者和系统管理员提供对云计算环境的访问。服务水平管理提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
[0036]工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括但不限于:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;操作处理;以及维持一致的应用数据以支持云计算环境内的迁移。
[0037]在本文中所描述的可配置计算机资源的共享池(下文中称为云计算环境)中,应用可迁移动到任何数据中心(本文中亦称为数据站点)。存在两个一般情形,其中应用经受迁移,包括计划迁移及非计划迁移。在计划迁移中,应用迁移动到云中的任何数据中心(亦即,目标站点),同时维持灾难恢复支持,并且在非计划迁移中,应用经受故障且在云中的任何数据中心中恢复,同时维持灾难恢复支持。因此,计划迁移与非计划迁移之间的差别是故障应用的故障及随后的恢复。
[0038]源站点为数据的主要位置,且目标站点提供源数据的复本。在一个实施例中,源站点以读写模式操作以支持读取操作及写入操作两者,且目标站点以只读模式操作且限于支持读取操作。提供源数据与目标站点的连续同步。在一个实施例中,源站点故障之后是目标站点被升级至新的源站点,从而支持读取操作及写入操作两者。此类升级可要求应用和/或工具被迁移动到新的源站点,从而支持新的源站点的功能性。
[0039]在文件集级别定义来自源站点的数据。在一个实施例中,文件集为文件系统命名空间的子树,所述文件系统命名空间为数据管理提供管理边界。因此,复制及一致性的粒度为文件集。所限定粒度的方面保证跨给定文件集内的所有文件的所有依赖性写入被保证为是有序的。图4是示出将对源站点处的数据及元数据的更改放置于队列中以传送给目标站点的方面的流程图(400)。在将任何数据和/或元数据更改放置于队列中之前,创建在源站点处的映射,其具有在源站点及目标站点处的文件标识符空间(402)。更具体地说,在源站点处的索引节点(inode)数目需要被映射到在目标站点处的等效索引节点数目,并且在源站点处的文件名可能需要被映射到在目标站点处的等效文件名。
[0040]应用在源站点处运行(404)。应用可支持读取和/或写入操作。将自写入操作生成的数据存储于源站点本地的数据存储器(其中应用正在处理)中,例如本地存储器(406)。同时,将自写入操作创建的数据自本地数据存储器复制至在目标站点处的备份数据存储器,同时应用继续处理一个或多个操作(408)。在步骤(408)的复制包括来自写入操作的数据及元数据两者。可将在步骤(408)的复制自源站点中的一个或多个服务器节点同步或异步传导至在目标站点中的一个或多个服务器节点。不管在步骤(408)的复制的格式如何,在源数据存储器及目标数据存储器两者上创建数据一致性点。一致性点的创建确保一旦应用经受故障,应用可自一致性数据集中恢复。
[0041]可使用本领域技术人员已知的若干不同方法来获得一致性点。在一个实施例中,采用文件系统或存储系统快照并且使用写入时复制语义来保存某一时间点的数据,而无需将应用请求延迟一段延长的时间。在一个实施例中,可使用任何级别的一致性,包括(但不限于)应用、系统故障、文件系统等。因此,来自一个或多个写入操作的数据及元数据被存储于源数据存储器中并且被复制至目标数据存储器,其中在两个数据存储位置创建一个或多个一致性点。
[0042]在源位置及目标位置两者处创建及维持周期性一致性点,其中一致性点在发生站点故障的情况下充当恢复点。更具体地说,在源站点本地选取一致性点,并且一旦在该一致性点中反映的全部数据已被传输至目标站点,即在目标站点处创建一致性点。因此,当在源站点处发生对数据及元数据的更改时,这些更改被反映在源站点本地的一致性点中,并且被传送至目标站点,其中在目标站点本地创建目标一致性点。
[0043]为了支持网络带宽的有效使用,一致性点自源站点至目标站点的传输可限于与先前一致性点的差别。图5是示出管理源站点处的一致性点的过程的流程图(500)。在源站点本地创建第一一致性点(502)。在时间间隔(504)之后,在源站点本地创建第二一致性点(506)。判定第——致性点与第二一致性点之间是否有任何差别(508)。对在步骤(508)的判定的肯定响应之后为标识具体差别(510)。更具体地说,对源站点处的一致性点的比较包括搜索如在索弓丨节点中反映的元数据及如在可能已被创建、删除或修改的目录项中反映的数据两者。针对被标识为具有差别的任何索引节点元数据,创建索引节点输出文件(512),并且针对被标识为具有差别的任何目录项,创建目录输出文件(514)。在一个实施例中,不需要创建及存储输出文件。更具体地说,差别(多个)可被排队以直接在辅助站点处重放,而无需使用中间文件,例如,输出文件。类似地,在一个实施例中,可在单次传递中创建采用队列形式或者文件形式的输出。作为一系列文件系统操作的重放输出文件的步骤可与目标站点同时或并行发生。在一个实施例中,文件系统操作(多个)可为标准和/或非专属文件系统操作,诸如用于UNIX (POSIX)文件系统操作的携带性操作系统接口。因此,创建一个或多个输出文件或者实施队列来重放所标识的元数据及数据差别。
[0044]在步骤(512)和/或(514)创建任何输出文件之后,将输出文件放置于源站点本地的存储器内队列中(516)。同时,源站点可继续处理读取及写入操作,这可包括对数据和/或元数据的进一步更改。在步骤(516)或者对步骤(508)的判定的否定响应之后,过程返回至步骤(504)继续,在此之后,重复随后的一致性点的创建及其比较。在一个实施例中,在一致性点之间的一个或多个差别的应用不限于连续的一致性点。更具体地说,所标识的差别可在任意两个一致性点之间。举例而言,可重放两个一致性点之间的差别以还原更改。如果SI及S2分别为在时间Tl及T2选取的连续的一致性点,并且其中Tl在T2之前出现,则目标站点可处于一致性点SI处并且在时间上被提前至S2,或者目标站点可处于一致性点S2处并且在时间上被移回SI。第一及第二一致性点在时间上并非总是连续的,所述一致性点可为任意两个一致性点。因此,在周期性基础上创建一致性点,其中所比较的一致性点之间的差别被标识并且被放置于队列中以传送给目标站点。
[0045]认识到源站点与目标站点之间可能存在通信故障。故障因为各种原因而发生,并且这些故障的细节及其起因并非本发明的主题。然而,在发生故障的情况下,使用灾难恢复来建立或重建在源站点与目标站点之间、在数据级别及元数据级别两者上的一致性。在一个实施例中,队列中的数据的传输以连续的方式异步发生。如果源站点经历节点或站点故障,则目标站点将不接收在故障时可能已在队列中的任何更改。在检测到源站点与目标站点之间的通信故障之后,调用算法来解释及执行针对源站点的操作。执行操作包括与一致性点相关联的两个方面,一方面与元数据的差别有关且另一方面与数据的差别有关。
[0046]图6是示出用于检测源站点与目标站点之间的通信故障的过程以及对使用源站点中的数据及元数据使目标站点最新的恢复管理的第一方面的流程图(600)。针对在源站点处的最新一致性点中所引用的每个索引节点,判定在源站点处的先前一致性点中是否存在该索引节点(602)。对步骤(602)的判定的否定响应是主题索引节点为新的索引节点的指示(604)。在源站点处的新的索引节点的属性被确定(606),并且临时的新索引节点在目标站点处被创建且被映射至在源站点处的所引用的新索引节点(608)。因此,针对在源节点处的最新一致性点中引用的每个新索引节点,在目标站点处临时创建新索引节点。
[0047]如果在步骤(602)判定主题索引节点曾存在于先前一致性点中,则通过引用,此索引节点存在于目标站点处。对主题索引节点的引用指示与主题索引节点有关的现有文件已被修改(610 )。在步骤(608 )或(610 )之后,建立主题索引节点到映射后的目标索引节点的硬链接(612)。在一个实施例中,硬链接是将名称与文件系统上的现有文件相关联的目录项。一旦建立硬链接,接着判定是否存在在主一致性点中引用且与主题索引节点相关联的新数据(614)。对步骤(614)的判定的肯定响应之后为在源站点处将新的数据放置于队列中,并且经由硬链接将数据写入至目标索引节点(616)。在下文中所描述的图7中展示更新目标站点上的数据的细节。对步骤(614)的判定的否定响应之后为判定是否存在在主一致性点中引用且与主题索引节点相关联的新的元数据(618)。如果对步骤(618)的判定的响应为否定,则元数据的调解过程结束(620)。相反地,对步骤(618)的判定的肯定响应之后为自源站点中的一致性站点向目标站点更新所有元数据属性(622)。因此,在通信故障之后,维持且调解源站点与目标站点之间的元数据一致性。
[0048]如在图6中所参看,在源站点处的两个一致性点之间的差别可相对于数据存在。图7是示出调解源站点处的两个一致性点中的目录项的过程的流程图(700)。针对每个所标识的更改后的目录(702),将源索引节点映射到目标索引节点(704)。接着判定主题目录是否位于最新一致性点中(706)。对步骤(706)的判定的否定响应是主题目录已被移除或重命名的指示(708)。自源站点至目标站点建立主题目录的链接(710)。因此,针对在一致性点比较中标识为已被移除或重命名的每个目录,在两个站点之间建立链接以将更改从源站点传送至目标站点。
[0049]然而,对步骤(708)的判定的肯定响应是已在目标站点建立目录的指示。因此,对步骤(706)的判定的肯定响应之后为在位于目标站点处的映射后的索引节点处查找主题目录(712)。接着判定主题目录是否存在于映射后的索引节点中(714)。如果目录不存在,则在目标站点创建目录并且将目录链接至源站点处的主题目录(716)。然而,如果目录存在,则接着判定在位于源站点处的一致性点比较中所标注的文件级别处是否有更改(718)。对步骤(718)的判定的否定响应是更改处于目录级别的指示(720)。相反地,对步骤(718)的判定的肯定响应展示更改处于数据级别并且建立自源站点至目标站点的链接,从而使用更改后的数据更新适当的目标索引节点及目录(720)。因此,在目录级别维持源站点与目标站点之间的数据一致性。
[0050]在源站点处执行的所有文件系统操作在目标站点处以相同的次序重放,藉此保证写入次序及读取稳定性。更具体地说,作为文件系统操作而自源站点应用源站点一致性点与目标站点一致性点之间的所标识的差别。
[0051]如在图4至图7中的流程图中所示范,使用方法来支持自源站点至目标站点的数据同步。更具体地说,创建连续一致性点,标识一致性点之间的差别,并且作为文件系统操作而自源站点至目标站点重放所述差别。在一个实施例中,支持同步的工具均在源站点本地,同步包括创建一致性点、确定连续一致性点之间的差别、及将所确定的差别转换成文件系统操作以传送至目标站点。图8是示出内嵌于计算机系统中以支持如上文所描述的数据同步的工具的方块图(800)。更具体地说,可配置计算机资源的共享池被示为具有第一数据中心(810)及第二数据中心(850)。为了描述的目的,第一数据中心(810)被称为源站点及第二数据中心(850)被称为目标站点。尽管在本文中的实例中仅展示两个数据中心,但本发明不应限于在计算机系统中的此数据中心量。因此,可使用两个或两个以上数据中心来支持数据同步。
[0052]所述系统中的每个数据中心具备与数据存储器通信的至少一个服务器。更具体地说,第一数据中心(810)具备服务器(820),所述服务器(820)具有处理单元(822),所述处理单元(822)跨越总线(826)与存储器(824)通信,并且与第一本地存储器(828)通信;及第二数据中心(850 )具备服务器(860 ),所述服务器(860 )具有处理单元(862 ),所述处理单元(862 )跨越总线(866 )与存储器(864 )通信,并且与第三本地存储器(868 )通信。
[0053]在本文中所示的实例中,应用(880)处理在第一数据中心(810)本地的读取及写入操作。读取操作由第一本地存储器(828)中的数据支持。类似地,来自写入操作的数据被写入第一本地存储器(828)中。提供若干工具来支持自第一数据中心(810)至第二数据中心(850)的写入数据同步。更具体地说,功能单元(830)被设置在共享池中的第一数据中心(810)本地,并且与服务器(820)的存储器(824)通信。功能单元(830)管理支持数据同步的工具。所述工具包括(但不限于)数据管理器(832)、差异管理器(834)及数据移动器(836)。数据管理器(832)用于借助一致性点处理在源站点(810)处的数据。更具体地说,数据管理器(832)在周期性基础上在源站点(810)本地创建文件系统(亦即,源文件系统)的一致性点。
[0054]每个所创建的一致性点表示在一时间点的文件系统数据及元数据,并且在发生故障的情况下用于建立恢复点。数据管理器(832)至少在第一时间点创建第一一致性点及在第二时间点创建第二一致性点。在一个实施例中,在第二一致性点被生成且复制至目标站点(850)之后,可自源站点(810)删除第一一致性点。因此,数据管理器(832)用于在不同的时间点捕获源文件系统的至少两个映像。
[0055]因为存在源文件系统的至少两个一致性点,所以在发生第一数据中心(810)与第二数据中心(850)之间的通信故障的情况下,需要将一致性点传送至第二数据中心(850)。为了减轻带宽利用,所述传送可限于两个一致性点之间的差别。提供差异管理器(834)以与数据管理器(832)通信,其中差异管理器(834)的功能性是支持这些差别的标识及管理。更具体地说,差异管理器(834)比较第一一致性点与第二一致性点,并标识第一一致性点与第二一致性点之间的任何差别。因此,差异管理器(834)用于标识在两个一致性点之间、在元数据级别及数据级别两者上的差别。
[0056]最后,提供数据移动器(836)以与差异管理器(834)通信,从而管理差异管理器(834)所标识的两个一致性点之间的差别的应用。更具体地说,数据移动器(836)生成含有所标识的差别的输出文件,将所标识的差别放置于队列中,并且作为文件系统操作而重放所述输出文件。在一个实施例中,自源站点(810)至目标站点(850)重放文件系统操作,其中操作包括采用同时方式的多个文件系统操作。由数据移动器(836)使用的文件系统操作仅重放在差异管理器(834)所创建的精确差异中反映的那些更改。在一个实施例中,数据移动器(836)允许合并两个或两个以上文件更新并且忽略瞬间元数据操作,例如,暂时文件。因为数据移动器(836)替换文件系统操作以传送文件系统更改,所以源站点(810)及目标站点(850)不限于同构文件系统。在一个实施例中,源站点(810)及目标站点(850)可为异构文件系统。因此,数据移动器(836)负责以文件系统操作的形式自源站点(810)至目标站点(850)传送所标识的文件系统更改。
[0057]如本文中所示,标识文件系统更改且自资源共享池中的源站点(810)至目标站点(850)同步文件系统更改。更具体地说,由数据管理器(832)、差异管理器(834)及数据移动器(836)支持同步。在一个实施例中,自源站点(810)的数据同步响应于自源站点(810)的通信故障而发生,从而确保目标站点(850)处的一致数据版本得到维持且发展。因此,在云中的两个位置处维持数据一致性,从而确保来自源站点的数据的复本在辅助位置可用。
[0058]如所示出的,在源站点(810)本地的可配置计算机资源的共享池(亦即,云)中提供工具(832)至(836)。在一个实施例中,目标站点不需要任何额外工具来使计算机程序代码支持同步功能性。如上文所标识,数据管理器(832)、差异管理器(834)及数据移动器(836)分别示为驻留在源数据中心(810)本地的服务器(820)的存储器(824)中。尽管在一个实施例中,数据管理器(832)、差异管理器(834)及数据移动器(836)分别可作为服务器(820)的存储器(824)的外部硬件工具而驻留,或它们可作为硬件与软件的组合实施。类似地,在一个实施例中,管理器(832)至(836)可被组合成结合了分离项的功能性的单一功能项。如本文中所示,管理器(多个)中的每个管理器被示为在一个数据中心本地。然而,在一个实施例中,所述管理器可集体或个别分布于可配置计算机资源的共享池间,且充当管理一致性数据自源站点至目标站点的同步的单元。因此,所述管理器可实施为软件工具、硬件工具或软件及硬件工具的组合。
[0059]所属【技术领域】的技术人员知道,本发明的各方面可以实现为系统、方法或计算机程序产品。因此,本发明的各方面可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0060]可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0061]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0062]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0063]可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言一诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0064]下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
[0065]也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
[0066]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
[0067]现参看图9,其是示出用于实施本发明的实施例的系统的方块图(900)。所述计算机系统包括一个或多个处理器,诸如处理器(902)。处理器(902)连接至通信基础结构(904)(例如,通信总线、跨接叉线(cross-over bar)或网络)。所述计算机系统可包括显示接口(906),所述显示接口(906)自通信基础结构(904)(或自未图示的帧缓冲器)转发图形、文字及其他数据以在显示单元(908)上显示。所述计算机系统亦包括主存储器(910)(优选为随机存取存储器(RAM)),且亦可包括辅助存储器(912)。辅助存储器(912)可包括(例如)硬盘驱动器(914)和/或可移除存储驱动器(916),后者表示为(例如)软盘驱动器、磁带驱动器或光盘驱动器。可移除存储驱动器(916)以本领域技术人员所熟知的方式自可移除存储单元(918)读取和/或写入至可移除存储单元(918)。可移除存储单元(918)表示(例如)软盘、光盘、磁带或光盘等,所述单元由可移除存储驱动器(916)读取及写入。如将理解的,可移除存储单元(918)包括计算机可读介质,所述计算机存储介质具有存储于其中的计算机软件和/或数据。
[0068]在备选实施例中,辅助存储器(912)可包括其他类似构件,用于允许计算机程序或其他指令被加载计算机系统中。这些构件可包括(例如)可移除存储单元(920)及接口(922)。这些构件的实例可包括(诸如在视频游戏设备中找到的)程序包及封装接口,可移除存储器芯片(诸如EPROM或PR0M)及相关联的插座,及允许软件及数据自可移除存储单元(920)传输到计算机系统的其他可移除存储单元(920)及接口(922)。
[0069]所述计算机系统亦可包括通信接口(924)。通信接口(924)允许软件及数据在计算机系统与外部设备之间传输。通信接口(924)的实例可包括调制解调器、网络接口(诸如以太网卡)、通信端口或PCMCIA插槽及卡等。经由通信接口(924)传输的软件及数据采取信号的形式,所述信号可为(例如)能够由通信接口(924)接收的电子、电磁、光学或其他信号。经由通信路径(亦即,信道)(926)将这些信号提供给通信接口(924)。此通信路径(926)承载信号且可使用电线或缆线、光纤、电话线、蜂窝电话链路、射频(RF)链路和/或其他通信信道来实施。
[0070]在此文件中,术语“计算机程序介质”、“计算机可用介质”及“计算机可读介质”用于通常指诸如主存储器(910)及辅助存储器(912)、可移除存储驱动器(916)及安装于硬盘驱动器(914)中的硬盘的介质。
[0071]计算机程序(亦称为计算机控制逻辑)存储于主存储器(910)和/或辅助存储器(912)中。计算机程序亦可经由通信接口(924)接收。这些计算机程序在执行时使计算机系统能够执行如本文中所讨论的本发明的特征。具体地说,计算机程序在执行时使处理器(902)能够执行计算机系统的特征。因此,这些计算机程序表示计算机系统的控制器。
[0072]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0073]本文所使用的术语仅为了描述特定实施例,且并不意欲限制本发明。如本文中所使用,单数形式“一”、“一个”及“该”意欲亦包括复数形式,除非上下文另有清晰指示。应进一步理解,术语“包括”和/或“包含”在用于本说明书中时指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。
[0074]以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置(means)或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要把本发明限定到所表述的形式。对于所属【技术领域】的普通技术人员来说,在不偏离本发明范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属【技术领域】的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。因此,增强的云计算模型支持相对于应用处理及灾难恢复的灵活性,包括(但不限于)支持数据的位置与应用位置的分离及适当恢复站点的选择。
[0075]备选实施例
[0076]应了解,尽管为了说明在本文中已描述本发明的具体实施例,但可在不脱离本发明的精神及范围的情况下进行各种修改。具体地说,所述系统可被配置为支持在第一数据中心操作的数据及元数据的计划及非计划同步。因此,本发明的保护范围仅由以下权利要求及其等效物限制。
【权利要求】
1.一种方法,包括: 在源文件系统中周期性地创建一致性点,每个一致性点表示在一时间点的文件系统数据和元数据以便建立恢复点,所述一致性点的周期性地创建包括在第一时间点创建第一一致性点和在第二时间点创建第二一致性点; 比较所述第一一致性点与所述第二一致性点,包括标识所述第一一致性点与所述第二一致性点之间的差别; 基于源文件系统对象与目标文件系统对象之间的对应关系,将所述源文件系统对象映射到所述目标文件系统对象; 应用所述第一一致性点与所述第二一致性点之间的所标识的差别,包括作为一个或多个文件系统操作而重放所标识的差别。
2.如权利要求1的方法,其中应用所标识的差别的步骤采用源文件系统索引节点至目标文件系统索引节点的映射。
3.如权利要求1的方法,其中应用所标识的差别的步骤包括:使用文件名来标识针对文件系统对象的文件系统操作。
4.如权利要求1的方法,其中应用所述第--致性点与所述第二一致性点之间的所标识的差别的步骤包括:产生任何元数据更改和任何数据更改的精确差异,以及仅重放在所述精确差异中反映的那些更改。
5.如权利要求1的方法,还包括针对所标识的差别生成输出文件以及作为一系列文件系统操作而重放所述输出文件,其中可向目标站点同时重放所述操作中的一些操作。
6.如权利要求1的方法,还包括在所述源文件系统与所述目标文件系统之间的通信故障之后重放所述输出文件。
7.如权利要求1的方法,其中所述源文件系统与所述目标文件系统为异构文件系统。
8.如权利要求1的方法,还包括通过移动到较旧的一致性点来还原在所述目标文件系统处的更改。
9.如权利要求1的方法,其中所述第一一致性点与所述第二一致性点不限于连续的一致性点。
10.一种系统,包括: 可配置计算机资源的共享池; 与所述共享池通信的功能单元,所述功能单元包括: 数据管理器,其处理在所述共享池中的源站点处的数据,包括在所述源站点的源文件系统中周期性地创建一致性点,每个一致性点表示在一时间点的源文件系统数据和元数据以便建立恢复点,所述数据管理器创建所述一致性点包括:所述数据管理器在第一时间点创建第一一致性点和在第二时间点创建第二一致性点; 差异管理器,其与所述数据管理器通信,所述差异管理器比较所述第一一致性点与所述第二一致性点,包括标识所述第一一致性点与所述第二一致性点之间的任何差别;以及 数据移动器,其与所述差异管理器通信,所述数据移动器应用所述第一一致性点与所述第二一致性点之间的所标识的差别,包括基于源文件系统对象至目标文件系统对象的映射而重放所标识的差别。
11.如权利要求10的系统,其中所述数据移动器采用源文件系统索引节点至目标文件系统索引节点的映射来应用所标识的差别。
12.如权利要求10的系统,其中由所述数据移动器应用所标识的差别包括:使用文件名来标识针对文件系统对象的文件系统操作。
13.如权利要求10的系统,其中所述差异管理器从所标识的差别产生精确差异,所述精确差异包括任何元数据更改和任何数据更改,以及所述数据移动器仅重放在所述精确差异中反映的那些更改。
14.如权利要求10的系统,还包括所述数据移动器针对所标识的差别生成输出文件并且支持向目标站点同时重放一系列文件系统操作。
15.如权利要求10的系统,还包括所述数据移动器在所述源站点与目标站点之间的通信故障之后重放所述输出文件。
16.一种计算机程序产品,其包括具有计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码包括: 配置为处理在可配置资源的共享池中的源站点处的数据的计算机可读程序代码,包括在所述源站点的源文件系统中周期性地创建一致性点,每个一致性点表示在一时间点的源文件系统数据和元数据以便建立恢复点,所述一致性点的周期性地创建包括在第一时间点创建第一一致性点和在第二时间点创建第二一致性点; 配置为比较所述第一一致性点与所述第二一致性点的计算机可读程序代码,包括标识所述第一一致性点与所述第二一致性点之间的任何差别;以及 配置为基于源文件系统对象与目标文件系统对象之间的对应关系,将所述源文件系统对象映射到所述目标文件系统对象的计算机可读程序代码; 配置为应用所述第一一致性点与所述第二一致性点之间的所标识的差别的计算机可读程序代码,包括基于所述源文件系统对象至所述目标文件系统对象的映射,作为一个或多个文件系统操作而重放所标识的差别。
17.如权利要求16的计算机程序产品,其中应用所标识的差别的所述程序代码采用源文件系统索引节点至目标文件系统索引节点的映射。
18.如权利要求16的计算机程序产品,其中应用所标识的差别的所述程序代码包括:使用文件名标识针对文件系统对象的文件系统操作的程序代码。
19.如权利要求16的计算机程序产品,其中配置为应用所述第一一致性点与所述第二一致性点之间的所标识的差别的所述程序代码产生任何元数据更改和任何数据更改的精确差异,并且仅重放在所述精确差异中反映的那些更改。
20.如权利要求16的计算机程序产品,还包括配置为针对所标识的差别生成输出文件并且同时应用所述第一一致性点与所述第二一致性点之间的所标识的差别以支持多个同时文件系统操作的计算机程序代码。
21.如权利要求16的计算机程序产品,还包括配置为在所述源站点与目标站点之间的通信故障之后重放所述输出文件的计算机程序代码。
22.如权利要求16的计算机程序产品,其中所述第一一致性点与所述第二一致性点不限于连续的一致性点。
23.如权利要 求16的计算机程序产品,还包括配置为通过移动到较旧的一致性点来还原在所述目标文件系统处的更改的计算机程序代码。
24. —种方法,包括: 在第一时间点在源文件系统中创建第一一致性点和在第二时间点在所述源文件系统中创建第二一致性点,所述第一一致性点表示在第一时间点的文件系统数据和元数据以便建立第一恢复点,以及所述第二一致性点表示在第二时间点的文件系统数据和元数据以便建立第二恢复点; 在与所述源文件系统相关联的通信故障之后,比较所述第一一致性点与所述第二一致性点,包括标识所述第一一致性点与所述第二一致性点之间的更改;以及 应用所述第一一致性点与所述第二一致性点之间的所标识的更改,包括基于源文件系统对象至目标文件系统对象的映射,作为文件系统操作而重放所标识的更改。
25.如权利要求24的方法,还包括:在第三时间点在所述源文件系统中创建第三一致性点,所述第三一致性点与所述第一一致性点和所述第二一致性点连续;以及移除所述第--致性点。
【文档编号】G06F17/30GK103946844SQ201280057128
【公开日】2014年7月23日 申请日期:2012年10月17日 优先权日:2011年11月29日
【发明者】K·古普塔, M·P·耐克, F·B·施穆克, M·A·沙阿, R·特瓦里 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1