虚拟机增量数据备份方法、系统及计算机可读介质与流程

文档序号:26192706发布日期:2021-08-06 18:45阅读:144来源:国知局
虚拟机增量数据备份方法、系统及计算机可读介质与流程

本发明涉及数据备份技术领域,尤其涉及虚拟机增量数据备份方法、系统及计算机可读介质。



背景技术:

快照(snapshot)是一种在线存储设备放置数据丢失的有效办法。快照旨在对在线数据按需进行备份和恢复。当存储设备发生应用故障或者文件损坏时可进行快速数据恢复,将数据恢复到某个可用时间点的状态。快照的另一个功能在于为存储用户提供了一个数据访问通道,当原数据进行在线应用时,用户可以访问快照数据,并利用快照进行测试等工作。传统的快照技术是针对每个存储资源时间点的数据状态进行单一映射和保护,便于快照直接回复,但是由于不同时间点的快照没有关联,在创建多个快照时存在的冗余副本较多,从而导致存储设备的存储空间的极大浪费;同时,对快照的源卷进行数据修改时,对应的多个快照也需要进行数据修改,从而存在操作复杂的缺陷。

在云平台等生产环境中,通常需要配置备份容灾系统将数据备份至云端存储来保证数据安全,然而如何低消耗存储、低消耗带宽、快速回复数据成为云平台等生产系统中主要亟待解决的技术问题。

参图1所示,首次备份时,会对虚拟机的数据卷创建快照,然后将快照数据导出至云端,同时将虚拟机元数据导出至云端。如图2所示,第二次备份也会创建一个数据卷的快照。将前后两个快照之间的差异数据导出,作为增量备份存储至云端。最后删除前一个快照,之后再做备份也入第二次备份一样步骤完成并导出数据,并也需要将虚拟机元数据更新至云端。在执行回滚操作时,需要从云端存储中从最近一个全量备份至当前的增量备份点下载备份数据。

诸如图1与图2所示出的现有技术中基于增量快照技术来实现备份数据的增量备份时,当执行回滚操作时需要从云端存储下载,并需要从最近一次全量备份开始下载直到当前备份点,中间必然有相同位置备份点的备份数据的重复下载,从而造成带宽资源的浪费且存在数据下载量过大,从而对本地设备的磁盘空间造成不必要的浪费。同时,如果删除任意一个备份点,需要将目标备份点之后所有的备份点的备份数据都删除,数据上的损失过大。如果在某个时间点(即备份点)需要做全量备份,则需要将从本地设备将所有全量数据传输至云端存储中,由此造成带宽资源的浪费及备份效率较低,并且现有技术中的增量快照技术会增加云端存储不必要的存储开销。

有基于此,需要对现有技术中的增量数据,尤其是私有云虚拟机的增量数据的备份方法予以改进。



技术实现要素:

本发明的目的在于揭示一种虚拟机增量数据备份方法、系统及计算机可读介质,用以解决现有技术中采用私有云中基于增量快照技术来实现备份数据的增量备份所存在的上述技术问题,尤其是为了节约数据回滚时的带宽资源,提高备份效率,实现在不需要导出全量数据时能够生成全量备份点所包含的数据,节约本地设备及对端设备的磁盘存储空间。

为实现上述目的之一,本发明提供了一种虚拟机增量数据备份方法,包括:

对虚拟机的数据卷创建快照,对快照按照定长分割所形成的数据块予以标记,创建位图并将所述位图与标记后的数据块封装为数据包,将数据包上传至存储空间;

确定设定备份点,并从存储空间仅下载与设定备份点匹配的元数据所对应的位图及标记,从存储空间下载数据包并按照位图所包含的有效数据对数据包进行数据切割,并按照位图中所包含的有效数据回滚至与设定备份点匹配的虚拟机的数据卷。

作为本发明的进一步改进,从存储空间下载的数据包包含描述元数据的位图,以及与所述位图匹配的数据块;所述有效数据为数据块对应位图中标为1的数据。

作为本发明的进一步改进,对虚拟机的数据卷创建快照中的数据卷为虚拟机执行一个或者多个应用程序和/或用户请求,且基于时间轴所形成的增量数据;所述虚拟机运行于私有云或者本地设备中,所述存储空间运行于公有云或者对端设备中。

作为本发明的进一步改进,所述方法还包括:

判断删除备份点之后是否存在后继备份点;

若不存在后继备份点,在存储空间中删除所述删除备份点之前全部备份点所对应的数据包;

若存在后继备份点,从存储空间中下载删除备份点的元数据所对应的位图与后继备份点的元数据所对应的位图进行合并,并将合并所形成的位图所关联的数据卷上传至存储空间;

其中,所述后继备份点是虚拟机根据预配置的备份周期并形成增量数据的下一个备份点。

作为本发明的进一步改进,所述删除备份点由应用程序和/或用户以随机方式指定。

作为本发明的进一步改进,所述从存储空间中下载删除备份点的元数据所对应的位图与后继备份点的元数据所对应的位图进行合并具体为:对从存储空间中下载删除备份点的元数据所对应的位图与后继备份点的元数据所对应的位图中所包含的有效数据进行合并,以及与位图匹配的数据块进行合并。

作为本发明的进一步改进,被创建的位图临时保存至运行于私有云或者本地设备的临时服务中,并在合并所形成的数据卷上传至存储空间之后删除临时服务中的位图;

其中,所述临时服务包括临时应用实例、临时服务线程、临时安装并可卸载的软件或者临时数据库。

作为本发明的进一步改进,对快照进行定长分割的分割粒度为4kb的正整数倍且不超过32kb,并对快照按照所述分割粒度所形成的数据块从0开始以向上递增方式对数据块予以标记,以标记块号;其中,创建位图并将所述位图与标记后的数据块封装形成的数据包不超过1mb,并以32kb为封装单元对快照进行定长分割。

基于相同发明思想,本发明还揭示了一种系统,包括:

一个或者多个处理器;和

存储装置,所述存储装置耦接到所述一个或者多个处理器;

其中,所述存储装置存储被一个或者多个处理器执行的计算机程序指令,所述计算机程序指令执行如前述任一项发明创造所揭示的虚拟机增量数据备份方法中的步骤。

最后,本申请还揭示了一种计算机可读介质,

所述计算机可读介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行如前述任一项发明创造所揭示的虚拟机增量数据备份方法中的步骤。

与现有技术相比,本发明的有益效果是:

在本发明中,通过位图的合并实现数据块的合并,并通过数据体积非常小的位图表征基于时间轴所形成的多个备份点所形成的增量数据的分布情况,以通过位图所包含的有效数据进行合并以及与位图匹配的数据块进行合并,从而有效地节约了数据回滚时的带宽资源,提高了备份效率,实现在不需要导出全量数据时能够生成全量备份点所包含的数据;同时,由于能够支持任一个备份点的删除操作,从而节约了本地设备及对端设备的磁盘存储空间;最后,通过发明还提高了对包含增量数据的各个备份点管理的灵活性,避免了在删除某个或者某些个删除备份点时错误地删除具有数据依赖关系的某个或者某些个备份点所对应的备份数据的丢失问题。

附图说明

图1为现有技术中对虚拟机的数据卷首次创建快照并将快照保存至云端存储的示意图;

图2为将图1中的数据卷执行第二次备份操作创建的数据卷的快照并将两次备份操作所形成的快照所形成的增量备份数据保存至云端存储的示意图;

图3为本发明使用副本执行备份的方法的整体流程图;

图4为步骤s2执行完毕后的详细流程图;

图5为本发明中对虚拟机的在备份过程中所形成的快照数据按照定长进行划分的示意图;

图6为使用位图与数据块及对应的块号(chunk_number)组合成数据包并上传至存储空间(例如云端存储)的示意图;

图7为本发明中从存储空间(例如云端存储)下载数据包时按照位图的有效数据进行数据切割,并将有效数据回滚至虚拟机的数据卷中的示意图;

图8为从存储空间中下载备份点元数据以确定bitmap1,并与后继备份所对应的元数据进行合并后上传至存储空间的示意图;

图9为存储空间与运行虚拟机的私有云或者本地设备连接的拓扑图;

图10为虚拟机在时间轴的任意三个连续的时间点(t1、t2及t3)执行三次增量备份操作的示意图;

图11为本发明一种系统的拓扑图;

图12为本发明一种计算机可读介质的拓扑图。

具体实施方式

下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。

在详细阐述本发明各实施例之前,对说明书中出现的关键技术术语的汉语予以简要阐述。

术语“位图”:bitmap(位图)是一种数据结构,代表了有限域中的稠集(denseset),每一个元素至少出现一次,没有其他的数据和元素相关联。在索引,数据压缩,海量数据处理等方面有广泛应用。bitmap就是用一个bit位来标记某个元素对应的value,而key即是这个元素。由于采bit为单位来存储数据,可以极大的节省存储空间。

术语“增量备份”:增量备份(incrementalbackup)是一种备份类型,是指在上一次全量备份或者上一次增量备份后,以后的每一次的备份操作中只备份与前一次备份操作相比增加或者修改的文件/数据,并具有备份速度快,磁盘空间占用少的优点。

术语“全量备份”:全量备份(fullbackup)每隔一段时间对系统进行一次完全备份,这样在备份时间间隔内一旦系统发生故障导致数据丢失,就可以用上一次的备份数据恢复到上一次备份时的情况,并具有备份数据完整,但备份速度较慢,磁盘空间占用多的缺点。

术语“本地设备”与术语“对端设备”互为相对概念,最为典型的实例例如,将运行虚拟机的设备(逻辑空间)被认定为本地设备,并将部署并形成公有云存储空间的设备(逻辑空间)被认定为对端设备。本地设备包括但不限于智能手机、个人电脑、提供虚拟机访问的电子设备或者在物理计算机通过虚拟化技术启动并部署的虚拟机(例如vmware虚拟机)。对端设备包括但不限于物理形态的计算机、服务器、集群服务器或者数据中心等。本地设备与对端设备均可被视为物理设备或者虚拟设备。同时,图6-图8中的“云端存储”逻辑上位于对端设备,图6-图8保存数据卷(volume)的“存储”逻辑上位于本地设备。

实施例一:

参图3至图10所示出的本发明一种虚拟机增量数据备份方法的实施例。

如图3所示,该虚拟机增量数据备份方法,包括以下步骤s1至步骤s2。

首先,执行步骤s1、对虚拟机的数据卷(volume)创建快照,对快照按照定长分割所形成的数据块予以标记,创建位图并将所述位图与标记后的数据块封装为数据包,将数据包上传至存储空间。虚拟机部署并运行于本地设备中。本地设备形成一个或者多个支持虚拟机部署并运行的存储系统(即图6-图8中的“存储”)。

对虚拟机的数据卷创建快照中的数据卷为虚拟机执行一个或者多个应用程序和/或用户请求,且基于时间轴(参图10)所形成的增量数据。虚拟机运行于私有云或者本地设备中。对快照进行定长分割的分割粒度为4kb的正整数倍且不超过32kb,并对快照按照分割粒度所形成的数据块从0开始以向上递增方式对数据块予以标记,以标记块号(chunk_number);其中,创建位图并将所述位图与标记后的数据块封装形成的数据包不超过1mb,并以32kb为封装单元对快照进行定长分割。1mb的数据包可以包含32个数据块,每一个数据块对应一个元数据。262144b的备份数据仅需要1b的存储空间(由元数据所消耗),从而节约了云端存储或者对端设备的磁盘存储空间需求。这对于私有云虚拟机的磁盘数据向公有云进行迁移及备份具有极大的技术优势,因为这能够极大地降低形成公有云的存储系统的对备份数据的存储开销及数据备份时所本地设备与对端设备(或者云端存储)之间所消耗的网络带宽资源。块号(chunk_number)是数据块在磁盘中的编号。在linux操作系统中,raid操作采用条带化(stripe)的方式,chunk在对应磁盘上的物理stripe号为:stripe=chunk_number/data_disks。由此,可以计算出逻辑扇区号在目标磁盘上的编号。

参图5及图6所示,在本实施例中,对快照从offset=0开始按照定长分割所形成的数据块予以标记,按照分割粒度而划分形成的数据块从0开始向上递增方式标记块号。连续选取若干个数据块(每个数据块大小为1mb),同时创建一个位图(bitmap)用于记录这些数据块上所保存的数据为有效数据还是无效数据。位图中标记为1表示在数据块中所对应的数据为有效数据,标记为0表示在数据块中所对应的数据为无效数据。最后将位图与数据块(备注:可能包含有效数据,也可能包含无效数据)与对应的块号组成呈一个完整的数据包,通过网络上传数据对象至云端存储(存储空间的下位概念),从而完成某一个具体的备份点所对应的备份数据的上传云端存储的上传操作过程。在本实施例中,“数据对象”与“数据包”具等同含义。数据包上传至云端存储所依赖的网络类型可为现有技术中任一种有线网络和/或无线网络通信协议,鉴于其并非本申请发明点,故不予展开阐述。

然后,执行步骤s2、确定设定备份点,并从存储空间仅下载与设定备份点匹配的元数据所对应的位图及标记,从存储空间下载数据包并按照位图所包含的有效数据对数据包进行数据切割,并按照位图中所包含的有效数据回滚至与设定备份点匹配的虚拟机的数据卷。结合图9所示,在本实施例中,存储空间运行于公有云或者对端设备中。具体的,从存储空间下载的数据包包含描述元数据的位图,以及与所述位图匹配的数据块。有效数据为数据块对应位图中标为1的数据,并将数据块对应位图中标为1的数据认定为无效数据。

参图7所示,在实施例中,从云端存储分别下载元数据及数据对象,数据对象包含与元数据个数匹配的数据块。设定备份点是图10中的备份点a或者备份点b或者备份点c或者备份点c以后的根据预配置的备份周期(例如每间隔1小时执行一次增量备份)并形成增量数据的下一个备份点(未示出)。虚拟机的各种操作基于虚拟文件系统(virtualfilesystem,vfs),虚拟机的各种操作/进程均基于vfs实现,以适应各种底层不同的文件系统(备注:针对内核空间)。从云端存储分别下载元数据及数据对象的操作可根据时间轴各个备份点的id予以确定,由于位图的数据体积非常小并能够通过位图准确地反映各个备份点的数据依赖关系。在本实施例中,根据块号可快速地定位至所需数据块,并在数据回滚时直接下载所需的数据块,因此不需要将全部数据块从云端存储中下载,从而解决了本地设备与对端设备(或者云端存储)之间在数据回滚时所消耗的网络带宽资源。

结合图4所示,该虚拟机增量数据备份方法在步骤s2后还包括:

判断删除备份点之后是否存在后继备份点。在本实施例中,只有确定后续后继备份点才能作为删除该删除备份点的前置条件,从而确保后续的删除被选定的删除备份点这一操作的可行性与合理性,防止最后一个备份点被错误的删除。

若不存在后继备份点,在存储空间中删除所述删除备份点之前全部备份点所对应的数据包。同时,如果不存在后继备份点,则不想要执行后继的从存储空间中下载删除备份点的元数据所对应的位图与后继备份点的元数据所对应的位图进行合并的合并操作。

若存在后继备份点,从存储空间中下载删除备份点的元数据所对应的位图与后继备份点的元数据所对应的位图进行合并,并将合并所形成的位图所关联的数据卷上传至存储空间。从存储空间中下载删除备份点的元数据所对应的位图与后继备份点的元数据所对应的位图进行合并具体为:对从存储空间中下载删除备份点的元数据所对应的位图与后继备份点的元数据所对应的位图中所包含的有效数据进行合并,以及与位图匹配的数据块进行合并。

在本实施例中,通过对存在后继备份点之前的备份点并将其选定为删除备份点的操作,可以释放云端存储或者本地设备的存储空间。

后继备份点是虚拟机根据预配置的备份周期并形成增量数据的任一个备份点。参图8所示,前述合并操作具体为从云端存储下载了位图1(bitmap1)及与位图1所对应的数据块,以及位图2(bitmap2)及与位图2所对应的数据块。位图1所对应的数据块是前置备份点的备份数据,位图2所对应的数据块是后继备份点的备份数据。从存储空间中下载删除备份点的元数据所对应的位图与后继备份点的元数据所对应的位图进行合并具体如下所述。

参图8所示,位图2的元数据分别为“1”、“0”、“1”、“1”,位图2的前述元数据所对应的数据对象分别是“1”、“x”、“3”、“4”。位图1的元数据分别为“0”、“1”、“1”、“0”,位图1的前述元数据所对应的数据对象分别是“x”、“2’”、“3’”、“x”。合并后的位图为“1”、“1”、“1”、“1”,合并后的数据块为“1”、“2’”、“3”、“4”,因为位图2中第二个元数据为无效数据,需要将位图1中第二个元数据为“1”所对应的数据对象“2’”进行替换;同时,由于图2中第三个、第四个元数据为“1”(即有效数据),因此位图2中第三个、第四个元数据所对应的数据块不需要替换为位图1中第三个、第四个元数据所对应的数据块所对应的“3’”、“x”。由此最终合并形成了位图中的元数据均为“1”以及元数据所对应的数据块分别为“1”、“2’”、“3”、“4”所共同组成的合并后数据,并最终上传至云端存储。

参图8所示,在实施例中,通过对比位图来实现数据块合并的方式,来解决由于增量备份点间存在的数据依赖关系导致的无法直接删除备份数据的问题,从而实现可以删除任意备份点,从而增加了增量备份点管理的灵活性,避免了由于相邻的备份点所形成的增量数据的依赖关系所导致的在删除备份点需要额外删除其他依赖数据的问题,从而降低了备份数据损失的风险与概率,并提高了对包含增量数据的各个备份点管理的灵活性,避免了在删除某个或者某些个删除备份点时错误地删除具有数据依赖关系的某个或者某些个备份点所对应的备份数据的丢失问题。

在本实施例中,删除备份点由应用程序和/或用户以随机方式指定。以随机方式指定删除备份点,能够实现对任意一个备份点的删除操作(备注:最后一个备份点除外),同时还解决了现有技术中基于连续的增量备份事件所形成的多个备份点中的任意一个备份点被删除后,被删除的备份点之后的所有备份点所对应的备份数据均被删除的技术问题(备注:各个备份点均是指仅包含增量数据的备份点)。删除备份点是指需要被执行删除的备份点。

参图10所示,沿时间轴(虚线箭头方向)的t1时刻、t2时刻及t3时刻分别进行了三次虚拟机数据备份事件,从而分别形成了备份点a、备份点b及备份点c。备份点b是备份点a的后继备份点,备份点a是备份点b的前置备份点。备份点b中的数据依赖备份点a的虚拟机数据,且备份点b包含了备份点a的全部虚拟机数据及增量数据。备份点b与备份点c的关系参备份点a与备份点b之间的关系。因此,随着时间轴的推移,在后的备份点均向前依赖。备份点a~备份点c的备份频率可设置为每个1小时(即预配置的备份周期)执行一次虚拟机数据盘(或者系统盘)的备份操作。

尤其的,本实施例所示出方法所涉及的技术场景面可面向私有云或者本地设备中的虚拟机,且随着虚拟机数据盘中数据重要性的高低及业务容灾备份的需要,也可对关键数据采用cdp模式(continuousdataprotection,连续数据保护)予以快速恢复,cdp模式的具体实现过程,参申请人已经申请且授权公告号为cn106354582b的发明专利所示,在此不再赘述。

同时,在本实施例中被创建的位图临时保存至运行于私有云或者本地设备的临时服务中,并在合并所形成的数据卷上传至存储空间之后删除临时服务中的位图,从而释放被创建的位图所占用的磁盘空间;其中,临时服务包括临时应用实例、临时服务线程、临时安装并可卸载的软件或者临时数据库。

在实施例中,基于预配置的备份周期所形成的各个备份点与时间轴演进保持正向关系,即后继备份点相对在先的前置备份点均形成增量数据,并在每个备份点包含虚拟机的数据盘的增量数据。位图可以准确地描述数据盘基于增量数据所对应的数据分布情况。假设,虚拟机的数据盘为1gb,那么offset可以从0~1073741824,对快照从offset=0开始按照定长分割。按照每32768b的分割粒度划分这个数据盘,可以得到1073741824/32768=32768个数据块。每个数据块使用一个比特位(bit)来描述数据是否存在。0表示没有数据(即无效数据),1表示存在数据(即有效数据)。32768个数据块形成32768个比特位。把这些比特位组合以形位图。因此通过查询位图,就可以准确地了解数据盘每个数据块中是否存在无效数据和/或有效数据。

通过本实施例所示出的一种虚拟机增量数据备份方法,通过位图的合并实现数据块的合并,并通过数据体积非常小的位图表征基于时间轴所形成的多个备份点所形成的增量数据的分布情况,以通过位图所包含的有效数据进行合并以及与位图匹配的数据块进行合并,从而有效地节约了数据回滚时所需要消耗的带宽资源,提高了对虚拟机的数据盘的数据备份效率,实现在不需要导出全量数据时能够生成全量备份点所包含的数据;同时,由于能够支持任一个备份点的删除操作,从而节约了本地设备及对端设备的磁盘存储空间的存储开销。

实施例二:

结合图11所示,基于实施例一所揭示的一种虚拟机增量数据备份方法的技术方案,本实施例还揭示了一种系统500。

一种系统500,包括:

一个或者多个处理器51;和

存储装置52,存储装置52耦接到所述一个或者多个处理器51;

其中,存储装置52存储被一个或者多个处理器执行的计算机程序指令,所述计算机程序指令执行如实施例一所述的虚拟机增量数据备份方法中的步骤。具体的,存储装置52可包含一个或者多个存储器,即存储器521~存储器52i,参数i取大于或者等于2的正整数。存储装置52与一个或者多个处理器51耦接至系统总线53,以执行数据/信号的通信。

系统500可视为一种数据中心、物理机集群、独立的一台物理机、可穿戴电子设备或者云服务器。前述处理器51可为物理态或者虚拟态的处理器(例如实体cpu或者vcpu),前述存储装置52可为物理态或者虚拟态的存储装置(例如nand存储装置或者虚拟磁盘)。

本实施例与实施例一中具有相同部分的技术方案,参实施例一所述,在此不再赘述。

实施例三:

结合图12所示,本实施例揭示了一种计算机可读介质900。

该计算机可读介质900可整体或者部分配置于物理形态的计算机、服务器、集群服务器或者数据中心中。

在本实施例中,一种计算机可读介质900,该计算机可读介质900中存储有计算机程序指令901,计算机程序指令901被一处理器读902读取并运行时,执行如前述任一实施例所包含的虚拟机增量数据备份方法的步骤。可选地,计算机可读介质900可配置为服务器,且该服务器运行于构建私有云、混合云或者公有云的物理设备上。

同时,该计算机可读介质900还可被配置为随机存取存储装置(randomaccessmemory,ram),只读存储装置(readonlymemory,rom),可编程只读存储装置(programmableread-onlymemory,prom),可擦除只读存储装置(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储装置(electricerasableprogrammableread-onlymemory,eeprom)等。该计算机可读介质900用于存储程序,处理器902在接收到执行指令后,以执行实施例一所揭示的虚拟机增量数据备份方法中的步骤。

同时,本实施例所揭示的处理器902可能是一种集成电路芯片,具有信号的处理能力。该处理器902可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规处理器。本实施例与实施例一和/或实施例二中具有相同部分的技术方案,参实施例一和/或实施例二所述,在此不再赘述。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1