从源存储器向目标存储器调派磁盘映像的拷贝的制作方法

文档序号:6494922阅读:220来源:国知局
从源存储器向目标存储器调派磁盘映像的拷贝的制作方法
【专利摘要】一种从源存储器向目标存储器调派磁盘映像的拷贝的技术。所述技术涉及标识要从源存储器向目标存储器拷贝的特定磁盘映像。所述技术还涉及在第一磁盘映像列表和第二磁盘映像列表之间执行比较操作以便产生相同磁盘映像列表,其中第一磁盘映像列表列出当前存在于源存储器上的磁盘映像,第二磁盘映像列表列出目标存储器上的磁盘映像,相同磁盘映像列表列出当前既存在于源存储器上也存在于目标存储器上的相同磁盘映像集合。所述技术还涉及从源存储器向目标存储器发送对特定磁盘映像和列于相同磁盘映像列表上的相同磁盘映像之间的差别加以表示的数据部分集。数据部分集结合相同磁盘映像构成在目标存储器上的调派拷贝。
【专利说明】从源存储器向目标存储器调派磁盘映像的拷贝
[0001]相关申请的交叉引用
[0002]本申请要求在2011年2月23日递交的名为“METHODS AND SYSTEMS FOREFFICIENT COPYING OF DISK IMAGES BETWEEN VIRTUALIZATION DEPLOYMENTS” 的 U.S.临时申请N0.61/445,865的优先权,该申请的内容和教义通过全文引用合并于此。
【背景技术】
[0003]虚拟磁盘映像是虚拟机监视器(VMM)将其解释为物理磁盘的电子文件。虚拟磁盘映像的通常格式包括.VMDK、.VHD及.VDI。
[0004]虚拟机(VM)平台的管理者可能希望从一个地方(或物理位置)向另一地方拷贝虚拟磁盘映像。例如,管理者可能希望在不同站点维护相同虚拟磁盘映像的拷贝,以用于灾难恢复目的。作为另一示例,管理者可能希望对虚拟磁盘映像进行备份,即,拍摄虚拟磁盘映像的VM快照。作为再一示例,管理者可能希望在多个VM库(VM farm)上,从称作“金映像”的不可写入虚拟磁盘映像复制VM。
[0005]为了从第一设备向第二设备拷贝虚拟磁盘映像,管理者首先确保第二设备具有足够的物理存储空间来容纳虚拟磁盘映像,并且在第一设备和第二设备之间存在可靠的网络路径。下一步,管理者通过该网络路径将虚拟磁盘映像的完整拷贝从第一设备移动到第二设备,直到将虚拟磁盘映像的完整拷贝安全地写入第二设备的物理存储空间。

【发明内容】

[0006]遗憾地,通过网络路径将虚拟磁盘映像的完整拷贝从第一设备移动到第二设备的上述传统方法存在缺陷。例如,在上述传统方法中,可能经历若干小时来在两个设备之间移动较大虚拟磁盘映像的完整拷贝。此外,通过网络移动虚拟磁盘映像的完整拷贝可能消耗相当大的网络带宽。
[0007]与在两个设备间移动虚拟磁盘映像的完整拷贝的上述传统方法相反,改善的技术通过识别在两个设备中相同的磁盘映像、并接着仅向另一计算设备发送特定磁盘映像和相同磁盘映像之间的差别(或差值)(而不是所述特定磁盘映像的完整拷贝),来将所述特定磁盘映像的拷贝从一个计算设备调派到另一个。相同磁盘映像和该差别形成所述特定磁盘映像的整个拷贝。为了识别在两个设备中相同的磁盘映像,使用唯一标识磁盘映像的磁盘映像标识符来追踪磁盘映像。识别相同磁盘映像和仅移动差别的这种技术节省了时间和资源。
[0008]一个实施例涉及从源存储器向目标存储器调派磁盘映像的拷贝的方法。所述方法包括标识要从源存储器向目标存储器拷贝的特定磁盘映像。所述方法还包括在第一磁盘映像列表和第二磁盘映像列表之间执行比较操作以便产生相同磁盘映像列表,其中第一磁盘映像列表列出当前存在于源存储器上的磁盘映像,第二磁盘映像列表列出当前存在于目标存储器上的磁盘映像,相同磁盘映像列表列出当前既存在于源存储器也存在于目标存储器上的相同磁盘映像的集合。所述方法还包括从源存储器向目标存储器发送表示所述特定磁盘映像和列在相同磁盘映像列表上的相同磁盘映像之间的差别的数据部分集。从源存储器向目标存储器发送的数据部分集结合列在相同磁盘映像列表上的相同磁盘映像在目标存储器上构成所述特定磁盘映像的调派拷贝。
[0009]在一些布置中,标识要从源存储器向目标存储器拷贝的所述特定磁盘映像包括:指定特定磁盘映像标识符(例如,全球唯一标识符或GUID),所述特定磁盘映像标识符在当前存在于源存储器上的磁盘映像中唯一标识所述特定磁盘映像。可以响应于所述特定磁盘映像的最初形成,电学上产生这样的标识符。此外,这样的标识符可以包括少许的至少部分所述特定磁盘映像,以便在操作环境中向标识符提供全球唯一性。 [0010]在一些布置中,第一磁盘映像列表包括标识当前存在于源存储器上的磁盘映像的第一磁盘映像标识符集合。此外,第二磁盘映像列表包括标识当前存在于目标存储器上的磁盘映像的第二磁盘映像标识符集合。在这些布置中,执行比较操作包括:(i)将第一磁盘映像标识符集合和第二磁盘映像标识符集合作比较,以便产生相同磁盘映像标识符集合,相同磁盘映像标识符集合中的每个磁盘映像标识符既属于第一磁盘映像标识符集合也属于第二磁盘映像标识符集合,且(ii)将相同磁盘映像标识符集合输出作为至少部分的相同磁盘映像列表。
[0011 ] 在一些布置中,相同磁盘映像标识符集合中的每个磁盘映像标识符标识具有与所述特定磁盘映像的相应共性量的虚拟磁盘映像。在这些布置中,所述方法还包括:(i)针对由相同磁盘映像标识符集合标识的每个虚拟磁盘映像,评估虚拟磁盘映像与所述特定磁盘映像的相应共性量,(?)从由相同磁盘映像标识符集合标识的虚拟磁盘映像中选择与所述特定磁盘映像具有最高共性量的虚拟磁盘映像作为相同磁盘映像。
[0012]在一些布置中,所述方法还包括将最高共性量与预定阈值作比较,以便确定共性量是否是微小的,从而授权从源存储器将所述特定磁盘映像整个拷贝到目标存储器中。在这些布置中,仅当最高共性量大于或等于预定阈值(例如,5%、10%等)时,才发送表示差别的数据部分集。否则,在这些布置中,将整个特定磁盘映像从源存储器发送到目标存储器。
[0013]其他实施例涉及计算设备、计算平台、系统、计算机程序产品等。一些实施例是涉及从源存储器向目标存储器调派磁盘映像的拷贝中涉及的多种处理、电子组件和电路。
【专利附图】

【附图说明】
[0014]如附图所示,根据本发明的特定实施例的以下描述,将清楚上述和其他目的、特征和优点,其中贯穿不同视图,相同的附图标号用于标识相同的部件。附图并不是必须按比例缩放,相反,重点在于描述本发明的多种实施例的原理。
[0015]图1是适用于在计算设备之间调派磁盘映像的拷贝的电子环境的框图。
[0016]图2是图1的电子环境中的计算设备的框图。
[0017]图3是图1的电子环境中的第一计算设备的存储器的示例内容的框图。
[0018]图4是图1的电子环境中的第二计算设备的存储器的示例内容的框图。
[0019]图5是示出了从图1的电子环境中的第一计算设备向第二计算设备调派磁盘映像的拷贝的处理的序列图。
[0020]图6是由图1的电子环境中的控制电路执行的流程图。【具体实施方式】
[0021]用于在两个设备之间调派特定磁盘映像的拷贝的改善技术涉及识别相同的磁盘映像,并从一个设备向另一设备发送所述特定磁盘映像和相同磁盘映像之间的差别(或差值),而不是完整磁盘映像。为了识别两个设备之间的相同磁盘映像,使用唯一标识磁盘映像的磁盘映像标识符来追踪磁盘映像。结果,设备能够识别相同磁盘映像,因此可以仅移动该差别以便节省时间和资源。
[0022]图1示出了能够使用改善的技术来调派虚拟磁盘映像的拷贝的电子环境20。电子环境20包括计算设备22 (A)、22 (B)(统称为计算设备22)和通信媒介24。电子环境20还可以包括附加计算设备22和一个或更多其他电子设备26。
[0023]通信媒介24连接到计算设备22和其他电子设备26,以便环境20的这些组件相互交换电子通信30(例如,如图1两侧箭头30所示)。根据这种思路,将通信媒介24示作云,因为它能够具有多种拓扑结构,包括辐射状(hub-and-spoke)、主干状、环状、不规则状、因特网和LAN的结合及这些结构的结合等。
[0024]每个计算设备22包括磁盘映像管理器40和存储库42。例如,计算设备22 (A)包括磁盘映像管理器40 (A)和存储库42 (A)。类似地,计算设备22 (B)包括磁盘映像管理器40 (B)和存储库42 (B)。
[0025]每个计算设备22的磁盘映像管理器40构造和布置为与在电子环境20中的其他计算设备22的磁盘映像管理器40协同操作,从而通过识别相同磁盘映像和发送在计算设备22之间的磁盘映像差别44来调派虚拟磁盘映像50的拷贝。对磁盘映像差别44(而不是虚拟磁盘映像50的完整拷贝)的这种发送更有效地使用网络资源(例如,带宽),并占用更少时间。
[0026]每个计算设备22的存储库40构造和布置为为计算设备22可靠地存储虚拟磁盘映像50和与虚拟磁盘映像50相关联的元数据52。例如,计算设备22 (A)的存储库40 (A)构造和布置为存储虚拟磁盘映像50(A)和与虚拟磁盘映像50(A)相关联的元数据52(A)。类似地,计算设备22 (B)的存储库40 (B)构造和布置为存储虚拟磁盘映像50 (B)和与虚拟磁盘映像50 (B)相关联的元数据52 (B)。
[0027]如在下面将更详细地解释的那样,与每个磁盘映像50相关联的元数据52是(i)由磁盘映像管理器40管理的,并且(ii)包括关于磁盘映像50的所述特定信息。例如,元数据52包括在电子环境20的其他磁盘映像50中唯一标识相关的磁盘映像50的全球唯一标识符(或GUID)。元数据52可以包括其他信息,例如,是否将相关的磁盘映像50认为是金映像,相关的磁盘映像50是否与父磁盘映像50相关联(即,相关的磁盘映像50是否是先前磁盘映像50的修改版),相关的磁盘映像50是否与子磁盘映像50相关联(即,是否对相关的磁盘映像50进行修改以便形成新磁盘映像50)等。现将参考图2来提供进一步的细节。
[0028]图2示出了电子环境20的计算设备22的所述特定细节。计算设备22包括用户接口 60、网络接口 62和控制电路64。用户接口 60 (例如,键盘、鼠标和显示器)构造和布置为从用户接收输入和向用户提供输出。网络接口 62(例如,网络适配器、网卡等)构造和布置为连接到通信媒介24,并因此使能计算机化的设备22通过通信媒介24与其他设备22、26交换电子通信30(也参阅图1)。控制电路64(例如,运行应用集的处理器和存储器的集合、存储系统等)构造和布置为形成磁盘映像管理器40和存储库42,从而管理和维护磁盘映像50和包括全球唯一磁盘映像标识符54的相关元数据52。
[0029]在运行应用集的处理器集和存储器的环境中,应理解,控制电路64能够执行多种其他有用的计算机化操作或任务,也构成多种专用电路。根据这种思路,在一些布置中,通过真实硬件来构成磁盘映像管理器40和存储库42。在这些布置中,通过在物理处理器上运行专用程序来产生磁盘映像管理器40。此外,由直接存在于物理存储子系统中的数据库来构成存储库42。
[0030]在其他虚拟化的布置中,控制电路64包括管理程序(hypervisor)和在硬件上运行的虚拟机的集合,以便构成虚拟化平台。在这些虚拟化布置中,磁盘映像管理器40能够在虚拟化平台的虚拟机中运行,且存储库42能够存在于虚拟机的虚拟磁盘中。
[0031]应理解,当在处理器上运行时,计算机程序产品80能够向计算机设备22发送指令集,导致处理器操作作为磁盘映像管理器40。在这些布置中,计算机程序产品80包括非暂时性计算机可读介质,存储控制处理器操作的代码。适当的非暂时性计算机可读存储介质的示例包括以非易失的方式存储指令的有形产品和装置,例如CD-ROM、闪存、磁盘存储器、磁带存储器等。现将参考图3来提供进一步的细节。
[0032]图3示出了计算设备22 (A)的存储库42 (A)的一些示例内容的逻辑表示(也参阅图1和2)。由于将每个磁盘映像50添加到存储库42 (A)中,磁盘图像管理器40 (A)添加和/或更新相关的元数据52 (A),以便包括标识磁盘映像50的全球唯一磁盘映像标识符54,磁盘映像50和相关的元数据52的最终结合构成了条目90。例如,结合条目90 (A),磁盘映像标识符ID_A标识磁盘映像IMAGE_A。
[0033]随着时间过去,可以将其他磁盘映像50添加到存储库42 (A)。例如,可以对磁盘映像IMAGE_A进行修改,以便构成磁盘映像IMAGE_B,接着将IMAGE_B存储在存储库42 (A)中。在这种情况下,磁盘映像管理器40 (A)产生标识磁盘映像IMAGE_B的另一全球唯一磁盘映像标识符ID_B,例如,参阅条目90 (B)。这里,将磁盘映像IMAGE_B认为是磁盘映像IMAGE_A的子代,将磁盘映像IMAGE_A认为是磁盘映像IMAGE_B的父代。箭头98示出了该关系。该处理可以继续构成磁盘映像条目90的层次布置92(1),具有反转树的形状。
[0034]应理解,对存储库42 (A)而言,不是必须将每个磁盘映像50存储作为完整磁盘映像。相反,针对相关磁盘映像的布置,可以应用解复制的标准处理,以便存储库42(A)存储基线磁盘映像(例如,磁盘映像IMAGE_A),并接着存储磁盘映像差别,以便形成相同布置92(1)的其他磁盘映像50。
[0035]还应理解,存储库42 (A)能够存储相互无关的磁盘映像50。例如,图3还示出了由条目90 (G)和90 (H)构成的另一布置92 (2)。在该布置92 (2)中,磁盘映像IMAGE_H是磁盘映像IMAGE_G的子代,磁盘映像IMAGE_G是磁盘映像IMAGE_H的父代。然而,由于没有在布置92(1)、92⑵之间延伸的箭头,所以在磁盘映像IMAGE_G、IMAGE_H与布置92⑴的任何磁盘映像50之间不存在关系。
[0036]将理解,图3提供了存储库42 (A)的内容的逻辑视图,真实信息可以以多种形式存储在存储库42(A)中。例如,磁盘映像50可以存在于磁盘映像数据库中,而元数据52(包括磁盘映像标识符54)存在于单独的元数据数据库中。作为另一示例,磁盘映像50可以存在于单独的数据库中等。作为再一示例,多种数据结构可以分布为在文件系统上的文件,或作为磁盘上的块,并通过路径名或指针等相互引用。磁盘映像信息的这种结构式存储能够令多种工具在相关联的磁盘映像中方便地进行导航(例如,在基于它们父代/子代关系的磁盘映像条目90的布置92上实现树遍历)。现将参考图4提供进一步的细节。
[0037]图4示出了计算设备22⑶的存储库42⑶的一些示例内容的逻辑标识(也参阅图1和2)。条目90构成相互无关的两个布置92 (3)和92⑷。
[0038]如图4所示,存储库42⑶与存储库42⑷(图3)具有相同的一些磁盘映像50。即,磁盘映像IMAGE_A、IMAGE_D和IMAGE_E既存在于存储库42 (A)上也存在于存储库42 (B)上。
[0039]然而,在存储库42(A)、42(B)之间也有不相同的磁盘映像50。例如,磁盘映像IMAGE_N和磁盘映像IMAGE_X位于存储库42⑶中(参阅图4的条目90 (N)和90 (x))。然而,磁盘映像IMAGE_N和磁盘映像IMAGE_X不存在于图3所示的存储库42 (A)中。
[0040]在这一点上,应理解,计算设备22的磁盘映像管理器40能够相互交换信息,以便识别与计算设备22之间相同的磁盘映像50。在识别了相同磁盘映像50之后,发送相同磁盘映像50和要调派的特定磁盘映像50之间的差别(改变部分),以便向目标计算设备22提供所述特定磁盘映像50的完整拷贝。现将参考图5来提供进一步细节。
[0041]图5示出了当从计算设备22(A)向计算设备22(B)调派特定磁盘映像50的拷贝时涉及的特定细节的序列图。例如,参考图3和4所不的计算设备22 (A)、22 (B)的不例内容。在图5中时间沿向下方向增加。
[0042]首先,计算设备22 (A)接收从计算设备22 (A)向计算设备22 (B)调派所述特定磁盘映像50的拷贝的命令。结合图3和4的示例内容,假定该命令指示计算设备22(A)向计算设备22 (B)调派磁盘映像IMAGE_F的拷贝(也参阅图3)。通过计算设备22 (A)、22 (B)的用户或操作其他电子设备26(也参阅图1)之一的用户来提供这种命令。
[0043]响应于该命令,计算设备22 (A)的磁盘映像管理器40 (A)向计算设备22 (B)发送调派通知100和当前存在于存储库42(A)上的磁盘映像50的列表102(A)。调派通知100激活计算设备22 (B)的磁盘映像管理器40 (B)。结合图3和4的示例内容,由于与磁盘映像标识符54相关联的磁盘映像50存在于库42 (A)中,所以磁盘映像管理器40 (A)在列表102⑷中包括磁盘映像标识符ID_A、ID_B、ID_C、ID_D、ID_E和ID_F。
[0044]下一步,计算设备22⑶的磁盘映像管理器40⑶通过执行在列表102 (A)和当前存在于计算设备22⑶的存储库42⑶上的磁盘映像50的另一列表102⑶之间的比较操作,来对从计算设备22(A)接收到调派通知100和列表102(A)做出响应。结合图3和4的示例内容,列表102(B)包括ID_A、ID_D、ID_E、ID_N和 ID_X。在一些布置中,磁盘映像管理器40(B)响应于调派通知100,产生列表102(B)。在其他布置中,甚至在接收调派通知100之前,磁盘映像管理器40 (B)以更新的形式维护列表102(B)。
[0045]作为该比较操作的结果,磁盘映像管理器40⑶产生当前既存在于计算设备22 (A)上也存在于计算设备22 (B)上的磁盘映像50的相同磁盘映像列表102 (C),并将该列表102 (C)发送给计算设备22 (A)。结合图3和4的示例内容,列表102 (C)包括磁盘映像标识符 ID_A、ID_D 和 ID_E。
[0046]下一步,磁盘映像管理器40 (A)确定在所述特定磁盘映像50和由相同磁盘映像列表102(C)标识的每个磁盘映像50之间的共性量(或等级)。应理解,磁盘映像管理器40(A)能够调用本地存储子系统(例如,参阅图1的存储库42 (A))来确定共性量。在一些布置中,通过在所述特定磁盘映像50和由相同磁盘映像列表102 (C)标识的磁盘映像50之间的不同部分(例如,块)的数量来测量共性量。也可以使用其他测量技术。结合图3和4的示例内容,磁盘映像管理器40(A)估计在磁盘映像IMAGE_F (要调派的磁盘映像)与由相同磁盘映像列表102(C)标识的磁盘映像IMAGE_A、IMAGE_D和IMAGE_E之间的共性量。
[0047]参考图3,应理解,作为磁盘映像IMAGE_F的父代的磁盘映像IMAGE_D可以与磁盘映像IMAGE_F具有较高等级的共性。此外,作为磁盘映像IMAGE_F的兄弟的磁盘映像IMAGE_E(即,磁盘映像IMAGE_D的其他子代)可以与磁盘映像IMAGE_F具有较高等级的共性。
[0048]最终,磁盘映像管理器40 (A)选择与所述特定磁盘映像50具有最高等级的共性的磁盘映像50。结合图3和4的示例内容,假定磁盘映像IMAGE_D与磁盘映像IMAGE_F具有最高等级的共性,所以选择了磁盘映像IMAGE_D。
[0049]在这一点上,磁盘映像管理器40 (A)将所选磁盘映像50 (即,磁盘映像IMAGE_D)的共性量与预定阈值进行比较,以便确定共性量是否很小,从而授权从计算设备22(A)向计算设备22 (B)拷贝整个所述特定磁盘映像。根据这一思路,应理解,需要一定量的阈值以便提取并仅向其他计算设备22 (B)发送与磁盘映像50的差别,可能存在完全拷贝磁盘映像50的较为有益的情况。在一些布置中,预定阈值100是静态预设参数,例如5%、10%等。在其他布置中,预定阈值100是可调谐的,并可以由用户在任何时候改变。
[0050]当共性量超过(或大于或等于)预定阈值100时,磁盘映像管理器40(A)发送:
(i)在所述特定磁盘映像50和所选相同磁盘映像50之间的差别,(ii)标识所选相同磁盘映像50 (即,具有最闻等级的共性的磁盘映像)的磁盘映像标识符54,以及(iii)唯一标识所述特定磁盘映像50的磁盘映像标识符54。否则,磁盘映像管理器40 (A)向磁盘管理器40(B)发送整个所述特定磁盘映像50。结合图3和4的示例内容,并假定共性量超过预定阈值100,磁盘映像管理器40(A)发送:(i)在磁盘映像IMAGE_F和磁盘映像IMAGE_D之间的差别,(ii)标识磁盘映像IMAGE_D的磁盘映像标识符ID_D,以及(iii)唯一标识磁盘映像IMAGE_F的磁盘映像标识符ID_F。
[0051]在接收时,磁盘映像管理器40 (B)在存储库42 (B)中本地地产生所选相同磁盘映像50的克隆106 (例如,磁盘映像的拷贝),并向克隆106施加所述差别以便形成所述特定磁盘映像50的调派拷贝。接着,磁盘映像管理器40 (B)将标识所述特定磁盘映像50的磁盘映像标识符54与所述特定磁盘映像50的调派拷贝相关联。结合图3和4的示例内容,磁盘映像管理器40 (B)基于由计算设备22(A)提供的磁盘映像标识符10_0来本地创建磁盘映像IMAGE_D的克隆106,并向克隆106施加所述不同以便构成磁盘映像IMAGE_F。此外,磁盘映像管理器40 (B)将磁盘映像标识符ID_F与磁盘映像IMAGE_F相关联。因此,磁盘映像管理器40 (A) ,40(B)协同操作,以便通过传送差别而不是磁盘映像50的完整拷贝来从计算设备22 (A)、22 (B)调派磁盘映像50的拷贝。
[0052]应理解,具有多种用于确定在磁盘映像50之间的共性程度和用于识别具有最高程度共性的磁盘映像50的技术。在一些布置中,当源计算设备22从目标计算设备22接收到相同磁盘印象50的列表102(C)时,源计算设备22的磁盘映像管理器40 (例如,参阅图5的计算设备22 (A)的磁盘映像管理器40 (A))彻底地将在列表102(C)上的每个磁盘映像50与要拷贝的磁盘映像50进行比较。在一个实施例中,磁盘映像管理器40在包括所列磁盘映像50的磁盘映像布置92上进行树遍历,并计算在每个所列磁盘映像50和要拷贝的磁盘映像50之间的路径数(也参阅图3);将与要拷贝的磁盘映像50具有最少路径数(或跳(hop))的所列磁盘映像50认为是具有最高程度共性的磁盘映像50。在另一实施例中,磁盘映像管理器40对在每个所列磁盘映像50和要拷贝的磁盘映像之间的不同块进行计数(例如,在两个磁盘映像之间沿着树92 (I)的路径计算块分配表的联合,该联合的大小反映了在磁盘映像50之间的差别量);具有最少数量的不同块的所列磁盘映像50是具有最高程度共性的磁盘映像50。再一实施例中,针对每个所列磁盘映像50,磁盘映像管理器40计算相同块的数量与要拷贝的磁盘映像50中块的数量的比值(即,共性比值);所列的具有最高共性比值的磁盘映像50被认为是具有最高程度共性的磁盘映像50。
[0053]在另一布置中,当在列表102(C)上的磁盘映像的数量超过预定阈值(例如,25个磁盘映像、50个磁盘映像等)时,磁盘映像管理器40试图仅考虑在相同磁盘映像50的列表102(C)上的磁盘映像50的子集。这种布置能够向由源计算设备22执行的处理量强加限制(例如,参阅图5计算设备22 (A)的磁盘映像管理器40(A))。在一个实施例中,基于父代/子代关系(参阅图3的树状布置92 (I)),源计算设备22的磁盘映像管理器40仅评估距要拷贝的磁盘映像50在第一预定树遍历距离之内的所列磁盘映像50。如果磁盘映像管理器40识别出具有超过预定阈值的共性程度的至少一个所列磁盘映像50,则磁盘映像管理器40选择具有最高程度共性的所列磁盘映像50 (例如,比较在每个所列磁盘映像50和要拷贝的磁盘映像之间的不同块的数量,比较共性比值等)。然而,如果没有具有超过预定阈值的共性程度的所列磁盘映像50,则磁盘映像管理器40将评估扩展到距要拷贝的磁盘映像50为第二预定树遍历距离(例如,在5到10个跳/路径之间等)等。这样的操作可以减少对磁盘映像管理器40针对列表102(C)上的每个磁盘映像50进行计算块比较的需要。此外,在这种树遍历期间,可以执行某些自定义项,例如,选择子磁盘映像50而非兄弟磁盘映像50作为具有最高程度共性的磁盘映像50,从而在选择处理中提供强制特定优化或偏好的手段。现将参考图6来提供进一步的细节。
[0054]图6是由电子环境20的控制电路64执行的处理200的流程图(也参阅图1和2)。在一些布置中,控制电路64存在于单个计算设备22中。在另一布置中,控制电路64是在多个计算设备22中以合作方式工作的电路的组合。在再一布置中,至少部分地通过在计算设备22的外部的电路形成控制电路64 (例如,参阅图1的其他电子设备30)。
[0055]步骤202涉及从源存储器(例如,存储库42 (A))到目标存储器(例如,存储库42(B))调派特定磁盘映像50的拷贝。具体地,电子环境20的计算设备22构造和布置为使用磁盘映像标识符54来唯一地标识磁盘映像50。
[0056]步骤204涉及在第一磁盘映像列表(例如,参阅图5的列表102 (A))和第二磁盘映像列表(例如,参阅图5的列表102(B))之间执行比较操作以便产生相同磁盘映像列表(例如,参阅图5的列表102 (C)),第一磁盘映像列表列出当前存在于源存储器上的磁盘映像50,第二磁盘映像列表列出当前存在于目标存储器上的磁盘映像50,相同磁盘映像列表列出既存在于源存储器上也存在于目标存储器上的相同磁盘映像50的集合。
[0057]步骤206涉及从源存储器向目标存储器发送数据部分集44,数据部分集44标识在所述特定磁盘映像50和列于相同磁盘映像列表中的相同磁盘映像50之间的差别。相同磁盘映像50是在源存储器上与要调派给目标存储器的所述特定磁盘映像具有最高等级共性的磁盘映像50,并且通过提供相同磁盘映像50的磁盘映像标识符,向目标存储器标识出该相同磁盘映像50。
[0058]当发生了这种发送时,将数据部分集44,标识相同磁盘映像50的磁盘映像标识符54、以及标识所述特定磁盘映像50的磁盘影响标识符54传送给目标存储器。从源存储器向目标存储器发送的数据部分集44,结合相同磁盘映像50 (通过磁盘映像标识符54向目标存储器标识出的),在目标存储器上构成所述特定磁盘映像50的调派拷贝。
[0059]在一些布置中,步骤206依赖于相对于预定阈值104对共性等级的成功估计。只有当共性等级大于(或等于)预定阈值104时,控制电路64才完全执行步骤206。否则,在计算设备22之间拷贝完整磁盘映像。
[0060]当在目标存储器上形成所述特定磁盘映像50的拷贝之后,目标存储器将所述特定磁盘映像50的磁盘映像标识符与所述特定磁盘映像50相关联。此时,所述特定磁盘映像50的拷贝被适当地调派到目标存储器上,且可通过磁盘映像标识符54在目标存储器上标识。
[0061]如上所述,改善的技术涉及通过标识在两个设备22之间相同的磁盘映像50、并接着仅向另一计算设备22发送在特定磁盘映像50和相同磁盘映像50之间的差别44,来从一个计算设备22向另一个计算设备调派所述特定磁盘映像50的拷贝。相同磁盘映像50和差别44构成所述特定磁盘映像50的完整拷贝。为了识别在两个设备22之间的相同磁盘映像50,使用唯一标识磁盘映像50的磁盘映像标识符54来追踪磁盘映像50。识别相同的磁盘映像50和仅移动差别44的这种技术节省了时间和资源。
[0062]尽管具体地示出并描述了本发明的多种实施例,但是本领域技术人员将理解,在不脱离由所附权利要求定义的本发明的精神和范围的前提下,可以进行形式和细节上的多种改变。
[0063]例如,上述计算设备22是通用形式。在一些布置中,计算设备22是能够使用虚拟磁盘映像50的虚拟化平台,以便实例化一个或多个虚拟机。然而,在其他布置中,计算设备不是虚拟化平台,而是扩展的存储服务器,鲁棒并可靠地存储磁盘映像50 (例如,快照磁盘、金映像等),以便虚拟化平台使用。
[0064]此外,应理解,上文将磁盘映像标识符54的分布仅示例性地描述为以自动地形式来由磁盘映像管理40实施。在一些布置中,这种分布技术是非常合适的。例如,用户可能希望向若干虚拟化平台或VM库调派金映像的拷贝。
[0065]然而,在一些情况中,用户可能知道,在多个计算设备22上的特定磁盘映像50是相同的磁盘映像50,但是这个事实对计算设备22而言并非是明显的。因此,在一些布置中,用户能够人工设置(或盖写)磁盘映像标识符54,以便能够令多个计算设备22使用一个磁盘映像标识符54来引用相同的磁盘映像50。
[0066]此外,应理解,从一个计算设备22向另一个计算设备22调派所述特定磁盘映像50的拷贝的命令可以实现为通过应用编程界面(API)的标准程序调用。在这样的布置中,用户或应用(例如,控制程序)能够发出对单个拷贝调派的调用、或多个调用(或对多拷贝例程的单个调用),以实现更广泛的调派。
[0067]此外,应理解,用户或应用可以执行批量拷贝调派,从一个计算设备22向另一计算设备拷贝多个相关联的磁盘映像。在一些布置中,响应于单个调用(例如,“拷贝多个映像”),控制电路64对拷贝操作排序,使得所拷贝的第一磁盘映像50与作为批量拷贝一部分的其他映像具有最高等级共性。接着,作为相对于第一磁盘映像50的差别来拷贝其他磁盘映像50,因此优化了在计算设备22之间的差别的整体发送。
【权利要求】
1.在计算设备中,一种从源存储器向目标存储器调派磁盘映像的拷贝的方法,所述方法包括: 标识要从源存储器向目标存储器拷贝的特定磁盘映像; 在第一磁盘映像列表和第二磁盘映像列表之间执行比较操作以便产生相同磁盘映像列表,其中第一磁盘映像列表列出当前存在于源存储器上的磁盘映像,第二磁盘映像列表列出当前存在于目标存储器上的磁盘映像,相同磁盘映像列表列出当前既存在于源存储器上又存在于目标存储器上的相同磁盘映像的集合;以及 从源存储器向目标存储器发送对特定磁盘映像和列于相同磁盘映像列表上的相同磁盘映像之间的差别加以表示的数据部分集; (i)从源存储器向目标存储器发送的数据部分集和(ii)列于相同磁盘映像列表上的相同磁盘映像在目标存储器上构成特定磁盘映像的调派拷贝。
2.根据权利要求1所述的方法,其中标识要从源存储器向目标存储器拷贝的特定磁盘映像包括: 指定特定磁盘映像标识符,所述特定磁盘映像标识符在当前存在于源存储器上的磁盘映像中唯一标识所述特定磁盘映像。
3.根据权利要求2所述的方法,其中所述第一磁盘映像列表包括标识当前存在于源存储器上的磁盘映像的第一磁盘映像标识符集合; 其中所述第二磁盘映像列表包括标识当前存在于目标存储器上的磁盘映像的第二磁盘映像标识符集合,以及 其中执行比较操作包括:(i)将第一磁盘映像标识符集合与第二磁盘映像标识符集合作比较,以便产生相同磁盘映像标识符集合,相同磁盘映像标识符集合中的每个磁盘映像标识符既属于第一磁盘映像标识符集合也属于第二磁盘映像标识符集合,并且(ii)将相同磁盘映像标识符集合输出作为至少部分的相同磁盘映像列表。
4.根据权利要求3所述的方法,其中相同磁盘映像标识符集合中的每个磁盘映像标识符标识具有与所述特定磁盘映像的相应共性量的虚拟磁盘映像;以及 其中所述方法还包括:(i)针对由相同磁盘映像标识符集合标识的每个虚拟磁盘映像,评估虚拟磁盘映像与所述特定磁盘映像的相应共性量,并Qi)从由相同磁盘映像标识符集合标识的虚拟磁盘映像中选择与所述特定磁盘映像具有最高共性量的虚拟磁盘映像作为相同磁盘映像。
5.根据权利要求4所述的方法,其中发送数据部分集包括: 从源存储器向目标存储器传送所述特定磁盘映像的与相同磁盘映像不同的块。
6.根据权利要求3所述的方法,其中相同磁盘映像标识符集合中的每个磁盘映像标识符标识与所述特定磁盘映像具有相应共性量的磁盘映像;以及 其中所述方法还包括:(i)针对由相同磁盘映像标识符集合标识的每个磁盘映像,评估磁盘映像与所述特定磁盘映像的相应共性量,(ii)从由相同磁盘映像标识符集合标识的磁盘映像中选择与所述特定磁盘映像具有最高共性量的磁盘映像,并且(iii)将最高共性量与预定阈值作比较,以便确定共性量是否是微小的,从而授权从源存储器将所述特定磁盘映像整个拷贝到目标存储器中。
7.根据权利要求6所述的方法,其中发送数据部分集包括:响应于确定最高共性量大于或等于所述预定阈值,从源存储器向目标存储器传送所述特定磁盘映像的与相同磁盘映像不同的块;以及其中所述方法还包括: 在从源存储器向目标存储器传送所述特定磁盘映像的与相同磁盘映像不同的块之后,从源存储器向目标存储器传送另一磁盘映像的与所述特定磁盘映像不同的块,以便从源存储器向目标存储器调派其他磁盘映像的拷贝。
8.根据权利要求2到7之一所述的方法,还包括: 从源存储器向目标存储器发送所述特定磁盘映像标识符,作为与所述特定磁盘映像相关联的元数据。
9.根据权利要求8所述的方法,其中发送作为与所述特定磁盘映像相关联的元数据的所述特定磁盘映像标识符包括: 接收磁盘映像调派命令,所述命令指示从源存储器向目标存储器调派所述特定磁盘映像的拷贝,以及 响应于磁盘映像调派命令,从源存储器向目标存储器自动输出所述特定磁盘映像标识符。
10.根据权利要求8所述的方法,其中发送作为与所述特定磁盘映像相关联的元数据的所述特定磁盘映像标识符包括: 接收人工提供的用户命令,所述用户命令指示从源存储器向目标存储器拷贝所述特定磁盘映像标识符,以`及 响应于人工提供的用户命令,从源存储器向目标存储器拷贝所述特定磁盘映像标识符。
11.根据权利要求8所述的方法,包括: 在从源存储器向目标存储器发送所述特定磁盘映像标识符之后,(i)修改在源存储器上的所述特定磁盘映像,以便形成新磁盘映像,(ii)产生作为与新磁盘映像相关联的元数据的新磁盘映像标识符,以便唯一标识新磁盘映像,并且(iii)在源存储器上的磁盘映像标识符数据库中保存新磁盘映像标识符。
12.根据权利要求8所述的方法,还包括: 在从源存储器向目标存储器发送所述特定磁盘映像标识符之后,(i)修改在目标存储器上的所述特定磁盘映像,以便形成新磁盘映像,(ii)产生作为与新磁盘映像相关联的元数据的新磁盘映像标识符,以便唯一标识新磁盘映像,并且(iii)在源存储器上的磁盘映像标识符数据库中保存新磁盘映像标识符。
13.一种计算系统,包括: 源存储器; 目标存储器;以及 控制电路,耦连到源存储器和目标存储器,控制电路构建并布置为: 标识要从源存储器向目标存储器拷贝的特定磁盘映像; 在第一磁盘映像列表与第二磁盘映像列表之间执行比较操作,以便产生相同磁盘映像列表,其中第一磁盘映像列表列出当前存在于源存储器上的磁盘映像,第二磁盘映像列表列出当前存在于目标存储器上的磁盘映像,相同磁盘映像列表列出当前既存在于源存储器上也存在于目标存储器上的相同磁盘映像的集合;以及 从源存储器向目标存储器发送对所述特定磁盘映像和列于相同磁盘映像列表上的相同磁盘映像之间的差别加以表示的数据部分集,以便在目标存储器上构成所述特定磁盘映像的调派拷贝。
14.根据权利要求13所述的计算系统,其中所述控制电路构建并布置为,在标识要从源存储器向目标存储器拷贝的所述特定磁盘映像时: 指定特定磁盘映像标识符,所述特定磁盘映像标识符在当前存在于源存储器上的磁盘映像中唯一标识所述特定磁盘映像。
15.根据权利要求14所述的计算系统,其中所述第一磁盘映像列表包括标识当前存在于源存储器上的磁盘映像的第一磁盘映像标识符集合; 其中所述第二磁盘映像列表包括标识当前存在于目标存储器上的磁盘映像的第二磁盘映像标识符集合,以及 其中所述控制电路构建并布置为,在执行比较操作时:(i)将第一磁盘映像标识符集合与第二磁盘映像标识符集合作比较,以便产生相同磁盘映像标识符集合,相同磁盘映像标识符集合中的每个磁盘映像标识符既属于第一磁盘映像标识符集合也属于第二磁盘映像标识符集合,并且(ii)将相同磁盘映像标识符集合输出作为至少部分的相同磁盘映像列表; 其中相同磁盘映像标识符集合中的每个磁盘映像标识符标识具有与所述特定磁盘映像的相应共性量的磁盘 映像;以及 其中所述控制电路还构建和布置为:(i)针对由相同磁盘映像标识符集合标识的每个磁盘映像,评估磁盘映像与所述特定磁盘映像的相应共性量,并且(ii)从由相同磁盘映像标识符集合标识的磁盘映像中选择与所述特定磁盘映像具有最高共性量的磁盘映像作为相同磁盘映像。
【文档编号】G06F3/06GK103493003SQ201280019935
【公开日】2014年1月1日 申请日期:2012年2月22日 优先权日:2011年2月23日
【发明者】理查德·威廉·夏普, 大卫·乔纳森·斯科特, 乔纳森·詹姆斯·路德拉姆 申请人:思杰系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1