一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于选择性复制主存储器的数据的方法和系统与流程

2022-05-18 15:37:51 来源:中国专利 TAG:


1.本发明大体上涉及存储系统领域;更具体地,涉及一类用于选择性复制主存储器的数据的方法和系统。


背景技术:

2.在存储系统中,数据通常存储在块设备中,并且块设备中的数据通常以某种文件系统格式存储。通常,块设备是计算机数据存储设备,支持读取和可选地写入固定大小块、扇区或簇中的数据。此外,数据复制是将数据存储在一个以上节点(例如主存储器和辅助存储器)中的过程,以提高数据的可用性,并确保在数据丢失时提供数据保护。因此,出于安全原因,通常使用辅助存储器复制主机存储设备的主存储系统中存在的数据。在一个示例中,主存储系统和辅助存储系统都可以是用于数据存储的块设备。
3.目前,一种数据复制方式是使用块存储复制机制,其中,在块级别从传统的主存储器复制到传统的辅助存储系统(通常,两者类型相同)。传统技术需要额外的软件来使辅助存储系统能够从主存储系统复制数据。辅助存储系统通过这种软件以同步或异步的方式复制主存储系统中存在的所有数据。
4.但是,存在若干与这类传统的数据复制技术关联的技术问题。在许多情况下,只需要复制一小部分数据,或者有时要复制除了一部分特定数据之外的所有数据。例如,用户可能希望仅复制在主机计算系统上运行的所有虚拟机中的单个虚拟机或少数虚拟机。但是,传统的系统和方法无法解决这类情况,因此复制过程变得低效并成为计算资源密集型过程。此外,传统的方法和系统会伴随重要数据(即所需数据)复制不需要的数据,例如临时文件,这会对传输带宽造成不必要的消耗(即低效复制)。因此,随着时间的推移,由于不需要的数据在传统的辅助存储系统中占用了大量存储空间,辅助存储系统的存储空间被占用。由于这会降低辅助存储系统的性能,因此不希望出现这种情况。此外,数据存储的成本,以及包括存储硬件成本在内的所有关联成本,仍然是一个负担。因此,如何在辅助存储系统中高效地复制所需数据仍然是一个技术问题。此外,在某些情况下,希望以不同于在主机计算机系统中执行的数据格式的数据格式复制虚拟机。但是,传统技术仅以与主机计算系统中的数据格式相同的数据格式复制虚拟机。
5.因此,根据上述讨论,需要克服与用于将数据从主机存储器复制到辅助存储器的传统技术关联的上述缺点。


技术实现要素:

6.本发明寻求提供一种用于选择性复制主存储器的数据的方法和系统。本发明寻求提供一种现有的从主存储器到辅助存储器的低效数据复制问题的解决方案。本发明的目的是提供一种解决方案,该解决方案至少部分地克服现有技术中遇到的问题,并提供一种改进的方法和系统,该改进的方法和系统通过选择性复制主存储器的逻辑单元中的数据(即,仅复制逻辑单元中的所需数据部分或不复制逻辑单元中不需要的数据部分),能够在逻辑
单元级别实现高效的数据复制。
7.本发明的目的是通过所附独立权利要求中提供的解决方案实现的。本发明的有利实现方式在从属权利要求中进一步定义。
8.在第一方面,本发明提供一种用于选择性复制主存储器的数据的方法,其中,所述数据存储在所述主存储器的一个或多个逻辑单元的一个或多个块上,其中,所述数据存储在所述主存储器的一个或多个逻辑单元的一个或多个块上,所述方法包括:由辅助存储器接收选择性复制所述主存储器的所述数据的请求;执行命令以接收所述逻辑单元的可配置参数集;根据所述接收到的可配置参数集,将存储所述数据的所述一个或多个块从所述主存储器选择性复制到所述辅助存储器。
9.第一方面的方法实现了从主存储器到辅助存储器的高效数据复制。传统技术通常复制所有数据,并且在传统技术中,复制是在块级别或与逻辑单元级别不同的级别。与传统技术相比,该方法能够仅选择性复制主存储器的逻辑单元中所需的数据部分。与传统技术相比,第一方面的方法需要的计算资源要少得多。此外,从不需要的数据中节省了辅助存储器的大量存储内存,从而使硬件存储成本相对较低。此外,该方法能够直接选择性复制数据,而不需要传统技术中的外部软件应用。
10.在一种实现方式中,接收所述可配置参数集包括接收:一个或多个逻辑单元的第一标识值,所述一个或多个逻辑单元包括存储所述数据的一个或多个块;存储所述数据的一个或多个块的第二标识值;用于标记存储所述数据的所述一个或多个块的指示。
11.可配置参数集,如第一标识值、第二标识值和用于标记一个或多个块的指示,使得能够确定主存储器中需要复制的数据部分。因此,根据可配置参数集,该方法能够选择性复制一个或多个逻辑单元中的所需数据部分。
12.在另一种实现方式中,所述接收所述第二标识值包括接收对向量,其中,所述对向量指示存储所述数据的所述一个或多个块的起始和大小。
13.通过接收对向量,准确标识一个或多个逻辑单元中的一个逻辑单元的一个或多个块,以选择性复制存储在这类块中的数据。
14.在另一种可能的实现方式中,所述辅助存储器选择性复制所述数据包括:周期性创建包括一个或多个块的所述逻辑单元的副本;通过解析所述逻辑单元的所述创建副本的文件系统来执行第一解析;标记所述逻辑单元的解析副本的所述一个或多个块用于复制;由复制引擎将所述逻辑单元的所述标记的一个或多个块复制到辅助存储器。
15.创建逻辑单元的副本、执行第一解析、标记一个或多个块和复制标记块可以准确标识要在逻辑单元级别复制的块,从而仅选择性复制所标识的块。
16.在另一种可能的实现方式中,所述标记所述一个或多个块通过正掩蔽或反掩蔽所述一个或多个块来执行。
17.通过正掩蔽(masking in)或反掩蔽(masking out),准确标识一个或多个逻辑单元的所需块,以进行选择性复制。
18.在另一种可能的实现方式中,接收所述选择性复制所述主存储器的所述数据的请求包括:接收选择性复制主机存储设备的数据的请求,所述主机存储设备包括运行一个或多个虚拟机的虚拟机管理程序。
19.一个或多个虚拟机由虚拟机管理程序管理,其中,标识与相应的虚拟机关联的一
个或多个块,并且进一步在接收到复制特定虚拟机的请求后,仅选择性地准确复制该特定虚拟机的块。
20.在另一种可能的实现方式中,接收所述参数集还包括接收:位于所述虚拟机管理程序中的一个或多个虚拟机的列表;用于标识一个或多个块中的哪个块属于一个或多个虚拟机中的哪个虚拟机的位置指示。
21.相应虚拟机的一个或多个块的位置标识使得能够准确确定这类块,并且仅选择性复制与被选择要复制的虚拟机关联的块。
22.在另一种可能的实现方式中,所述方法还包括:创建所述逻辑单元的所述复制的一个或多个块的快照;通过所述复制引擎挂载所述逻辑单元的所述复制的一个或多个块的所述快照;通过解析所述复制的逻辑单元的所述文件系统来执行第二解析;通过将所述文件系统中解析的文件的所述一个或多个块复制到所述辅助存储器中的第二文件来创建文件。
23.快照的创建、快照的挂载以及执行第二解析并最终创建文件使得能够仅高效复制辅助存储器中的选定块,以便在辅助存储器中准确复制和获取整个文件(例如,与分布在不同选定块中的一个虚拟机关联的所有相关数据)。
24.在另一种可能的实现方式中,复制在不移动数据的情况下通过所述辅助存储器内的指针操作来执行。
25.在不移动数据的情况下通过指针进行复制,可以在需要时高效、准确地从主存储器中检索数据或将数据恢复到主存储器。
26.在另一种可能的实现方式中,选择性复制包括:避免复制所述主存储器的一个或多个块;复制存储在所述虚拟机管理程序的虚拟机文件系统上的一个或多个虚拟机中的单个虚拟机;复制存储在所述虚拟机管理程序的所述虚拟机文件系统上的所有虚拟机中的一个以上虚拟机;以不同格式将所述文件系统的文件复制到辅助存储器上;或复制与所述主存储器的所述文件系统不同的文件系统中的一个或多个文件。
27.与复制所有虚拟机的所有块的传统技术相比,该方法能够仅选择性复制存储在仅与选择用于复制的一个或多个虚拟机关联的块中的数据。此外,所复制文件的格式可以更改为辅助存储器的原生文件格式。
28.在第二方面,本发明提供一种用于选择性复制主存储器的数据的系统,其中,所述数据存储在所述主存储器的一个或多个逻辑单元的一个或多个块上,所述系统包括用于连接到所述主存储器的辅助存储器,所述辅助存储器包括:接口,用于执行命令以接收所述主存储器的所述逻辑单元的可配置参数集;复制引擎,用于将存储所述数据的一个或多个块从所述主存储器选择性复制到所述辅助存储器。
29.第二方面的系统实现了从主存储器到辅助存储器的高效数据复制。传统技术通常复制所有数据,并且在传统技术中,复制是在块级别或与逻辑单元级别不同的级别。与传统技术相比,该系统通过使用复制引擎能够仅选择性复制主存储器的逻辑单元中所需的数据部分。与传统技术相比,该系统所需的计算资源要少得多。此外,从不需要的数据中节省了辅助存储器的大量存储内存,从而使硬件存储成本相对较低。此外,该系统能够直接选择性复制数据,而不需要传统技术中的外部软件应用。
30.在一种实现方式中,所述辅助存储器还用于通过所述接口接收:一个或多个逻辑
单元的第一标识值,所述一个或多个逻辑单元包括存储所述数据的一个或多个块;存储所述数据的一个或多个块的第二标识值;用于标记存储所述数据的所述一个或多个块的指示。
31.由辅助存储器接收的第一标识值和第二标识值以及指示使得能够确定主存储器中需要复制的数据部分。因此,根据可配置参数集,该方法能够选择性复制一个或多个逻辑单元中的所需数据部分。
32.在另一种实现方式中,所述辅助存储器还用于通过所述接口接收:位于所述主机存储设备中的一个或多个虚拟机的列表;用于标识一个或多个块中的哪个块属于一个或多个虚拟机中的哪个虚拟机的位置指示。
33.相应虚拟机的一个或多个块的列表和位置指示使得能够准确确定这些块,并且仅选择性复制与被选择要复制的虚拟机关联的块。
34.在另一种可能的实现方式中,所述辅助存储器还用于根据所述接收到的可配置参数集选择性标记所述一个或多个块用于复制。
35.通过选择性标记,准确标识一个或多个逻辑单元中选择用于复制的块,以将这类选定块中的存储数据选择性复制到辅助存储器。
36.在另一种可能的实现方式中,所述辅助存储器还用于标识存储所述主存储器的一个或多个逻辑单元的所述数据的一个或多个块中的哪个块属于所述主机存储设备中的一个或多个虚拟机中的哪个虚拟机。
37.通过标识,辅助存储器可以准确标识一个或多个逻辑单元的哪些块属于哪个虚拟机,因此可以选择性复制与分布在不同选定块中的特定虚拟机关联的相关数据,从而确保数据可用性和数据保护。
38.在第三方面,本发明提供一种计算机程序,所述计算机程序在辅助存储器上执行时用于执行第一方面的方法。
39.第三方面的计算机程序实现了从主存储器到辅助存储器的高效数据复制,其中,仅准确和选择性地复制主存储器的一个或多个逻辑单元的一个或多个块中的相关数据部分。此外,第三方面实现了第一方面的所有优点和效果。
40.需要说明的是,本技术中描述的所有设备、元件、电路、单元和模块可以在软件或硬件元件或其任何类型的组合中实现。本技术中描述的各种实体执行的所有步骤和所描述的将由各种实体执行的功能旨在表明各个实体适于或用于执行各自的步骤和功能。虽然在以下具体实施例的描述中,由外部实体执行的特定功能或步骤没有在执行该特定步骤或功能的该实体的具体详述元件的描述中反映,但是技术人员应该清楚,这些方法和功能可以在相应的硬件或软件元件或其任何组合中实现。应当理解,本发明的特征易于以各种组合进行组合,而不偏离由所附权利要求书定义的本发明的范围。
41.本发明的附加方面、优点、特征和目的从附图和结合以下所附权利要求书解释的说明性实现方式的详细描述中变得显而易见。
附图说明
42.当结合附图阅读时,可以更好地理解以上发明内容以及说明性实施例的以下详细描述。为了说明本发明,本发明的示例性结构在附图中示出。但是,本发明不限于本文公开
的具体方法和工具。此外,本领域技术人员应理解,附图不是按比例绘制的。在可能的情况下,相同的元件用相同的数字表示。
43.现在参考下图仅作为示例来描述本发明的实施例,其中:
44.图1是本发明的实施例提供的用于选择性复制主存储器的数据的方法的流程图;
45.图2a是本发明的实施例提供的用于选择性复制主存储器的数据的系统的网络环境图;
46.图2b是本发明的实施例提供的示出主存储器的各种示例性组件的框图;
47.图2c是本发明的实施例提供的示出辅助存储器的各种示例性组件的框图;
48.图3示出了本发明的实施例提供的与逻辑单元相关的示例性场景;
49.图4示出了本发明的另一实施例提供的与逻辑单元相关的示例性场景;
50.图5示出了本发明的另一实施例提供的用于选择性复制主存储器的数据的系统。
51.在附图中,带下划线的数字用于表示带下划线的数字所在的项目或与带下划线的数字相邻的项目。不带下划线的数字是指由将不带下划线的数字与项目连接的线所标识的项目。当一个数字不带下划线并具有关联的箭头时,不带下划线的数字用于标识箭头指向的一般项目。
具体实施方式
52.以下详细描述说明了本发明的实施例以及可以实现这些实施例的方式。虽然已经公开了实施本发明的一些模式,但本领域技术人员应认识到,也可以存在用于实施或实践本发明的其它实施例。
53.图1是本发明的实施例提供的用于选择性复制主存储器的数据的方法100的流程图。在一个方面,本发明提供一种用于选择性复制主存储器的数据的方法100,其中,所述数据存储在所述主存储器的一个或多个逻辑单元的一个或多个块上,所述方法100包括:
54.由辅助存储器接收选择性复制所述主存储器的所述数据的请求;
55.执行命令以接收所述逻辑单元的可配置参数集;
56.根据所述接收到的可配置参数集,将存储所述数据的所述一个或多个块从所述主存储器选择性复制到所述辅助存储器。
57.结合图1,方法100在例如图2a中详细描述的辅助存储器中执行。方法100包括步骤102、104和106。在步骤102中,方法100包括:由辅助存储器接收选择性复制主存储器的数据的请求。此处的术语“请求”是指由辅助存储器接收的启动数据的选择性复制的请求。可以对该请求预先编程,以在特定时间由辅助存储器接收。在一个示例中,辅助存储器在每周或每月的特定时间接收请求。或者,请求可以是用户在用户期望的任何特定时间发起的用户请求。与复制主存储器所有数据的传统技术相比,辅助存储器在接收到请求后用于仅复制主存储器的选定的数据部分,而不是复制主存储器的所有数据。因此,与传统技术相比,辅助存储器复制数据的速度更快,所需的存储空间更少。主存储器的数据存储在一个或多个逻辑单元的一个或多个块上。术语“逻辑单元”是指主存储器中的存储区域,其中,每个逻辑单元包括一个或多个块。本发明中使用的术语“主存储器”也可以称为主存储器或主存储系统。
58.根据实施例,每个逻辑单元由标识符标识,该标识符也可以称为逻辑单元号
(logical unit number,lun)。逻辑单元号是用于标记和指定物理存储或虚拟存储的子系统的标识符。通常,为物理驱动器(即存储系统)中的不同区域分配不同的逻辑单元号,以便在需要时可以读取、写入或检索数据。此外,一个或多个块中的每个块用于存储固定量的数据。在一个示例中,一个或多个逻辑单元用于以特定文件系统格式(如虚拟机文件系统)将数据存储在一个或多个块中。在这种示例中,虚拟机可以与一个或多个块关联。可选地,一个或多个块可以仅存储一种类型的数据,如图像数据、视频数据、音频数据或文本数据,或其组合中的一种。存储在主机存储设备中的数据通过在主机存储设备上执行的一个或多个软件算法在主机存储设备中创建或改变,其中,所述软件算法如照片编辑软件、数据压缩软件、数据加密软件等。
59.在步骤104中,方法100还包括执行命令以接收逻辑单元的可配置参数集。该命令通过辅助存储器中提供的接口执行,以接收可配置参数集。接口是用户界面。通过接口提供用户输入,以接收逻辑单元的可配置参数集。例如,在图2a中详细描述了接口。可配置参数集使得能够标识与存储在要复制的主存储器中一个或多个逻辑单元的不同块中的单个对象(例如虚拟机)关联的相关数据。因此,仅进行数据的选择性复制。在一个示例中,参数集使得能够标识与用户的特定虚拟机关联的数据,该特定虚拟机是在一个或多个逻辑单元中存在的两个或更多个虚拟机之间,需要选择性复制的虚拟机。在这种示例中,用户通过可配置参数指示要复制的特定虚拟机。
60.在步骤106中,方法100包括:根据接收到的可配置参数集,将存储数据的一个或多个块从主存储器选择性复制到辅助存储器。方法100提供了一种低效复制技术问题的解决方案:将逻辑单元的一部分(即逻辑单元的一个或多个块)从一个或多个逻辑单元复制到辅助存储器中,然后使用高效的复制机制仅将相关数据(即存储在一个或多个块上的数据)从复制的逻辑单元复制到文件系统中。存储在一个或多个块上的数据是与单个对象(例如虚拟机)关联的潜在相关数据。因此,总体而言,方法100提供的解决方案可以分为三个部分。这三个部分的第一部分通过步骤102实现,该步骤允许请求选择性复制主存储器的数据。换句话说,在辅助存储器中为块存储复制提供了新的接口,从而允许请求仅复制逻辑单元的部分。解决方案的第二部分通过步骤104实现,该步骤包括一个机制,决定应该复制一个或多个逻辑单元中逻辑单元的哪些部分(即哪些块)。决定应该复制一个或多个逻辑单元中逻辑单元的哪些部分(即哪些块)的机制通过执行命令以接收逻辑单元的可配置参数集来实现。可配置参数集指示应该复制逻辑单元的哪些部分(即哪些块)。最后,解决方案的第三部分通过步骤106实现,该步骤解决了如何利用逻辑单元复制在辅助存储器中进行单个对象恢复的问题。因此,根据接收到的可配置参数集,将存储数据的一个或多个块从主存储器选择性并高效地复制到辅助存储器。
61.有益的是,本发明的方法100不需要任何额外的软件来复制一个或多个块。根据接收到的可配置参数集,标识一个或多个逻辑单元的多个块中的一个或多个块,并选择性复制存储在一个或多个块中的数据。一个或多个块中的数据可以属于被复制的单个对象(例如虚拟机),而不复制其它块中的其它非相关数据。在一个示例中,复制引擎可以用于选择性复制一个或多个块。因此,方法100能够在逻辑单元级别实现从主存储器到辅助存储器的高效数据复制。由于仅选择性复制相关数据,因此与传统技术相比,方法100所需的计算资源要少得多。此外,从不需要的数据中节省了辅助存储器的大量存储内存,从而使硬件存储
成本相对较低。因此,本发明中的方法100使用于在辅助存储器中存储备份的数据复制过程非常高效。此外,在完成选择性复制后,向与主存储器关联的主存储器发送确认请求。
62.根据一个实施例,接收可配置参数集包括接收一个或多个逻辑单元的第一标识值,所述一个或多个逻辑单元包括存储数据的一个或多个块。第一标识值是指与标识要选择性复制的逻辑单元关联的标识值。在一个示例中,第一标识值属于主存储器中其它逻辑单元(如第一逻辑单元、第二逻辑单元、第三逻辑单元、第四逻辑单元)之中的第一逻辑单元。第一标识值也称为逻辑单元号(logical unit number,lun),是特定逻辑单元的标识值(即id)。
63.根据一个实施例,接收可配置参数集包括接收存储数据的一个或多个块的第二标识值。第二标识值是指与标识要选择性复制的一个或多个逻辑单元中的每个逻辑单元的块关联的标识值。在一个示例中,第二标识值属于第一标识值中存在的,相应逻辑单元的所有块(如第一块、第二块、第三块、第四块等)中的第二块和第三块。
64.根据一个实施例,接收可配置参数集包括接收用于标记存储数据的一个或多个块的指示。用于标记一个或多个块的指示能够清楚地标识选择用于选择性复制一个或多个块中的数据的一个或多个块。指示包括布尔值(boolean value)(例如真(true)或假(false)),该布尔值指示是否应复制给定逻辑单元的一部分(例如一个或多个块),或者是否应复制该部分。
65.根据一个实施例,接收第二标识值包括接收对向量,其中,所述对向量指示存储数据的一个或多个块的起始和大小。起始指示在给定逻辑单元中的块序列中从哪个块开始,大小指示要复制起始块中的块数量。例如,对向量可以是(5,3)。在这种示例中,值“5”是指10个块(例如块0、块1、块2、块3、块4、块5、块6、块7、块8和块9)的序列中具有要复制数据的第六块(即块6,因为块从块0开始),并且(5,3)的值“3”是指具有要复制数据的后续块的数量,即三个连续块(即块6、块7和块8)。在另一个示例中,对向量可以是(6,3),在这种情况下,选择块7、块8和块9进行选择性复制。
66.根据一个实施例,辅助存储器选择性复制数据包括周期性创建包括一个或多个块的逻辑单元的副本。逻辑单元的该副本通常在主存储器中创建。逻辑单元的副本可以通过创建逻辑单元的快照来创建。逻辑单元中的一个或多个块可以随着时间的推移而变化,即,以前为空的块当前可以具有数据,具有数据的块可以变为空。因此,周期性创建逻辑单元的副本。
67.根据一个实施例,辅助存储器选择性复制数据包括通过解析逻辑单元的创建副本的文件系统来执行第一解析。第一解析由解析器执行。在一个示例中,文件系统可以是虚拟机文件系统。根据接收到的可配置参数集对文件系统执行第一解析。在一个示例中,对第一虚拟机、第二虚拟机、第三虚拟机和第四虚拟机之中的第一虚拟机的文件系统执行第一解析。
68.根据一个实施例,辅助存储器选择性复制数据包括标记逻辑单元的解析副本的一个或多个块用于复制。标记解析副本的一个或多个块使辅助存储器能够准确标识逻辑单元的需要选择性复制的一个或多个块。在一个示例中,对那些将被选择性复制的一个或多个块进行标记。在另一个示例中,对那些不被选择性复制的一个或多个块进行标记,以能够标识要复制的块,和不复制的块。根据一个实施例,辅助存储器选择性复制数据包括由复制引
擎将逻辑单元的标记的一个或多个块复制到辅助存储器。在标记逻辑单元的一个或多个块之后,将存储在逻辑单元的标记的一个或多个块中的数据从主存储器选择性复制到辅助存储器。因此,仅复制存储在所标记的一个或多个块中的相关数据,而不是复制逻辑单元的所有块。因此,与传统技术相比,复制过程更快,所需的计算能力更低。
69.根据一个实施例,标记一个或多个块通过正掩蔽或反掩蔽一个或多个块来执行。当布尔值为

真’时,对一个或多个块进行正掩蔽。当布尔值为

假’时,对一个或多个块进行反掩蔽。在一个示例中,当布尔值为真时,对对向量中的一个或多个块进行正掩蔽。选择进行正掩蔽的一个或多个块进行复制,而不选择其它块。在一个示例中,当布尔值为假时,对对向量中的一个或多个块进行反掩蔽。不选择进行反掩蔽的一个或多个块进行复制,而选择其它块进行复制。
70.在一个示例性场景中,在第一调用时(即,当执行第一命令时),第一标识值在主存储器中的其它逻辑单元中选择第一逻辑单元(lu1)。此外,第二标识值具有对向量(1,2)和(5,3)。此外,标记指示的布尔值为

真’。在这种场景下,块序列可以是块0、块1、块2,直到块9。因此,根据对向量,对块1和块2以及块6、块7和块8进行正掩蔽并选择用于复制。此外,在第二调用时(即,当可以执行第二命令时),当第二标识值具有对向量(2,2)并且标记指示的布尔值设置为

假’时,进行反掩蔽。在这种场景下,从在第一调用时正掩蔽的所有块中反掩蔽块2,因此最终仅选择块1、块6、块7和块8(块0到块9中)用于复制。
71.根据一个实施例,在虚拟机的情况下,与虚拟机关联的数据是动态的,并随着时间的推移而增加,导致在逻辑单元中分配新块。因此,与正掩蔽相比,通过反掩蔽标记一个或多个块更高效。换句话说,与正掩蔽与要复制的虚拟机关联的块相比,反掩蔽与不复制的虚拟机关联的块是高效的。
72.在一种示例性实现方式中,在辅助存储器中接收的可配置参数集通过以下给出的命令函数(1)表示的命令(例如mask_lu_replication命令)接收。可配置参数集可以通过辅助存储器的接口接收。
73.mask_lu_replication(lu_id,vector(start_offset,length),bool mask_out)
ꢀꢀ
(1)
74.其中,
75.‘
lu_id’是逻辑单元的标识;
76.‘
vector’是对向量;
77.‘
start_offset’是块的起始;
78.‘
length’是块的大小;
79.‘
bool mask_out’是应复制块还是不复制块的指示。
80.根据一个实施例,接收选择性复制主存储器的数据的请求包括:接收选择性复制主存储器的数据的请求,所述主存储器包括运行一个或多个虚拟机的虚拟机管理程序。术语“虚拟机管理程序”是指软件、软件和硬件的组合,或固件,用于管理和运行主机存储设备中的一个或多个虚拟机。虚拟机管理程序用于通过单个主机存储设备上的虚拟机启用一个或多个操作系统的操作。在主机存储设备上运行的一个或多个虚拟机中的每个虚拟机配置有用于虚拟机操作的主机存储设备的专用内存、存储空间、处理器、接口。辅助存储器配置为与虚拟机管理程序连接。
81.根据一个实施例,接收参数集还包括接收:位于虚拟机管理程序中的一个或多个
虚拟机的列表;用于标识一个或多个块中的哪个块属于一个或多个虚拟机中的哪个虚拟机的位置指示。虚拟机管理程序可以具有许多与其关联的虚拟机。此外,这类虚拟机可以在一个或多个逻辑单元的不同位置具有关联的块。一个或多个虚拟机的列表和位置指示使得能够准确、更快地标识主存储器的一个或多个逻辑单元中的虚拟机及其相应的块,从而提高辅助存储器进行选择性复制的速度和准确性。
82.根据一个实施例,所述方法还包括创建逻辑单元的复制的一个或多个块的快照。快照是给定逻辑单元的映像。复制的一个或多个块的快照是指在主存储器中创建(在某些情况下,或直接在辅助存储器中创建)的一个或多个块的副本。根据一个实施例,所述方法还包括通过复制引擎挂载逻辑单元的复制的一个或多个块的快照。将复制的一个或多个块的快照挂载在辅助存储器的存储空间上。然后,此挂载创建快照的克隆(即副本)。根据一个实施例,所述方法还包括通过解析复制的逻辑单元的文件系统来执行第二解析。第二解析使辅助存储空间能够标识选择用于选择性复制的一个或多个块。然后,以如下方式将这类一个或多个块存储在辅助存储器中的适当位置:当主机存储设备需要辅助存储器中的这类复制数据时,对一个或多个块的检索准确且快速。换句话说,例如,辅助存储器周期性创建复制的逻辑单元的副本(即快照),然后在内部挂载逻辑单元快照,并解析文件系统以了解哪些块属于要复制和保护的单个对象(例如特定虚拟机)。根据一个实施例,所述方法还包括将文件系统中解析的文件的一个或多个块复制到辅助存储器中的第二文件来创建文件。辅助存储器中的第二文件仅包括与单个对象(例如特定虚拟机)关联的数据。这种第二文件是通过仅选择性和高效地复制与属于单个对象的一个或多个块关联的数据来创建的。因此,使用内部复制命令,将特定虚拟机的数据,或对数据的任何更改从主存储器的文件系统复制到辅助存储器的另一个文件系统中(因为辅助存储器了解哪些数据需要复制到哪个位置)。因此,这种复制不需要额外的软件,从而可以实现高效的复制过程。例如,虚拟机磁盘的副本(即特定虚拟机的所有用户数据)以其原生格式在辅助存储文件系统中获得,而不管主存储器中的文件格式如何。
83.根据一个实施例中,复制在不移动数据的情况下通过辅助存储器内的指针操作来执行。在一些实施例中,存储指示属于单个对象(例如特定虚拟机)的数据在一个或多个块中的位置的指针,而不是将数据从主存储器实际移动到辅助存储器。因此,在辅助存储器中节省了更多的存储空间,并且这类指针使得能够在需要时准确地检索存储在辅助存储设备中的数据。
84.根据一个实施例,选择性复制包括避免复制主存储器的一个或多个块。选择性复制通过选择要复制的一个或多个块或选择要避免复制的一个或多个块来标识要复制到辅助存储器的一个或多个块。在数据是动态的(即数据随时间变化或增加)情况下,选择避免用于复制的一个或多个块,从而将数据分配到新块中。在一个示例中,对于存储在一个或多个块中的虚拟机的数据,选择避免用于复制的一个或多个块。根据一个实施例,选择性复制包括复制存储在虚拟机管理程序的虚拟机文件系统上的一个或多个虚拟机中的单个虚拟机。仅复制一个或多个虚拟机之间的单个虚拟机是基于接收到的可配置参数集,其中,第一标识值和第二标识值属于仅与单个虚拟机关联的一个或多个逻辑单元的一个或多个块。因此,与复制多个虚拟机的所有用户数据的传统技术相比,本发明的方法仅复制单个虚拟机。
85.根据一个实施例,选择性复制包括存储在虚拟机管理程序的虚拟机文件系统上的
所有虚拟机中的一个以上虚拟机。复制所有虚拟机(例如10个虚拟机)之间的一个以上虚拟机(例如3个虚拟机)是基于接收到的可配置参数集,其中,第一标识值和第二标识值属于与一个以上虚拟机关联的一个或多个逻辑单元的一个或多个块。与复制所有虚拟机(即所有10个虚拟机)的传统技术相比,本发明的方法仅复制选定的虚拟机(即3个虚拟机的用户数据)。
86.根据一个实施例,选择性复制包括以不同格式将文件系统的文件复制到辅助存储器上。在传统技术中,在辅助存储器中复制的文件与主存储器中的文件格式相同。与传统技术相比,本发明的方法能够转换在辅助存储器中复制的文件的格式。例如,要复制的虚拟机的数据可以以第一格式存储在主存储器中。这类数据在辅助存储器中复制时可以以不同的格式(例如,辅助存储器的原生文件格式或用户定义的文件格式)存储。
87.根据一个实施例,选择性复制包括复制与主存储器的文件系统不同的文件系统中的一个或多个文件。此外,要复制的虚拟机的数据可以存储在主存储器中的虚拟机文件系统中。当在辅助存储器中复制时,这类数据可以存储在与虚拟机文件系统不同的不同文件系统(例如辅助存储器的原生文件系统)中。在传统技术中,在辅助存储器中复制的一个或多个文件的文件系统与主存储器中的一个或多个文件的文件系统相同。与传统技术相比,本发明的方法能够转换在辅助存储器中复制的一个或多个文件的文件系统。
88.步骤102至106仅仅是说明性的,还可以提供其它替代方案,其中添加一个或多个步骤,删除一个或多个步骤,或以不同的顺序提供一个或多个步骤,而不脱离本文权利要求的范围。
89.在另一方面,本发明提供一种计算机程序,所述计算机程序在辅助存储器上执行时用于执行方法100。在又一个方面,提供了一种计算机程序产品,包括存储有计算机程序代码的非瞬时性计算机可读存储介质,所述计算机程序代码可由处理器执行以执行方法100。非瞬时性计算机可读存储介质的实现示例包括但不限于电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、硬盘驱动器(hard disk drive,hdd)、闪存、安全数字(secure digital,sd)卡、固态硬盘(solid-state drive,ssd)、计算机可读存储介质和/或cpu高速缓冲存储器。用于提供非瞬时性存储器的计算机可读存储介质可以包括但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备,或上述任何合适的组合。
90.图2a是本发明的实施例提供的用于选择性复制主存储器的数据的系统的网络环境图。图2a结合图1描述。结合图2a,示出了系统200。系统200包括主存储器202和辅助存储器204。辅助存储器204通过通信网络206以通信方式与主存储器202耦合。辅助存储器204包括接口208、复制引擎210和解析器212。主存储器202包括一个或多个逻辑单元216。
91.在另一方面,本发明提供了用于选择性复制主存储器202的数据的系统200,其中,所述数据存储在主存储器202的一个或多个逻辑单元216的一个或多个块218上,系统200包括用于连接至主存储器202的辅助存储器204,辅助存储器204包括:
92.接口208,用于执行命令以接收主存储器202的逻辑单元216的可配置参数集;
93.复制引擎210,用于将存储数据的一个或多个块218从主存储器202选择性复制到辅助存储器204。
94.主存储器202包括合适的逻辑、电路、接口和/或代码,用于存储用户数据(例如,虚拟机数据或与在主存储器202上执行的各种软件应用关联的其它数据)。主存储器202用于将数据存储在一个或多个逻辑单元216的各个块中。主存储器202是指使用块设备进行数据存储的块设备或电子设备。主存储器202的示例包括但不限于主机服务器、主机生产环境系统、连接到主机服务器的瘦客户端、主存储系统,和用户设备(如蜂窝电话、个人数字助理(personal digital assistant,pda)、手持设备、笔记本电脑、个人电脑、物联网(internet-of-things,iot)设备、智能手机、机器类通信(machine type communication,mtc)设备、计算设备、无人机或任何其它便携式或非便携式电子设备)。
95.辅助存储器204包括合适的逻辑、电路、接口和/或代码,用于接收、存储、处理从主存储器202接收的数据。辅助存储器204用于存储主存储器202中的数据的备份。辅助存储器204用于同步存储数据。辅助存储器204用于在由于主存储器202中的数据损坏、硬件或软件故障、数据意外删除、黑客或恶意攻击等造成的任何数据丢失的情况下,将复制的数据提供给主存储器202。辅助存储器204是指使用块设备进行数据存储的块设备或电子设备。辅助存储器204的示例包括但不限于辅助存储系统、存储服务器、云服务器、web服务器、应用服务器、备份服务器或其组合。
96.通信网络206包括介质(例如通信通道),辅助存储器204通过该介质可以与主存储器202通信。通信网络206可以是有线或无线通信网络。通信网络206的示例可以包括但不限于无线保真(wireless fidelity,wi-fi)网络、局域网(local area network,lan)、无线个人局域网(wireless personal area network,wpan)、无线局域网(wireless local area network,wlan)、无线广域网(wireless wide area network,wwan)、云网络、长期演进(long term evolution,lte)网络、传统电话业务(plain old telephone service,pots)、城域网(metropolitan area network,man)和/或互联网。辅助存储器204和主存储器202可用于根据各种有线和无线通信协议连接到通信网络206。这类有线和无线通信协议的示例可以包括但不限于传输控制协议和互联网协议(transmission control protocol and internet protocol,tcp/ip)、用户数据报协议(user datagram protocol,udp)、超文本传输协议(hypertext transfer protocol,http)、文件传输协议(file transfer protocol,ftp)、zigbee、edge、红外(infrared,ir)、ieee 802.11、802.16、长期演进(long term evolution,lte)、光保真(light fidelity,li-fi)和/或其它蜂窝通信协议或蓝牙(bluetooth,bt)通信协议,包括其变体。
97.辅助存储器204的接口208是指用户界面或图形用户界面。接口208用于接收用户输入和执行对应动作的命令。接口208接收可配置参数集作为用户输入。根据一个实施例,接口208可以呈现在与辅助存储器204关联的显示屏上。由接口208接收的可配置参数集使辅助存储器204能够标识主存储器202中要选择性复制的数据部分。
98.辅助存储器204的复制引擎210包括合适的逻辑、电路、接口和/或代码,用于将存储数据的一个或多个块218从主存储器202选择性复制到辅助存储器204。选择性复制由复制引擎210根据接口208接收的可配置参数集执行。在一种实现方式中,复制引擎210可以实现为复制电路。在另一种实现方式中,复制引擎210可以实现为软件组件或软件和电路的组合。
99.解析器212用于对文件系统进行解析,例如,解析一个或多个逻辑单元216的副本
(即快照)。解析器212可以实现为用于执行解析的软件组件或电路。
100.虚拟机管理程序214是软件、软件和硬件的组合或固件,用于管理和运行主机存储设备232上的一个或多个虚拟机234。
101.一个或多个逻辑单元216的每个逻辑单元是指主存储器202中的存储区域,其中,每个逻辑单元包括一个或多个块。此外,每个逻辑单元由标识符标识,该标识符也可以称为逻辑单元号(logical unit number,lun)。逻辑单元号是用于标记和指定物理存储或虚拟存储的子系统的标识符。通常,为物理驱动器(即存储系统)中的不同区域分配不同的逻辑单元号,以便在需要时可以读取、写入或检索数据。
102.在操作中,辅助存储器204用于通过接口208接收请求,以选择性复制主存储器202的数据。在一个示例中,该请求可以由辅助存储器204同步接收。与复制主存储器202所有数据的传统技术相比,辅助存储器204根据请求用于仅复制主存储器202的选定的数据部分,而不是复制主存储器202的所有数据。因此,与传统技术相比,辅助存储器204复制数据的速度更快,所需的存储空间更少。
103.系统200包括用于连接至主存储器202的辅助存储器204。辅助存储器204包括接口208,该接口208用于执行命令以接收主存储器202的逻辑单元的可配置参数集。执行该命令以接收可配置参数集。可配置参数集使得能够标识与存储在要复制的主存储器202中一个或多个逻辑单元216的逻辑单元的不同块中的单个对象(例如虚拟机)关联的相关数据。接口208用于接收命令作为用户输入。
104.复制引擎210用于将存储数据的一个或多个块218从主存储器202选择性复制到辅助存储器204。辅助存储器204的复制引擎210提供了一种低效复制技术问题的解决方案:将逻辑单元的一部分(即逻辑单元的一个或多个块218)复制到辅助存储器204中,然后使用高效的复制机制仅将相关数据(即存储在一个或多个块218上的数据)从复制的逻辑单元复制到文件系统中。存储在一个或多个块218上的数据是与单个对象(例如虚拟机)关联的潜在相关数据。因此,有益的是,由系统200的辅助存储器204提供的解决方案可以分为三个部分。这三个部分的第一部分由配置用于块存储复制的接口208实现,该接口208可以接收选择性复制主存储器202的数据的请求(即,仅复制逻辑单元的部分)。解决方案的第二部分也由接口208促进实现,该接口208执行命令以接收逻辑单元的可配置参数集。这使得能够决定应该复制一个或多个逻辑单元的逻辑单元的哪些部分(即哪些块)。决定应该复制一个或多个逻辑单元216中逻辑单元的哪些部分(即哪些块)的机制。具体地,可配置参数集指示应该复制逻辑单元的哪些部分(即哪些块)。最后,解决方案的第三部分通过复制引擎210实现,该复制引擎210解决了如何利用逻辑单元复制在辅助存储器204中进行单个对象恢复的问题。因此,根据接收到的可配置参数集,将存储数据的一个或多个块218从主存储器202选择性并高效地复制到辅助存储器204。
105.根据一个实施例,辅助存储器204还用于通过接口208接收:一个或多个逻辑单元216的第一标识值,所述逻辑单元216包括存储数据的一个或多个块218;存储数据的一个或多个块218的第二标识值;用于标记存储数据的一个或多个块218的指示。由辅助存储器204的接口208接收的第一标识值包括与要选择性复制的逻辑单元的标识关联的标识值。在一个示例中,第一标识值属于主存储器202中其它逻辑单元(如第一逻辑单元、第二逻辑单元、第三逻辑单元、第四逻辑单元)之中的第一逻辑单元。第一标识值也称为逻辑单元号
(logical unit number,lun),是给定逻辑单元的标识值。由辅助存储器204的接口208接收的第二标识值包括对向量,其中,对向量指示存储数据的一个或多个块218的起始和大小。在一个示例中,第二标识值属于第一标识值中存在的,相应逻辑单元的所有块(如第一块、第二块、第三块、第四块等)中的第二块和第三块。起始大小指示在给定逻辑单元中的块序列中从哪个块开始,大小指示要复制起始块中的块数量。用于标记一个或多个块的指示能够清楚地标识选择用于选择性复制存储在一个或多个块218中的数据的一个或多个块218。指示包括布尔值(例如真或假),该布尔值指示是否应复制逻辑单元的一部分(例如一个或多个块218),或者是否应复制该部分。
106.根据一个实施例,辅助存储器204还用于通过接口208接收:位于主机存储设备232中的一个或多个虚拟机的列表;用于标识一个或多个块218中的哪个块属于一个或多个虚拟机中的哪个虚拟机的位置指示。由辅助存储器204通过接口208接收的一个或多个虚拟机的列表和位置指示使得能够准确标识主存储器202中的虚拟机及其相应的块。虚拟机管理程序214包括与其关联的一个或多个虚拟机234。此外,这类虚拟机可以在一个或多个逻辑单元216的不同位置具有关联的块。一个或多个虚拟机的列表和位置指示使得能够准确、更快地标识主存储器202的一个或多个逻辑单元中的虚拟机及其相应的块,从而提高辅助存储器204进行选择性复制的速度和准确性。
107.根据一个实施例,辅助存储器204还用于根据接收到的可配置参数集选择性标记一个或多个块218用于复制。辅助存储器204用于根据用于复制的标记的一个或多个块218对选择用于复制的一个或多个块218进行正掩蔽或反掩蔽。对块218进行正掩蔽使得能够标识用于复制的块。对块218进行反掩蔽使得能够标识不被复制的块。辅助存储器204接收用于标记一个或多个块218的指示,以便对一个或多个块218进行明确标识。通常,在虚拟机的情况下,与虚拟机关联的数据是动态的,并随着时间的推移而增加,导致在逻辑单元中分配新块。因此,与正掩蔽相比,通过反掩蔽标记一个或多个块更高效。换句话说,与正掩蔽与要复制的虚拟机关联的块相比,反掩蔽与不复制的虚拟机关联的块是高效的。
108.根据一个实施例,辅助存储器204还用于标识存储主存储器202的一个或多个逻辑单元216的数据的一个或多个块218中的哪个块属于主机存储设备232中的一个或多个虚拟机中的哪个虚拟机。这种标识是基于辅助存储器204从接口208接收的位置指示来实现的。这种标识使辅助存储器204能够以准确快速地对块进行检索的方式存储块。
109.根据一个实施例,为了对数据进行选择性复制,辅助存储器204还用于周期性创建包括一个或多个块218的逻辑单元的副本。逻辑单元的该副本通常在主存储器202中创建。逻辑单元的副本可以通过创建逻辑单元的快照来创建。逻辑单元中的一个或多个块可以随着时间的推移而变化,即,以前为空的块当前可以具有数据,具有数据的块可以变为空。因此,周期性创建逻辑单元的副本。
110.根据一个实施例,为了对数据进行选择性复制,辅助存储器204还用于通过解析逻辑单元的创建副本的文件系统(例如虚拟机文件系统)来执行第一解析。解析器212用于在主存储器202中执行第一解析。在一个示例中,文件系统可以是虚拟机文件系统。根据接收到的可配置参数集对文件系统执行第一解析。根据一个实施例,为了对数据进行选择性复制,辅助存储器204还用于标记逻辑单元216的解析副本的一个或多个块218用于复制。标记解析副本的一个或多个块218使辅助存储器204能够准确标识需要选择性复制的一个或多
个块218。根据一个实施例,为了对数据进行选择性复制,辅助存储器204还用于通过复制引擎210将逻辑单元216的标记的一个或多个块218复制到辅助存储器204。因此,本发明的方法仅复制被标记的一个或多个块218,而不是复制一个或多个逻辑单元216的所有块。
111.根据一个实施例,为了对数据进行选择性复制,辅助存储器204还用于避免复制主存储器202的一个或多个块218。在数据是动态的(即数据随时间变化或增加)情况下,选择避免用于复制的一个或多个块218,从而将数据分配到新块中。在一个示例中,选择避免用于复制的一个或多个块218用于存储在一个或多个块中的虚拟机的数据。根据一个实施例,为了对数据进行选择性复制,辅助存储器204还用于复制存储在虚拟机管理程序214的虚拟机文件系统上的一个或多个虚拟机234中的单个虚拟机。复制单个虚拟机由辅助存储器204通过复制引擎210执行。仅复制一个或多个虚拟机之间的单个虚拟机是基于接收到的可配置参数集,其中,第一标识值和第二标识值属于仅与单个虚拟机关联的一个或多个逻辑单元216的一个或多个块218。
112.根据一个实施例,为了对数据进行选择性复制,辅助存储器204还用于复制存储在虚拟机管理程序214的虚拟机文件系统上的所有虚拟机的一个以上虚拟机。复制所有虚拟机之间的一个以上虚拟机是基于接收到的可配置参数集,其中,第一标识值和第二标识值属于与一个以上虚拟机关联的一个或多个逻辑单元216的一个或多个块218。根据一个实施例,为了对数据进行选择性复制,辅助存储器204还用于将文件系统的文件以不同格式复制在辅助存储器204上。辅助存储器204还用于复制与主存储器202的文件系统不同的文件系统中的一个或多个文件。
113.根据一个实施例,辅助存储器204还用于创建逻辑单元216的复制的一个或多个块的快照。辅助存储器204还用于通过复制引擎210挂载逻辑单元216的复制的一个或多个块的快照。辅助存储器204还用于通过解析复制的逻辑单元的文件系统来执行第二解析。辅助存储器204还用于通过将文件系统中解析的文件的一个或多个块复制到辅助存储器204中的第二文件来创建文件。根据一个实施例,辅助存储器204还用于在不移动数据的情况下,通过辅助存储器204内部的指针操作执行复制。
114.图2b是本发明的实施例提供的示出主存储器的各种示例性组件的框图。结合图2b,示出了主存储器202。主存储器202包括第一处理器220、第一收发器222和第一存储器224(例如,主存储系统)。第一处理器220可以以通信方式与第一收发器222和第一存储器224耦合。第一存储器224还包括一个或多个逻辑单元216,一个或多个逻辑单元216包括一个或多个块218。主存储器202通过通信网络206与辅助存储器204耦合。
115.第一处理器220用于向辅助存储器204提供与一个或多个逻辑单元216的一个或多个块218关联的数据。在一种实现方式中,第一处理器220用于执行存储在第一存储器224中的指令。在一个示例中,第一处理器220可以是通用处理器。第一处理器220的其它示例可以包括但不限于微处理器、微控制器、复杂指令集计算(complex instruction set computing,cisc)处理器、专用集成电路(application-specific integrated circuit,asic)处理器、精简指令集(reduced instruction set,risc)处理器、超长指令字(very long instruction word,vliw)处理器、中央处理单元(central processing unit,cpu)、状态机、数据处理单元和其它处理器或控制电路。此外,第一处理器220可以指一个或多个单独的处理器、处理设备、作为机器(如主存储器202)一部分的处理单元。
116.第一收发器222包括合适的逻辑、电路和接口,这些逻辑、电路和接口可以用于与一个或多个外部设备(如辅助存储器204)通信。第一收发器222的示例可以包括但不限于天线、远程信息处理单元、射频(radio frequency,rf)收发器、一个或多个放大器、一个或多个振荡器、数字信号处理器、编解码器(coder-decoder,codec)芯片组和/或用户识别模块(subscriber identity module,sim)卡。
117.第一存储器224是指主存储器202的主存储系统。第一存储器224包括合适的逻辑、电路和接口,这些逻辑、电路和接口可以用于存储可由第一处理器220执行的指令。第一存储器224的实现示例可以包括但不限于电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、硬盘驱动器(hard disk drive,hdd)、闪存、固态硬盘(solid-state drive,ssd)和/或cpu高速缓冲存储器。第一存储器224可以存储操作系统和/或其它程序产品(包括一种或多种操作算法)以操作主存储器202。
118.图2c是本发明的实施例提供的示出辅助存储器的各种示例性组件的框图。结合图2c,示出了辅助存储器204。辅助存储器204还包括第二处理器226、第二收发器228和第二存储器230。还示出了接口208、复制引擎210和解析器212。第二处理器226可以以通信方式与第二收发器228、接口208和第二存储器230耦合。辅助存储器204通过通信网络206以通信方式与主存储器202耦合。
119.第二处理器226用于执行存储在第二存储器230中的指令。第二处理器226的示例包括但不限于微处理器、微控制器、cisc处理器、asic处理器、risc处理器、vliw处理器、cpu、状态机、数据处理单元,以及其它处理器或控制电路。接口208可以接收主存储器202的一个或多个逻辑单元的可配置参数集。复制引擎210用于将主存储器202的一个或多个逻辑单元216的一个或多个块218复制到第二存储器230。
120.在一个方面,在操作中,辅助存储器204的第二处理器226用于从主存储器202接收一个或多个块,并将接收到的一个或多个块作为文件存储在第二存储器230中。第二处理器226用于接收选择性复制主存储器202的数据的请求。第二处理器226还用于执行命令以接收主存储器202的一个或多个逻辑单元216的逻辑单元的可配置参数集。第二处理器226还用于根据接收到的可配置参数集,将存储数据的一个或多个块218从主存储器202选择性复制到辅助存储器204。
121.在另一方面,在操作中,辅助存储器204的第二处理器226用于通过接口208执行命令,以接收主存储器202的一个或多个逻辑单元216的逻辑单元的可配置参数集。第二处理器226还用于将存储数据的一个或多个块218从主存储器202选择性复制到辅助存储器204。选择性复制一个或多个块218通过使用复制引擎210执行。在又一方面,由辅助存储器204执行的所有操作(或功能)都可由第二处理器226执行。
122.图3示出了本发明的实施例提供的描述逻辑单元的示例性场景300。结合图3,示出了处于第一状态300a、第二状态300b和第三状态300c的逻辑单元。第一状态300a描述了在接收选择性复制请求之前的逻辑单元。第二状态300b和第三状态300c分别描述了在接收到选择性复制逻辑单元中数据的第一请求(即在第一调用之后)和第二请求(即在第二调用之后)之后的逻辑单元。
123.在示例性场景300中,逻辑单元包括描述为第零块302a、第一块302b、第二块302c、
第三块302d、第四块302e、第五块302f、第六块302g、第七块302h、第八块302i、第九块302j的10个块。在示例性场景300中,白色块表示复制块,图案化块(例如水平线图案)表示未在辅助存储器(例如图2a的辅助存储器204)中复制的块。接口(例如图2a的接口208)可以请求仅复制逻辑单元的某些部分。接口用于执行命令以接收逻辑单元的可配置参数集。例如,辅助存储器通过由接口执行的命令函数(1)(例如图1的mask_lu_replication命令)接收可配置参数集。
124.在第二状态300b下,在接收到第一请求之后(即,当执行第一调用时),接口用于在示例性场景300中执行以下命令(2)以接收可配置参数集。
125.命令(2):mask_lu_replication(lu_1,vector((1,2),(5,3)),true)
126.其中,
127.‘
lu_1’表示第一逻辑单元;
128.‘
(1,2)’表示第一块302b,块的大小为2;
129.‘
(5,3)’表示起始块为第五块302f,块大小为3;
130.‘
true’是一个布尔值,表示要反掩蔽块。
131.因此,第一调用中的可配置参数集包括逻辑单元的第一标识值(即lu_1),以及第二标识值,该第二标识值包括两个对向量(即(1,2)和(5,3)),其中,(1,2)通过向量值1表示起始块为第一块302b,通过向量值2表示块大小为2;(5,3)通过向量值5表示块的起始为第五块302f,通过矢量值3表示块的大小为3。此外,第一调用中的可配置参数集包括作为布尔值“真”的指示,表示对选定块进行正掩蔽。因此,在图3中逻辑单元的第二状态300b下,逻辑单元300b的第一块302b、第二块302c、第五块302f、第六块302g和第七块302h被反掩蔽,以图案化块示出。
132.此外,为了对特定块进行正掩蔽,通过接口执行第二调用(即接口执行的另一个命令)。
133.命令(3):mask_lu_replication(lu_1,vector((2,2)),false)
134.其中,
135.‘
lu_1’表示第一逻辑单元;
136.‘
(2,2)’表示第二块,块大小为2。
137.‘
false’表示在示例性场景300中要掩蔽块。
138.此外,第二调用(第二请求)中的可配置参数集包括第一标识值

lu_1’和包括对向量(2,2)的第二标识值,其中,(2,2)通过向量值2表示块的起始为第二块302c,并通过向量值2表示块的大小为2。此外,第二调用中的可配置参数集包括作为布尔值

假’的标记指示,该布尔值表示正掩蔽选定的第二块302c。因此,对第二块302c进行正掩蔽,并选择用于复制,由第二块302c的白色块指示。因此,示例性场景300示出了如何执行仅复制逻辑单元的某些部分的请求。
139.图4示出了本发明的另一实施例提供的描述逻辑单元的示例性场景400。结合图4,示出了处于第一状态400a和第二状态400b的逻辑单元。
140.在示例性场景300中,逻辑单元包括20个块,用于存储数据,如与两个不同虚拟机关联的数据。这20个块描述为第零块402a、第一块402b、第二块402c、第三块402d、第四块402e、第五块402f、第六块402g、第七块402h、第八块402i、第九块402j、第十块402k、第十一
块402l、第十二块402m、第十三块402n、第十四块402o、第十五块402p、第十六块402q、第十七块402r、第十八块402s、第十九块402t。
141.在第一状态400a下,第三块402d、第七块402h、第十块402k、第十一块402l、第十二块402m、第十三块402n、第十四块402o、第十五块402p、第十六块402q、第十七块402r、第十八块402s和最后的第十九块402t是空块,是用于存储数据的自由空间。此外,在逻辑单元的第一状态400a下,如图4所示,第一块402b、第五块402f和第六块402g存储与第一虚拟机(vm1)关联的数据(也由图4中第一状态400a下的砖状图案表示)。此外,第零块402a、第二块402c、第四块402e、第八块402i、第九块402j存储与第二虚拟机(vm2)关联的数据(也由图4中第一状态400a下的小盒状图案表示)。在这种情况下,当与多个虚拟机关联的数据存储在同一个逻辑单元中时,如第一状态400a下所示,如果用户希望仅复制第一虚拟机(vm1)而不复制第二虚拟机(vm2),则用户通过接口(例如图2a的接口208)以命令的形式提供用户输入,以接收可配置参数集,从而反掩蔽与第二虚拟机关联的块,这些块是第零块402a、第二块402c、第四块402e、第八块402i和第九块402j。用户提供可配置参数集以反掩蔽与第二虚拟机关联的块,而不是提供可配置参数集以正掩蔽与第一虚拟机关联的块,这是因为虚拟机是动态的,并且可以随着时间的推移分配与第一虚拟机关联的新块。例如,在逻辑单元的第二状态400b下(如图4所示),将第三块402d新分配给第二虚拟机。在这种情况下,用户提供可配置参数集以反掩蔽与第二虚拟机关联的块,例如,进一步反掩蔽新分配给第二虚拟机的第三块402d,以便不复制与第二虚拟机关联的数据。因此,总共不复制第零块402a、第二块402c、第三块402d(新分配)、第四块402e、第八块402i、第九块402j。根据对特定虚拟机新的块分配,随时间推移周期性更改用于反掩蔽块的可配置参数集。
142.图5示出了本发明的另一实施例提供的用于选择性复制主存储器的数据的系统。结合图5,示出了系统500。示出了主存储器202、主机存储设备和辅助存储器204。主机存储设备中的虚拟机管理程序214用于运行第一虚拟机502和第二虚拟机504。第一虚拟机502和第二虚拟机504中的每个虚拟机都与存储在主存储器202中的第一文件系统(如虚拟机文件系统)中的数据关联。
143.主存储器202包括处于第二状态400b下的逻辑单元(逻辑单元的第二状态400b已经在图4中描述)。处于第二状态400b下的逻辑单元包括20个块,这些块用于存储与第一虚拟机(由图5中的砖状图案块表示)和第二虚拟机(由图5中的盒状图案块表示)关联的数据。在主存储器202中创建处于第二状态400b下的逻辑单元的快照506。
144.系统500包括辅助存储器204,该辅助存储器204用于连接至主存储器202(具体地,用于连接至虚拟机管理程序214),并且能够检索虚拟机列表和虚拟机磁盘在逻辑单元上的位置。辅助存储器204包括接口208,该接口208用于执行命令以接收主存储器202中处于第二状态400b下的逻辑单元的可配置参数集。执行该命令以接收可配置参数集。该可配置参数集使得能够标识与单个对象关联的相关数据,该单个对象是存储在要复制的主存储器202中处于第二状态400b下的逻辑单元的不同块中的第一虚拟机(vm1)。接口208用于接收命令作为用户输入。辅助存储器204还包括复制引擎210,用于将存储仅与第一虚拟机502关联的数据的块从主存储器202选择性复制到辅助存储器204。
145.根据一个实施例,辅助存储器204用于周期性创建逻辑单元的副本(例如快照506)。辅助存储器204还用于通过解析器212,通过解析逻辑单元的创建副本(即快照506)的
文件系统,执行第一解析。辅助存储器204还用于标记属于逻辑单元的解析副本的第一虚拟机502的块进行复制。为了标记属于第一虚拟机502的块,在虚拟机的情况下,由辅助存储器204使用接口208对属于第二虚拟机504的块进行反掩蔽。辅助存储器204还用于通过复制引擎210将逻辑单元的标记的一个或多个块复制到辅助存储器204。因此,辅助存储器204用于接收仅具有与第一虚拟机502关联的块的复制逻辑单元508。辅助存储器204还用于创建复制逻辑单元508的另一个快照,如快照510。快照508由复制引擎210内部挂载在辅助存储器204中。辅助存储器还用于通过解析器212执行第二解析以解析复制逻辑单元508的文件系统,并通过复制辅助存储器204中仅与第一虚拟机502关联的数据来创建文件510。
146.因此,本发明的方法和系统为低效复制技术问题提供了高效的技术解决方案,其中,解决方案可以分为三个部分。在第一部分中,为块存储复制提供新接口(即接口208),以允许请求仅复制给定逻辑单元的部分。
147.在第二部分中,提供了一种机制,该机制决定应该复制给定逻辑单元的哪些部分(即哪些块)。可配置参数集指示应该复制逻辑单元的哪些部分(即哪些块)。辅助存储器204能够解析给定逻辑单元中的文件系统。下文是一种示例性实现方式,以解释该过程如何在虚拟机文件系统(virtual machine file system,vmfs)中工作,并且该过程也可以在其它文件系统中工作。该过程的工作方式如下:(1)系统可以连接至虚拟机管理程序214,并且能够检索虚拟机列表和虚拟机磁盘在逻辑单元上的位置(例如,通过vcenter应用编程接口(application programming interface,api)、vmware应用,或在使用hyper-v时通过系统中心api);(2)用户可以指示希望通过接口208复制的虚拟机集合;(3)系统(例如辅助存储器204)开始复制包括vmfs的完整逻辑单元,所述vmfs包括用户想要复制的虚拟机;(4)辅助存储器204(例如存储系统软件)周期性创建vmfs逻辑单元的快照;(5)辅助存储器204(例如存储系统软件或解析器212)解析逻辑单元中的文件系统(vmfs),并决定哪些部分(即块)与复制的虚拟机相关,即,逻辑单元中的哪些部分包括属于虚拟机磁盘(virtual machine disk,vmdk)中需要复制的一个虚拟机磁盘的数据;(6)在虚拟机的情况下,由于虚拟机磁盘是动态的(即虚拟机磁盘的大小可以随着时间的推移而增长并在存储器中分配新块),因此不建议通过属于虚拟机的块的列表选择要复制的块。在这种情况下,可以安全地反掩蔽属于不需要复制的虚拟机的块(因为块仅添加到虚拟机)。系统(即,辅助存储器204)将属于非复制虚拟机的所有块标记为非复制块。换句话说,掩蔽逻辑单元的部分(即块),以实现逻辑单元的子对象复制。图4中描述了示例性场景400,解释了单个虚拟机的选择性复制(即,用于单个对象恢复)。此外,在对象(例如块中存储的对象)不是动态的情况下,系统(即辅助存储器204)可以使用白名单并仅标记要复制的第一虚拟机块(vm1),但通常在vmfs系统(例如vmware系统)中,卷是动态的。
148.最后,解决方案的第三部分涉及如何利用逻辑单元复制在辅助存储器204中进行单个对象恢复。因此,根据接收到的可配置参数集,将存储数据的一个或多个块从主存储器选择性并高效地复制到辅助存储器。第三部分的工作流程(或过程)如下:(1)将逻辑单元的部分(即块)复制到辅助存储器204,包括复制哪些块的配置;(2)辅助存储器204周期性创建复制逻辑(即快照510)的副本,并且在内部挂载快照510,解析文件系统,并理解(即标识)哪些块属于受保护的虚拟机;(3)系统(即辅助存储器204)复制虚拟机数据,或使用内部复制命令将数据更改到另一个文件系统(因为存储器了解哪些数据需要复制到哪个位置)。因
此,辅助存储器204以其原生格式在辅助存储文件系统中具有虚拟机(virtual machine,vm)磁盘的副本。
149.在不脱离所附权利要求所定义的本发明范围的情况下,可以对上文描述的本发明的实施例进行修改。如“包括”、“结合”、“具有”、“是/为”等用于描述和要求保护本发明的表述旨在以非排他性的方式解释,即允许未明确描述的项目、组件或元素也存在。对单数的引用也应解释为与复数有关。本文使用的词语“示例性”表示“作为一个示例、实例或说明”。任何描述为“示例性的”实施例并不一定解释为相比其它实施例是优选或有利的,和/或并不排除从其它实施例中结合特征。本文使用的词语“可选地”表示“在一些实施例中提供且在其它实施例中没有提供”。应了解,为了清楚起见在单独实施例的上下文中描述的本发明的某些特征还可以组合提供于单个实施例中。相反地,为了简洁起见在单个实施例的上下文中描述的本发明的各个特征也可以单独地或以任何合适的组合或作为本发明的任何其它描述的实施例提供。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献