一种使用存储快照备份虚拟机的系统及方法与流程

文档序号:25480942发布日期:2021-06-15 21:40阅读:145来源:国知局
一种使用存储快照备份虚拟机的系统及方法与流程

本发明涉及计算机容灾备份技术领域,特别是涉及一种使用存储快照备份虚拟机的系统及方法。



背景技术:

存储管理系统经过多年的发展,已经成为计算机基础设施中非常复杂的系统,其中涵盖了对数据处理的不同硬件及软件模块。在数据安全领域,尤其备份系统的设计和实现中,对如何结合软硬件不同的特点,实现可恢复数据,提出了更高的要求。数据丢失,损坏,对企业的的生存与发展都成为了致命的因素,因此,如何保障生产数据的安全,可恢复性,成为日益强烈的需求。

近年来,随着虚拟机技术的日趋成熟,为了使用虚拟机技术以更好地利用硬件资源,众多的应用系统被迁移至虚机环境运行。也由此将传统物理机备份要求拓展至虚拟机备份中。与此同时,即便传统物理机备份整个虚拟机宿主环境可以覆盖一部分虚机数据的备份,但无法做到对虚机的细粒度定制备份任务。为了解决这一系列备份要求,虚机宿主机系统(以下称hypervisor)提供快照功能,可以指定对某一个其管理的虚机(以下称guest)的存储设备进行cow(copyonwrite,写时复制)快照,备份软件通过读取快照数据,将数据复制到备份目标后,再删除快照,以此来完成整个备份任务。

目前,hypervisor快照生成和删除过程大致如下:

步骤一,hypervisor通知guest有快照请求。guest收到请求后,将运行在其上的应用程序设置静默状态,然后返回;

步骤二,hypervisor快照成功。

步骤三,hypervisor通知guest快照完成。guest随后通知应用程序退出静默状态。

步骤四,当guest有新的写io时,hypervisor分配空闲的存储空间,io数据写入新的空间,以此确保快照点数据不变化。

步骤五,当需要删除快照时,hypervisor将快照后的变化数据(也就是步骤四中新的存储空间数据)合并到原先的存储空间,这一合并过程会产生非生产业务io。

虽然,上述过程在一定程度上解决了虚机备份的细粒度要求,但由于快照作用于hypervisor系统,也就是通常的生产系统,cow快照势必增加了生产系统io延迟,以及占用生产系统的存储空间;另外,尤其在删除快照时,hypervisor为了合并快照内容,会产生大量非生产业务io,很容易对虚机系统产生卡顿现象。



技术实现要素:

为克服上述现有技术存在的不足,本发明之目的在于提供一种使用存储快照备份虚拟机的系统及方法,以通过存储阵列快照的方式结合hypervisor快照,最大程度地减少由后者引入的非生产io,使得虚机备份任务可以降低对虚机生产系统的影响。

为达上述目的,本发明提出一种使用存储快照备份虚拟机的系统,包括:

生产服务器,其上设有若干虚机,用于在接收到备份代理服务器的虚机备份任务请求时,通知相应的虚机进入静默状态,在接收到虚机完成应用程序静默的通知后,执行hypervisor快照,并在hypervisor快照完成后通知备份代理服务器hypervisor快照已完成;在接收到备份代理服务器发送的静默退出通知时,通知相应的虚机退出静默状态,并在接收到备份代理服务器发送的快照删除通知时,将创建的hypervisor快照删除,对hypervisor快照生成后的新数据进行合并操作;

外部存储阵列,用于将逻辑存储设备通过网络将其挂载到生产服务器上以便虚机将生产数据存放至该逻辑存储设备;在接收到备份代理服务器的快照通知时,对逻辑存储设备进行存储阵列级快照,并在完成快照后通知备份代理服务器;

备份代理服务器,用于向所述生成服务器发起虚机备份任务请求,于接收到所述生成服务器的hypervisor快照完成通知时,通知所述外部存储阵列对逻辑存储设备进行存储阵列级快照,并在接收到外部存储阵列对逻辑存储设备的存储阵列级快照完成通知后,发出退出静默通知至生产服务器以通知相应虚机退出静默,并在退出静默状态后,通知所述生产服务器删除hypervisor快照,同时,通知所述外部存储阵列将存储阵列快照挂载到备份代理服务器上,并读取挂载到备份代理服务器上的存储阵列快照数据,写入备份存储服务器的存储空间中;

备份存储服务器,接入所述备份代理服务器,以用于存储所述备份代理服务器写入的数据。

优选地,所述生产服务器向所述外部存储阵列申请存储空间,并将申请的存储空间提供给虚机,以便虚机将生产数据存放至该存储空间。

优选地,所述外部存储阵列于接收到所述生产服务器的存储空间申请请求时,根据请求为其分配逻辑存储设备,并通过san网络将其挂载到所述生产服务器上。

优选地,当相应的虚机接收到静默请求时,将运行在其上的业务应用软件置于静默状态,并在静默过程中,将缓存数据写入所述逻辑存储设备上。

优选地,当虚机接收到退出静默的通知时,通知运行在其上的应用程序退出静默,此后虚机对存储的改变数据由所述生产服务器统一写入所述逻辑存储设备的空闲区域,以确保hypervisor快照数据不变。

优选地,所述备份代理服务器通过san网络接入所述外部存储阵列。

优选地,所述虚机备份任务请求中包含需要备份的虚机信息。

优选地,所述存储阵列快照通过san或者nas的方式挂载到备份代理服务器

优选地,所述备份存储服务器通过san/nas方式接入到所述备份代理服务器。

为达到上述目的,本发明还提供一种使用存储快照备份虚拟机的方法,包括如下步骤:

步骤s1,备份代理服务器发送虚机备份任务请求;

步骤s2,于接收到备份代理服务器的虚机备份任务请求时,生产服务器通知相应的虚机进入静默状态,在接收到虚机完成应用程序静默的通知后,执行hypervisor快照,并在hypervisor快照完成后,通知备份代理服务器hypervisor快照已完成;

步骤s3,当备份代理服务器接收到生产服务器的hypervisor快照完成通知后,通知外部存储阵列对逻辑存储设备进行存储阵列级快照;

步骤s4,当备份代理服务器接收到外部存储阵列对逻辑存储设备的存储阵列级快照的完成通知后,发出退出静默通知至生产服务器,以通知相应的虚机退出静默,并发送快照删除通知以通知生产服务器删除hypervisor快照,同时,通知外部存储阵列将存储阵列快照挂载到备份代理服务器上,并读取挂载到备份代理服务器上的存储快照数据,写入备份存储服务器的存储空间中。

与现有技术相比,本发明一种使用存储快照备份虚拟机的系统及方法通过存储阵列快照结合hypervisor快照的应用,使得hypervisor快照从产生到销毁的时长,仅仅取决于做存储阵列快照所需要的时间,从而最大程度的减少由后者引入的非生产io,使得虚机备份任务可以降低对虚机生产系统的影响,一般来说,存储阵列快照都可以在秒级内完成,所以hypervisor快照的生存周期也最多在分钟级,因此本发明的hypervisor快照所产生的开销可以降低到最小程度。

附图说明

图1为本发明一种使用存储快照备份虚拟机的系统的系统架构图;

图2为本发明一种使用存储快照备份虚拟机的方法的步骤流程图;

图3为本发明实施例中使用存储快照备份虚拟机的整体部署架构图;

图4为本发明实施例中备份过程中各模块的时序图。

具体实施方式

以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。

图1为本发明一种使用存储快照备份虚拟机的系统的系统架构图。如图1所示,本发明一种使用存储快照备份虚拟机的系统,包括:

生产服务器10,即虚机宿主机系统hypervisor,其上设有若干虚机guest,生产服务器10向外部存储阵列20申请存储空间,并将申请存储空间提供给虚机guest,以便虚机guest将生产数据存放至该存储空间;于接收到备份代理服务器30的虚机备份任务请求时,通知相应的虚机guest系统进入静默状态,在接收到虚机guest完成应用程序静默的通知后,执行hypervisor快照,即hypervisor对其上的指定guest的快照,并在hypervisor快照完成后,通知备份代理服务器30快照完成,以便备份代理服务器30通知外部存储阵列20生成存储级快照,并在接收到备份代理服务器30的退出静默通知后,通知相应的虚机guest退出静默状态;当接收到备份代理服务器30发送的快照删除通知时,将创建的hypervisor快照删除,并对hypervisor快照生成后的新数据进行合并操作。

具体地,hypervisor按需向外部存储阵列20申请存储空间,当外部存储阵列20将分配的逻辑存储设备(lun)通过san网络挂载到hypervisor上后,hypervisor随后将该逻辑存储设备(lun)提供给虚机guest,虚机guest可将生产数据存放在该逻辑存储设备(lun)的空间上。

在本发明中,hypervisor分配给虚机guest使用的的存储空间大致分两种:一种是hypervisor自己管理的空间,一般由hypervisor的文件系统进行管理,常见的有vmfs(vmware使用);另一种是裸设备直通模式,也就是本发明中描述的,hypervirsor将存储的逻辑存储设备lun直接映射给虚机guest使用。这两种方式可以同时存在于一个虚机guest上,例如,虚机guest系统使用第一种方式,将系统数据放在hypervisor提供的文件系统上,guest将运行在其上的oracle数据存放在逻辑存储设备lun直通的存储上。在hypervisor快照生成后,往虚机guest系统上新写入的数据会被hypervisor管理写到hypervisor文件系统空余位置保存,而往oracle数据盘写的io依然覆盖写到逻辑存储设备lun上。

虚机备份任务请求由备份代理服务器30端的备份软件发起,所述虚机备份任务请求中包含需要备份的guest信息,当hypervisor接收到该包含需备份的guest信息的虚机备份任务请求时,随即通知相应的guest系统进入静默状态,当相应的虚机guest收到请求后,将运行在其上的业务应用软件(例如oracle,mysql等)置于静默状态,在这个过程中,应用软件确保应用层数据一致性要求,将缓存数据写入guest存储设备,所述缓存数据是指guest系统内应用程序内尚未写入存储设备的数据,一般这些数据都临时存储在内存中,静默后,应用程序则会立刻将这部分数据刷到存储上(若应用程序数据本身是存放在映射lun上,则将内存数据刷到lun上,如果应用程序的数据本来就是写到hypervisor提供的文件系统上,则将内存数据写入文件系统),并且guest在完成应用程序静默后,会通知hypervisor,此时逻辑存储设备(lun)上的数据将保持guest应用一致性;当hypervisor收到guest的静默完成通知后,立刻进行hypervisor层快照操作,并在完成hypervisor快照操作后,由备份代理服务器30通知外部存储阵列20生成存储级快照,在存储级快照完成后,备份代理服务器30则发送通知给hypervisor,以通知guest退出静默状态;当guest在收到退出静默的通知后,通知运行在其上的应用程序退出静默,并通知生产服务器退出静默完成,从而通知到备份代理服务器30,备份代理服务器30则发送快照删除通知;当接收到备份代理服务器30发送的快照删除通知时,则删除hypervisor快照,该hypervisor快照的删除操作包含将快照后的变更数据回写的操作,即所谓合并的非生产io。由于对逻辑存储设备(lun)的备份,如果不使用存储级快照的话,整个备份过程如果耗时很长,那么这段时间内(该段时间是指hypervisor快照生成到删除的时间段,这个时间段的写io需要被存放在额外的空间中,以保证快照数据不变化)新写入的数据(往虚机guest系统上新写入的数据)会被hypervisor存储到新的空间,这样当备份结束时,删除hypervisor快照会造成大量的非生产io,影响guest性能,而如果使用存储级快照备份源端的话,hypervisor快照存在的时间则非常短暂,删除时需要合并的io也就降低到最少。

需说明的是,在本发明中,备份代理服务器30发出的退出静默和删除hypervisor快照是两个不同的通知,一般是以两个不同的消息先后发送的,即先发出退出静默通知,然后再发送删除快照通知,先发出退出静默通知是因为静默期应该尽可能的短,不宜太长,否则会影响业务进行,而是否需要删除hypervisor的快照其实是视情况而定的,如果备份任务中,需要备份的数据不仅仅包含逻辑存储设备lun,也包含了hypervisor文件系统提供的存储数据,那么则需要使用hypervisor快照来完成备份任务后,才能将其删除,由于本发明中的备份是针对逻辑存储设备lun的数据进行,不牵涉到hypervisor快照的使用,所以可以在静默退出后立刻删除。

外部存储阵列20,于接收到生产服务器10的存储空间申请请求时,根据请求为其分配逻辑存储设备(lun),并通过网络将其挂载到生产服务器10上;在接收到备份代理服务器30的快照通知时,对逻辑存储设备(lun)进行存储阵列级快照,并在完成存储级快照后通知备份代理服务器30

在本发明具体实施例中,外部存储阵列20提供存储级快照功能,可以对逻辑存储设备(lun)提供存储级快照。一方面,当接收到存储空间申请请求时,为其分配逻辑存储设备,外部存储阵列20通过san(storageareanetwork,存储区域网络)方式,将lun(logicalunitnumber,逻辑单元号)提供给生产服务器10,即hypervisor,另一方面,备份代理服务器30也通过san(storageareanetwork,存储区域网络)方式接入此外部存储阵列20,当接收到备份代理服务器30的快照通知时,则对逻辑存储设备(lun)进行存储阵列级快照。

备份代理服务器30,其上运行备份软件,用于向生成服务器10发起虚机备份任务,即发送虚机备份任务请求,于接收到生成服务器10的hypervisor快照完成通知时,通知外部存储阵列20对逻辑存储设备(lun)进行存储阵列级快照,并在接收到外部存储阵列20完成对逻辑存储设备(lun)的存储阵列级快照通知后,通知生产服务器10通知相应的虚机guest退出静默状态,并在虚机guest退出静默状态后,通知生产服务器10删除hypervisor快照,同时,通知外部存储阵列30将存储阵列快照挂载到备份代理服务器30上,并读取挂载到备份代理服务器上的存储快照数据,写入备份存储服务器的存储空间中。

具体地,备份代理服务器30通过网络和生产服务器hypervisor以及外部存储阵列连接,其上运行备份软件,虚机guest备份任务则由备份软件发起,备份软件通过虚机guest备份任务请求将需要备份的guest信息发送给生产服务器hypervisor,当备份代理服务器30的备份软件收到生产服务器hypervisor的快照完成通知时,通知外部存储阵列系统,对逻辑存储设备(lun)进行存储阵列级快照,该外部存储阵列在完成对lun快照后会通知备份软件,备份软件在收到存储阵列快照成功后,通知生产服务器hypervisor,以通知相应的虚机guest退出静默状态,并在虚机guest退出静默状态后,通知hypervisor将刚才创建的hypervisor快照删除,hypervisor随后对快照生成后的新数据进行合并操作,与此同时,备份代理服务器30的备份软件通知外部存储阵列,将存储阵列快照通过san或者nas的方式挂载到备份代理服务器30上,备份软件随后读取挂载到备份代理服务器上的存储阵列快照数据,写入备份存储服务器40的存储空间中。

备份存储服务器40,接入到备份代理服务器30,以用于存储备份代理服务器30根据存储阵列快照数据写入的数据。在本发明具体实施例中,所述备份存储服务器40通过san/nas方式接入到备份代理服务器30。

图2为本发明一种使用存储快照备份虚拟机的方法的步骤流程图。如图2所示,本发明一种使用存储快照备份虚拟机的方法,包括如下步骤:

步骤s1,备份代理服务器发送虚机备份任务请求,所述虚机备份任务请求中包含需要备份的虚机guest信息。

步骤s2,于接收到备份代理服务器的虚机备份任务请求时,生产服务器通知相应的虚机guest系统进入静默状态,在接收到虚机guest完成应用程序静默的通知后,执行hypervisor快照,并在hypervisor快照完成后,通知备份代理服务器hypervisor快照已完成。

在本发明中,生产服务器,即虚机宿主机系统hypervisor,其上设有若干虚机guest,生产服务器hypervisor按需向外部存储阵列申请存储空间,当外部存储阵列将分配的逻辑存储设备(lun)通过san网络挂载到生产服务器hypervisor上后,生产服务器hypervisor随后将该逻辑存储设备(lun)提供给虚机guest,虚机guest将生产数据存放在该逻辑存储设备(lun)的空间上。

当hypervisor接收到该包含需备份的guest信息的虚机备份任务请求时,随即通知相应的guest系统进入静默状态,当相应的虚机guest收到请求后,将运行在其上的业务应用软件(例如oracle,mysql等)置于静默状态,在这个过程中,应用软件确保应用层数据一致性要求,将缓存数据写入guest存储设备,也就是逻辑存储设备(lun)上,并且guest在完成应用程序静默后,会通知hypervisor,此时逻辑存储设备(lun)上的数据将保持guest应用一致性;当hypervisor收到guest的静默完成通知后,立刻进行hypervisor层快照操作,并在完成hypervisor快照操作后,通知备份代理服务器30的备份软件hypervisor快照已完成。

步骤s3,当备份代理服务器接收到生产服务器的hypervisor快照完成通知后,通知外部存储阵列对逻辑存储设备(lun)进行存储阵列级快照。

在本发明具体实施例中,外部存储阵列提供存储级快照功能,可以对逻辑存储设备(lun)提供快照。当接收到备份代理服务器的快照通知时,则对逻辑存储设备(lun)进行存储阵列级快照,并在完成快照后通知备份代理服务器。

步骤s4,当备份代理服务器接收到外部存储阵列对逻辑存储设备(lun)的存储阵列级快照的完成通知后,发出退出静默通知至生产服务器,以便生产服务器通知相应的虚机guest退出静默状态,并在相应的虚机guest退出静默状态后,发出快照删除通知至生产服务器以删除hypervisor快照,同时,通知外部存储阵列将存储阵列快照挂载到备份代理服务器上,并读取挂载到备份代理服务器上的存储快照数据,写入备份存储服务器的存储空间中。

具体地,外部存储阵列在完成对lun快照后会通知备份软件,备份代理服务器的备份软件在收到存储阵列快照成功后,则通知生产服务器hypervisor去通知相应的虚机guest退出静默状态,当虚机guest收到退出静默的通知后,通知运行在其上的应用程序退出静默,当生产服务器hypervisor接收到虚机guest成功退出静默的通知后,发送退出成功信息至备份代理服务器,则备份代理服务器通知hypervisor将刚才创建的hypervisor快照删除,hypervisor随后对快照生成后的新数据进行合并操作,与此同时,备份代理服务器的备份软件通知外部存储阵列,将存储阵列快照通过san或者nas的方式挂载到备份代理服务器上,备份软件随后读取挂载到备份代理服务器上的存储阵列快照数据,写入备份存储服务器40的存储空间中。

实施例

图3为本发明实施例中使用存储快照备份虚拟机的整体部署架构图,图4为本发明实施例中备份过程中各模块的时序图。在本实施例中,一种使用存储快照备份虚拟机的方法,过程如下:

生产服务器上的hypervisor按需向外部存储阵列申请存储空间。存储阵列为其分配逻辑存储设备(lun),通过san网络挂载到hypervisor上。hypervisor随后再将lun提供给guest,guest将生产数据存放在lun的空间上。

guest备份任务由设置于备份代理服务器的备份软件发起,备份软件将需要备份的guest信息发送给hypervisor,hypervisor随后通知guest系统进入静默状态。guest收到请求后,将运行在其上的业务应用软件(比如oracle,mysql等)置于静默状态。在这个过程中,应用软件确保应用层数据一致性要求,将缓存数据写入guest存储设备。guest在完成应用程序静默后,通知hypervisor。此时lun上的数据将保持guest应用一致性。

hypervisor收到guest的完成通知后,立刻进行hypervisor层快照操作。在完成hypervisor快照操作后,通知备份软件hypervisor快照已完成。

guest在收到退出静默后,通知运行在其上的应用程序退出静默。此后guest对存储的改变数据将由hypervisor统一写入lun的空闲区域,以确保hypervisor快照数据不变。

当备份软件收到hypervisor的快照完成消息后,备份软件通知外部存储阵列系统,对lun虚拟设备进行存储阵列级快照。外部存储阵列在完成对lun快照后通知备份软件,备份软件在收到存储阵列快照成功后,则通知hypervisor去通知相应的guest退出静默,guest在收到退出静默后,通知运行在其上的应用程序退出静默,并发出退出静默成功的消息至hypervisor,进而通知备份代理服务器成功退出静默,备份代理服务器则通知hypervisor将刚才创建的hypervisor快照删除,hypervisor随后将对快照生成后的新数据进行合并操作。与此同时,备份软件通知外部存储阵列,将存储阵列快照通过san或者nas的方式挂载到备份代理服务器上,备份软件随后读取挂载到备份代理服务器上的存储快照数据,写入备份存储空间中。

当备份软件对存储快照数据读取完毕,通知外部存储阵列删除存储级快照。

至此完成整个guest虚机的数据备份任务。

综上所述,本发明一种使用存储快照备份虚拟机的系统及方法通过存储阵列快照结合hypervisor快照的应用,使得hypervisor快照从产生到销毁的时长,仅仅取决于做存储阵列快照所需要的时间,从而最大程度的减少由后者引入的非生产io,使得虚机备份任务可以降低对虚机生产系统的影响,一般来说,存储阵列快照都可以在秒级内完成,所以hypervisor快照的生存周期也最多在分钟级,因此本发明的hypervisor快照所产生的开销可以降低到最小程度。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

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