一种基于云平台数据中心的虚拟机备份方法及装置与流程

文档序号:23003255发布日期:2020-11-20 11:51阅读:107来源:国知局
本文涉及但不限于计算机
技术领域
:,尤指一种基于云平台数据中心的虚拟机备份方法及装置。
背景技术
::目前,较多的数据中心采用统一的云平台部署各类业务虚拟机,达到资源聚集、建设集中、节约资源、部署快捷、维护方便的目的。各类业务虚拟机可以运行在集中的云平台数据中心上。在这种场景下,如果云平台数据中心遭受到灾难或者云平台数据中心上运行的虚拟机遭到破坏,需要通过恢复虚拟机来恢复中断的业务。技术实现要素:本申请提供了一种基于云平台数据中心的虚拟机备份方法及装置,可以支持在云平台数据中心的各种故障场景下实现快速恢复虚拟机。一方面,本申请提供一种基于云平台数据中心的虚拟机备份方法,包括:基于云平台数据中心的虚拟机的磁盘镜像,创建内部快照;基于所述内部快照,获取所述虚拟机的磁盘备份数据。另一方面,本申请提供一种基于云平台数据中心的虚拟机备份装置,包括:内部快照创建模块,适于基于云平台数据中心的虚拟机的磁盘镜像,创建内部快照;第一备份模块,适于基于所述内部快照,获取所述虚拟机的磁盘备份数据。另一方面,本申请提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被执行时实现上述基于云平台数据中心的虚拟机备份方法的步骤。在本申请中,利用基于云平台数据中心的虚拟机的磁盘镜像创建的内部快照,获取虚拟机的磁盘备份数据,从而在云平台数据中心的各种故障场景下,支持快速恢复虚拟机,达到容灾目的。本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。图1为一种云平台数据中心的简单架构示例图;图2为通过外部快照对云平台数据中心的虚拟机进行全量备份的过程示意图;图3为通过外部快照对云平台数据中心的虚拟机进行全量备份的流程图;图4为通过外部快照对云平台数据中心的虚拟机进行增量备份的过程示意图;图5为通过外部快照对云平台数据中心的虚拟机进行增量备份的流程图;图6为本申请实施例提供的基于云平台数据中心的虚拟机备份方法的流程图;图7为本申请一示例性实施例中通过内部快照对云平台数据中心的虚拟机进行全量和增量备份的过程示意图;图8为本申请一示例性实施例中通过内部快照对云平台数据中心的虚拟机进行全量和增量备份的流程图;图9为本申请示例性实施例中内部快照的创建过程示意图;图10为本申请一示例性实施例提供的基于云平台数据中心的虚拟机备份方法的应用示例图;图11为本申请实施例提供的基于云平台数据中心的虚拟机备份装置的示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。图1为一种云平台数据中心的简单架构示例图。如图1所示,在云平台数据中心,可以基于服务器集群部署多个虚拟机(vm,virtualmachine),比如,采用kvm(kernel-basedvirtualmachine)虚拟化技术部署虚拟机。其中,可以在一台服务器上部署一个或多个虚拟机,且多台服务器可以共享存储设备提供的存储资源。本申请对于云平台数据中心的架构和部署方式并不限定。需要说明的是,本申请以对kvm虚拟化场景下的虚拟机进行备份为例进行说明。目前,针对云平台数据中心的虚拟机,大多采用差分磁盘镜像的外部快照方式来实现对虚拟机某一时刻磁盘数据的全量和增量备份。下面基于图2至图5说明通过外部快照方式对云平台数据中心的虚拟机进行全量备份和增量备份的过程。其中,节点表示虚拟机的磁盘数据所在的物理存储文件。图2为通过外部快照对云平台数据中心的虚拟机进行全量备份的过程示意图;图3为通过外部快照对云平台数据中心的虚拟机进行全量备份的流程图。在图2和图3中仅以kvm虚拟化场景下的一个虚拟机为例进行说明。在差分磁盘场景下,多个虚拟机可以共享一个父节点,且每个虚拟机对应各自的子节点,子节点均指向该父节点。如图2和图3所示,通过外部快照对云平台数据中心的虚拟机进行全量备份的过程包括以下操作:s11、创建虚拟机的全量备份文件节点;此时,该全量备份文件节点与虚拟机原磁盘之间没有关联;s12、创建虚拟机现在运行的叶子节点(即孙子节点);此时,该孙子节点与虚拟机原磁盘之间没有关联;s13、修改孙子节点的父节点为虚拟机原运行的节点(即子节点);此时,孙子节点与子节点之间建立关联;s14、创建快照使得虚拟机运行在孙子节点上;s15、将虚拟机原磁盘数据(对应父节点和子节点)合并备份至全量备份文件节点中。由此可见,在使用差分磁盘的外部快照方式进行全量备份时,需要对虚机的磁盘文件链结构进行改动,改变了虚拟机的文件链结构。图4为通过外部快照对云平台数据中心的虚拟机进行增量备份的过程示意图;图5为通过外部快照对云平台数据中心的虚拟机进行增量备份的流程图。在图4和图5中仅以kvm虚拟化场景下的一个虚拟机为例进行说明。如图4和图5所示,通过外部快照对云平台数据中心的虚拟机进行增量备份的过程包括以下操作:s21、创建虚拟机备份使用的快照节点;此时,该快照节点与虚拟机原磁盘之间没有关联;s22、创建虚拟机现在运行的叶子节点(即孙子节点);此时,该孙子节点与虚拟机原磁盘之间没有关联;s23、修改孙子节点的父节点为虚拟机原运行的节点(即子节点);此时,该孙子节点与子节点之间建立关联;s24、修改虚拟机备份使用的快照节点的父节点为虚拟机原运行的节点(即子节点);此时,该快照节点与子节点之间建立关联;s25、创建快照使得虚拟机运行于孙子节点上。此时,父节点、子节点以及虚拟机现在运行的孙子节点对应于虚拟机的新磁盘,父节点、子节点以及该快照节点对应于虚拟机在该快照节点对应时间点的备份磁盘。在快照节点对应时间点之后的一段时长内,虚拟机的磁盘增量数据会存储在虚拟机现在运行的孙子节点上。由此可见,采用外部快照进行增量备份的过程利用了虚拟机磁盘文件本身作为增量数据的存储容器,使得增量备份数据与虚拟机原磁盘文件之间的耦合度较高,会加大异地容灾备份的可操作性难度。而且,采用外部快照方式进行增量备份同样需要对虚拟机的磁盘文件链结构进行改动,改变了虚拟机的文件链结构。在创建外部快照时,快照被保存在单独一个qcow2文件中,且创建快照时间点之后的数据被记录到一个新的qcow2文件中,原镜像文件成为新的qcow2文件的备份文件(backingfile),也就是父节点(只读),在创建多个快照后,这些文件形成一个文件链。本申请实施例提供一种基于云平台数据中心的虚拟机备份方法及装置,在虚拟化的云平台数据中心的各种故障场景下(比如,虚拟机遭受破坏等),基于虚拟机的磁盘镜像创建的内部快照进行容灾备份,从而支持在云平台数据中心的各种故障场景下快速恢复虚拟机,达到容灾目的。而且,本申请实施例基于内部快照实现虚拟机备份,可以不改变原虚拟机的磁盘文件链结构,保持原虚拟机的相对稳定的结构,且备份导出的数据独立于虚拟机磁盘镜像本身,便于导出从而实现容灾。图6为本申请实施例提供的基于云平台数据中心的虚拟机备份方法的流程图。如图6所示,本实施例提供的虚拟机备份方法,包括:s601、基于云平台数据中心的虚拟机的磁盘镜像,创建内部快照;s602、基于内部快照,获取虚拟机的磁盘备份数据。在本申请实施例中,针对kvm虚拟化场景下的虚拟机,通过创建内部快照,可以将快照及后续变动都保存在原来的qcow2文件(例如,相当于图2和图4中的子节点,其可以为qcow2格式的文件节点)内。在一示例性实施例中,s602可以包括以下至少一项:基于任一个内部快照,获取虚拟机在该内部快照对应时间点的磁盘全量备份数据;基于任两个内部快照,获取虚拟机在这两个内部快照分别对应的时间点之间的磁盘增量备份数据。本示例性实施例中,可以通过在虚拟机磁盘内部设置不同的快照点(快照对应的时间点),利用快照点获取对应的磁盘全量备份数据以及任两个快照点之间的磁盘增量备份数据,从而实现对于云平台数据中心上的虚拟机的磁盘数据的全量备份以及增量备份。而且,通过在云平台数据中心上备份虚拟机的磁盘数据,可以支持在虚拟机遇到不可修复的故障时,通过备份的磁盘数据将虚拟机恢复到某一正常运行时刻的状态。在一示例性实施例中,在s602之后,本实施例的方法还可以包括:导出磁盘备份数据至以下至少一项:虚拟机所在云平台数据中心之外的存储设备、异地云平台数据中心。在本示例性实施例中,通过将磁盘备份数据导出到云平台数据中心之外的存储设备,可以支持在云平台数据中心内的存储设备受损导致虚拟机故障时,从外部的存储设备取回相应的磁盘备份数据,进行虚拟机恢复。通过将磁盘备份数据导出至异地云平台数据中心,可以支持在本地云平台数据中心遇到灾难受损时,在异地云平台数据中心恢复虚拟机继续运行。在一示例性实施例中,本实施例的方法还可以包括以下至少一项:在虚拟机所在云平台数据中心备份虚拟机的管理数据;在异地云平台数据中心备份虚拟机的管理数据。其中,虚拟机的管理数据可以包括虚拟机的规格参数,比如,虚拟机的名称、cpu核数、内存大小、显卡配置等信息。虚拟机的管理数据可以由云平台数据中心的管理设备进行存储。云平台数据中心内的物理主机(比如,服务器)可以根据虚拟机的管理数据,生成虚拟机配置文件,进而基于虚拟机配置文件,启动或重建相应的虚拟机。本示例性实施例中,基于备份的虚拟机的管理数据,可以支持在云平台数据中心的各种故障场景下的虚拟机恢复操作。图7为本申请一示例性实施例中的通过内部快照对云平台数据中心的虚拟机进行全量和增量备份的过程示意图;图8为本申请一示例性实施例中的通过内部快照对云平台数据中心的虚拟机进行全量和增量备份的流程图。在图7和图8中仅以kvm虚拟化场景下的一个虚拟机为例进行说明,且节点表示虚拟机的磁盘数据所在的物理存储文件(qcow2文件)。其中,qcow2文件可以使用l1表、l2表和簇(cluster)表来管理数据。cluster表中每个条目存放数据,l2表的每个条目存放cluster的地址,l1表的每个条目存放l2表的起始地址。如图7和图8所示,本实施例提供的通过内部快照对云平台数据中心的虚拟机进行全量和增量备份的过程包括以下操作:s31、基于虚拟机的差分磁盘镜像,创建内部快照1;其中,如图9所示,内部快照的创建过程如下:一、申请新的cluster并拷贝原l1表(oldl1table),需要注意的是,如图9所示的拷贝得到l1’表保存原l1表的内容;二、在l1表内修改l2表偏移(offset)值,其中,快照后将使用新的l2表进行写入时复制(cow,copyonwrite),原l2表不会被修改;三、在l2表内修改数据偏移(dataoffset)值,其中,快照后将使用新的cluster进行写入时复制,原数据簇不会被修改;四、更新所有已经分配簇的再计数(refcount)值,即原簇的再计数值全部加1;五、新分配连续n个簇,将所有快照(snapshot)信息一起写入,其中,快照信息包括头部(header)、额外数据(extradata)、标识(id)及名称(name);需要注意的是,多个snapshot的信息是保存在连续的cluster中的;六、更新新的snapshotoffset地址到qcow2文件头(header)中,以便于找到所有的快照。s32、基于内部快照1获取虚拟机在内部快照1对应时间点的磁盘全量备份数据;其中,可以通过寻找原来的l1表(比如图9中的l1’表),获取原来快照时刻原来存储数据的地址空间,然后,获取相应的磁盘数据。s33、基于虚拟机的差分磁盘镜像,创建内部快照2;其中,关于内部快照2的创建过程可以参照图9所示,故于此不再赘述。s34、基于内部快照1和内部快照2,获取内部快照2与内部快照1之间的磁盘增量备份数据(即内部快照2对应的时间点与内部快照1对应的时间点之间虚拟机的磁盘增量备份数据)。其中,可以根据内部快照1获取内部快照1对应时间点的l1表,从而获取内部快照1对应时间点的存储数据的地址空间,然后提取该地址空间中的数据即可获取内部快照2与内部快照1之间的增量数据,因为一旦内部快照2建立之后,内部快照1对应的存储数据空间中的数据将不会被改动,新的数据将被写入内部快照2对应的l1表对应的存储数据的地址空间中。在本示例性实施例中,基于任一个内部快照,可以获取该内部快照对应时间点的磁盘全量备份数据;基于任两个内部快照,可以获取这两个内部快照对应的时间点之间的磁盘增量备份数据。通过图2至图5与图7和图8的对比可知,在本示例性实施例中,虚拟机的磁盘数据进行全量以及增量备份的操作不需要改变原虚拟机的磁盘文件链的结构;而且,虚拟机的全量以及增量的磁盘备份数据直接独立于构建虚拟机本身的磁盘镜像文件而存在,方便进行磁盘备份数据的导出。图10为本申请一示例性实施例提供的虚拟机备份方法的应用示例图。本实施例的应用场景为大型数据中心的虚拟化云平台环境中。如图10所示,本示例性实施例提供的虚拟机备份方法包括:s41、针对云平台数据中心的虚拟机的磁盘镜像文件进行内部快照操作,创建第一内部快照;s42、基于虚拟机的第一内部快照,获取虚拟机的磁盘全量备份数据;s43、将磁盘全量备份数据的数据镜像以及虚拟机的管理数据导出至异地云平台数据中心的存储库中进行备份,并在本地云平台数据中心创建虚拟机的管理数据的备份;s44、针对虚拟机的磁盘镜像文件进行内部快照操作,创建第二内部快照;s45、针对虚拟机的第一内部快照和第二内部快照,获取虚拟机的磁盘增量备份数据;s46、将磁盘增量备份数据的数据镜像以及虚拟机的管理数据导出至异地云平台数据中心的存储库中进行备份,并在本地云平台数据中心创建虚拟机的管理数据的备份。需要说明的是,在实际应用中,可以根据需求,定期触发执行s44至s46,即周期性获取磁盘增量备份数据并进行导出,或者,可以人为触发执行s44至s46,即可以在设定时间点获取磁盘增量备份数据并进行导出。然而,本申请对此并不限定。在本示例性实施例中,具备虚拟机的磁盘备份数据和管理数据的备份后可以在遇到如下场景时进行虚拟机的恢复:当本地云平台数据中心的虚拟机出现异常,可以使用本地的磁盘备份数据和本地云平台数据中心备份的管理数据对虚拟机进行恢复;当本地云平台数据中心遇到灾难和破坏,可以使用导出到异地云平台数据中心的磁盘备份数据和虚拟机的管理数据,将虚拟机恢复至异地云平台数据中心。本申请实施例可以支持在云平台数据中心对业务虚拟机进行容灾备份,通过对虚拟机进行基于磁盘内部快照的全量备份以及增量备份,在不改变虚拟机原本磁盘文件链结构的基础上实现对于虚拟机磁盘镜像数据的全量备份以及增量备份,从而能够大大降低异地容灾备份的操作复杂性,对原虚拟机的影响也大大降低。图11为本申请实施例提供的基于云平台数据中心的虚拟机备份装置的示意图。如图11所示,本实施例提供的虚拟机备份装置可以包括:内部快照创建模块501,适于基于云平台数据中心的虚拟机的磁盘镜像,创建内部快照;第一备份模块502,适于基于内部快照,获取虚拟机的磁盘备份数据。在一示例性实施例中,第一备份模块502可以适于通过以下至少之一方式基于内部快照,获取虚拟机的磁盘备份数据:基于任一个内部快照,获取虚拟机在该内部快照对应时间点的磁盘全量备份数据;基于任两个内部快照,获取虚拟机在这两个内部快照分别对应的时间点之间的磁盘增量备份数据。在一示例性实施例中,基于图11所示的虚拟机备份装置,本实施例的装置还可以包括:导出模块,适于在第一备份模块获取虚拟机的磁盘备份数据之后,导出磁盘备份数据至以下至少一项:虚拟机所在云平台数据中心之外的存储设备、异地云平台数据中心。在一示例性实施例中,基于图11所述的虚拟机备份装置,本实施例的装置还可以包括:第二备份模块,适于执行以下至少之一:在虚拟机所在云平台数据中心备份虚拟机的管理数据;在异地云平台数据中心备份虚拟机的管理数据。关于本实施例提供的装置的相关说明可以参照上述方法实施例的描述,故于此不再赘述。此外,本申请实施例还提供一种计算机可读存储介质,存储有计算机程序,该计算机程序被执行时实现上述的虚拟机备份方法,比如,图6、图8或图10所示的步骤。本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1