CN111124252B - 用于支持和执行虚拟机的数据复制的方法、装置和计算机程序产品 - Google Patents

用于支持和执行虚拟机的数据复制的方法、装置和计算机程序产品 Download PDF

Info

Publication number
CN111124252B
CN111124252B CN201811280052.3A CN201811280052A CN111124252B CN 111124252 B CN111124252 B CN 111124252B CN 201811280052 A CN201811280052 A CN 201811280052A CN 111124252 B CN111124252 B CN 111124252B
Authority
CN
China
Prior art keywords
data
virtual machine
change
related information
change data
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.)
Active
Application number
CN201811280052.3A
Other languages
English (en)
Other versions
CN111124252A (zh
Inventor
杨利锋
高健
徐鑫磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201811280052.3A priority Critical patent/CN111124252B/zh
Priority to US16/586,231 priority patent/US11199989B2/en
Publication of CN111124252A publication Critical patent/CN111124252A/zh
Application granted granted Critical
Publication of CN111124252B publication Critical patent/CN111124252B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

本公开的实施方式提供了一种用于支持和执行虚拟机的数据复制的方法、装置和计算机程序产品。在一种方法中,针对存储系统中与虚拟机关联的存储单元执行变化数据跟踪,以获取与虚拟机相关的变化数据相关信息,其中变化数据相关信息指示与虚拟机相关的数据变化的范围和类型;响应于接收到所述存储系统针对与所述虚拟机相关的指定范围内的变化数据相关信息的获取请求,从所述变化数据相关信息中获取所述指定范围内的变化数据相关信息;以及向所述存储系统发送所述指定范围内的变化数据相关信息。通过本公开的实施方式,可以向存储系统提供变化数据相关信息,这样存储系统就可以基于变化数据相关信息来实现优化的数据复制操作。

Description

用于支持和执行虚拟机的数据复制的方法、装置和计算机程 序产品
技术领域
本公开的一些实施方式涉及数据存储领域,并且更具体地,涉及一种用于支持虚拟机的数据复制的方法、装置和计算机程序产品,以及应用执行虚拟机的数据复制的方法、装置和计算机程序产品。
背景技术
可以基于一个或多个物理存储设备来构建存储系统,以便提供数据存储的能力。在诸如VNX Unity的许多存储系统中,可以在两个相同的系统架构之间提供本地数据复制功能。在目前的VNX Unity中支持以下复制技术:本地(Native)同步块复制、本地异步块和文件复制以及名为“恢复点”(RecoverPoint)的复制方案。这些复制技术是为通用目的数据复制需求而设计的,并未针对特定应用的任何优化。
特别地,对于基于虚拟机的与应用场景,如果虚拟机(VM)需要执行存储VMotion,则需要将虚拟机磁盘格式(VMDK)文件重新定位到另一个位置。通常,需要首先创建快照,然后执行数据移动。从存储系统的观点来看,该复制是通过复制VMDK文件或通过调用存储系统的本地异步块/文件复制功能来实现。存储VMotion的复制过程与其他一般的数据复制并没有任何不同。例如,在VMware将虚拟机及VMDK文件从一个数据存储单元重新定位到另一个数据存储单元时,VMware软件会执行VMDK文件复制,或者将该操作卸载到存储阵列的本地复制功能。但是,无论采用哪种复制方法,存储系统均无法感知数据类型,因此,该存储过程与普通数据库或文本文件的复制是相同的。
发明内容
在本公开的一些实施方式中,提供了一种用于支持和执行虚拟机的数据复制的技术方案。
在本公开的第一方面中,提供一种用于支持虚拟机的数据复制的方法。该方法可以在虚拟机服务器处执行。该方法包括针对存储系统中与所述虚拟机关联的存储单元执行变化数据跟踪,以获取与所述虚拟机相关的变化数据相关信息,其中所述变化数据相关信息指示与所述虚拟机相关的数据变化的范围和类型;响应于接收到所述存储系统针对与所述虚拟机相关的指定范围内的变化数据相关信息的获取请求,从所述变化数据相关信息中获取所述指定范围内的变化数据相关信息;以及向所述存储系统发送所述指定范围内的变化数据相关信息。
在本公开的第二方面中,提供了一种用于执行虚拟机的数据复制的方法。该方法可以在复制源存储系统处执行。该方法包括接收响应于接收到针对所述虚拟机的数据复制请求,向虚拟机服务器发出针对与所述虚拟机相关的指定范围的变化数据相关信息的获取请求;接收来自所述虚拟机服务器的与所述虚拟机相关的所述指定范围的变化数据相关信息,其中所述指定范围内的变化数据相关信息指示与所述虚拟机相关的指定范围内的数据变化的范围和类型;获取所述指定范围内的变化数据相关信息中指示的数据变化的范围和类型,并从与所述虚拟机关联的存储单元中获取与所述数据变化的范围对应的变化数据;以及将包含所述数据变化的范围和类型的信息以及所获取的所述变化数据发送给与所述存储单元相关联的复制目标存储单元。
在本公开的第三方面中,提供了一种用于执行虚拟机的数据复制的方法。该方法可以在复制目标存储系统处执行。所述方法包括:接收包含数据变化的范围和类型的信息以及变化数据,所述数据变化与所述虚拟机的复制源存储单元相关;以及根据所述数据变化类型将所述变化数据复制到与所述变化范围所对应的数据部分。
在本公开的第四方面中,提供了一种用于支持虚拟机的数据复制的装置。所述装置包括处理器;以及与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述装置执行根据本公开的第一方面的方法中的动作。
在本公开的第五方面中,提供了一种用于执行虚拟机的数据复制的装置。所述装置包括:处理器;以及与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述装置执行根据本公开的第二方面的方法中的动作。
在本公开的第六方面中,提供了一种用于执行虚拟机的数据复制的装置。所述装置包括:处理器;以及与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述装置执行根据本公开的第三方面的方法中的动作。
在本公开的第七方面中,提供了一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据本公开的第一方面的方法中的动作。
在本公开的第八方面中,提供了一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据本公开的第二方面的方法中的动作。
在本公开的第九方面中,提供了一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据本公开的第三方面的方法中的动作。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分并非意在标志本公开的关键特征或主要特征,也并非意在限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了本公开的一些实施方式可以在其中被实现的示例环境的示意图;
图2示出根据现有技术的虚拟机(VM)环境中的数据迁移架构;
图3示出了根据本公开的一些实施方式的在虚拟环境下的存储系统复制;
图4示出了根据本公开的一些实施方式的用于虚拟机的数据复制的系统架构;
图5示出了根据本公开的一些实施方式的一种用于支持虚拟机的数据复制的方法500的流程图;
图6示出了根据本公开的一些实施方式的一种用于执行虚拟机的数据复制的方法600的流程图;
图7示出了根据本公开的另一些实施方式的一种用于执行虚拟机的数据复制的方法700的流程图。
图8示出了根据本公开的实施例的数据复制系统的示例性架构;
图9示出了根据本公开的一些实施方式的一种使虚拟卷(VVol)/用于存储感知的虚拟存储应用编程接口(VASA)API能够支持EMC公司的VNX存储系统的架构框图;
图10示出根据本公开的一些实施方式的在虚拟机服务器和复制源存储系统的各个模块之间的处理的流程图;
图11示出根据本公开的一些实施方式的在复制目标存储系统的各个模块之间的处理的流程图;以及
图12示出了可以用来实施本公开的实施方式的示例设备1200的示意性框图。
具体实施方式
下面将参考附图中示出的若干示例实施方式来描述本公开的原理。虽然附图中显示了本公开的优选实施方式,但应当理解,描述这些实施方式仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施方式”和“一个实施方式”表示“至少一个示例实施方式”。术语“另一实施方式”表示“至少一个另外的实施方式”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
首先参考图1,图1示出了本公开的实施方式的技术方案可以在其中被实现的示例环境的示意图。存储系统100包括物理存储设备组120,用于提供数据存储能力。物理存储设备组120包括缓存存储器122和磁盘设备124。缓存存储器122用于数据缓存,磁盘设备124用于数据的持久性存储。通常,缓存存储器122的存取速度大于硬盘设备124的存取速度。存储系统100可以利用多种存储技术来提供数据存储能力。
在一些实施例中,缓存存储器122的示例包括高速缓存,随机存取存储器(RAM)、动态随机存取存储器(DRAM)等具有较高存取速度的存储器。磁盘设备124的示例可以包括磁盘冗余阵列(RAID)或其他磁盘设备。
为了管理对物理存储空间的数据存储,存储系统100还包括存储控制器110。通常存储系统100采用分层控制模型。如图1所示,在分层控制模型下,存储控制器110可以具有多层控制模块,包括主机控制模块112、缓存控制模块114以及物理盘控制模块116。这些控制模块实现层级控制功能。
为了便于理解存储系统100的分层控制模型,在使用RAID技术的示例中描述控制器110的工作机制。物理盘控制模块116将RAID卷(LUN)呈现给缓存控制模块114。物理盘控制模块116控制磁盘设备124的存储空间。缓存控制模块114控制缓存存储器122的缓存空间,以将缓存卷呈现给主机控制模块112。主机控制模块112管理逻辑存储池,并且将池LUN呈现给主机102。
主机102上可以运行各种应用。在虚拟机应用的场景中,可以在主机102上安装虚拟机服务软件,诸如VMware,利用VMware可以创建多个虚拟机,而在虚拟机上可以安装诸如Window、Unix、Linux等操作系统。
在操作时,主机102上运行的应用(例如虚拟机)可以向主机控制模块112发送用户写请求,以请求将数据写入存储系统100。响应于接收到的用户写请求,主机控制模块112可能会将生成对缓存控制模块114的多个写请求。例如,如果主机102的用户写请求要求将大量数据写入到由硬盘设备124创建的RAID卷多个离散区段上,那么针对每个区段,主机控制模块112都会向缓存控制模块114发送一个写请求。
缓存控制模块114和缓存存储器122在写回模式中进行操作。这意味着在接收到写请求后,缓存控制模块114首先将写请求要写入的数据缓存到缓存存储器122,然后再将(多个)写请求的数据释放到磁盘设备140。缓存控制模块114可以在完成数据缓存之后就向主机控制模块112发送该写请求的完成指示,从而实现对用户写请求的快速响应。物理盘控制模块116用于控制对硬盘设备124的实际写入。
应当理解,在上文中虽然被示出为不同的模块,但主机控制模块112、缓存控制模块114以及物理盘控制模块116可以由具有处理能力的单个或多个处理器、控制器、微处理器等或者包括这些器件的计算设备来实现。在一些示例中,缓存控制模块114还可以与缓存存储器122集成在一起,以获得同时具备缓存和控制能力的器件。虽然未被示出,在一些实施方式中,存储系统100还可以包括作为存储控制器100的镜像的另一存储控制器,以提供数据一致性、安全性和数据恢复能力。在一些示例中,存储系统100还可以使用多核存储机制来实现数据存储和管理。
接着,将参考图2来描述根据现有技术的虚拟机(VM)环境中的数据迁移架构。如图2所示,在该架构中包括有虚拟机服务器210、复制源220以及复制目标230。虚拟机服务器210中运行服务器虚拟话软件,诸如VMware,利用VMware可以创建虚拟机212,在该虚拟机212中可以安装多个操作系统(OS),并且在各个OS上可以运行各种用户应用(APP)。在复制源220中存储着与虚拟机212的操作系统和应用相关的数据,在需要进行数据迁移时,可以将数据从复制源220复制到复制目标230。
数据迁移可以在多种情况下发生。例如,在存储系统的存储空间不足时或者需要重新规划存储系统的用途时,都会需要进行数据迁移。这时可以将需要迁移的数据从复制源中复制到复制目标。数据迁移例如可以通过VMware VMotion功能中的VMware存储VMotion来实现。VMware VMotion是VMware公司提供一种迁移方案,其支持运行中的虚拟机在保证零停机时间、连续的服务可用性和完整的事务完整性的情况下,从一个物理服务器实时迁移至另一物理服务器。而VMware存储VMotion是VMware VMotion功能中的一个部分,其支持将正在运行虚拟机的磁盘文件在存储阵列内或跨存储阵列的实时迁移。存储VMotion可以对VM文件进行重新定位,这将简化存储阵列的迁移和存储库升级,动态优化存储I/O性能,提高存储容量管理的效率。同时,存储VMotion还利用了VMware中已经开发的核心技术,如磁盘快照、重做日志、父/子磁盘关系和快照合并等。
在移动虚拟机磁盘文件之前,存储VMotion将虚拟机的“主目录”移动到新位置。该“主目录”包含关于虚拟机的元信息,例如配置、虚拟内存、日志文件等。接下来,将“selfVMotions”移动到VM主目录的新位置。完成主目录迁移之后是盘移动。虚拟盘将被从旧存储设备被复制到新存储设备。在数据移动完成之后,将会进行数据整合,这将会在2秒内发生,这个速度通常非常快以至于应用程序的用户根本不会注意到。
如果数据库存储阵列支持vStorage阵列集成应用接口(VAAI)/虚拟卷(VVol),则可以将这些盘复制操作卸载给存储阵列中。VMotion直接调用快照/克隆/复制API来完成虚拟机硬盘格式(VMDK)的重新定位操作。如果存储阵列不支持这些功能,则vSphere可以使用本地快照/数据复制/快照合并来获得这些结果,但是这需要消耗更多的ESXi服务器计算资源和网络容量。而通过调用存储阵列本身的VAAI/VVol,可以将快照/克隆/迁移卸载到存储系统侧。而本地存储复制技术可被用于VMware VMotion等迁移需求下的复制。本地异步块和文件复制则适用于VMware环境需求下的复制。
然而,如在背景部分所述,现有的复制方法。存储库都无法感知数据类型,所以VM存储过程与普通数据的存储一样,实际上与数据库或文本文件没有区别。通常,传统存储设备作为非智能数据盒供应用程序使用,使用的是自底向上的方法:首先是将磁盘打包为LUN,然后封装成卷,接着再将LUN或卷分配给各个端口和数据路径。应用程序利用通过光纤通道(FC)或互联网小型计算机系统接口(iSCSI)来使用LUN,或者将其作为基于NFS/CIF协议的文件系统来使用。同样的数据复制也同样可以通过FC或iSCSI来实现,如图3所示。
然而,以上这些技术也都不能使存储系统知道主机系统上的应用程序和数据类型,不能根据相应的应用I/O请求模式(I/O pattern)进行优化。传统磁盘阵列的性能调优通常意味着基于不同的性能特性创建LUN,然后将LUN映射到端口、路径、服务器和最终应用程序负载。一旦调优完成,该调优方案即被固定。如果有新的负载增加,则所有的调整则必须从开头重新进行。而对于VM应用,也存在类似问题,存储系统不能直接感知应用或数据/文件类型,因此难以进行优化。
鉴于上述情况,在本公开的实施方式中,提议使得存储阵列和应用服务器获得更紧密的联系,以便提供进一步的性能改善。
为此,在本公开的一些实施方式中,提出一种针对虚拟机的数据复制方案。根据该方案,可以在虚拟机服务器处通过数据感知模块来获取指示与所述虚拟机相关的数据变化的范围和类型的变化数据相关信息指示。在需要执行数据迁移时,可以通过基于数据感知功能所获得的变化数据相关信息,将数据复制需要的部分工作量卸载至存储系统执行,并且可以基于这种对于主机应用的类型和复制数据类的感知而执行数据复制优化。这意味着可以利用变化数据相关信息来优化vMotion等VMDK文件的定位。
在下文中,将参考图4至图12来详细描述本公开的一些实施方式。然而需要说明的是,附图和其中示出的实施方式是出于说明的目的而给出的,本发明并不局限于其中所示出的细节。相反,本发明可以在并不背离本公开的思想和精神的情况下,不使用这些细节来实现,或者可以进行各种改变。
出于说明的目的,将首先结合图4对本公开提议的数据复制系统的示例总体架构进行描述。图4示出了根据本公开的一些实施方式的用于虚拟机的数据复制的系统架构。如图4所示。在该系统架构中包括虚拟机服务器410、复制源420、复制目标430。虚拟机服务器410托管虚拟机412,在该虚拟机412可以安装多个操作系统(OS),并且在各个OS上可以运行各种应用(APP)。复制源420中存储着虚拟机的操作系统和应用相关的数据。特别地,在虚拟机服务器410处执行对存储设备的变化数据跟踪。在需要进行数据迁移时,在接收针对虚拟机的数据复制请求时,源存储420可以向虚拟机服务器410发出针对变化数据跟踪信息的获取请求,以从虚拟机服务器410获取变化数据跟踪信息,而源存储420可以根据变化数据跟踪信息从存储单元中获取对应的变化数据,并将变化数据跟踪信息和获取的变化数据一起发送给复制目标430。在复制目标430处,基于变化数据跟踪信息,将变化数据复制到对应数据位置。
图5示出了根据本公开的一些实施方式的一种用于支持虚拟机的数据复制的方法500的流程图。该方法500的操作或者其中至少一部分可以由虚拟机服务器(诸如ESXi服务器)来实现。
在块510,针对存储系统中与所述虚拟机关联的存储单元执行变化数据跟踪,以获取与所述虚拟机相关的变化数据相关信息。所述变化数据相关信息指示与所述虚拟机相关的数据变化的范围和类型。
可以通过变化数据块跟踪(CBT)模块来实现变化数据跟踪。在诸如VMware的虚拟机服务器系统中本身带有CBT功能,该CBT功能被配置用于执行虚拟机文件系统(VMFS)变化数据块跟踪。这样在虚拟机服务器处就可以跟踪已经被改变的磁盘扇区。而且该CBT功能允许第三方应用访问。例如,可以基于虚拟机服务器的数据保护框架来实现变化数据相关信息的获取。例如,可以通过扩展的用于数据保护的vStorage应用程序接口(VADP)API来请求VMkernel返回自上次快照开始虚拟磁盘的变化数据。关于扩展VADP API将在下文中详细说明,因此此处不再赘述。然而,需要说明的是,在并未提供这种CBT功能的其他虚拟机服务器中,也可以特别设计具有数据变化跟踪功能的模块,以用于本公开的变化数据跟踪。
变化数据相关信息指示各个磁盘扇区的数据的变化情况,例如指示各个数据变化的范围和类型,其例如可以是跟踪日志的形式。数据变化范围例如可以通过起始地址、长度(或结束地址)来指示。数据变化的类型包括例如附加、修改,其中附加指示是在原有数据之外的附加性变化,而修改是对原有数据的修改。变化数据相关信息例如可被存储在每个虚拟机文件夹下与VMDK和快照文件关联的.ctk文件中。
然后,在块520,响应于接收到所述存储系统针对与所述虚拟机相关联的指定范围内的变化数据相关信息的获取请求,从所述变化数据相关信息中获取所述指定范围内的变化数据相关信息。存储系统可以指定请求的变化数据相关信息的范围。该指定范围例如可以限定变化数据信息的时间范围,限定变化数据相关信息所针对的存储单元范围,或者变化数据相关信息所针对的应用,变化数据相关信息所针对的应用,变化数据相关信息所针对的数据类型等。这样,在接收到来自所述存储系统针对指定范围内的变化数据相关信息的获取请求后,虚拟机服务器能够从跟踪的变化数据相关信息中获取与指定范围对应的变化数据相关信息。
接着,在块530,向所述存储系统发送所述指定范围内的变化数据相关信息。类似地,可以基于扩展的VADP API来返回指定的虚拟磁盘的变化数据。关于扩展VADP API将在下文中详细说明,因此此处不再赘述。
在本公开的一些实施方式中,虚拟机服务器可以接收来自所述存储系统的针对支持变化数据跟踪功能的存储单元的查询请求;响应于所述查询请求,查询所述存储系统中支持所述变化数据跟踪功能的存储单元的信息;以及向所述存储系统发送针对所述查询请求的响应,所述响应包含与查询到的所述存储单元的信息。此处,存储单元是否支持变化数据跟踪功能并非是指存储单元自身是否能够跟踪自己的变化数据,而是指存储单元是否能够支持基于虚拟机服务器返回的变化数据相关信息来执行优化的数据复制。因此,在存储系统中并不需要所有的LUN都支持变化数据跟踪,而是可以针对应用程序的类型不同,或者存储的数据类型不同,而选择性地支持或者不支持变化数据跟踪功能。存储系统可以向虚拟机服务器查询哪些LUN支持变化数据跟踪功能。在虚拟服务器中包括有关于各个LUN的配置信息,其中可以包括有是否支持变化数据跟踪功能的配置。虚拟服务器可以查询存储系统中的LUN的配置信息,以得到支持变化数据跟踪的各个LUN的信息,并将各个LUN的信息作为响应发给存储系统。
在本公开的一些实施方式中,虚拟机服务器可以接收来自所述存储系统的针对与所述虚拟机关联的存储单元的数据变化跟踪功能启用请求,并且响应于数据变化跟踪功能启用请求,针对与所述虚拟机关联的所述存储单元启用变化数据跟踪功能。也就是说,在本公开的一些实施方式中,存储系统可以针对支持变化数据跟踪功能的存储单元启用数据变化跟踪功能。数据变化跟踪功能启用请求可以通过扩展的VADP API来发送。关于扩展的VADP API将在下文中详细说明,因此此处不再赘述。
图6示出了根据本公开的一些实施方式的一种用于执行虚拟机的数据复制的方法600的流程图。方法600的操作或者其中至少一部分可以由存储系统的控制设备/控制器来实现,特别地可以由包含复制源存储单元的存储系统中的控制模块来实现。
如图6所示,在块610,响应于接收到针对所述虚拟机的数据复制请求,向虚拟机服务器发出针对与所述虚拟机相关的指定范围内的变化数据相关信息的获取请求。在需要进行虚拟机的数据迁移时,系统管理员可以通过例如虚拟机的用户操作界面发出数据复制请求,而不会影响虚拟机的实时运行。此时,包括复制目标存储单元的存储系统接收到该数据复制请求,响应于该数据复制请求,将基于扩展的VADP API来发送针对与所述虚拟机相关的指定变化数据相关信息的获取请求。关于扩展VADP API将在下文中详细说明,因此此处不再赘述。
所述指定范围内的变化数据相关信息包括指定范围内的变化数据相关信息。该指定范围例如可以限定变化数据信息的时间范围,限定变化数据相关信息所针对的存储单元范围,或者变化数据相关信息所针对的应用,变化数据相关信息所针对的应用,变化数据相关信息所针对的数据类型等。
在块620,存储系统接收来自所述虚拟机服务器的与所述虚拟机相关的所述指定范围内的变化数据相关信息,其中所述指定变化数据相关信息指示了所指定范围内的数据变化的范围和类型。类似地,可以基于扩展的VADP API来接收指定的虚拟磁盘的变化数据。关于扩展VADP API将在下文中详细说明,因此此处不再赘述。
在块630,存储系统从接收的变化数据相关信息中获取数据变化的范围和类型,并从与所述虚拟机关联的存储单元中获取与所述数据变化的范围对应的变化数据。复制源存储系统可以根据接收的数据相关信息中指示的数据变化的范围从相应地存储单元中获取对应的变化数据,即对应的当前数据或者即变化后数据。此外,存储系统还可以基于所述数据变化范围和所述数据变化类型而形成元数据信息并将其存储在存储库中。
在块640,存储系统将包含所述数据变化的范围和类型的信息以及所获取的变化数据一起发送给与所述存储单元相关联的复制目标存储单元。包含有复制目标存储单元的存储系统将根据数据变化的类型将与所述数据变化的范围对应的数据复制为接收到的变化数据。此处,包含所述数据变化的范围和类型的信息可以使复制源存储系统接收到的变化数据相关信息,也可以是解析得到的所述数据变化范围和所述数据变化类型本身,或者作为元数据而发送给复制目标存储系统。
在根据本公开的一些实施方式中,复制源存储系统还可以进一步向所述虚拟机服务器发送针对支持变化数据跟踪功能的存储单元的查询请求;以及接收来自所述虚拟服务器的针对所述查询请求的响应,所述响应包括支持变化数据跟踪的存储单元的信息。此处,存储单元是否支持变化数据跟踪功能并非是指存储单元自身是否能够跟踪自己的变化数据,而是指存储单元是否能够支持基于虚拟机服务器返回的变化数据相关信息来执行优化的数据复制。因此,在存储系统中并不需要所有的LUN都支持变化数据跟踪,而是针对应用程序的类型不同,或者存储的数据类型不同,而选择性地支持或者不支持变化数据跟踪功能。存储系统可以向虚拟机服务器查询哪些LUN支持变化数据跟踪功能。类似地,可以基于扩展的VADP API来接收指定的虚拟磁盘的变化数据。关于扩展VADP API将在下文中详细说明,因此此处不再赘述。
在根据本公开的一些实施方式中,存储系统可以进一步向所述虚拟机服务器发送针对与所述虚拟机关联的所述存储单元的变化数据跟踪功能启用请求。也就是说,在本公开的一些实施方式中,存储系统可以针对支持变化数据跟踪功能的存储单元启用数据变化跟踪功能。类似地,数据变化跟踪功能启用请求可以通过扩展的VADP API来发送。关于扩展的VADP API将在下文中详细说明,因此此处不再赘述。
图7示出了根据本公开的一些实施方式的一种用于执行虚拟机的数据复制的方法700的流程图。方法700的操作或者其中至少一部分可以由存储系统的控制设备/控制器来实现,特别可以由复制目标存储单元的存储系统中的控制模块来实现。
如图7所示,在块710,复制目标存储系统接收包含数据变化的范围和类型的信息以及变化数据。所述数据变化与所述虚拟机的复制源存储单元相关。然后,在块720,根据所述数据变化类型将所述变化数据复制到与所述变化范围所对应的数据部分。通过这样的方式,就无需复制完整的数据,而仅仅需要复制变化部分,因而就可以降低带宽占用、使得复制更加高效,并且降低数据迁移所需要的时间。
出于说明的目的,图8示出了根据本公开的实施例的数据复制系统的示例性架构。然而,需要说明的是,这仅仅是示例性的,本发明并不仅限于此,而是有可能根据实际应用的需要而做出各种改变、增加和删除。
如图8所示,在该系统架构中包括虚拟机服务器810、源存储阵列820、目标存储阵列830。图8中所示的总体架构与图3所示类似,但是包括更多细节实现。
虚拟机服务器810例如是VMware ESXi服务器,其可以托管多个虚拟机VM,并且包括虚拟机文件系统VMFS 811以及VMware变化数据块跟踪(CBT)模块812。虚拟机服务器中还含有服务器虚拟化应用813,诸如VMware提供的vSphere。需要特别说明的是,VMware的CBT模块811被配置用于执行VMFS变化数据块跟踪,其例如可以将变化跟踪信息存储在每个虚拟机文件夹下与vmdk和快照文件关联的.ctk文件中。这样,就可以针对虚拟机服务器上运行的虚拟机执行磁盘扇区的变化跟踪。该CBT功能是VMware vSphere提供的数据保护的一部分,而且允许第三方应用可以访问CBT功能。因此,可以通过VADP的扩展API来实现变化数据跟踪信息(变化数据相关信息)的获取。例如,可以调用VADP以请求VMkernel返回自上次快照开始在虚拟磁盘上以及变化的数据。然而,需要说明的是,在并未提供这种CBT功能的其他虚拟机服务器中,也可以特别设计具有数据变化跟踪功能的模块。
在源存储阵列820中包括VM CBT代理服务模块821、EMC公共对象管理器(ECOM)822、存储库PostgreSQL、DART、映射LUN模块(MLU)以及统一API组件。VM CBT代理服务模块821驻留在源存储阵列820中,被配置为从虚拟机服务器710获取并分析变化数据跟踪信息以及将解析的变化状态信息和其他元数据存储到嵌入式PostgreSQL、据库中。ECOM 822是VNX控制路径中的Web服务应用程序,用于提供管理、元数据持久化、命令请求处理和接口管理。
DART是存储阵列的数据移动容器,其包含用于数据复制的各个功能组件。这些功能组件包括命令服务管理器823、复制会话管理器824、复制引擎825以及复制器模块826。命令服务管理器823是存储阵列的复制功能组件其中之一。每个数据复制用户命令将在命令服务管理器823中进行处理,以便通过与远程站点的协调来驱动在复制会话上进行复制操作。复制会话管理器824被配置为管理持久复制会话对象,并通过监视源存储阵列的I/O吞吐量来监视用户指定的恢复点目标(RPO)。复制会话管理器还负责与目标存储阵列830和目标资源协调存储资源配置/属性/状态变化。复制引擎825是复制功能的核心组件,被配置为统一调度复制资源并且在各个模块直接进行协调。复制器826被配置为由复制引擎825组件使用,以便在源存储阵列820和目标存储阵列830之间通过网络进行数据传输和限流。当RPO过期时,源存储阵列820在其与目标存储阵列830之间建立RCP/TCP连接,然后通过计算两个系统数据之间的差异从源存储系统读取数据。
MLU代表了可供DART访问的自动精简配置卷的框架,其向DART隐藏下层堆栈的文件/数据块/虚拟卷对象的细节实现。数据路径容器DART中的复制组件可以通过统一API组件与MLU交互。该统一API组件被配置用于设置存储资源的不同属性以及访问系统创建快照的生命周期。统一API还可以提供数据路径容器组件所需的同步/异步语义。
在目标存储阵列830与源存储阵列820具有大致相同的结构,其包括EMC公共对象管理器(ECOM)832、存储库PostgreSQL、DART、映射LUN模块(MLU)以及统一API组件,不同之处在于其包括有合成引擎831,而不包括VM CBT代理服务模块。其中ECOM832、DART中的命令服务管理器833、复制会话管理器834、复制引擎835以及复制器模块836基本与源存储阵列中的ECOM 822、DART中的命令服务管理器823、复制会话管理器824、复制引擎825以及复制器模块826对应,不同之处在于其位于目标存储阵列830侧,主要负责响应于来自主存储阵列820的请求执行复制操作。关于其具体操作,此处不再赘述,可以参考针对源存储阵列820的相关描述。
目标存储阵列830中的合成引擎831可以接收来自复制引擎835的变化数据块跟踪信息,并根据变化数据块跟踪信息将变化数据与之前已复制到该侧的数据内容进行合成,并将合成的整个文件(例如VMDK文件)发送给复制引擎835。合成引擎还可以有另一个功能是将相应状态和元数据通过ECOM而记录到目标存储阵列处的嵌入式PostgreSQL数据库。
借助于虚拟机服务器810中的VMware CBT模块812,可以实现对虚拟机的变化数据跟踪。在接收针对虚拟机的数据复制请求时,借助于源存储阵列中的VM CBT代理服务模块821,可以向虚拟机服务器810请求变化数据跟踪信息(801)。虚拟机服务器810响应于该变化数据跟踪信息的请求,向源存储阵列820发送变化数据块跟踪信息(802)。在接收到变化数据块跟踪信息后,VM CBT代理服务模块821可以将变化数据信息发送给ECOM(803),ECOM将虚拟机的变化数据块跟踪信息和其他相关信息元数据进行组合和分析,然后将其存储到PostgreSQL据库中。接着,源存储阵列820创建并验证双方的资源,这通过与目标存储阵列830进行通信来实现(804)。如果双方资源可用,则继续进行处理。此时,复制引擎825可以调用统一API来获取相应的变化数据(805),例如LUN/SNAP数据,并配置相应地后端对象。接着开始数据复制过程。如果是首次执行,则获取的变化数据应该是空的,因此会将关联的整个数据文件(VMDK文件)发送给目标存储阵列;如果不是首次执行,这意味着存储单元中包括之前复制的较早版本,这时可以仅仅向复制引擎825传输获取的变化数据以及经过解析的元数据(数据变化的范围、类型等)(806)。复制引擎使用复制器826来开始数据复制,由复制器826将变化数据和元数据等发送给目标存储阵列830中的复制器836(807)。接着在复制目标存储阵列830处开始复制操作。如果这是第一次数据传输,复制引擎按照通常操作进行处理。如果这不是第一次数据传输,则合成引擎从存储单元中检索变化数据块以及记录虚拟磁盘区段列表的相应元数据,并用最新数据传输的VMDK/snap进行合成(808)。更新后的元数据被记录到PostgreSQL数据库中,并且完整的VMDK数据文件经复制引擎调用统一API而刷新到MLU后端对象中。
在根据本公开的一些具体实现中,为了支持在虚拟机服务器与源存储阵列之间的通信,可以定义了一些API来扩展原有的用于存储感知的vSphere的VASA API集,以实现VMware应用程序感知。VASA API是一种用于存储感知(VASA)的专用API集,存储系统通过其中API可以获知虚拟卷及其与相关虚拟机之间的关联。通过VASA,vSphere与底层存储系统之间可以建立双向带外通信,以执行数据服务,并将某些虚拟机操作卸载到存储系统。虚拟服务器/vSphere可以通过VASA API来管理存储阵列。
VASA API是为VVol功能而设计的。为了支持端对端的VVol,源和目标存储阵列双方可以添加VVol以使得存储阵列支持VMware的VVol API。在VASA 2程序指南中记载这些API的调用。这些API可以在VNX阵列嵌入式软件栈等供应商/合作伙伴的存储设备中实现,因此这能够使得VVol对VMware vSphere起作用。也就是说,可以在诸如VNX Unity的存储阵列中支持VASA 2。
图9示出了根据本公开的实施方式的实现VNX存储设备的VVolVASA API的支持的示意图。VASA模块存在于ESXi服务器和vCenter中。他们其中任何一个都可以向厂商服务模块(VP)发出VASA请求。来自ESXi或vCenter的请求可以是由VASA协议适配器处理的SOAP协议请求。这些请求被路由到与数据库交互的VASA提供器和执行虚拟卷操作的分层驱动程序。
ECOM是VNX存储设备的管理接口。前端管理接口通过绑定到两个服务模块的单个IP地址来供使用。ECOM根据端口和统一资源标识符(URI)将请求路由到相应的组件。在ECOM中的VASA提供程序将传入的VCenter/ESXi服务器请求基于URL请求给合适的服务模块。此服务模块包含完成确认命令所需的数据路径外部的应用程序逻辑。它使用SYSAPI(系统API,ECOM模块)来访问后端数据,并具有针对回调进行响应的通知。在开发回调函数时必须小心,以确保它们非阻塞因为这些回调被串行化,并且任何阻塞调用都会造成严重的性能下降。
在ECOM中,MLU/Hostside/FLARE/NAS都是VNX存储的数据路径,其作为后端存储池服务模块通过块IO、NAS和VAAI而与ESXi服务器连接。
在VASA 2程序指南中描述了现有的VASA API,在本公开的一些实施方式中,针对VASA API提出创建新的扩展API,以方便虚拟机服务器与存储阵列之间的通信。下面将给出几个示例性的用于存储感知的VADP扩展API。
API名称:retrieveStorageLunCBT
请求返回LUN的CBT信息
函数签名(Function Signature):
Boolean retrieveStorageLunCBT(String[]volId)
返回值:
返回指定范围内的CBT信息。
故障:
InactiveProvider(服务模块非活跃),InvalidSession(无效会话),NotImplemented(未执行),StorageFault(存储系统故障),TooMany(过多),VasaProviderBusy(VASA服务模块繁忙)
使用该retrieveStorageLunCBT函数,可以要求服务器返回指定范围内的CBT信息。
API名称:queryStorageLunCBT
在支持CBT的存储器中返回一个LUN
函数签名(Function Signature):
Boolean queryStorageLunCBT(String[]volId)
返回值:
如果此LUN支持CBT,则返回标记
故障:
InactiveProvider(服务模块非活跃),InvalidSession(无效会话),NotImplemented(未执行),StorageFault(存储系统故障),TooMany(过多),VasaProviderBusy(VASA服务模块繁忙)
使用该queryStorageLunCBT函数,可以要求服务器返回指定对象ID的CBT可被设置为启用的标记存储LUN。如任何卷标识无效,则针对queryStorageLunCBT不会返回任何结果。
API名称:setStorageLunCBT
将存储系统中的LUN的CBT设置为启用
函数签名(Function Signature)
Boolean setStorageLunCBT(String[]volId)
返回值:
如果针对LUN设置了CBT,则返回标记
故障:
InactiveProvider(服务模块非活跃),InvalidSession(无效会话),NotImplemented(未执行),StorageFault(存储系统故障),TooMany(过多),VasaProviderBusy(VASA服务模块繁忙)
不活动提供程序,无效会话,无提示,StorageFault,TooMany,VasaProviderBusy
描述:
setStorageLunCBT函数将具有对象ID的指定LUN设置为CBT功能启用。如果ValID中的任何一个为空或无效,则setStorageLunCBT不会返回结果。
存储系统Unity和虚拟机服务器ESXi服务器/vSphere可以使用上面的函数来获取/设置/查询CBT。
图10示出根据本公开的一些实施方式的在虚拟机服务器和复制源存储系统的各个模块之间的处理流程图。需要说明的是,该过程仅仅是出于示例的目的而给出的,本发明并不局限于此,而是可以根据实际应用需求而进行各种改变。
如图10所示,在vSphere接收到创建虚拟卷的请求后,会开始创建虚拟卷的过程(1001)。在完成虚拟卷创建后,相应存储阵列中的ECOM可以借助VADP扩展API“queryStorageLunCBT”向vSphere发出针对支持变化数据跟踪功能的存储单元的查询请求(1002)。vSphere向虚拟机服务器ESXi服务器查询VMFS属性(1003),在ESXi服务器完成查询后,把查询信息提供给vSphere(1004)。vSphere向ECOM返回支持CBT的存储LUN(1005)。随后,ECOM可以通过VADP扩展API“setStorageLunCBT”向vSphere发出启用LUN的CBT功能的请求(1006)。vSphere请求ESXi服务器进行VFMS LUN CBT属性设置(1007)。在完成属性设置后,发送确认消息给vSphere(1008),然后vSphere向ECOM发送setStorageLunCBT已完成的确认消息(1009)。
在需要进行数据复制时,CBT代理服务可以通过扩展接口“retrieveStorageLunCBT”向ESXi服务器请求指定范围内的LUN的CBT信息(1010),ESXi服务器获取相应CBT信息,然后将LUN的CBT信息返回给CBT代理服务(1011)。接着CBT代理模块向复制管理器发送消息使复制源有效(1012),并在接收到来自复制管理器的确认(1013)后,记录与变化数据和数据复制相关的元数据信息(1014)。然后复制管理器获取对应LUN/快照数据(1015)。随后启动复制数据复制器(1016),并且在数据路径上开始执行数据复制(1017),即开始将LUN/快照数据以及与CBT相关的元数据和与数据复制相关的元数据发送给复制目标存储系统。
图11示出根据本公开的一些实施方式的在复制目标存储系统的各个模块之间的处理流程图。需要说明的是,该过程仅仅是出于示例的目的而给出的,本发明并不局限于此,而是可以根据实际应用需求而进行各种改变。
如图11所示,数据复制器接收来自复制源存储系统变化数据和CBT信息(1101),然后将得到的CBT信息发送给复制管理器(1102),复制管理器向数据路径请求上次的完整数据副本(1103),在接收到最新的完整数据副本(1104)后,将CBT信息、变化数据以及最新的完整数据发送合成引擎(1105),合成引擎执行数据合成操作,并将合成的完整文件返回给复制管理器(1106),复制管理器然后将完整文件刷写至数据路径(1107),并且请求ECOM将元数据保存在数据库中(1108)。此后,向ECOM复制源存储系统返回数据复制完成确认(1109)。
此外,图12还示出了可以用来实施本公开的一些实施方式的示例设备1200的示意性框图。设备1200可以用于实现图1的存储控制器110的一个或多个控制模块。
如图所示,设备1200包括中央处理单元(CPU)1201,其可以根据存储在只读存储器(ROM)1202中的计算机程序指令或者从存储单元1208加载到随机访问存储器(RAM)1203中的计算机程序指令,来执行各种适当的动作和处理。在RAM 1203中,还可存储单元1200操作所需的各种程序和数据。CPU 1201、ROM 1202以及RAM1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
设备1200中的多个部件连接至I/O接口1205,包括:输入单元1206,例如键盘、鼠标等;输出单元1207,例如各种类型的显示器、扬声器等;存储单元1208,例如磁盘、光盘等;以及通信单元1209,例如网卡、调制解调器、无线通信收发机等。通信单元1209允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元1201执行上文所描述的各个方法和处理,例如方法500、方法600、方法700、图10中的过程、图11中的过程中的任一个。例如,在一些实施方式中,方法500、方法600、方法700、图10中的过程、图11中的过程中的任一个可被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施方式中,计算机程序的部分或者全部可以经由ROM 1202和/或通信单元1209而被载入和/或安装到设备1200上。当计算机程序加载到RAM 1203并由CPU 1201执行时,可以执行上文描述的方法500、方法600、方法700、图10中的过程、图11中的过程中的任一个的一个或多个步骤。备选地,在其他实施方式中,CPU 1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法500、方法600、方法700、图10中的过程、图11中的过程中的任一个。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的一些实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施方式,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。

Claims (20)

1.一种用于支持虚拟机的数据复制的方法,包括:
由虚拟机服务器针对存储系统中与所述虚拟机关联的源存储单元执行变化数据跟踪,以获取与所述虚拟机相关的变化数据相关信息,所述存储系统包括源存储阵列和目标存储阵列,所述变化数据相关信息指示与所述虚拟机相关的数据变化的范围和类型,所述数据变化的范围和类型包括数据附加和数据修改中的一个或多个;
响应于从所述源存储阵列接收到针对与所述虚拟机相关的指定范围内的变化数据相关信息的获取请求,由所述虚拟机服务器从所述变化数据相关信息中获取所述指定范围内的所述变化数据相关信息,所述变化数据相关信息指示所述指定范围内的所述数据变化的范围和类型;以及
基于所述指定范围内的所述变化数据相关信息,将所述数据复制所需的工作量从所述虚拟机服务器卸载到所述源存储阵列,所述工作量的卸载包括:由所述虚拟机服务器向所述源存储阵列发送所述变化数据相关信息,所述变化数据相关信息指示所述指定范围内的所述数据变化的范围和类型,所述源存储阵列被配置为,响应于将所述工作量卸载到所述源存储阵列,基于所述数据变化的范围和类型来通过从所述源存储单元获取变化数据来优化所述数据复制,以及向所述目标存储阵列发送获取的所述变化数据和所述指定范围内的所述变化数据相关信息。
2.根据权利要求1所述的方法,进一步包括:
接收来自所述存储系统的针对支持变化数据跟踪功能的所述源存储单元的查询请求;
响应于所述查询请求,查询所述存储系统中支持所述变化数据跟踪功能的所述源存储单元的信息;以及
向所述存储系统发送针对所述查询请求的响应,所述响应包含查询到的所述源存储单元的信息。
3.根据权利要求2所述的方法,进一步包括:
接收来自所述存储系统的针对与所述虚拟机关联的所述源存储单元的数据变化跟踪功能启用请求,以及
响应于所述数据变化跟踪功能启用请求,针对与所述虚拟机关联的所述源存储单元启用所述变化数据跟踪功能。
4.根据权利要求3所述的方法,其中所述获取请求的接收和所述指定范围内的变化数据相关信息的发送其中至少一个基于虚拟机服务器的数据保护框架的扩展应用程序接口来执行。
5.根据权利要求3所述的方法,其中所述查询请求的接收和所述响应的发送其中至少一个基于虚拟机服务器的数据保护框架的扩展应用程序接口来执行。
6.根据权利要求3所述的方法,其中所述数据变化跟踪功能启用请求的接收基于虚拟机服务器的数据保护框架的扩展应用程序接口来执行。
7.一种用于执行虚拟机的数据复制的方法,包括:
响应于接收到针对所述虚拟机的数据复制请求,由源存储阵列向虚拟机服务器发出针对与所述虚拟机相关的指定范围的变化数据相关信息的获取请求,所述虚拟机服务器被配置为基于所述指定范围内的所述变化数据相关信息,将所述数据复制所需的工作量卸载到所述源存储阵列;
响应于将所述工作量卸载到所述源存储阵列,在所述源存储阵列处接收所述变化数据相关信息,所述变化数据相关信息指示来自所述虚拟机服务器的所述指定范围内的数据变化的范围和类型,所述数据变化的范围和类型包括数据附加和数据修改中的一个或多个;
由所述源存储阵列获取所述指定范围内的所述变化数据相关信息中指示的所述数据变化的范围和类型;
基于所述数据变化的范围和类型,通过从与所述虚拟机关联的源存储单元中获取变化数据来由所述源存储阵列优化所述数据复制;以及
由所述源存储阵列向目标存储阵列发送获取的所述变化数据和所述指定范围内的所述变化数据相关信息。
8.根据权利要求7所述的方法,进一步包括:
根据所述指定范围的变化数据相关信息形成与数据复制相关的元数据信息并存储在存储库中。
9.根据权利要求7所述的方法,进一步包括:
向所述虚拟机服务器发送针对支持变化数据跟踪功能的所述源存储单元的查询请求;以及
接收来自所述虚拟机服务器的针对所述查询请求的响应,所述响应包括支持变化数据跟踪的所述源存储单元的信息。
10.根据权利要求9所述的方法,进一步包括:
向所述虚拟机服务器发送针对与所述虚拟机关联的所述源存储单元的变化数据跟踪功能启用请求。
11.根据权利要求10所述的方法,其中所述获取请求的发送和所述指定范围内的变化数据相关信息的接收其中至少一个基于虚拟机服务器的数据保护框架的扩展应用程序接口来执行。
12.根据权利要求10所述的方法,其中所述查询请求的发送和所述响应的接收其中至少一个基于虚拟机服务器的数据保护框架的扩展应用程序接口来执行。
13.根据权利要求10所述的方法,其中所述数据变化跟踪功能启用请求的发送基于虚拟机服务器的数据保护框架的扩展应用程序接口来执行。
14.一种用于执行虚拟机的数据复制的方法,包括:
在目标存储阵列处,从源存储阵列接收变化数据和指定范围内的变化数据相关信息,基于所述指定范围内的所述变化数据相关信息,所述数据复制所需的工作量从所述虚拟机服务器被卸载到所述源存储阵列,所述工作量的卸载包括:由所述虚拟机服务器向所述源存储阵列发送所述变化数据相关信息,所述变化数据相关信息指示所述指定范围内的数据变化的范围和类型,所述数据变化的范围和类型包括数据附加和数据修改中的一个或多个,所述数据变化与虚拟机的源存储单元相关联,所述源存储阵列被配置为,响应于将所述工作量卸载到所述源存储阵列,基于所述数据变化的范围和类型,通过从所述源存储单元获取变化数据来优化所述数据复制;以及
基于所述数据变化的范围和类型,由所述目标存储阵列将所述变化数据复制到与所述指定范围所对应的目标存储单元的数据部分。
15.一种用于支持虚拟机的数据复制的装置,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述装置执行根据权利要求1-6其中任一项所述的方法中的动作。
16.一种用于执行虚拟机的数据复制的装置,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述装置执行根据权利要求7-13其中任一项所述的方法中的动作。
17.一种用于执行虚拟机的数据复制的装置,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述装置执行根据权利要求14所述的方法中的动作。
18.一种计算机可读存储介质,存储有机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1-6中任一项所述的方法。
19.一种计算机可读存储介质,存储有机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求7-13中任一项所述的方法。
20.一种计算机可读存储介质,存储有机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求14所述的方法。
CN201811280052.3A 2018-10-30 2018-10-30 用于支持和执行虚拟机的数据复制的方法、装置和计算机程序产品 Active CN111124252B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811280052.3A CN111124252B (zh) 2018-10-30 2018-10-30 用于支持和执行虚拟机的数据复制的方法、装置和计算机程序产品
US16/586,231 US11199989B2 (en) 2018-10-30 2019-09-27 Methods, apparatuses and computer program products for supporting and performing data replication of virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811280052.3A CN111124252B (zh) 2018-10-30 2018-10-30 用于支持和执行虚拟机的数据复制的方法、装置和计算机程序产品

Publications (2)

Publication Number Publication Date
CN111124252A CN111124252A (zh) 2020-05-08
CN111124252B true CN111124252B (zh) 2023-12-05

Family

ID=70327091

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811280052.3A Active CN111124252B (zh) 2018-10-30 2018-10-30 用于支持和执行虚拟机的数据复制的方法、装置和计算机程序产品

Country Status (2)

Country Link
US (1) US11199989B2 (zh)
CN (1) CN111124252B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11853104B2 (en) * 2019-06-27 2023-12-26 Netapp, Inc. Virtual machine backup from computing environment to storage environment
US11372665B2 (en) * 2019-08-02 2022-06-28 EMC IP Holding Company, LLC System and method for native and non-native replication for virtual volume based machines
CN112749123A (zh) 2019-10-30 2021-05-04 伊姆西Ip控股有限责任公司 用于管理文件系统的方法、设备和计算机程序产品
US20210357366A1 (en) * 2020-05-12 2021-11-18 Hewlett Packard Enterprise Development Lp File system metadata
US11875169B2 (en) * 2020-07-21 2024-01-16 Google Llc Optimizing replication-based migration of virtual machines
CN111897679A (zh) * 2020-07-29 2020-11-06 北京天融信网络安全技术有限公司 一种数据复制方法及装置
CN111949221A (zh) * 2020-09-11 2020-11-17 苏州浪潮智能科技有限公司 一种vsphere对接存储系统的存储性能分析方法、装置及存储介质
US11853166B2 (en) * 2022-01-07 2023-12-26 Dell Products L.P. Storage system recovery without data retransmission

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473462B1 (en) * 2011-04-21 2013-06-25 Symantec Corporation Change tracking for shared disks
CN104662522A (zh) * 2012-09-28 2015-05-27 Emc公司 使用存储系统功能性的全虚拟机备份的系统和方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9274949B2 (en) * 2007-08-27 2016-03-01 International Business Machines Corporation Tracking data updates during memory migration
US8443166B2 (en) * 2009-03-06 2013-05-14 Vmware, Inc. Method for tracking changes in virtual disks
EP2425341B1 (en) * 2009-05-01 2018-07-11 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US9600206B2 (en) * 2012-08-01 2017-03-21 Microsoft Technology Licensing, Llc Request ordering support when switching virtual disk replication logs
US10447524B1 (en) 2013-03-14 2019-10-15 EMC IP Holding Company LLC Unified datapath processing with virtualized storage processors
US9304999B1 (en) 2013-03-15 2016-04-05 Emc Corporation Virtual storage processor load balancing
US9805105B1 (en) 2013-03-15 2017-10-31 EMC IP Holding Company LLC Automatically creating multiple replication sessions in response to a single replication command entered by a user
US9507787B1 (en) 2013-03-15 2016-11-29 EMC IP Holding Company LLC Providing mobility to virtual storage processors
US9305071B1 (en) 2013-09-30 2016-04-05 Emc Corporation Providing virtual storage processor (VSP) mobility with induced file system format migration
US9875042B1 (en) 2015-03-31 2018-01-23 EMC IP Holding Company LLC Asynchronous replication
US9727429B1 (en) 2015-03-31 2017-08-08 EMC IP Holding Company LLC Method and system for immediate recovery of replicated virtual machines
US10067694B1 (en) 2015-03-31 2018-09-04 EMC IP Holding Company LLC Replication ordering

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473462B1 (en) * 2011-04-21 2013-06-25 Symantec Corporation Change tracking for shared disks
CN104662522A (zh) * 2012-09-28 2015-05-27 Emc公司 使用存储系统功能性的全虚拟机备份的系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Wei Huang等.High Performance Virtual Machine Migration with RDMA over Modern Interconnects.2007 IEEE International Conference on Cluster Computing.2008,第11-20页. *

Also Published As

Publication number Publication date
US11199989B2 (en) 2021-12-14
CN111124252A (zh) 2020-05-08
US20200133502A1 (en) 2020-04-30

Similar Documents

Publication Publication Date Title
CN111124252B (zh) 用于支持和执行虚拟机的数据复制的方法、装置和计算机程序产品
US11836155B2 (en) File system operation handling during cutover and steady state
US10579610B2 (en) Replicated database startup for common database storage
US11853104B2 (en) Virtual machine backup from computing environment to storage environment
US9983825B2 (en) Efficient data volume replication for block-based storage
US20230031079A1 (en) Resynchronization to a synchronous replication relationship
AU2015229864B2 (en) Reducing data volume durability state for block-based storage
US20220261320A1 (en) Faster replay of metadata and data operations using inode number based dependency graph
US20220006755A1 (en) Load balancing for ip failover
US9990257B2 (en) Virtual machine fault tolerance
US10114706B1 (en) Backup and recovery of raw disks [RDM] in virtual environment using snapshot technology
US11048430B2 (en) Object store mirroring where during resync of two storage bucket, objects are transmitted to each of the two storage bucket
US9733989B1 (en) Non-disruptive load-balancing of virtual machines between data centers
US20230409381A1 (en) Management and orchestration of microservices
US8688636B1 (en) Rapid cloning of virtual machines
US10698637B2 (en) Stale block resynchronization in NVM based systems
US11409457B1 (en) Co-located journaling and data storage for write requests
US9336232B1 (en) Native file access
Li et al. A hybrid disaster-tolerant model with DDF technology for MooseFS open-source distributed file system
US20240104114A1 (en) Techniques for upgrading and accessing metadata

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant