CN106354582B - 一种连续数据保护方法 - Google Patents
一种连续数据保护方法 Download PDFInfo
- Publication number
- CN106354582B CN106354582B CN201610689771.5A CN201610689771A CN106354582B CN 106354582 B CN106354582 B CN 106354582B CN 201610689771 A CN201610689771 A CN 201610689771A CN 106354582 B CN106354582 B CN 106354582B
- Authority
- CN
- China
- Prior art keywords
- cdp
- data
- metadata
- virtual machine
- magnetic disk
- 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
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
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种连续数据保护方法,其在CDP模式下通过创建参考数据、CDP数据卷及CDP元数据卷,并读取元数据节点链表中在选取参考数据时所选定的基于CDP模式下的快照点与与指定数据恢复时刻相同或者距离指定数据恢复时刻最接近的元数据节点的每一个元数据节点,并将元数据节点所对应的实际数据写入参考数据副本中,从而得到虚拟机的磁盘数据执行任一时间点的磁盘数据。通过本发明,实现了对虚拟机磁盘数据进行任意时刻的恢复,提高了虚拟机磁盘中数据的一致性,并有效提高数据恢复的效率;由于避免使用快照恢复或者异地备份技术,降低了本地数据中心或者异地数据中心发生宕机所导致的数据一致性不佳的问题。
Description
技术领域
本发明涉及云计算虚拟化的数据保护技术领域,尤其涉及一种连续数据保护方法,用以对虚拟机磁盘数据实现连续保护。
背景技术
在云计算领域,对虚拟机磁盘执行数据保护时一般采用快照技术。用户可以选择定期或者不定期地对系统盘和数据盘做快照(snapshot)。该技术可以将事故发生后的数据损失降低到一定范围内,比如,允许用户创建的快照个数。但是,快照技术只能将数据恢复至最近的一个快照点的状态,这个快照点之后产生的数据便无法恢复。快照技术虽然可以恢复到过去的某个快照点,但是当本地数据中心发生故障时,保存在本地数据中心的快照也无法使用,从而导致虚拟机磁盘数据无法保证一致性。
此外,在云计算领域中对虚拟机磁盘数据进行保护还可采用异地备份的技术方案。异地备份的实现方式有两种,一种是异地快照备份,即定期或者不定期地将本地的快照复制到另外一个数据中心,当本地数据中心发生故障时,可以在异地数据中心将数据恢复至最近的一个快照点;另外一种是通过镜像的方式,在另外一个数据中心存放相同的数据。前者的缺点是数据只能恢复至最近的一个异地快照点;而后者的缺点是一旦源数据中心写入了错误的数据,异地数据中心也会存放错误的数据。
有鉴于此,有必要对现有技术中的云平台中的虚拟机磁盘中数据保护予以改进,以解决上述问题。
发明内容
本发明的目的在于公开一种连续数据保护方法,用以实现对虚拟机磁盘数据进行任意时刻的恢复,提高虚拟机磁盘中数据的一致性,并有效提高数据恢复的效率。
为实现上述目的,本发明提供了一种连续数据保护方法,包括以下步骤:
S1、由CDP主机对虚拟机磁盘开启CDP模式,提取虚拟机磁盘被创建所形成的源卷至开启CDP模式后任一快照点的快照之间所形成的磁盘数据作为参考数据;
S2、通过IO捕获模块截获虚拟机磁盘自开启CDP模式后的每一次写IO操作所对应数据写入CDP服务器中的当前CDP数据卷及当前CDP元数据卷;判断当前CDP数据卷的大小是否超过配额;若是,则更新虚拟机磁盘的CDP头文件;若否,则返回并循环执行;
S3、遍历自步骤S1中快照点时刻至指定数据恢复时刻之间每一次写IO操作所对应的一条元数据信息,并读取与每一条元数据信息相匹配的CDP元数据卷中的元数据节点,然后以时间轴为顺序构建出元数据节点链表;
S4、复制参考数据以得到参考数据副本,读取元数据节点链表中在选取参考数据时所选定的基于CDP模式下的快照点与与指定数据恢复时刻相同或者距离指定数据恢复时刻最接近的元数据节点之间的每个元数据节点,并将元数据节点所对应的实际数据写入参考数据副本中,以得到指定数据恢复时刻所对应的磁盘数据。
在一些实施方式中,所述虚拟机磁盘加载并运行于虚拟化云平台中,所述虚拟化云平台由KVM虚拟化技术、VMM虚拟化技术或者Xen虚拟化技术形成。
在一些实施方式中,所述步骤S4中,在复制参考数据以得到参考数据副本之前,首先创建与虚拟机磁盘被创建时所形成的源卷大小相同的空卷,读取元数据节点链表中每个元数据节点所对应的数据先写入参考数据副本,并将写入数据后的参考数据副本覆盖所述空卷。
在一些实施方式中,所述步骤S1具体为:
判断虚拟机状态;
若处于关机状态,则通过CDP主机对虚拟机磁盘开启CDP模式,并初始化虚拟机磁盘的CDP头文件;
若处于开机状态,则冻结虚拟机,暂停新的写IO操作,将缓存数据刷新至虚拟机磁盘中,并初始化虚拟机磁盘CDP头文件;
最后,提取虚拟机磁盘被创建所形成的源卷至开启CDP模式后任一快照点的快照之间所形成的磁盘数据作为参考数据。
在一些实施方式中,所述步骤S2中的“配额”为:CDP数据卷的设定容量,并优选为200MB~1GB。
在一些实施方式中,所述步骤S3还包括:查找并删除在获取参考数据所选取的快照点与指定数据恢复时刻的元数据信息以及元数据信息所对应的CDP数据卷及CDP元数据卷。
在一些实施方式中,所述元数据节点:时间戳、写入源卷的起始扇区地址、修改扇区个数以及每次写IO操作所对应的实际数据在CDP数据卷中存放的起始扇区地址。
在一些实施方式中,所述步骤S4之后还包括:删除在步骤S1中所选取的快照点之前被IO捕获模块所捕获并被记录于CDP服务器中的CDP数据卷及CDP元数据卷,并更新虚拟机磁盘的CDP头文件。
在一些实施方式中,所述步骤S2执行之前还包括对虚拟机磁盘的CDP头文件进行初始化,并具体为:新建一个CDP头文件,并以追加的方式向该CDP头文件中写入当前CDP数据卷编号、虚拟机磁盘编号以及一条元数据信息;
所述元数据信息由元数据编号、开始时间戳以及结束时间戳组成;
其中,
元数据编号取整数M、开始时间戳取当前时刻的日历时间、结束时间戳取负整数。
在一些实施方式中,所述步骤S1中的参考数据以异步方式或者同步方式进行提取。
与现有技术相比,本发明的有益效果是:通过本发明,实现了对虚拟机磁盘数据进行任意时刻的恢复,提高了虚拟机磁盘中数据的一致性,并有效提高数据恢复的效率;由于避免使用快照恢复或者异地备份技术,显著的降低了本地数据中心或者异地数据中心发生宕机所导致的数据一致性不佳的问题。
附图说明
图1为本发明一种连续数据保护方法的总体流程图;
图2为CDP头文件的拓扑图;
图3为CDP元数据卷中针对每次写IO操作所形成的元数据节点的拓扑图;
图4为包含CDP数据卷和CDP元数据信息的元数据信息拓扑图;
图5为步骤S1中开启CDP模式并生成参考数据的流程图;
图6为IO捕获模块在步骤S2中所执行的流程图;
图7为对虚拟机的磁盘数据进行任一指定时刻执行数据恢复的流程图;
图8为本发明一种连续数据保护方法对虚拟机磁盘数据进行连续数据保护的整体结构图。
具体实施方式
下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
请参图1至图8所示出本发明一种连续数据保护方法的一种具体实施方式。在详细阐述本发明之前,首先对下列技术术语在本发明特定技术环境中作简要阐述。
CDP模式:连续数据保护(continuous data protection)模式。
CDP主机:负责虚拟机磁盘执行开启/关闭CDP模式的操作,以及对写IO进行捕获和处理,并处理虚拟机磁盘恢复和历史数据删除。CDP主机包括但不限于:物理计算机、多台互联的物理计算机、物理计算机集群服务器、虚拟计算机所构成的虚拟计算机集群服务器、云计算管理平台等可以提供CDP管理功能的机器或者软件。
CDP数据卷:每个开启了CDP模式的虚拟机硬盘都有专属的一个或者一个以上的CDP数据卷,用于存放每次捕获的写IO操作所对应的实际修改的数据内容,并且以追加的方式存储。每个CDP数据卷的大小有一个配额限制,若当前CDP数据卷的大小等于或者超过配额时,则创建一个新的CDP数据卷。例如,CDP数据卷编号可用正整数表示,从0开始编号,每新建一个数据卷,它的编号就加1。
当前CDP数据卷:编号最大的CDP数据卷。
CDP元数据卷:每个开启了CDP模式的虚拟机磁盘都有专属的一个或者一个以上的CDP元数据卷,用于存放每次捕获的写IO操作所对应的元数据信息,包括本次写IO操作的时间戳(包括开始时间戳与结束时间戳)、在源卷修改的起始扇区地址、修改的扇区个数以及实际数据内容在当前CDP卷中存放的起始扇区地址,并且以追加的方式存储在当前CDP元数据卷中。每次新建一个CDP数据卷时,也会相应地创建一个新的CDP元数据卷。CDP元数据卷编号用正整数表示,从“0”开始对CDP元数据卷进行编号,每新建一个CDP元数据卷,它的编号就加1。
当前CDP元数据卷:编号最大的那个CDP元数据卷。
日历时间:Calendar Time,是通过一个长整数类型来表示的,表示的时间(日历时间)是从一个时间点(1970年1月1日0时0分0秒)到此时的秒数。
CDP头文件:每个开启了CDP模式的卷都有专属的CDP头文件,用于记录存储在CDP服务器的CDP元数据卷和CDP数据卷相关信息记录,以实现管理功能。该CDP头文件内容包括:当前CDP数据卷编号、虚拟机磁盘编号(记录所属虚拟机磁盘的编号,是一个固定长度的字符串)以及若干条元数据信息(元数据信息是每次写IO操作所生成的包含CDP数据卷和CDP元数据卷的相关信息记录)。元数据信息包括元数据编号(a1~aN)、开始时间戳(Tss1~TssN)以及结束时间戳(Tss1~TseN),N≥1。
本发明一种连续数据保护方法,其主要通过以下步骤实现。
S1、由CDP主机对虚拟机磁盘开启CDP模式,提取虚拟机磁盘被创建形成的源盘至开启CDP模式后任一快照点的快照之间所形成的磁盘数据作为参考数据;S2、通过IO捕获模块截获虚拟机磁盘自开启CDP模式后的每一次写IO操作所对应数据写入CDP服务器中的当前CDP数据卷及当前CDP元数据卷;判断CDP数据卷的大小是否超过配额;若是,则更新虚拟机磁盘的CDP头文件;若否,则返回并循环执行;S3、遍历自S1中快照点时刻至指定数据恢复时刻之间每一次写IO操作所对应的一条元数据信息,并读取与每一条元数据信息相匹配的CDP元数据卷中的元数据节点,然后以时间轴为顺序构建出元数据节点链表;S4、复制参考数据以得到参考数据副本,读取元数据节点链表中在选取参考数据时所选定的基于CDP模式下的快照点与与指定数据恢复时刻相同或者距离指定数据恢复时刻最接近的元数据节点之间的每个元数据节点,并将元数据节点所对应的实际数据写入参考数据副本中,以得到指定数据恢复时刻所对应的磁盘数据。
优选的,在步骤S4中,可首先创建与虚拟机磁盘被创建时所形成的源卷大小相同的空卷,并读取元数据节点链表中每个元数据节点所对应的数据先写入参考数据副本,并将写入数据后的参考数据副本覆盖空卷。
实施例一:
本实施例公开了一种连续数据保护方法,包括以下步骤:
步骤(1):搭建虚拟化云平台,该虚拟化云平台可由KVM虚拟化技术、VMM虚拟化技术或者Xen虚拟化技术形成。为简化描述,在本实施例中,我们以使用KVM虚拟化技术所形成的虚拟化云平台为例作示范性说明。
步骤(2):搭建一套存储环境,用于存放需要保护的数据,该环境称作CDP服务器端。进一步为:搭建的存储环境是共享的,可被所有虚拟机所在节点共享访问。存储环境由具有数据存储功能的存储介质构成。存储介质包括但不限于磁盘阵列(RAID0、RAID1、RAID2、RAID3、RAID4、RAID5、RAID6)、磁盘、非易失性存储器(NV-Memory)、分布式存储系统或者闪存等各种可以存储程序代码的介质。非易失性存储器(NV-Memory)又进一步可由快闪存储器(Flash memory)、相变存储器(FCM)、强介电体存储器(FeRAM)、磁记录式随时写入读出存储器(MRAM)、双向统一存储器(OUM)、电阻RAM(RRAM)之一构成。
步骤(3):在步骤(1)所搭建的云计算管理平台中安装虚拟机(VM),该虚拟机的状态可以分为开机状态或者关机状态。
步骤(4):给虚拟机的一块或者多块虚拟机磁盘开启连续数据保护模式(CDP),具体的,步骤(4)由下述步骤(4.0)至步骤(4.3)并配合参照图5所示。
步骤(4.1):判断虚拟机的状态;
若虚拟机处于关机状态,则直接开启指定虚拟机磁盘的连续保护模式(CDP),并初始化该虚拟机磁盘的CDP头文件;然后,跳转执行步骤(5)。
若虚拟机处于开机状态,则首先冻结该虚拟机,暂停新的写IO操作的处理,并且将缓存中的数据刷新到虚拟机磁盘中。
步骤(4.2):开启指定虚拟机磁盘的连续数据保护模式,并初始化该虚拟机磁盘的CDP头文件;然后跳转执行步骤(5)。
步骤(4.1)和步骤(4.2)中的初始化指定虚拟机磁盘的CDP文件具体步骤为:
新建一个CDP头文件,并以追加的方式依次向该CDP头文件中写入当前CDP数据卷编号(即,整数0)、虚拟机磁盘编号(一个固定长度的随机字符串),一条包含当前CDP数据卷和当前CDP元数据卷相关的元数据信息。该元数据信息中的元数据编号取正整数M,开始时间戳为当前时刻的日历时间(T),结束时间戳取负整数。具体的,该元数据信息中的元数据编号取整数0,结束时间戳取负整数-1。
步骤(5):创建快照,并且以异步的方式,将虚拟机磁盘被创建开始时刻(即“源卷”)至开启CDP模式后任一时刻的快照点所形成的快照之间的数据进行异步方式或者同步方式进行提取,并传输至步骤(2)搭建的存储环境,作为参考数据。
需要说明的是,该源卷也可选取非CDP模式下的某个快照点所形成的快照数据,也可选取CDP模式下的某个快照点所形成的快照数据,并作为参考数据的起始数据。
在本实施方式中,该步骤(5)进一步具体为:
步骤(5.1)若虚拟机处于关机状态,则快照创建完成后,需要等待虚拟机开机后,立即进行步骤(6)。
步骤(5.2)若虚拟机处于开机状态,则快照创建后,首先需要解除对该虚拟机的冻结,然后进入步骤(6)。
步骤(6):IO捕获模块进一步具体执行以下步骤:
步骤(6.1):IO捕获模块等待写IO操作执行。
步骤(6.2):等待写IO操作在原磁盘位置写入完成,并且成功;判断本次写IO操作写入的虚拟机磁盘是否开启了连续数据保护模式;如果没有开启,则返回并重新执行步骤(6.1);如果开启了连续数据保护模式,则执行下一步骤(6.3)。
步骤(6.3):从该虚拟机磁盘对应的CDP头文件中获取当前CDP数据卷编号,并根据CDP头文件名称以及当前CDP数据卷编号,获得当前CDP数据卷和当前CDP元数据卷的路径。
步骤(6.4):将本次写IO操作所导致的实际数据变化,以追加的方式写入到当前CDP数据卷中,并返回本次数据变化在当前CDP数据卷中的起始扇区地址。
步骤(6.5):获取本次写IO操作所对应的元数据节点信息,包括此刻的日历时间(T)、写入源卷的起始扇区地址、写入当前CDP数据卷的起始扇区地址,修改扇区个数,然后将此次写IO操作所对应的元数据节点信息以追加的方式写入到当前CDP元数据卷中。
步骤(6.6):判断步骤(6.4)的当前CDP数据卷的大小是否大于或者等于CDP数据卷的配额,若是,则执行下一步;若否,则返回并重新执行步骤(6.1)。具体的,在本实施例中CDP数据卷的配额设定为200MB,当然也可设置为更大的配额。
步骤(6.7):更新虚拟机磁盘的CDP头文件。
结合图6所示,该步骤(6.7)进一步具体为以下步骤(6.7.1)至步骤(6.7.3)所示。
步骤(6.7.1):更新CDP头文件中的当前CDP数据卷编号,CDP数据卷编号的值为步骤(6.3)中获取的当前CDP数据卷编号值加1。
步骤(6.7.2):将当前CDP数据卷编号减1所对应的CDP数据卷和CDP元数据相关的元数据信息记录中的结束时间戳,更新步骤(6.5)中获得日历时间(T)。
步骤(6.7.3):在CDP头文件中以追加的方式添加一条元数据信息,用于记录当前CDP数据卷编号所对应的CDP数据卷和CDP元数据卷相关信息。该条元数据信息的编号为当前CDP数据卷编号,开始时间戳为步骤(6.5)中获得的日历时间,结束时间戳的值为负整数-1。
步骤(7):对指定虚拟机磁盘的数据恢复就是将根据参考数据和捕获的历史数据,将虚拟机磁盘的数据恢复到指定的任意时间点T(时间点T为秒级)。通过遍历CDP元数据卷,获取每个需要恢复的写IO操作所对应的数据在CDP数据卷中存放的地址,然后从CDP数据卷中读取出来,依次按照时间从早到晚的顺序写入到参考数据副本中,就可以得到指定数据恢复时间点的数据。
结合图7所示,该步骤(7)进一步具体为:
步骤(7.1):依次遍历该虚拟机磁盘的CDP头文件中的各条包含CDP数据卷和CDP元数据卷的元数据信息。从第一条元数据信息开始,若满足条件:该条元数据信息的开始时间戳≤T(即“日历时间”)≤该条元数据信息的结束时间戳。若是遍历到最后一条元数据信息,则要满足:最后一条元数据信息的开始时间戳≤T(即“日历时间”)<当前时间。假设找到的是第i条元数据信息。
步骤(7.2):找到第i条元数据信息对应的CDP元数据卷文件。遍历该文件的信息,找到指定时间点对应的元数据节点。即该元数据节点的时间戳等于指定恢复时间点。如果没有元数据节点的时间戳跟指定数据恢复时刻相同,那就找出小于指定时间点并且离指定时间点最近的元数据节点。
步骤(7.3):初始化一个元数据节点链表,从该磁盘CDP文件中第一条CDP数据卷和CDP元数据相关信息记录(即“元数据信息”)所对应的CDP元数据卷开始,至步骤(7.2)中所找到的第i条元数据信息对应的CDP元数据卷,依次遍历各个CDP文件中的元数据节点。若该元数据节点链表中有针对相同数据扇区和扇区个数的元数据节点,则先删除它,再将该元数据节点加入该元数据节点链表中。
步骤(7.4):复制一份参考数据,称作参考数据副本;
步骤(7.5):根据元数据节点链表中每个元数据节点记录的CDP数据卷中起始扇区地址和扇区个数,读取实际的数据;然后写入参考数据副本中。
步骤(7.6):将参考数据副本通过网络传输指定磁盘的存放位置。
步骤(7.7):完成数据恢复操作。
步骤(8)删除指定数据恢复时间点之前的旧数据。由于连续数据保护会针对磁盘的每个写I/O操作进行捕获,并记录它的实际数据(volume data)和元数据(meta data)。当用户频繁写IO操作时,势必会造成CDP服务器上存储的数据量越来越大;而且时间越久远,保存的恢复点存在的意义越小。因此,用户需要对超过一定时间的恢复点进行清理,以实现对历史数据回收。具体的,该步骤(8)具体如下步骤(8.1)至步骤(8.6)所述。
步骤(8.1):依次遍历该虚拟机磁盘的CDP文件中的各条CDP数据卷和CDP元数据卷相关信息记录(即“元数据信息”)。从第一条元数据信息开始,若满足条件:该条元数据信息的开始时间戳≤T(即“日历时间”)≤该条元数据信息的结束时间戳。若是遍历到最后一条元数据信息,则要满足:最后一条元数据信息的开始时间戳≤T(即“日历时间”)<当前时刻。假设找到的是第i条元数据信息满足上述条件。
步骤(8.2):找到第i条元数据信息对应的CDP元数据所对应的卷文件。遍历该卷文件的信息,找到指定数据恢复时间点对应的元数据节点。此时,该元数据节点的时间戳等于指定数据恢复时间点。如果没有元数据节点的时间戳跟指定时间点一样,那就找出小于指定时间点并且离指定数据恢复时间点最近的元数据节点(即,自指定数据恢复时间点向前推一个快照点所对应的元数据节点)。
步骤(8.3):初始化一个元数据节点链表,从该虚拟机磁盘的CDP文件中第一条CDP数据卷和CDP元数据相关信息记录所对应的CDP元数据卷开始至步骤(7.2)中所找到的第i条元数据信息对应的CDP元数据卷,依次遍历各个CDP元数据卷中所对应的元数据节点。若该元数据节点链表中没有针对相同数据扇区和扇区个数的元数据节点,则将该元数据节点加入元数据节点链表中。
步骤(8.4):根据元数据节点链表中每个元数据节点记录的CDP数据卷中起始扇区地址和扇区个数,读取实际的数据;然后,将元数据节点所对应的实际数据写入参考数据副本中,以得到指定数据恢复时间点所对应的磁盘数据(即,虚拟机磁盘数据)。
步骤(8.5):将CDP头文件中第一条元数据信息至第i-1条元数据信息删除,并删除每条记录对应的CDP元数据卷文件和CDP数据卷文件。保留第i条元数据信息,以及该元数据信息所对应的CDP数据文件和CDP元数据文件。
步骤(8.6):完成历史数据回收操作。
实施例二:
本实施例与实施例一的主要区别在于,在实施例一步骤(7.3)之后,还包括:创建与虚拟机磁盘被创建时所形成的源卷大小相同的空卷。目的是为了方便对在完成指定数据恢复时间点进行数据恢复后的虚拟机磁盘进行使用和管理。然后,将参考数据副本通过网络传输并覆盖的空卷。最后,将空卷挂载到虚拟机中,即可查看和使用恢复后的虚拟机磁盘数据。
由于参考数据副本生成之后存放于CDP服务器中,其对用户是不可见且不可用的。通过创建空卷,用户将空卷挂载至虚拟机中,从而实现了用户对恢复后的数据(即参考数据副本)的可视化操作,提高了客户端的用户体验效果。
本实施例中未详细描述的技术方案请参实施例一所示,在此不再赘述。
实施例三:
与实施例一和/或实施例二相比,本实施例公开的一种连续数据保护方法,包括以下步骤:
步骤(1):使用一台以上服务器搭建云计算管理平台,云计算管理平台采用虚拟化技术形成。虚拟机磁盘加载并运行于云计算管理平台中。虚拟化技术包括KVM虚拟化技术、VMM虚拟化技术或者Xen虚拟化。在本实施方式中,我们以采用Xen虚拟化技术形成所形成的云计算管理平台举例,并作示范性说明。
步骤(2):搭建一套存储环境,用于存放需要保护的数据,该环境称作CDP服务器端。
步骤(3):在步骤(1)中的云计算管理平台上安装虚拟机,并开启它。
步骤(4):给虚拟机其中一块或者多块磁盘开启连续数据保护模式。
该步骤(4)进一步具体为如下步骤(4.1)至步骤(4.2)所示。
步骤(4.1)首先冻结该虚拟机,暂停新IO的处理,并且将缓存中的数据刷新到磁盘中;
步骤(4.2)开启指定磁盘的连续数据保护模式,并初始化它的CDP头文件,然后进入步骤(5)。
步骤(5):创建参考数据。
创建快照,并且以异步的方式,将虚拟机磁盘创建开始所形成的源卷至开启CDP模式下的任一快照点的快照之间的数据进行提取,并传输至步骤(2)搭建的存储环境中,以作为参考数据。当然,参考数据也可以才用同步的方式进行创建。以同步方式提取参考数据,可实现是否被对参考数据是否被成功创建进行实时反馈。需要说明的是,当虚拟机处于运行状态时,仅以异步的方式提取参考数据,当虚拟机处于关闭状态时,可以以同步的方式或者异步的方式提取参考数据。
步骤(6):开启虚拟机之后自动启动IO捕获模块,截获的每一个写IO操作所对应的数据,传输并备份到步骤(2)搭建的存储环境中。备份存储的数据分为两种类型。其中,实际的数据变化内容写入当前CDP数据卷。针对每次捕获的写IO操作所对应的元数据写入到当前CDP元数据卷中。元数据包括时间戳、写入源卷的起始扇区地址、修改扇区个数、每次写IO操作所对应的实际数据在当前CDP数据卷中存放的起始扇区地址。然后判断当前CDP数据卷大小是否超过配额,是的话,则更新相应虚拟机磁盘的CDP头文件。下次捕获的写IO操作所对应的数据将被记录进新的CDP数据卷和CDP元数据卷中。
步骤(7):关闭连续数据保护模式。在虚拟机运行的状态下,直接关闭该模式即可,关闭后,之后的写IO操作将不会被IO捕获模块所捕获。
本实施例中未详细描述的技术方案请参实施例一和/或实施例二所示,在此不再赘述。
在本申请所公开的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (10)
1.一种连续数据保护方法,其特征在于,包括以下步骤:
S1、由CDP主机对虚拟机磁盘开启CDP模式,提取虚拟机磁盘被创建所形成的源卷至开启CDP模式后任一快照点的快照之间所形成的磁盘数据作为参考数据;
S2、通过IO捕获模块截获虚拟机磁盘自开启CDP模式后的每一次写IO操作所对应数据写入CDP服务器中的当前CDP数据卷及当前CDP元数据卷;判断当前CDP数据卷的大小是否超过配额;若是,则更新虚拟机磁盘的CDP头文件;若否,则返回并循环执行S2;所述当前CDP数据卷为CDP服务器上的编号最大的CDP数据卷;所述当前CDP元数据卷为CDP服务器上的编号最大的CDP元数据卷;
S3、遍历自步骤S1中快照点时刻至指定数据恢复时刻之间每一次写IO操作所对应的一条元数据信息,并读取与每一条元数据信息相匹配的CDP元数据卷中的元数据节点,然后以时间轴为顺序构建出元数据节点链表;
S4、复制参考数据以得到参考数据副本,读取元数据节点链表中在选取参考数据时所选定的基于CDP模式下的快照点与与指定数据恢复时刻相同或者距离指定数据恢复时刻最接近的元数据节点之间的每个元数据节点,并将元数据节点所对应的实际数据写入参考数据副本中,以得到指定数据恢复时刻所对应的磁盘数据。
2.根据权利要求1所述的连续数据保护方法,其特征在于,所述虚拟机磁盘加载并运行于虚拟化云平台中,所述虚拟化云平台由KVM虚拟化技术、VMM虚拟化技术或者Xen虚拟化技术形成。
3.根据权利要求1或2所述的连续数据保护方法,其特征在于,所述步骤S4中,在复制参考数据以得到参考数据副本之前,首先创建与虚拟机磁盘被创建时所形成的源卷大小相同的空卷,读取元数据节点链表中每个元数据节点所对应的数据先写入参考数据副本,并将写入数据后的参考数据副本覆盖所述空卷。
4.根据权利要求1或2所述的连续数据保护方法,其特征在于,所述步骤S1具体为:
判断虚拟机状态;
若处于关机状态,则通过CDP主机对虚拟机磁盘开启CDP模式,并初始化虚拟机磁盘的CDP头文件;
若处于开机状态,则冻结虚拟机,暂停新的写IO操作,将缓存数据刷新至虚拟机磁盘中,并初始化虚拟机磁盘CDP头文件;
最后,提取虚拟机磁盘被创建所形成的源卷至开启CDP模式后任一快照点的快照之间所形成的磁盘数据作为参考数据。
5.根据权利要求1所述的连续数据保护方法,其特征在于,所述步骤S2中的“配额”为:CDP数据卷的设定容量,并具体为200MB~1GB。
6.根据权利要求1所述的连续数据保护方法,其特征在于,所述步骤S3还包括:查找并删除在获取参考数据所选取的快照点与指定数据恢复时刻的元数据信息以及元数据信息所对应的CDP数据卷及CDP元数据卷。
7.根据权利要求3所述的连续数据保护方法,其特征在于,所述元数据节点:时间戳、写入源卷的起始扇区地址、修改扇区个数以及每次写IO操作所对应的实际数据在CDP数据卷中存放的起始扇区地址。
8.根据权利要求1所述的连续数据保护方法,其特征在于,所述步骤S4之后还包括:删除在步骤S1中所选取的快照点之前被IO捕获模块所捕获并被记录于CDP服务器中的CDP数据卷及CDP元数据卷,并更新虚拟机磁盘的CDP头文件。
9.根据权利要求1所述的连续数据保护方法,其特征在于,所述步骤S2执行之前还包括对虚拟机磁盘的CDP头文件进行初始化,并具体为:新建一个CDP头文件,并以追加的方式向该CDP头文件中写入当前CDP数据卷编号、虚拟机磁盘编号以及一条元数据信息;
所述元数据信息由元数据编号、开始时间戳以及结束时间戳组成;
其中,
元数据编号取整数M,开始时间戳取当前时刻的日历时间,结束时间戳取负整数。
10.根据权利要求1所述的连续数据保护方法,其特征在于,所述步骤S1中的参考数据以异步方式或者同步方式进行提取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610689771.5A CN106354582B (zh) | 2016-08-18 | 2016-08-18 | 一种连续数据保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610689771.5A CN106354582B (zh) | 2016-08-18 | 2016-08-18 | 一种连续数据保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106354582A CN106354582A (zh) | 2017-01-25 |
CN106354582B true CN106354582B (zh) | 2019-01-18 |
Family
ID=57843568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610689771.5A Active CN106354582B (zh) | 2016-08-18 | 2016-08-18 | 一种连续数据保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106354582B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729052A (zh) * | 2017-10-16 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种数据操作方法、装置、设备及计算机可读存储介质 |
CN107888675A (zh) * | 2017-11-08 | 2018-04-06 | 长沙曙通信息科技有限公司 | 一种分布式存储系统数据恢复实现方法 |
CN109995816B (zh) * | 2017-12-29 | 2022-04-08 | 中移(苏州)软件技术有限公司 | 基于云计算平台的信息导入方法、装置和通信设备 |
CN108363642A (zh) * | 2018-01-10 | 2018-08-03 | 长沙开雅电子科技有限公司 | 一种分布式存储系统数据恢复实现方法 |
CN109445989A (zh) * | 2018-10-22 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种文件系统数据备份方法及装置 |
US10860608B2 (en) | 2018-10-25 | 2020-12-08 | EMC IP Holding Company LLC | Any point in time replication to the cloud |
CN109542681B (zh) * | 2018-11-15 | 2021-11-26 | 郑州云海信息技术有限公司 | 一种基于文件备份的时间导航系统、可视化数据恢复方法及装置 |
CN109582500B (zh) * | 2018-11-26 | 2021-09-03 | 万兴科技股份有限公司 | 数据恢复方法、装置、计算机设备及存储介质 |
CN110362425A (zh) * | 2019-06-05 | 2019-10-22 | 黄疆 | 基于写拷贝的数据副本保护方法和系统 |
US11620056B2 (en) | 2019-06-28 | 2023-04-04 | EMC IP Holding Company LLC | Snapshots for any point in time replication |
CN110531925B (zh) * | 2019-08-01 | 2022-11-25 | 杭州宏杉科技股份有限公司 | 数据读取方法、装置、电子设备及机器可读存储介质 |
CN111858173A (zh) * | 2020-07-16 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种数据恢复方法、装置、设备和介质 |
CN112269681A (zh) * | 2020-10-16 | 2021-01-26 | 苏州浪潮智能科技有限公司 | 一种持续保护虚拟机数据的方法、装置及设备 |
CN113407380B (zh) * | 2021-07-14 | 2024-05-03 | 安超云软件有限公司 | 跨集群灾备快速恢复的方法及装置、电子设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8583852B1 (en) * | 2011-09-01 | 2013-11-12 | Symantec Operation | Adaptive tap for full virtual machine protection |
US9225529B1 (en) * | 2013-12-10 | 2015-12-29 | Emc Corporation | Encrypted virtual machines in a cloud |
CN104866435B (zh) * | 2015-06-06 | 2018-05-15 | 成都云祺科技有限公司 | 一种连续数据保护方法 |
CN105843704B (zh) * | 2016-03-15 | 2018-10-19 | 上海爱数信息技术股份有限公司 | 一种结合分布式块存储的快照功能的数据保护方法及系统 |
-
2016
- 2016-08-18 CN CN201610689771.5A patent/CN106354582B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106354582A (zh) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106354582B (zh) | 一种连续数据保护方法 | |
US11734306B2 (en) | Data replication method and storage system | |
US10311028B2 (en) | Method and apparatus for replication size estimation and progress monitoring | |
US9703640B2 (en) | Method and system of performing incremental SQL server database backups | |
US10872017B2 (en) | Restoring a file system object | |
Nicolae et al. | BlobCR: Efficient checkpoint-restart for HPC applications on IaaS clouds using virtual disk image snapshots | |
CN105574104B (zh) | 一种基于ObjectStore的LogStructure存储系统及其数据写入方法 | |
CN103765393B (zh) | 存储系统 | |
CN105453021B (zh) | 用于原子存储操作的系统和方法 | |
US9588858B2 (en) | Periodic data replication | |
DK2580662T3 (en) | Selective processing of file system objects for image-level backups | |
US20180095680A1 (en) | Physical media aware spacially coupled journaling and replay | |
CN106021031B (zh) | 一种btrfs文件系统的删除数据恢复方法和装置 | |
CN107046563A (zh) | 一种分布式高效云盘的实现方法、系统及云平台 | |
CN106062742A (zh) | 用于改进快照性能的系统和方法 | |
WO2020024772A1 (zh) | 查询数据的方法和装置 | |
US11397749B2 (en) | Asynchronous replication of in-scope table data | |
CN105550063B (zh) | 一种基于持续数据保护与kvm虚拟化的容灾方法 | |
CN106503051A (zh) | 一种基于元数据分类的贪婪预取型数据恢复系统及恢复方法 | |
CN108427728A (zh) | 元数据的管理方法、设备及计算机可读介质 | |
CN104662522B (zh) | 使用存储系统功能性的全虚拟机备份的系统和方法 | |
CN103150232B (zh) | 存储快照创建方法和装置 | |
Wei et al. | NAND flash storage device performance in Linux file system | |
CN106293535A (zh) | 一种nas的性能优化方法及装置 | |
CN107545022A (zh) | 磁盘管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
CP03 | Change of name, title or address |
Address after: 214000, science and software park, Binhu District, Jiangsu, Wuxi 6 Patentee after: Huayun data holding group Co., Ltd Address before: 214000 No.6 science and education software park, Binhu District, Wuxi City, Jiangsu Province Patentee before: WUXI CHINAC DATA TECHNICAL SERVICE Co.,Ltd. |
|
CP03 | Change of name, title or address |