用于数据复制的方法和系统的制作方法
【专利摘要】提供一种在数据处理系统中用于数据复制的机制。机制将待复制的数据集划分成多个分片。将从初级站点向在多个次级站点内的主控次级站点拷贝多个分片中的每个分片。多个次级站点包括主控次级站点和至少一个附属对等站点。机制从初级站点向多个次级站点拷贝多个分片,从而使得主控次级站点存储数据集的第一分片,并且至少一个附属对等站点中的每个附属对等站点存储数据集的对应分片。响应于完成向多个次级站点拷贝多个分片,对于至少一个附属对等站点中的每个附属对等站点,机制发起向主控次级站点拷贝数据集的对应分片。
【专利说明】用于数据复制的方法和系统
【技术领域】
[0001]本申请总体上涉及一种改进的数据处理装置和方法并且更具体地涉及用于基于云的数据迁移和复制的机制。
【背景技术】
[0002]云计算是使用通过网络(通常为因特网)作为服务而被递送的计算资源(硬件和软件)。云计算向远程服务委托用户的数据、软件和计算。使用软件作为服务,用户也租赁应用软件和数据库。云提供者管理应用在其上运行的基础结构和平台。终端用户可以通过web浏览器或者轻量级桌面或者移动应用访问基于云的应用而业务软件和用户数据存储于在远程位置的服务器上。
[0003]云服务如今在提供许多服务(比如基础结构、应用、存储等)时承担中心级。云存储装置基本上是可以根据存储需要而被购买或者租赁的联网的联机存储装置。使用存储云的实体未考虑如何使空间可用于它们,而是更考虑是否使保障的空间可用。另一考虑是数据的私密和意识到如果数据存储于这样的云存储装置上则它保持安全。如果向远程站点拷贝或者复制关键数据或者生产数据以满足业务连续要求,则这一点变得更重要。也重要的是在满足可用带宽和成本要求之时尽可能快地向远程站点拷贝生产数据。
[0004]云存储服务正变得越来越普遍并且可以被用来在网络拥塞期间将向最近位置拷贝数据并且然后在时间段内向远程位置拷贝数据。安全和私密在如以上描述的部署中是主要考虑。处于云存储站点之一的个人可以有可能获得对可能包含保密或者个人信息的生产或者初级数据(primary data)的对等查看。
【发明内容】
[0005]在一个例示性实施例中,提供一种在数据处理系统中用于数据复制的方法。该方法包括将待复制的数据集划分成多个分片。将从初级站点向在多个次级站点内的主控次级站点拷贝多个分片中的每个分片。多个次级站点包括主控次级站点和至少一个附属对等站点。该方法还包括从初级站点向多个次级站点拷贝多个分片从而使得主控次级站点存储数据集的第一分片并且至少一个附属对等站点中的每个附属对等站点存储数据集的对应分片。响应于完成向多个次级站点拷贝多个分片,该方法还包括:对于至少一个附属对等站点中的每个附属对等站点,发起向主控次级站点拷贝数据集的对应分片。
[0006]在其它例示性实施例中,提供一种包括计算机可用或者可读介质的计算机程序产品,计算机可用或者可读介质具有计算机可读程序。计算机可读程序当在计算设备上被执行时使计算设备执行以上关于方法例示性实施例概括的操作中的各种操作和组合。
[0007]在又一示例实施例中,提供一种系统/装置。该系统/装置可以包括一个或者多个处理器和耦合到一个或者多个处理器的存储器。存储器可以包括指令,指令在由一个或者多个处理器执行时使一个或者多个处理器执行以上关于方法例示性实施例概括的操作中的各种操作和组合。[0008]本发明的这些以及其它特征和优点将在本发明的示例实施例的以下具体描述中被描述或者将按照以下具体描述而变得为本领域普通技术人员所清楚。
【专利附图】
【附图说明】
[0009]将通过参照在结合附图阅读时的对例示性实施例的以下具体描述来最好地理解本发明及其优选使用方式以及更多目的和优点,在附图中:
[0010]图1描绘根据一个例示性实施例的云计算节点;
[0011]图2描绘根据一个例示性实施例的云计算环境;
[0012]图3描绘根据一个例示性实施例的抽象模型层;
[0013]图4描绘根据一个例示性实施例的用于数据迁移和复制的系统的示例部署;
[0014]图5图示根据一个例示性实施例的跨越主控次级站点和次级浮桥(pontoon)站点集合拆分数据;
[0015]图6图示根据一个例示性实施例的合并的只读逻辑,该只读逻辑在允许浮桥站点向主控次级站点拷贝数据之时从次级站点提供数据视图;
[0016]图7图示根据一个例示性实施例的在浮桥站点与主控次级站点之间的拷贝和只读操作的视图;
[0017]图8是图示根据一个例示性实施例的用于建立在初级站点、浮桥站点和主控次级站点之间的伙伴关系的机制的操作的流程图;
[0018]图9A和图9B示出流程图,该流程图图示根据一个例示性实施例的用于后台拷贝和合并的读取视图的机制的操作;以及
[0019]图1OA和图1OB示出流程图,该流程图图示根据一个例示性实施例的用于分片计算和浮桥站点空间分配的机制的操作的流程图。
【具体实施方式】
[0020]例示性实施例提供一种用于在跨越存储云的远程复制期间的数据安全和保密的机制。机制可以创建或者标识独立存储云或者“浮桥”为同等利益相关者(stake holder)并且跨越所有浮桥向主控次级站点中继初级数据或者生产数据的拆分信息。浮桥站点是参与从初级站点向主控次级站点迁移或者复制数据而未存储全部数据的附属对等站点。每个云或者浮桥可以在复制过程中充当“踏脚石”。然后,可以在远程站点查看初级数据或者生产信息,该远程站点合并来自独立存储云或者浮桥的视图并且呈现跨越云分散的数据的单个视图,直至从每个浮桥站点向主控次级站点拷贝了所有数据。由于每个浮桥具有去往第三方或者访问浮桥站点的任何人的合格数据子集而不是整个数据集,所以数据将仅表现为随机比特。机制也尝试通过跨越浮桥站点复制初级数据的部分由此减少将从单个站点向另一单个远程站点拷贝的数据的负荷来解决针对初始同步需要的大量时间的问题。机制可以用来向单个主控次级站点或者多个主控次级站点复制或者迁移多个初级映像。
[0021]首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
[0022]云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
[0023]特征包括:
[0024]按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
[0025]广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
[0026]资源池:提供者的计算资源被归入资源池并通过多租户(mult1-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
[0027]迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
[0028]可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
[0029]服务模型如下:
[0030]软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
[0031]平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
[0032]基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
[0033]部署模型如下:
[0034]私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
[0035]共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
[0036]公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。[0037]混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
[0038]云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
[0039]现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
[0040]云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12 —起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任意系统的分布式云计算技术环境,等
坐寸ο
[0041]计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0042]如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0043]总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0044]计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0045]系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0046]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0047]计算机系统/服务器12也可以与一个或多个外部设备14 (例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12—起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统
坐寸ο
[0048]现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
[0049]现在参考图3,其中显示了云计算环境50 (图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:
[0050]硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机,例如 ⑧zSeries?系统;基于Rise (精简指令集计算机)体系结构的服务器,例如
IBM pSeries? 系统;IBM xSeries⑧系统;IBM BladeCenter? 系统;存储设备;网
络和网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM WebSphere⑧应用服务器软件;数据库软件,例如IBM DB2?.数据库软件。(IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
[0051]虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
[0052]在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
[0053]工作量层66提供云计算环境可以用于的功能的示例。可以从这一层提供的工作量和功能的示例包括:映射和导航;软件开发和生命周期管理;虚拟教室教育递送;以及数据分析处理;事务处理;以及数据迁移/复制。
[0054]存储云基本上是联网的联机存储装置,该存储装置可用于任何一个或者多个合格实体根据要求来使用分配的空间。企业组织必须向远程站点复制生产数据或者关键信息从而使得在灾难情形期间可以恢复数据。然而,在跨越多个数据中心(这些数据中心是跨越多个站点展开的)复制数据之时,数据复制速率限于可用站点间链路的带宽和速度。为了更高带宽,组织将承担更高成本,并且对于将向次级站点复制的大数据,复制时间长。
[0055]例示性实施例尝试在无需等待整个初始同步发生的情况下解决在次级站点的快速数据可用性的问题。例示性实施例也尝试通过不添加加密的开销来解决数据安全的问题。例示性实施例跨越可用浮桥站点拆分数据。即使一方具有对数据的访问,但是它仍然将不完整;该方仅具有部分访问权。
[0056]例示性实施例允许在操作中使用充当浮桥的现有公共或者合格存储云作为潜在利益相关者。浮桥站点是参与从初级站点向主控次级站点迁移或者复制数据而未存储全部数据的附属对等站点。例示性实施例要求管理员在建立与远程站点的伙伴关系时标识可用浮桥站点。为公共存储云向浮桥站点付费,这些公共存储云按照需求提供如保留或者如由在实体与存储云提供者之间的协定所确定的合格存储或者使用空间。管理员建立在初级站点与合格次级站点之间以及在初级站点与浮桥站点之间和在浮桥站点与次级站点之间的伙伴关系。
[0057]在这一过程期间,管理员必须标识将充当主控次级站点的远程站点。主控次级站点向访问复制的数据的主机/服务器提供合并的视图。一旦向浮桥站点和主控次级站点中的每个站点复制了初级数据的相应分片,主控次级站点就启用合并的读取视图,该读取视图提供初级数据的只读视图,该初级数据的节段是从每个浮桥站点拉取的。在这一只读视图可用之时,关系在同步三态中存在,在该状态中向浮桥站点拷贝数据,但是尚未从浮桥站点中的每个浮桥站点向主控次级站点拷贝数据。
[0058]例示性实施例要求管理员标识浮桥站点。浮桥是踏脚石。例示性实施例在跨越不同浮桥复制初级数据和在远程站点合并这一数据时使用这一概念。浮桥站点可以是存储阵列或者网络附着存储(NAS)箱或者存储云。浮桥站点是参与从初级站点向主控次级站点迁移或者复制数据而未存储全部数据的附属对等站点。
[0059]图4描绘根据一个例示性实施例的用于数据迁移和复制的系统的示例部署。存储云初级站点410向存储云主控次级站点420迁移或者复制数据。管理员建立在初级站点410与主控次级站点420之间以及在初级站点410与存储云次级浮桥站点421-423之间和在浮桥站点421-423与主控次级站点420之间的伙伴关系。
[0060]存储云初级站点410向主控次级站点420复制数据的一部分并且向浮桥站点421-423并行复制数据的部分。一旦初级站点410向主控次级站点420和浮桥站点421-423复制数据,主控次级站点420就可以启用合并的视图,从而使得客户端可以查看数据如同全部数据存在于主控次级站点420。最终,浮桥站点421-423向主控次级站点420复制数据的部分直至向主控次级站点420完全复制数据。
[0061]图5图示根据一个例示性实施例的跨越主控次级站点和次级浮桥站点集合拆分数据。初级站点510在位图中将待迁移或者复制的数据划分成多个分片。每个分片代表参与复制的站点。例如,如果有包括主控站点的四个站点,则位图将包括四个分片。随机逻辑和后台拷贝线程515定义如何从主控站点510向主控次级站点520和次级浮桥站点521-523拷贝分片。每个分片在位图上具有将向它的相应站点拷贝的数据块。
[0062]图6图示根据一个例示性实施例的合并的只读逻辑,该逻辑在允许浮桥站点向主控次级站点拷贝数据之时从次级站点提供数据视图。主控次级站点620初始地存储从初级站点(未示出)复制或者迁移的相应数据条。次级浮桥站点621-23也初始地存储来自待复制的数据的位图的相应数据条。虚拟逻辑630合并跨越存储浮桥复制的数据。虚拟逻辑630允许主控次级站点620提供数据的合并的只读视图,即使尚未从浮桥站点621-623向主控次级站点620完全复制数据。虚拟逻辑630向客户端提供主控次级站点的只读视图640。
[0063]图7图示根据一个例示性实施例的在浮桥站点与主控次级站点之间的拷贝和只读操作的视图。管理员建立在主控次级站点720与次级站点721-723之间的伙伴关系。主控次级站点720可以与次级站点721-723通信以从次级站点721-723向主控次级站点720迁移数据块。并行地,在完成向主控次级站点720迁移数据块之前,主控次级站点720可以与次级站点721-723通信以提供数据的只读视图。
[0064]所属【技术领域】的技术人员将知道,本发明可以被实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以采用形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或组合硬件和软件方面的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以采取在一个或多个计算机可读介质中体现的计算机程序产品的形式,该计算机可读介质具有体现于其上的计算机可用程序代码。
[0065]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线或半导体系统、装置/器件,或者任意以上的组合。计算机可读存储介质的更具体的示例(非穷举的列表)将包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件或者上述的任意合适的组合。在本文的上下文中,计算机可读存储介质可以是任何可以包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0066]计算机可读信号介质可以包括例如在基带中或者作为载波的部分传播的数据信号,其中承载了计算机可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以传达、传播或者传送用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0067]计算机可读介质上体现的程序代码可以使用任何适当的介质传输,包括但不限于无线、有线、光缆、射频(RF)等等,或者上述的任意合适的组合。[0068]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0069]下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0070]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)0
[0071]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
[0072]图8是流程图,该流程图图示根据一个例示性实施例的用于建立在初级站点、浮桥站点和主控次级站点之间的伙伴关系的机制的操作。操作开始(块800),并且管理员标识和创建存储浮桥或者存储云浮桥(块801)。机制通过首先标识主控次级站点并且然后标识将参与复制过程的私有/公共存储云(充当浮桥)来创建存储浮桥。在初级站点上,管理员标识数据将被复制或者迁移到的主控次级站点(块802)。管理员标识参与私有或者公共存储浮桥或者存储云浮桥站点(块803)。
[0073]管理员然后建立在初级站点与主控次级站点之间的伙伴关系(块804)。管理员也建立在初级站点与浮桥之间的伙伴关系(块805)。管理员建立在主控次级站点与浮桥站点之间的伙伴关系(块806 )。随后,操作结束(块807 )。
[0074]操作要求从可以创建/修改/删除可用存储空间并且如果需要则执行高级操作的单个或者多个管理接口动态管理所有存储站点。这也假设恰当认证过程就位并且然后建立伙伴关系。
[0075]次级站点包括主控次级站点和一个或者多个浮桥站点。浮桥站点是参与复制过程的参与存储装置或者存储云。主控次级站点是将复制初级映像的复制站点。直至来自浮桥站点的所有数据到达主控次级站点,一旦向次级站点拷贝了相应分片的所有数据,则在主控次级站点的逻辑提供合并的读取视图。分片(S)包括将向参与站点拷贝的初级映像的数据块的组块。数据的单位是作为初级映像参与复制的每个逻辑单位编号(LUN)、逻辑卷、虚拟盘、物理盘、空间、文件夹或者文件的空间。单位可以包括在初级参与复制过程的多个LUN或者存储装置。
[0076]分片长度(SS)是将向相应次级站点拷贝的(每个单位的)初级映像的数据块的长度或者数目。分片长度在每浮桥站点基础上特别重要,因为根据在该分片上的可用存储装置可以调整或者变化长度。站点总数(N)包括排除初级站点的所有参与站点。也就是说,站点总数包括主控次级站点和次级浮桥站点。可用空间(AS)是在每个浮桥站点上的可用空间。
[0077]图9A和图9B示出流程图,该流程图图示根据一个例示性实施例的用于后台拷贝和合并的读取视图的机制的操作。参照图9A,操作开始(块900),并且机制在主控次级站点上创建初级数据存储空间的相等大小的数据存储空间(块901)。机制计算可用浮桥站点(块902)并且估计在每个浮桥站点上的可用空间(块903)。机制然后计算和估计可以在每个浮桥站点上存储初级数据的存储空间中的多少存储空间(块904)。
[0078]机制在初级数据的位图上创建合格检查点(块905)。每个节段表现为跨越每个浮桥站点可用的具有等效空间的独立块集合(块906)。机制建立在初级数据的等效独立节段与浮桥站点的可用空间之间的关系(块907)。机制然后创建将跨越主控次级站点和浮桥站点被拆分的用于后台拷贝操作的多个线程(块908)。机制向每个合格存储浮桥站点和主控次级站点拷贝初级数据(块909)。
[0079]随后,转向图9B,机制确定是否已经向每个浮桥站点拷贝了用于合格节段的数据(块910)。如果尚未向每个浮桥站点拷贝数据,则操作返回到图9A中的块909以向次级站点拷贝初级数据。
[0080]如果已经在块910中向每个浮桥站点拷贝了数据,则机制标记关系已经完成初级数据跨越每个浮桥站点的后台拷贝(块911)。然后,机制在主控次级站点触发用于数据的合并的读取视图的逻辑(块912)。机制开始在每个浮桥站点与主控次级站点之间的后台拷贝(块913)。一旦从浮桥站点向主控次级站点拷贝了所有数据,则机制终止合并的读取视图逻辑(块914)。随后,操作结束(块915)。
[0081]图1OA和图1OB示出流程图,该流程图图示根据一个例示性实施例的用于分片计算和浮桥站点空间分配的机制的操作。参照图10A,操作开始(块1000),并且机制计算包括主控次级站点和附属对等(浮桥)站点的次级站点数目(块1001)。机制按照在每个合格次级站点上的可用存储空间将初级数据位图拆分成分片(块1002)。分片数目(S)可以等于次级分片数目,这些次级分片包括数据将被迁移或者复制到的主控次级站点和附属对等存储站点集。例如,如果有三个附属对等(浮桥)站点和一个主控次级站点,则分片数目为四。
[0082]机制计算每站点的最小存储空间(SS)(块1003)。最小存储空间是初级映像空间(PS)除以站点数目。例如,如果初级数据为40GB并且站点数目为四,则每个分片长度为IOGB0机制向每个次级站点探测可用存储空间(块1004)。探测提供每浮桥站点的可用空间(AS)。
[0083]对于每个次级站点,机制计算用于复制的存储空间(块1005)。机制然后确定最小存储空间是否满足分片长度(SS)标准(块1006)。如果最小存储空间满足分片长度标准,则机制标记分片长度存储空间为在站点上可用(块1007)。然后,操作前进到图1OB中的块1008以标记用于后台拷贝线程向在标识的次级站点上的该分片拷贝的区域。机制然后确定站点是否为最后次级站点(块1009)。如果站点不是最后次级站点,则操作返回到图1OA中的块1005以对于下一站点计算用于复制的存储空间。
[0084]如果在块1006中次级站点的可用存储空间未满足分片长度要求,则机制标识可用空间并且标记用于与次级浮桥站点对应的分片的新分片长度(块1010)。主控次级站点将总是具有用于初级卷的整个存储空间,但是参与存储云可以具有或者可以没有用于存储分片的所需空间。机制计算空间差值(块1011)并且在位图上移位下一分片以在先前分片结束时开始(块1012)。
[0085]接着,机制确定下一站点是否具有附加空间(块1013)。如果下一站点具有附加空间,则转向图10B,机制确定可用空间是否等于分片长度加上空间差值(块1014)。如果可用空间不等于分片长度加上差值,或者如果在块1013中下一站点没有附加空间,则机制维持用于次级站点的分片长度标准(块1015)并且放弃使用附加空间(块1016)。机制然后标记用于后台拷贝线程向在标识的次级站点上的该分片拷贝的区域(块1008)并且确定站点是否为最后次级对等站点(块1009)。如果站点不是最后次级站点,则操作返回到图1OA中的块1005以对于下一站点计算用于复制的存储空间。
[0086]如果在块1014中可用空间等于分片长度加上差值,则机制设置用于次级站点的新分片长度(块1017)并且然后标记用于后台拷贝线程向在标识的站点上的该分片拷贝的区域(块1008)并且确定站点是否为最后次级站点(块1009)。如果站点不是最后次级站点,则操作返回到图1OA中的块1005以对于下一站点计算用于复制的存储空间。
[0087]如果在块1009中站点是最后次级站点,则机制建立与主控次级站点有关系的浮桥站点(块1018)。机制从初级站点向主控次级站点中继将从每个浮桥站点向主控次级站点拷贝的块的分片长度的信息(块1019)。机制启动从初级站点向每个附属对等(浮桥)站点和主控次级站点的后台拷贝线程(块1020)
[0088]一旦拷贝操作完成,则机制在主控次级站点上启用合并的读取视图逻辑(块1021)。机制然后启动从每个浮桥站点向主控次级站点的拷贝过程(块1022)。机制验证向主控次级站点拷贝来自每个浮桥站点的数据(块1023)。随后,操作结束(块1024)。
[0089]图中的流程图和框图举例说明根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。就这一点而言,在流程图或者框图中的每个块可以代表代码模块、段或者部分,该代码模块、段或者部分包括用于实施指定的逻辑功能的一个或者多个可执行指令。也应当注意在一些备选实现方式中,在块中指出的功能可以不按图中指出的顺序出现。例如事实上根据涉及到的功能可以基本上并行执行接连示出的两个块或者有时可以按相反顺序执行这些块。也将注意框图和/或流程图图示的每个块以及在框图和/或流程图图示中的块组合可以由执行指定的功能或者动作的基于专用硬件的系统实施或者由专用硬件与计算机指令的组合实施。
[0090]因此,例示性实施例提供用于管理从初级站点向次级站点复制或者迁移大和关键数据的机制。例示性实施例的机制使用第三方或者存储云服务来解决安全和数据私密的考虑,因为每个附属站点仅有被复制的初级映像的一部分而不是全部数据。对在附属站点上的数据的任何无根据或者未授权访问或者对访问安全的任何危害将仅提供将无用的部分数据。排除主控次级和初级站点的每个参与站点充当浮桥或者踏脚石。附属对等站点收集定义的数据集并且然后在某个适当时间点从附属对等站点向主控附属站点拷贝数据。[0091]如以上所言,应当领会到,例示性实施例可以采用全硬件实施例、全软件实施例或者包含硬件与软件单元的实施例这样的形式。在一个示例实施例中,在包括但不限于固件、常驻软件、微代码等的软件或者程序代码中实施例示性实施例的机制。
[0092]适合于存储和/或执行程序代码的数据处理系统将包括通过系统总线直接或者间接耦合到存储器单元的至少一个处理器。存储器单元可以包括在实际执行程序代码期间运用的本地存储器、大容量存储装置和高速缓存存储器,这些高速缓存存储器提供至少一些程序代码的暂时存储以便减少必须在执行期间从大容量存储装置取回代码的次数。
[0093]输入/输出或者I/O设备(包括但不限于键盘、显示器、指示设备等)可以直接或者通过居间I/o控制器耦合到系统。网络适配器也可以耦合到系统以使数据处理系统能够变成通过居间私有或者公共网络耦合到其它数据处理系统或者远程打印机或者存储设备。调制解调器、线缆调制解调器和以太网卡仅为当前可用网络适配器类型的少数类型。
[0094]已经出于例示和描述的目的而呈现了本发明的描述,但是该描述未旨在于穷举本发明或者使本发明限于公开的形式。许多修改和变化将为本领域普通技术人员所清楚。选择和描述实施例以便最好地说明本发明的原理、实际应用并且使本领域其他普通技术人员能够对于具有如与设想的特定使用相配的各种修改的各种实施例理解本发明。
【权利要求】
1.一种在数据处理系统中用于数据复制的方法,包括: 将待复制的数据集划分成多个分片,其中将从初级站点向在多个次级站点内的主控次级站点拷贝所述多个分片中的每个分片,其中所述多个次级站点包括所述主控次级站点和至少一个附属对等站点; 从所述初级站点向所述多个次级站点拷贝所述多个分片,从而使得所述主控次级站点存储所述数据集的第一分片并且所述至少一个附属对等站点中的每个附属对等站点存储所述数据集的对应分片;以及 响应于完成向所述多个次级站点拷贝所述多个分片,对于所述至少一个附属对等站点中的每个附属对等站点,发起向所述主控次级站点拷贝所述数据集的所述对应分片。
2.根据权利要求1所述的方法,其中所述初级站点包括存储云。
3.根据权利要求1所述的方法,其中所述主控次级站点包括存储云。
4.根据权利要求1所述的方法,其中所述至少一个附属对等站点包括存储云。
5.根据权利要求1所述的方法,其中将所述数据集划分成所述多个分片包括: 确定次级站点数目; 确定每次级站点的存储空间;以及 对于每个给定的次级站 点,响应于所述给定的次级站点的可用存储空间大于或者等于所述存储空间,标记所述给定的次级站点的存储空间的区域以用于复制存储。
6.根据权利要求5所述的方法,其中将所述数据集划分成所述多个分片还包括: 响应于所述给定的次级站点的可用存储空间并不大于或者等于所述存储空间,确定空间差值;以及 响应于下一次级站点具有附加存储空间,移位下一分片以在先前分片结束时开始并且设置用于所述给定的次级站点和所述下一次级站点的新分片长度。
7.根据权利要求1所述的方法,还包括: 响应于完成向所述多个次级站点拷贝所述多个分片,在所述主控次级站点启用用于所述数据集的合并的读取视图的逻辑,其中所述逻辑向客户端呈现所述数据集的合并的读取视图,如同所述数据集存储于所述主控次级站点。
8.根据权利要求7所述的方法,还包括: 响应于完成从所述至少一个附属对等站点向所述主控次级站点拷贝所述数据集的分片,在所述主控次级站点禁用用于所述数据集的所述合并的读取视图的所述逻辑。
9.根据权利要求1所述的方法,还包括: 建立在所述初级站点与所述多个次级站点中的每个次级站点之间的伙伴关系。
10.根据权利要求1所述的方法,还包括: 建立在所述至少一个附属对等站点中的每个附属对等站点与所述主控次级站点之间的伙伴关系。
11.根据权利要求1所述的方法,其中发起向所述主控次级站点拷贝所述数据集的所述对应分片包括在所述给定的次级对等站点上发起后台拷贝线程。
12.根据权利要求1所述的方法,还包括: 验证向所述主控次级站点拷贝来自所述至少一个附属对等站点中的每个附属对等站点的数据。
13.一种用于数据复制的计算机系统,包括:用于实施根据权利要求1-12所述的任一方法的任何步骤的装置。
14.一种装置,包括: 处理器;以及 耦合到所述处理器的存储器,其中所述存储器包括指令,所述指令在由所述处理器执行时使所述处理器: 将待复制的数据集划分成多个分片,其中将从初级站点向在多个次级站点内的主控次级站点拷贝所述多个分片中的每个分片,其中所述多个次级站点包括所述主控次级站点和至少一个附属对等站点; 从所述初级站点向所述多个次级站点拷贝所述多个分片,从而使得所述主控次级站点存储所述数据集的第一分片并且所述至少一个附属对等站点中的每个附属对等站点存储所述数据集的对应分片;以及 响应于完成向所述多个次级站点拷贝所述多个分片,对于所述至少一个附属对等站点中的每个附属对等站点,发起向所述主控次级站点拷贝所述数据集的所述对应分片。
15.根据权利要求14所述的装置,其中所述初级站点或者所述主控次级站点中的至少一个站点包括存储云。
16.根据权利要求14所述的装置,其中所述至少一个附属对等站点包括存储云。
17.根据权利要求14所述的装置,其中将所述数据集划分成所述多个分片包括: 确定次级站点数目; 确定每次级站点的存储空间;以及 对于每个给定的次级站点,响应于所述给定的次级站点的可用存储空间大于或者等于所述存储空间,标记所述给定的次级站点的存储空间的区域以用于复制存储。
18.根据权利要求17所述的装置,其中将所述数据集划分成所述多个分片还包括: 响应于所述给定的次级站点的可用存储空间并不大于或者等于所述存储空间,确定空间差值;以及 响应于下一次级站点具有附加存储空间,移位下一分片以在先前分片结束时开始并且设置用于所述给定的次级站点和所述下一次级站点的新分片长度。
19.根据权利要求14所述的装置,其中所述指令还使所述处理器: 响应于完成向所述多个次级站点拷贝所述多个分片,在所述主控次级站点启用用于所述数据集的合并的读取视图的逻辑,其中所述逻辑向客户端呈现所述数据集的合并的读取视图,如同所述数据集存储于所述主控次级站点;以及 响应于完成从所述至少一个附属对等站点向所述主控次级站点拷贝所述数据集的分片,在所述主控次级站点禁用用于所述数据集的所述合并的读取视图的所述逻辑。
20.根据权利要求14所述的装置,其中所述指令还使所述处理器: 建立在所述初级站点与所述多个次级站点中的每个次级站点之间的伙伴关系;以及建立在所述至少一个附属对等站点中的每个附属对等站点与所述主控次级站点之间的伙伴关系。
【文档编号】H04L29/08GK103916455SQ201410003406
【公开日】2014年7月9日 申请日期:2014年1月3日 优先权日:2013年1月4日
【发明者】S·V·卡夫, J·S·库尔卡尼, S·S·帕特尔, A·R·帕特哈克, S·R·帕蒂尔 申请人:国际商业机器公司