CN105447033A - 在复制初始化中生成初始副本的方法和装置 - Google Patents
在复制初始化中生成初始副本的方法和装置 Download PDFInfo
- Publication number
- CN105447033A CN105447033A CN201410433437.4A CN201410433437A CN105447033A CN 105447033 A CN105447033 A CN 105447033A CN 201410433437 A CN201410433437 A CN 201410433437A CN 105447033 A CN105447033 A CN 105447033A
- Authority
- CN
- China
- Prior art keywords
- target data
- data block
- block
- source
- source block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/835—Timestamp
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
Abstract
本发明提供了用于在复制初始化中生成初始副本的方法和装置。在本发明的一个实施方式中,提供了一种用于在复制初始化中生成初始副本的方法,包括:接收从源节点向目标节点复制源卷以生成源卷的初始副本的请求;针对源卷中包括的至少一个源数据块中的当前源数据块,在目标节点中搜索与当前源数据块相对应的目标数据块;以及利用目标数据块更新初始副本。在本发明的一个实施方式中,提供了一种用于在复制初始化中生成初始副本的装置。采用本发明的方法和装置,可以尽可能地利用在目标节点中已经存在的数据块来生成源节点中的待复制的源卷的初始副本。
Description
技术领域
本发明的各实施方式涉及数据复制(datareplication),更具体地,涉及用于在复制初始化(replicationinitialization)中生成初始副本(initialcopy)的方法和装置。
背景技术
随着数据存储技术以及网络通信技术的发展,目前已经提出了分布式数据存储的概念。在分布式数据存储中,数据不再位于单一的数据节点,而是可以分布在位于相同或者不同物理地点的多个数据节点中。进一步,为了提供更加可靠的数据存储,在分布式数据存储系统中,可以在多个数据节点中存储数据对象的多个备份,从而在部分数据节点出现故障时,可以基于其他未出现故障的数据节点中的备份来恢复故障节点中的数据。
目前,数据库中的数据量随着用户需求的增长而变得越来越大。当在分布式数据存储中的各个数据节点之间复制数据(例如,从北京的数据节点向上海的数据节点复制数据)时,可能会花费数小时甚至数天的时间。尽管提高各个数据节点之间的带宽可以提高数据复制的效率,然而,提高数据带宽需要大量人力和物力开销;此外,由于在各个数据节点之间的数据传输量并不稳定,基于数据传输量的峰值需求来设置网络传输带宽,将造成带宽资源的极大浪费。
复制初始化是指在不同数据节点之间第一次同步数据的步骤,在复制初始化期间,需要将源节点中的全部数据拷贝至目标节点。在数据复制领域中,通常在复制初始化期间需要较大的数据传输量,而当已经在目标节点中存在初始副本的情况下,则仅需要较小的数据传输量即可确保目标节点与源节点的同步。因而,如何提高复制初始化的效率并且在复制初始化期间快速地生成初始副本,成为数据复制领域的一个研究热点。
发明内容
因而,期望开发一种能够在复制初始化期间方便并且快速地生成初始副本的技术方案,期望该技术方案可以尽可能地重用已经存在于目标节点中的数据块(datablock),并且基于该数据块和/或源节点中的其他数据块来在目标节点中生成源节点中的待复制的源卷(sourcevolume)的初始副本。
在本发明的一个实施方式中,提供了一种用于在复制初始化中生成初始副本的方法,包括:接收从源节点向目标节点复制源卷以生成源卷的初始副本的请求;针对源卷中包括的至少一个源数据块中的当前源数据块,在目标节点中搜索与当前源数据块相对应的目标数据块;以及利用目标数据块更新初始副本。
在本发明的一个实施方式中,在目标节点中搜索与当前源数据块相对应的目标数据块包括:获取与当前源数据块相关联的包括一个或者多个候选目标数据块的列表,候选目标数据块是目标节点中的与当前源数据块具有历史拷贝关系的目标数据块;以及响应于候选目标数据块与当前源数据块相匹配,将候选目标数据块标识为目标数据块。
在本发明的一个实施方式中,进一步包括:在源卷中选择与初始副本中的目标数据块相对应的源数据块以外的源数据块,以形成源数据块集合;以及从源节点向目标节点拷贝源数据块集合中的源数据块以更新初始副本。
在本发明的一个实施方式中,提供了一种用于在复制初始化中生成初始副本的装置,包括:接收模块,配置用于接收从源节点向目标节点复制源卷以生成源卷的初始副本的请求;搜索模块,配置用于针对源卷中包括的至少一个源数据块中的当前源数据块,在目标节点中搜索与当前源数据块相对应的目标数据块;以及更新模块,配置用于利用目标数据块更新初始副本。
在本发明的一个实施方式中,搜索模块包括:列表获取模块,配置用于获取与当前源数据块相关联的包括一个或者多个候选目标数据块的列表,候选目标数据块是目标节点中的与当前源数据块具有历史拷贝关系的目标数据块;以及第三标识模块,配置用于响应于候选目标数据块与当前源数据块相匹配,将候选目标数据块标识为目标数据块。
在本发明的一个实施方式中,进一步包括:集合形成模块,配置用于在所述源卷中选择与所述初始副本中的目标数据块相对应的源数据块以外的源数据块,以形成源数据块集合;以及拷贝模块,配置用于从所述源节点向所述目标节点拷贝所述源数据块集合中的源数据块以更新所述初始副本。
采用本发明所述的方法和装置,可以在充分考虑目标节点中的数据块和源节点中的数据的对应关系的情况下,尽可能地利用在目标节点中已经存在的数据块来在目标节点中生成源卷的初始副本。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示意性示出了适于用来实现本发明实施方式的示例性计算机系统/服务器的框图;
图2示意性示出了一个示例性的云计算环境;
图3示意性示出了云计算环境50(图2)提供的一组功能抽象层;
图4A-图4B示意性示出了根据一个技术方案的用于在复制初始化中生成初始副本的技术方案的图示;
图5A-图5B示意性示出了根据本发明的实施方式的用于在数据初始化中生成初始副本的技术方案的图示;
图6示意性示出了根据本发明的一个实施方式的用于在数据初始化中生成初始副本的方法的流程图;
图7示意性示出了根据本发明的一个实施方式的数据块的标签(label)的结构的框图;
图8A-图8C示意性示出了根据本发明的一个实施方式的用于在数据初始化中生成初始副本的技术方案的图示;以及
图9示意性示出了根据本发明的一个实施方式的用于在数据初始化中生成初始副本的装置的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其他类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户账号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施方式的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
云计算节点10具有计算机系统/服务器12,其可与众多其他通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其他可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施方式的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其他程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施方式中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其他计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其他模块通信。应当明白,尽管图中未示出,其他硬件和/或软件模块可以与计算机系统/服务器12一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施方式不限于此。如图3所示,提供下列层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机,例如系统;基于RISC(精简指令集计算机)体系结构的服务器,例如IBM系统;IBM系统;IBM系统;存储设备;网络和网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM应用服务器软件;数据库软件,例如IBM数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其他资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供账单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其他资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及复制初始化管理。
在本发明的一个实施方式中,可以在工作负载层66处实现根据本发明的各个实施方式的在复制初始化中生成初始副本的技术方案,以便在云计算环境中可以在复制初始化中快速地生成初始副本。在上文中示意性示出了本发明的应用环境,本领域技术人员应当理解,还可以结合现在已知或以后开发的任何其他类型的应用环境而实现本发明的各个实施方式。
在分布式数据存储中,位于多个地理位置的数据节点可以保存相同数据的多个副本。在分布式数据存储系统中经常会出现如下情况,第二数据节点中的数据曾经与第一数据节点中的数据保持同步,之后管理员将第二数据节点用于其他用途。在经过一段时间之后,第一数据节点和第二数据节点中的数据不再保持同步。当管理员再次希望第二数据节点中的数据与第一数据节点中的数据保持同步时,则必须重新将第一数据节点中的全部数据拷贝至第二数据节点,而这种拷贝操作可能会持续数天的时间。
又例如,当第二数据节点出现故障而停止工作时,第一数据节点中的数据可能会被更新。而当第二数据节点被修复并且再次工作时,由于第一数据节点中的数据更新和第二数据节点中的数据损坏,第二数据节点的数据与第一数据节点中的数据不再一致。此时,为了确保两个数据节点中数据的一致性,不得不重新将第一数据节点中的全部数据拷贝至第二数据节点。
上文仅仅示意性示出了两种典型的应用环境,其中源节点和目标节点中的数据曾经保持同步,然而出于某种原因(例如,网络故障、节点故障或者人为决定),两个节点中的数据不再保持同步。此时如果需要在两个数据节点上保持相同数据对象的副本,则需要从一个数据节点向另一数据节点重新拷贝全部数据对象。
当目标节点不包括源节点中的任何数据块(例如,为空)时,需要将源节点中的全部数据块拷贝至目标数据节点。而在大多数情况下,目标节点已经存储了来自源节点中的某些数据块。
图4A-图4B示意性示出了根据一个技术方案的用于在复制初始化中生成初始副本的技术方案的图示400A和400B。如图4A示出了源节点410A和目标节点420A保持同步的状态400A,此时源节点410A中的源卷412A内的各个数据块A1-A6被拷贝到目标节点420A以形成源卷412A的初始副本(该初始副本包括分别对应于源卷412A中的源数据块A1-A6的数据块B1-B6)。
图4B示意性示出了经过一段时间之后源节点410B和目标节点420B之间不再同步的状态400B。如图4B所示,其中以阴影示出的数据块B3和B4表示被损坏/被修改并且不再对应于数据块A3和A4的数据块;以空白方框示出的数据块B1、B2、B5和B6仍然是与源节点410B中的数据块A1、A2、A5和A6相对应的数据块。按照现有技术的解决方案,尽管在目标节点420B处存在与目标节点410B中的源卷412B中的至少一部分数据块相对应的数据块,然而,目标节点420B中的各个数据块的地址之间的关系(例如,地址偏移)可能已经不再准确。因而,在复制初始化期间不得不从源节点410B向目标节点420B重新拷贝源卷412B中的全部数据块A1-A6。
鉴于现有技术中的上述不足,期望开发一种能够充分考虑目标节点中的数据块和源节点中的数据块的对应关系的技术方案,并且期望该技术方案可以尽可能地利用在目标节点中已经存在的数据块来生成源节点中的源卷的初始副本。以此方式,可以减小在源节点和目标节点之间的数据传输量,进而缩短复制初始化的时间开销。
本领域技术人员应当理解,在本发明的上下文中仅以卷和数据块作为示例性数据存储单元来描述本发明的实施方式的细节。本领域技术人员应当理解,在基于不同原理实现的数据节点中,数据块可以表现为不同的基本存储单位。例如,在基于磁盘实现的数据节点中,数据块可以表现为磁盘中的轨道(track)。
在本发明的一个实施方式中,提供了一种用于在复制初始化中生成初始副本的方法,包括:接收从源节点向目标节点复制源卷以生成源卷的初始副本的请求;针对源卷中包括的至少一个源数据块中的当前源数据块,在目标节点中搜索与当前源数据块相对应的目标数据块;以及利用目标数据块更新初始副本。
图5A-图5B示意性示出了根据本发明的实施方式的用于在数据初始化中生成初始副本的技术方案的图示。具体地,图5A示意性示出了一种用于在复制初始化中生成初始副本的技术方案的图示500A。如图5A所示,目标节点520A与源节点510A曾经保持同步,然而之后同步操作停止并且目标节点520A被用作其他用途。当再次期望目标节点520A与源节点510A保持同步时,目标节点520A中的数据块如数据块B1-B6所示。在图5A中,以阴影方框示出的数据块B3和B4可能已经被损坏或者被修改,而以空白方框示出的数据块B1、B2、B5和B6中的数据分别与源卷512A中的数据块A1、A2、A5和A6保持同步。
在本发明的一个实施方式中,针对源卷512A中包括的每个源数据块(例如,数据块A1-A6中的任何一个),可以在目标节点520A中搜索与该数据块相对应的目标数据块,例如,找到对应于源数据块A1的数据块B1。此时,可以基于找到的目标数据块来更新初始副本。
具体地,假设初始副本最初为空,通过在目标节点520A中搜索分别与源数据块A1-A6相对应的目标数据块,可以找到源数据块和目标数据块之间的对应关系(如图5A中的虚线箭头所示),之后可以基于找到的目标数据块来更新初始副本。例如,更新后的初始副本中可以包括目标数据块B1、B2、B5和B6。
根据本发明的各个实施方式的原理,可以逐步生成最终的初始副本。如图5B示意性示出了根据本发明一个实施方式的用于在复制初始化中生成初始副本的技术方案的框图500B。在按照图5A所示的技术方案生成的初始副本(包括目标数据块B1、B2、B5和B6)的基础上,可以向该初始副本中拷贝源卷512B中包括的、在目标节点520B中不存在的其他源数据块(例如,如图5B中的箭头所示,向目标节点520B拷贝源数据块A3和A4),以便生成完整的初始副本(包括分别对应于源数据块A1-A6的目标数据块B1-B6)。
应当注意,在同步之后目标节点520A中的各个目标数据块B1-B6的地址之间的关系与源节点510A中的各个源数据块A1-A6的地址之间的关系相一致。本领域技术人员可以理解,当目标节点520A中进行了大量数据更新操作后,尽管在目标节点520A中可能仍然会存在数据块B1-B6,然而这些数据块B1-B6可能会零散地分布在目标节点520A中,并且各个数据块之间的相对地址偏移可能会被改变。
在下文中将参见附图描述本发明的实施方式的具体细节。图6示意性示出了根据本发明的一个实施方式的用于在数据初始化中生成初始副本的方法的流程图600。在步骤S610中,接收从源节点向目标节点复制源卷以生成源卷的初始副本的请求。在本发明的上下文中以卷、源节点和目标节点为具体示例,介绍如何在目标节点中生成该卷的初始副本的技术方案的原理。本领域技术人员应当理解,在具体应用中,可能需要从多个源节点向多个目标节点复制多个卷,本领域技术人员可以基于本发明的原理实现具体操作步骤。
在步骤S620中,针对源卷中包括的至少一个源数据块中的当前源数据块,在目标节点中搜索与当前源数据块相对应的目标数据块。在此实施方式中,可以针对源卷中包括的每个源数据块进行处理,以便在目标卷中搜索与每个源数据块相对应(即,包括相同数据)的目标数据块。
在步骤S630中,利用目标数据块更新初始副本。可以利用找到的与源数据块相对应的目标数据块来更新初始副本。应当注意,在与源节点中的源卷同步之后,当目标节点和源节点之间不再具有同步关系时,目标节点中的数据可能会经历多次写操作,因而目标节点中的部分数据可能会被覆盖,导致在目标节点中仅能找到与一部分源数据块相对应的目标数据块。因而,对于在目标节点中不存在与其相对应的数据块的源数据块,还需要附加的拷贝步骤以便将这些源数据块拷贝至目标节点。
接着,在步骤S640中判断在源卷中是否存在更多的源数据块,如果存在则操作流程返回步骤S620以便针对下一源数据块进行处理。
在本发明的应用环境中,可以存在两种模式的复制请求:第一模式可以仅指定从源节点向目标节点复制源卷,而并不指定将源卷复制到目标节点的何处;第二模式可以指定从源节点向目标节点复制源卷,并且还可以指定向目标节点中的何处(例如,目标卷)复制源卷。因而,针对两种模式的复制请求可以执行不同的处理。
在第一模式中,如果找到的目标数据块是空闲(free)的数据块,则可以将该空闲数据块直接作为目标数据块;如果找到的目标数据块不是空闲的而是被其他应用占用,则还需要生成该目标数据块的快照(snapshot)。具体地,在本发明的一个实施方式中,进一步包括:响应于目标数据块已被占用,将目标数据块的快照标识为目标数据块。如果找到的目标数据块是空闲的数据块,则可以直接利用该目标数据块更新初始副本。
应当注意,由于目标节点还可以被用作其他功能,因而找到的目标数据块可能是已经被其他应用占用的数据块。因而,此时还需要获取目标数据块的快照,并且将该快照作为目标数据块。应当注意,相对于从源节点向目标节点重新传输源数据块而言,在目标节点处获取目标数据块的快照所耗费的时间可以忽略不计。因而,采用本发明所述的技术方案可以大大降低准备初始副本的时间。
在第二模式中,由于需要将源卷中的源数据块复制到目标节点中的指定的位置(目标卷),因而需要附加的操作以确保最终的目标数据块在目标卷内。具体地,在本发明的一个实施方式中,进一步包括:响应于请求指示向目标节点的目标卷复制源卷,如果目标数据块不在目标卷内,则在目标卷内生成目标数据块的快照,以及将快照标识为目标数据块。
以此方式,当目标数据块位于目标卷内时,可以直接基于该目标数据块来更新初始副本;当目标数据块不在目标卷内时,可以在目标卷内生成目标数据块的快照,并将快照作为最终的目标数据块来更新初始副本。
在本发明的一个实施方式中,在目标卷内生成目标数据块的快照包括:获取当前源数据块在源卷中的当前地址;以及在目标卷内与当前地址相对应的地址处,生成目标数据块的快照。
应当注意,由于初始副本中的目标数据块应当分别对应于源卷中的源数据块,因而需要确保目标数据块的地址与源数据块的地址是相对应的。在此实施方式中,假设当前源数据块在源卷中的当前地址为add-block1,可以在目标卷中与add-block1相对应的地址处生成目标数据块的快照。换言之,快照相对于目标卷的地址偏移与当前源数据块相对于源卷的地址偏移是相同的。以此方式,可以确保初始副本中的目标数据块的地址与源卷中的源数据块的地址具有一一对应的关系。
在本发明的一个实施方式中,在目标节点中搜索与当前源数据块相对应的目标数据块包括:获取与当前源数据块相关联的包括一个或者多个候选目标数据块的列表,候选目标数据块是目标节点中的与当前源数据块具有历史拷贝关系的目标数据块;以及响应于候选目标数据块与当前源数据块相匹配,将候选目标数据块标识为目标数据块。
在从源节点向目标节点的历史拷贝中,可以在历史拷贝列表中记录源节点中的各个源数据块被拷贝至目标节点中的何处,以便在生成初始副本时可以基于历史拷贝列表中的历史拷贝关系,优先搜索该列表中的候选目标数据块。具体地,假设在历史拷贝中源节点的源卷中的源数据块A1被复制到目标节点中并形成目标数据块B1,则历史拷贝列表可以如下文表1所示。
表1历史拷贝列表的示例1
源数据块 | 目标数据块 |
A1 | B1 |
… | … |
当源数据块A1被多次拷贝到目标节点(例如,还形成了目标数据块C1、C2),并且当目标数据块B1在目标节点中又被拷贝(例如,形成D1)时,则历史拷贝列表可以如下文表2所示。
表2历史拷贝列表的示例2
源数据块 | 目标数据块 |
A1 | B1,C1,C2,D1 |
… | … |
应当注意,历史拷贝列表中的目标数据块可以是与源数据块具有直接或者间接拷贝关系的一个或者多个目标数据块。尽管表1和表2中仅仅示出了与一个源数据块A1相关联的拷贝历史,本领域技术人员可以理解,历史拷贝列表中可以包括与多个源数据块相关联的拷贝历史。
在本发明的一个实施方式中,可以基于历史拷贝列表在目标节点中逐个查找与源卷中的每个源数据块相对应的目标数据块,而不必搜索整个目标节点。具体地,当接收到生成源卷的初始副本的请求时,例如对于源卷中包括的源数据块A1,可以基于表2所示的历史拷贝列表来在目标节点中搜索与当前源数据块A1相对应的目标数据块。例如,当发现目标节点中的数据块B1匹配于源数据块A1时,可以停止搜索并将B1作为目标数据块。由于目标节点上的数据块可能会被其他应用修改,因而B1可能不再匹配于A1。当发现数据块B1不能匹配于源数据块A1时,可以继续检查列表中的其他数据块(例如,数据块C1、C2和D1),直到找到与源数据块A1相匹配的目标数据块、或者遍历了列表中的全部数据块。
为了进一步减小搜索期间涉及的计算量,还可以通过比较源数据块的标签和目标数据块的标签来判断两个数据块是否匹配,而不必比较源数据块和目标数据块。为简单起见,可以基于数据块内的数据的时间戳来形成数据块的标签。
在本发明的一个实施方式中,响应于候选目标数据块与当前源数据块相匹配,将候选目标数据块标识为目标数据块包括:响应于候选目标数据块的标签与当前源数据块的标签相匹配,将候选目标数据块标识为目标数据块,其中当前源数据块的标签包括当前源数据块的标识符以及当前源数据块中的数据的时间戳,候选目标数据块的标签相同于与候选目标数据块具有历史拷贝关系的源数据块的标签。
图7示意性示出了根据本发明的一个实施方式的数据块的标签的结构的框图700。标签710可以包括数据块的标识符712以及数据的时间戳714。应当注意,本领域技术人员可以自定义时间戳的精度,通过提高时间戳的精度,可以为源卷中的每个数据块生成唯一的标签。
在本发明的一个实施方式中,源数据块的标签可以包括当前源数据块的标识符以及当前源数据块中的数据的时间戳。例如,源数据块A1的标识符可以是A1,而其中存储的数据的时间戳可以是20140101000000,此时源数据块A1的标签可以是A1-20140101000000。候选目标数据块的标签相同于与候选目标数据块具有历史拷贝关系的源数据块的标签。因而目标节点中的通过拷贝源数据块A1形成的目标数据块B1的标签也可以是A1-20140101000000。应当注意,在本发明的上下文中仅仅示意性示出了标签的数据结构的示例,本领域技术人员还可以采用其他的数据结构,例如,以更高的精度来记录时间戳。
在本发明的一个实施方式中,其中:在当前源数据块中的数据被修改时,当前源数据块的标签基于修改后数据的时间戳被更新。例如,当源数据块A1中的数据在2014年01月02日00:00:00被修改时,可以将源数据块A1的标签修改为A1-20140102000000。应当注意,由于源数据块A1的内容已经改变,因而源数据块A1与目标数据块B1不再匹配。此时,目标数据块B1的标签仍然保持不变,因而通过修改源数据块A1的标签,可以确保在比较A1的标签和B1的标签时发现两个标签不再匹配,因而可以确定候选目标数据块B1不能对应于源数据块A1。
在本发明的一个实施方式中,进一步包括:响应于以下中的任一项,从列表中删除候选目标数据块:候选目标数据块的标签与当前源数据块的标签不匹配,以及候选目标数据块被修改。以此方式,当源数据块和候选目标数据块中的任意一个被修改时,则源数据块与候选目标数据块之间的对应关系不再成立,因而可以从列表中删除不再具有对应关系的源数据块和候选目标数据块。
图8A-图8C示意性示出了根据本发明的一个实施方式的用于在数据初始化中生成初始副本的技术方案的图示800A-800C。在此实施方式中,期望将源节点810A中的源卷812A复制到目标节点820A中的目标卷822A处。采用上文所述的技术方案,已经在目标节点820A中找到了与源节点810A中的源卷812A具有对应关系的目标数据块B1、B2、B3、B5和B6。在此实施方式中,找到的目标数据块B1、B2、B5和B6位于目标卷822A内,而目标数据块B3位于目标卷822A以外。因而,需要在目标卷822A内生成目标数据块B3的快照;此外,由于在目标节点820A中并不存在与源数据块A4相对应的目标数据块,还需要从源节点810A拷贝该源数据块A4。
图8B示意性示出了根据本发明一个实施方式的在目标卷内生成目标数据块的快照的技术方案的框图800B。在此实施方式中,目标数据块B3对应于源数据块A3,因而可以在目标卷822B内生成目标数据块B3的快照B3’。在此实施方式中,快照B3’在目标卷822B内的地址与源数据块A3在源卷812B内的地址相对应。
应当注意,采用上文所述的各个实施方式的方法,可以尽可能地重用在目标节点中存在的先前所拷贝的数据块,以便减小在生成初始副本期间所需要传输的数据量。当目标节点与源节点之间的同步关系不再存在时,目标节点还可以用作其他用途因而导致目标节点中的数据被其他应用所修改。通常,在目标节点中仅能找到与源节点的源卷中的一部分源数据块相对应的目标数据块。对于在目标节点中不存在相对应的目标数据块的源数据块,还需要从源节点向目标节点传输这些源数据块。
在本发明的一个实施方式中,进一步包括:在源卷中选择与初始副本中的目标数据块相对应的源数据块以外的源数据块,以形成源数据块集合;以及从源节点向目标节点拷贝源数据块集合中的源数据块以更新初始副本。
如图8B所示,在目标节点820B中并不存在与源数据块A4相对应的目标数据块,因而需要从源节点向目标节点拷贝源数据块A4。应当注意,尽管在图8B的实施方式中示出了在目标节点中不存在仅一个目标数据块的情况(即,源数据块集合中仅包括一个源数据块A4),本领域技术人员应当理解,源数据块集合中可以包括多个源数据块。
由于初始副本中的目标数据块的地址与源卷中的源数据块的地址之间具有对应关系,因而在从源节点向目标节点拷贝源数据块时还需要考虑地址对应关系。具体地,在本发明的一个实施方式中,从源卷向目标卷拷贝源数据块集合中的源数据块以更新初始副本包括:针对源数据块集合中的每个源数据块,获取源数据块在源卷中的地址;以及将源数据块拷贝至目标卷内与地址相对应的地址处以更新初始副本。
图8C示意性示出了从源节点810C向目标节点820C拷贝源数据块A4的示意图800C。如图800C中的箭头所示,将源数据块A4拷贝至目标节点820C的目标卷822C中的相应地址以形成目标数据块A4’,其中该目标数据块A4’在目标卷822C中的地址与源数据块A4在源卷810C中的地址相对应。采用如图8A-8C所示的技术方案,目标节点的目标卷中包括源卷内的全部数据。
在上文中已经参见附图8A-8C描述了在目标节点中的目标卷处生成初始副本的技术方案的具体步骤(在第一模式下),本领域技术人员可以基于上文所述的原理来实现在目标节点中的其他位置处生成初始副本的技术方案。具体地,可以基于初始副本中的各个目标数据块与源卷中的各个源数据块之间的地址对应关系,来组装(assemble)初始副本中的各个目标数据块,以便形成最终的初始副本。
上文已经在多个实施方式中描述了本发明的原理,本领域技术人员应当理解,本发明的各个实施方式尤其适合于目标节点曾经与源节点同步的情况。此时在目标节点中很可能会存在与源节点中的源数据块具有对应关系的大量目标数据块。此时,尽管目标数据块可能零散地分布于目标节点中,按照本发明的各个实施方式的技术方案,只需要在目标节点中的适合位置生成这些目标数据块的快照。以此方式,仅需要从源节点拷贝一部分源数据块,并通过组装这些快照以及所拷贝的数据块,即可快速地生成初始拷贝。
另外,本发明的实施方式所需的额外计算负荷非常小,因而相对于现有技术中需要花费数小时甚至数天执行数据传输操作而言,完全可以忽略额外的计算负荷。即使在目标节点中不存在与源数据块相对应的目标数据块,本发明的搜索步骤也不会产生过多的时间开销。
前面已经参考附图描述了实现本发明的方法的各个实施方式。本领域技术人员可以理解的是,上述方法既可以以软件方式实现,也可以以硬件方式实现,或者通过软件与硬件相结合的方式实现。并且,本领域技术人员可以理解,通过以软件、硬件或者软硬件相结合的方式实现上述方法中的各个步骤,可以提供一种基于相同发明构思的一种设备。即使该设备在硬件结构上与通用处理设备相同,由于其中所包含的软件的作用,使得该设备表现出区别于通用处理设备的特性,从而形成本发明的各个实施方式的设备。本发明中所述设备包括若干装置或模块,所述装置或模块被配置为执行相应步骤。本领域的所述技术人员通过阅读本说明书可以理解如何编写程序实现所述装置或模块执行的动作。由于所述设备与方法基于相同的发明构思,因此其中相同或相应的实现细节同样适用于与上述方法对应的装置或模块,由于其在上文中已经进行了详细和完整的描述,因此在下文中可能不再进行赘述。
图9示意性示出了根据本发明的一个实施方式的用于在数据初始化中生成初始副本的装置的框图900。具体地,提供了一种用于在复制初始化中生成初始副本的装置,包括:接收模块910,配置用于接收从源节点向目标节点复制源卷以生成源卷的初始副本的请求;搜索模块920,配置用于针对源卷中包括的至少一个源数据块中的当前源数据块,在目标节点中搜索与当前源数据块相对应的目标数据块;以及更新模块930,配置用于利用目标数据块更新初始副本。
在本发明的一个实施方式中,进一步包括:第一标识模块,配置用于响应于目标数据块已被占用,将目标数据块的快照标识为目标数据块。
在本发明的一个实施方式中,进一步包括:第二标识模块,配置用于响应于请求指示向目标节点的目标卷复制源卷,如果目标数据块不在目标卷内,则在目标卷内生成目标数据块的快照,以及将快照标识为目标数据块。
在本发明的一个实施方式中,第二标识模块包括:地址获取模块,配置用于获取当前源数据块在源卷中的当前地址;以及快照生成模块,配置用于在目标卷内与当前地址相对应的地址处,生成目标数据块的快照。
在本发明的一个实施方式中,搜索模块920包括:列表获取模块,配置用于获取与当前源数据块相关联的包括一个或者多个候选目标数据块的列表,候选目标数据块是目标节点中的与当前源数据块具有历史拷贝关系的目标数据块;以及第三标识模块,配置用于响应于候选目标数据块与当前源数据块相匹配,将候选目标数据块标识为目标数据块。
在本发明的一个实施方式中,第三标识模块包括:第四标识模块,配置用于响应于候选目标数据块的标签与当前源数据块的标签相匹配,将候选目标数据块标识为目标数据块,其中当前源数据块的标签包括当前源数据块的标识符以及当前源数据块中的数据的时间戳,候选目标数据块的标签相同于与候选目标数据块具有历史拷贝关系的源数据块的标签。
在本发明的一个实施方式中,其中:当前源数据块的标签在当前源数据块中的数据被修改时基于修改后数据的时间戳被更新。
在本发明的一个实施方式中,进一步包括:删除模块,配置用于响应于以下中的任一项,从列表中删除候选目标数据块:候选目标数据块的标签与当前源数据块的标签不匹配,以及候选目标数据块被修改。
在本发明的一个实施方式中,进一步包括:集合形成模块,配置用于在源卷中选择与初始副本中的目标数据块相对应的源数据块以外的源数据块,以形成源数据块集合;以及拷贝模块,配置用于从源节点向目标节点拷贝源数据块集合中的源数据块以更新初始副本。
在本发明的一个实施方式中,拷贝模块包括:第二地址获取模块,配置用于针对源数据块集合中的每个源数据块,获取源数据块在源卷中的地址;以及第二拷贝模块,配置用于将源数据块拷贝至目标卷内与地址相对应的地址处以更新初始副本。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施方式中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施方式的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。
Claims (20)
1.一种用于在复制初始化中生成初始副本的方法,包括:
接收从源节点向目标节点复制源卷以生成所述源卷的所述初始副本的请求;
针对所述源卷中包括的至少一个源数据块中的当前源数据块,
在所述目标节点中搜索与所述当前源数据块相对应的目标数据块;以及
利用所述目标数据块更新所述初始副本。
2.根据权利要求1所述的方法,进一步包括:
响应于所述目标数据块已被占用,将所述目标数据块的快照标识为所述目标数据块。
3.根据权利要求1所述的方法,进一步包括:
响应于所述请求指示向所述目标节点的目标卷复制所述源卷,如果所述目标数据块不在所述目标卷内,则在所述目标卷内生成所述目标数据块的快照,以及将所述快照标识为所述目标数据块。
4.根据权利要求3所述的方法,其中在所述目标卷内生成所述目标数据块的快照包括:
获取所述当前源数据块在所述源卷中的当前地址;以及
在所述目标卷内与所述当前地址相对应的地址处,生成所述目标数据块的快照。
5.根据权利要求1-4中的任一项所述的方法,其中所述在所述目标节点中搜索与所述当前源数据块相对应的目标数据块包括:
获取与所述当前源数据块相关联的包括一个或者多个候选目标数据块的列表,所述候选目标数据块是所述目标节点中的与所述当前源数据块具有历史拷贝关系的目标数据块;以及
响应于所述候选目标数据块与所述当前源数据块相匹配,将所述候选目标数据块标识为所述目标数据块。
6.根据权利要求5所述的方法,其中所述响应于所述候选目标数据块与所述当前源数据块相匹配,将所述候选目标数据块标识为所述目标数据块包括:
响应于所述候选目标数据块的标签与所述当前源数据块的标签相匹配,将所述候选目标数据块标识为所述目标数据块,
其中所述当前源数据块的所述标签包括所述当前源数据块的标识符以及所述当前源数据块中的数据的时间戳,所述候选目标数据块的所述标签相同于与所述候选目标数据块具有所述历史拷贝关系的源数据块的标签。
7.根据权利要求6所述的方法,其中:
在所述当前源数据块中的所述数据被修改时,所述当前源数据块的所述标签基于修改后数据的时间戳被更新。
8.根据权利要求6所述的方法,进一步包括:
响应于以下中的任一项,从所述列表中删除所述候选目标数据块:所述候选目标数据块的所述标签与所述当前源数据块的所述标签不匹配,以及所述候选目标数据块被修改。
9.根据权利要求1-4中的任一项所述的方法,进一步包括:
在所述源卷中选择与所述初始副本中的目标数据块相对应的源数据块以外的源数据块,以形成源数据块集合;以及
从所述源节点向所述目标节点拷贝所述源数据块集合中的源数据块以更新所述初始副本。
10.根据权利要求9所述的方法,其中所述从所述源卷向所述目标卷拷贝所述源数据块集合中的源数据块以更新所述初始副本包括:针对所述源数据块集合中的每个源数据块,
获取所述源数据块在所述源卷中的地址;以及
将所述源数据块拷贝至所述目标卷内与所述地址相对应的地址处以更新所述初始副本。
11.一种用于在复制初始化中生成初始副本的装置,包括:
接收模块,配置用于接收从源节点向目标节点复制源卷以生成所述源卷的所述初始副本的请求;
搜索模块,配置用于针对所述源卷中包括的至少一个源数据块中的当前源数据块,在所述目标节点中搜索与所述当前源数据块相对应的目标数据块;以及
更新模块,配置用于利用所述目标数据块更新所述初始副本。
12.根据权利要求11所述的装置,进一步包括:
第一标识模块,配置用于响应于所述目标数据块已被占用,将所述目标数据块的快照标识为所述目标数据块。
13.根据权利要求11所述的装置,进一步包括:
第二标识模块,配置用于响应于所述请求指示向所述目标节点的目标卷复制所述源卷,如果所述目标数据块不在所述目标卷内,则在所述目标卷内生成所述目标数据块的快照,以及将所述快照标识为所述目标数据块。
14.根据权利要求13所述的装置,其中所述第二标识模块包括:
地址获取模块,配置用于获取所述当前源数据块在所述源卷中的当前地址;以及
快照生成模块,配置用于在所述目标卷内与所述当前地址相对应的地址处,生成所述目标数据块的快照。
15.根据权利要求11-14中的任一项所述的装置,其中所述搜索模块包括:
列表获取模块,配置用于获取与所述当前源数据块相关联的包括一个或者多个候选目标数据块的列表,所述候选目标数据块是所述目标节点中的与所述当前源数据块具有历史拷贝关系的目标数据块;以及
第三标识模块,配置用于响应于所述候选目标数据块与所述当前源数据块相匹配,将所述候选目标数据块标识为所述目标数据块。
16.根据权利要求15所述的装置,其中所述第三标识模块包括:
第四标识模块,配置用于响应于所述候选目标数据块的标签与所述当前源数据块的标签相匹配,将所述候选目标数据块标识为所述目标数据块,
其中所述当前源数据块的所述标签包括所述当前源数据块的标识符以及所述当前源数据块中的数据的时间戳,所述候选目标数据块的所述标签相同于与所述候选目标数据块具有所述历史拷贝关系的源数据块的标签。
17.根据权利要求16所述的装置,其中:
在所述当前源数据块中的所述数据被修改时,所述当前源数据块的所述标签基于修改后数据的时间戳被更新。
18.根据权利要求16所述的装置,进一步包括:
删除模块,配置用于响应于以下中的任一项,从所述列表中删除所述候选目标数据块:所述候选目标数据块的所述标签与所述当前源数据块的所述标签不匹配,以及所述候选目标数据块被修改。
19.根据权利要求11-14中的任一项所述的装置,进一步包括:
集合形成模块,配置用于在所述源卷中选择与所述初始副本中的目标数据块相对应的源数据块以外的源数据块,以形成源数据块集合;以及
拷贝模块,配置用于从所述源节点向所述目标节点拷贝所述源数据块集合中的源数据块以更新所述初始副本。
20.根据权利要求19所述的装置,其中所述拷贝模块包括:
第二地址获取模块,配置用于针对所述源数据块集合中的每个源数据块,获取所述源数据块在所述源卷中的地址;以及
第二拷贝模块,配置用于将所述源数据块拷贝至所述目标卷内与所述地址相对应的地址处以更新所述初始副本。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410433437.4A CN105447033B (zh) | 2014-08-28 | 2014-08-28 | 在复制初始化中生成初始副本的方法和装置 |
US14/818,406 US9904600B2 (en) | 2014-08-28 | 2015-08-05 | Generating initial copy in replication initialization |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410433437.4A CN105447033B (zh) | 2014-08-28 | 2014-08-28 | 在复制初始化中生成初始副本的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105447033A true CN105447033A (zh) | 2016-03-30 |
CN105447033B CN105447033B (zh) | 2019-06-11 |
Family
ID=55402515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410433437.4A Active CN105447033B (zh) | 2014-08-28 | 2014-08-28 | 在复制初始化中生成初始副本的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9904600B2 (zh) |
CN (1) | CN105447033B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107451179A (zh) * | 2017-03-24 | 2017-12-08 | 北京瑞卓喜投科技发展有限公司 | 针对增加区块的整体勘误的区块链的查询方法及系统 |
CN107493313A (zh) * | 2016-12-19 | 2017-12-19 | 汪海军 | 云管理系统与方法 |
CN110071880A (zh) * | 2018-01-24 | 2019-07-30 | 北京金山云网络技术有限公司 | 报文转发方法、转发装置、服务器及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6840113B2 (ja) * | 2018-09-20 | 2021-03-10 | 株式会社日立製作所 | ストレージコントローラ及びストレージ制御方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070185937A1 (en) * | 2005-12-19 | 2007-08-09 | Anand Prahlad | Destination systems and methods for performing data replication |
CN101154234A (zh) * | 2006-09-26 | 2008-04-02 | 国际商业机器公司 | 用于管理数据版本的系统和方法 |
US7809691B1 (en) * | 2005-02-22 | 2010-10-05 | Symantec Operating Corporation | System and method of applying incremental changes prior to initialization of a point-in-time copy |
CN103098016A (zh) * | 2010-07-15 | 2013-05-08 | 戴尔菲克斯公司 | 基于文件系统备份的去重 |
CN103970620A (zh) * | 2013-01-24 | 2014-08-06 | 杭州宏杉科技有限公司 | 一种准连续性数据复制方法及装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7747576B2 (en) | 2002-02-20 | 2010-06-29 | International Business Machines Corporation | Incremental update control for remote copy |
US6947981B2 (en) | 2002-03-26 | 2005-09-20 | Hewlett-Packard Development Company, L.P. | Flexible data replication mechanism |
US7398285B2 (en) | 2003-07-30 | 2008-07-08 | International Business Machines Corporation | Apparatus and system for asynchronous replication of a hierarchically-indexed data store |
US20070027936A1 (en) | 2005-07-28 | 2007-02-01 | Stakutis Christopher J | Determining changes made to a source file to transmit to a target location providing a mirror copy of the source file |
US7651593B2 (en) * | 2005-12-19 | 2010-01-26 | Commvault Systems, Inc. | Systems and methods for performing data replication |
JP4835249B2 (ja) | 2006-04-26 | 2011-12-14 | 株式会社日立製作所 | ストレージシステム、リモートコピー、その管理方法 |
US8135930B1 (en) | 2008-07-14 | 2012-03-13 | Vizioncore, Inc. | Replication systems and methods for a virtual computing environment |
US8060714B1 (en) | 2008-09-26 | 2011-11-15 | Emc (Benelux) B.V., S.A.R.L. | Initializing volumes in a replication system |
JP2012058863A (ja) * | 2010-09-07 | 2012-03-22 | Nec Corp | ディスク装置、および、ディスク装置へのデータ複製方法、プログラム |
US9910904B2 (en) | 2011-08-30 | 2018-03-06 | International Business Machines Corporation | Replication of data objects from a source server to a target server |
US9087009B2 (en) | 2012-07-16 | 2015-07-21 | Compellent Technologies | Systems and methods for replication of data utilizing delta volumes |
US9378262B2 (en) | 2013-12-06 | 2016-06-28 | SoftNAS, LLC | Synchronization storage solution |
-
2014
- 2014-08-28 CN CN201410433437.4A patent/CN105447033B/zh active Active
-
2015
- 2015-08-05 US US14/818,406 patent/US9904600B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7809691B1 (en) * | 2005-02-22 | 2010-10-05 | Symantec Operating Corporation | System and method of applying incremental changes prior to initialization of a point-in-time copy |
US20070185937A1 (en) * | 2005-12-19 | 2007-08-09 | Anand Prahlad | Destination systems and methods for performing data replication |
CN101154234A (zh) * | 2006-09-26 | 2008-04-02 | 国际商业机器公司 | 用于管理数据版本的系统和方法 |
CN103098016A (zh) * | 2010-07-15 | 2013-05-08 | 戴尔菲克斯公司 | 基于文件系统备份的去重 |
CN103970620A (zh) * | 2013-01-24 | 2014-08-06 | 杭州宏杉科技有限公司 | 一种准连续性数据复制方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107493313A (zh) * | 2016-12-19 | 2017-12-19 | 汪海军 | 云管理系统与方法 |
CN107451179A (zh) * | 2017-03-24 | 2017-12-08 | 北京瑞卓喜投科技发展有限公司 | 针对增加区块的整体勘误的区块链的查询方法及系统 |
CN107451179B (zh) * | 2017-03-24 | 2020-09-15 | 北京瑞卓喜投科技发展有限公司 | 针对增加区块的整体勘误的区块链的查询方法及系统 |
CN110071880A (zh) * | 2018-01-24 | 2019-07-30 | 北京金山云网络技术有限公司 | 报文转发方法、转发装置、服务器及存储介质 |
CN110071880B (zh) * | 2018-01-24 | 2021-06-18 | 北京金山云网络技术有限公司 | 报文转发方法、转发装置、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US9904600B2 (en) | 2018-02-27 |
CN105447033B (zh) | 2019-06-11 |
US20160062661A1 (en) | 2016-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11172022B2 (en) | Migrating cloud resources | |
CN103297492B (zh) | 用于在联网计算环境之间迁移数据的方法和系统 | |
CN103368767B (zh) | 用于在容许故障的因特网云上部署软件应用的方法和系统 | |
CN104516730A (zh) | 一种数据处理方法和装置 | |
CN105446793A (zh) | 迁移虚拟资产的方法和设备 | |
US10148757B2 (en) | Migrating cloud resources | |
DE112019005770T5 (de) | Speicherverwaltung für ein cloudbasiertes Speichersystem | |
CN105530273A (zh) | 用于数据迁移的方法和装置 | |
CN104601622A (zh) | 一种部署集群的方法和系统 | |
CN105335207A (zh) | 用于管理虚拟机实例的方法和装置 | |
US20120323848A1 (en) | Continuous and asynchronous replication of a consistent dataset | |
CN103959264A (zh) | 在存储云中使用去重复来管理不可变冗余文件 | |
CN104737133A (zh) | 使用服务组的分布式应用优化 | |
CN104660669A (zh) | 针对应用模式组件从多个主机选择一个主机的方法和系统 | |
CN104253831A (zh) | 一种用于在云计算环境中部署应用的方法和系统 | |
WO2010031701A1 (en) | System and method for managing virtual world environments based upon existing physical environments | |
CN103218574A (zh) | 一种基于哈希树的数据动态操作可验证性方法 | |
CN102981908A (zh) | 用于从预先供应的虚拟机池选择虚拟机的方法和系统 | |
CN105450690A (zh) | 虚拟机管理程序执行的方法和虚拟机管理系统 | |
TW202129564A (zh) | 領域模組運算單元,含有一企業之一模型之系統,單板運算單元,運算單元之網格,提供傳播可追溯性之方法,及非暫時性電腦程式產品 | |
US20160232065A1 (en) | Preserving management services with self-contained metadata through the disaster recovery life cycle | |
CN105447033A (zh) | 在复制初始化中生成初始副本的方法和装置 | |
CN105359088A (zh) | 使用动态生成的虚拟磁盘内容优化供应时间的方法 | |
CN104252345A (zh) | 在云环境中管理复杂对象的方法及系统 | |
CN105094780A (zh) | 一种信息关联的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |