一种虚拟机数据容灾方法及管理装置与流程

文档序号:11918038阅读:335来源:国知局
一种虚拟机数据容灾方法及管理装置与流程

本发明涉及云存储技术领域,尤其涉及一种虚拟机数据容灾方法及管理装置。



背景技术:

随着虚拟化技术的广泛应用,IT资源将成为像水电一样可运营的基础设施,云数据中心作为重要的云基础设施的承载体,其资源管理成为重要的研究课题。云计算的快速发展让业务系统和数据都趋向于集中化部署,业界开始重视跨数据中心灾备问题,以确保在遇到突发情况时,应用系统能够在异地启用和配置,数据不会丢失。虚拟机的另一种灾备模式是应用系统以“负载均衡”模式分别部署在两个数据中心,正常情况下各承担一部分业务需求,灾备时由其中一个系统单独承担。

然而,现有的基于虚拟机在线灾备方法存在以下一些问题,首先,异步数据备份模式在突发情况会丢失应用系统的缓存、内存数据和系统状态,此外,负载均衡模式对软件有要求,不能满足大多数的应用容灾需求,同时也存在数据安全的问题。随着服务器技术的发展,服务器内存小至若干GB,大的也有上TB的场景,系统状态数据越来越大,尤其是在大内存的应用场景下,状态数据的保存显得越来越重要。如何有效地进行状态数据的保存,目前暂没有很好的解决办法,最常见的办法是虚拟机的快照功能,但这种功能通常都应用在本地数据中心的同一个存储系统中,也难以满足异地灾备的需要。



技术实现要素:

有鉴于此,本发明要解决的一个技术问题是提供一种虚拟机数据容灾方法及管理装置,能够对虚拟机的运行状态数据进行异地备份。

一种虚拟机数据容灾方法,包括:采集云数据中心中的第一虚拟机的状态数据和用户数据,所述状态数据包括:内存数据和资源状态数据;将所述状态数据和用户数据发送到灾备中心的缓存系统中进行备份;当所述第一虚拟机出现故障时,基于所述状态数据和用户数据进行业务切换。

根据本发明的一个实施例,进一步的,所述采集云数据中心的第一虚拟机的状态数据和用户数据包括:周期性获取运行在云数据中心中的物理服务器上的所述第一虚拟机的内存数据、资源状态参数和用户数据;其中,所述资源状态数据包括:CPU使用率、内存利用率、磁盘使用率。

根据本发明的一个实施例,进一步的,所述将所述状态数据和用户数据发送到灾备中心的缓存系统中进行备份包括:周期性地将获取的所述状态数据和用户数据发送到灾备中心;其中,对所述状态数据进行加密处理;所述灾备中心的缓存系统对所述状态数据和用户数据进行存储。

根据本发明的一个实施例,进一步的,所述当所述第一虚拟机出现故障时、基于所述状态数据和用户数据进行业务切换包括:所述灾备中心中的第二虚拟机周期性接收到所述状态数据和用户数据,根据所述状态数据同步所述第二虚拟机的运行状态,并将所述状态数据和用户数据发送到所述缓存系统;所述缓存系统将接收到的状态数据和用户数据的增量数据与已存储的状态数据和用户数据进行融合处理,并存储;当所述第一虚拟机出现故障时,所述第二虚拟机从所述缓存系统中获取与所述第一虚拟机相对应的用户数据并进行加载,进行所述第一虚拟机到第二虚拟机的动态切换。

根据本发明的一个实施例,进一步的,当所述第一虚拟机出现故障时,从所述缓存系统中获取的与所述第一虚拟机相对应的状态数据和用户数据;在所述灾备中心中启动第三虚拟机,所述第三虚拟机加载与所述第一虚拟机相对应的状态数据和用户数据,进行所述第一虚拟机到第三虚拟机的切换。

根据本发明的一个实施例,进一步的,按预设的时间间隔周期性地向所述第一虚拟机发送心跳请求;接收所述第一虚拟机返回的心跳请求答复;如果在预设的时间阈值内没有接收到所述心跳请求答复,则判断所述第一虚拟机出现故障。

根据本发明的一个实施例,进一步的,包括:按预设的时间间隔周期性地向所述第一虚拟机发送ICMP报文并检测所述缓存服务器的TCP/UDP端口,判断所述第一虚拟机的状态是否为可用状态。

根据本发明的一个实施例,进一步的,包括:周期性获取所述第一虚拟机的资源状态参数;基于所述资源状态参数判断所述第一虚拟机是否出现故障。

根据本发明的一个实施例,进一步的,包括:在所述缓存系统中使用SSD硬盘或Flash存储所述状态数据和用户数据。

一种虚拟机数据容灾的管理装置,包括:采集单元,用于采集云数据中心中的第一虚拟机的状态数据和用户数据,所述状态数据包括:内存数据和资源状态数据;发送单元,用于将所述状态数据和用户数据发送到灾备中心的缓存系统中进行备份;恢复单元,用于当所述第一虚拟机出现故障时,基于所述状态数据和用户数据进行业务切换。

根据本发明的一个实施例,进一步的,所述采集单元,还用于周期性获取运行在云数据中心中的物理服务器上的所述第一虚拟机的内存数据、资源状态参数和用户数据;其中,所述资源状态数据包括:CPU使用率、内存利用率、磁盘使用率。

根据本发明的一个实施例,进一步的,所述发送单元,还用于周期性地将获取的所述状态数据和用户数据发送到灾备中心;其中,对所述状态数据进行加密处理,所述灾备中心的缓存系统对所述状态数据和用户数据进行存储。

根据本发明的一个实施例,进一步的,所述恢复单元,包括:虚拟机启动模块,用于在所述灾备中心中启动第二虚拟机;其中,所述灾备中心中的所述第二虚拟机周期性接收到所述状态数据和用户数据,根据所述状态数据同步所述第二虚拟机的运行状态,并将所述状态数据和用 户数据发送到所述缓存系统;所述缓存系统将接收到的状态数据和用户数据的增量数据与已存储的状态数据和用户数据进行融合处理,并存储;虚拟机切换模块,用于当判断所述第一虚拟机出现故障时,使所述第二虚拟机从所述缓存系统中获取与所述第一虚拟机相对应的用户数据并进行加载,进行所述第一虚拟机到第二虚拟机的动态切换。

根据本发明的一个实施例,进一步的,所述虚拟机切换模块,还用于当所述第一虚拟机出现故障时,从所述缓存系统中获取的与所述第一虚拟机相对应的状态数据和用户数据;所述虚拟机启动模块,还用于在所述灾备中心中启动第三虚拟机其中,所述虚拟机切换模块使所述第三虚拟机加载与所述第一虚拟机相对应的状态数据和用户数据,进行所述第一虚拟机到第三虚拟机的切换。

根据本发明的一个实施例,进一步的,所述恢复单元,包括:虚拟机检测模块,用于按预设的时间间隔周期性地向所述第一虚拟机发送心跳请求;接收所述第一虚拟机返回的心跳请求答复;如果在预设的时间阈值内没有接收到所述心跳请求答复,则判断所述第一虚拟机出现故障。

根据本发明的一个实施例,进一步的,所述虚拟机检测模块,还用于按预设的时间间隔周期性地向所述第一虚拟机发送ICMP报文并检测所述缓存服务器的TCP/UDP端口,判断所述第一虚拟机的状态是否为可用状态。

根据本发明的一个实施例,进一步的,所述虚拟机检测模块,还用于基于所述资源状态参数判断所述第一虚拟机是否出现故障。

本发明的虚拟机数据容灾方法及管理装置,通过利用虚拟机的状态可保存技术,对虚拟机的运行状态数据进行异地备份,能减少突发情况下数据的丢失,提升业务可靠性,通过利用高速缓存设备对虚拟机的运行状态进行保存,能有效提升业务的快速恢复能力。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将 对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为根据本发明的虚拟机数据容灾方法的一个实施例的流程示意图;

图2根据为本发明的虚拟机数据容灾方法的一个实施例的应用场景示意图;

图3为根据本发明的虚拟机数据容灾的管理装置的一个实施例的模块示意图;

图4为根据本发明的虚拟机数据容灾的管理装置的一个实施例中的恢复单元的模块示意图。

具体实施方式

下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合各个图和实施例对本发明的技术方案进行多方面的描述。

下文中的“第一”、“第二”等为描述上相区别,并没有其它特殊的含义。

图1为根据本发明的虚拟机数据容灾方法的一个实施例的流程示意图,如图1所示:

步骤101,采集云数据中心中的第一虚拟机的状态数据和用户数据,状态数据包括:内存数据和资源状态数据。

步骤102,将状态数据和用户数据发送到灾备中心的缓存系统中进行备份;缓存系统可以为具有高速IO能力的灾备存储系统,在缓存系统 中使用SSD硬盘或Flash等存储状态数据和用户数据。

步骤103,当第一虚拟机出现故障时,基于状态数据和用户数据进行业务切换。

在一个实施例中,周期性获取运行在云数据中心中的物理服务器上的第一虚拟机的内存数据、资源状态参数和用户数据等。用户数据是指在虚拟机上运行的各种应用或配置的数据,资源状态数据包括:CPU使用率、内存利用率、磁盘使用率等。周期性地将获取的状态数据和用户数据发送到灾备中心,在发送时对状态数据进行加密处理,灾备中心的缓存系统对状态数据和用户数据进行存储。

在一个实施例中,在灾备中心中启动第二虚拟机,第二虚拟机不是在故障时才启动,而是预先启动并接收数据。第二虚拟机周期性接收到状态数据和用户数据,根据状态数据同步第二虚拟机的运行状态,并将状态数据和用户数据发送到缓存系统。缓存系统将接收到的状态数据和用户数据的增量数据与已存储的状态数据和用户数据进行融合处理,并存储。

当第一虚拟机出现故障时,第二虚拟机从缓存系统中获取与第一虚拟机相对应的用户数据并进行加载,进行第一虚拟机到第二虚拟机的动态切换。或者,当第一虚拟机出现故障时,从缓存系统中获取的与第一虚拟机相对应的状态数据和用户数据,在灾备中心中启动第三虚拟机,第三虚拟机加载与第一虚拟机相对应的状态数据和用户数据,进行第一虚拟机到第三虚拟机的切换。第三虚拟机是在出现故障时启动。

上述实施例中的虚拟机数据容灾方法,解决了在异地灾备系统中实现虚拟机状态数据的备份问题,基于虚拟化层对虚拟机的CPU状态和内存数据等进行实时备份到灾备中心的缓存系统中,有效降低突发情况下应用系统的数据丢失,缩短系统的恢复时间。

在一个实施例中,针对跨数据中心数据灾备不能解决资源恢复效率和状态损失的问题,负载均衡模式对业务系统有严格的分布式架构要求和数据加密要求等问题,通过基于虚拟化层对虚拟机的CPU状态和内存数据进行实时备份到灾备中心的缓存系统中,不同于传统虚拟机的快照 处理方式,通过将状态数据直接传输到异地灾备系统的高速缓存器中,实现虚拟机的状态无损失灾备方法和系统,能够解决上述的问题。

在灾备中心通过使用SSD、FLASH等高速缓存设备,并按照需要备份的虚拟机规格设定对应的缓存空间。将运行中的虚拟机CPU状态和内存数据通过加密的方式(可以使用虚拟机的OS密钥简化部署),将状态数据备份到灾备中心的对应高速缓存空间上。

灾备恢复时,灾备中心的虚拟机启动后,按照HA启动模式,直接从高速缓存中加载状态数据,实现状态低损失的虚拟机在线灾备,本发明的虚拟机数据容灾方法的一个应用场景如图2所示。

在一个实施例中,假设主数据中心系统中有虚拟机A和虚拟机B、虚拟机C共三台虚拟机,且分别承载于不同的虚拟化软件,假设分别为ESXi、KVM、Xen,其虚拟机的状态数据,包括内存数据、CPU状态数据等,都可以通过这些虚拟化软件直接捕获,且不会对系统的运行造成明显的影响,例如可以利用虚拟机的快照功能。备份数据中心系统中,启动了虚拟机a和虚拟机b。虚拟化软件按照系统管理员的配置,周期性的获取虚拟机的状态数据,将增量数据通过加密的方式传输到异地的灾备系统高速缓存中。

假设虚拟机A和虚拟机B的数据非常重要,要求状态数据基本不丢失,则在备份数据中心启动虚拟机a和虚拟机b,分别实时同步虚拟机A和虚拟机B的内存数据,尤其是实时传输到达的增量的状态数据,并由虚拟机a和虚拟机b分别对虚拟机A和虚拟机B的状态数据中的增量数据融合到高速缓存系统中。此外,虚拟机C的数据同步也由虚拟机a完成。按照系统的配置,虚拟机A的状态数据捕获周期可以是2秒,虚拟机B的捕获周期可以是4秒,而虚拟机C的状态数据,则可以是15秒等。

当虚拟机A、B、C所在的数据中心发生异常情况,假设全部掉电时,虚拟机a可以直接接管虚拟机A的所有数据和状态数据,完成虚拟机A的异地启动,状态数据的丢失大约为2秒内产生的数据。而类似地,对于虚拟机B,也可以由虚拟机b接收备份。对于虚拟机c,由于其重要性不如前两者,则需要在异地启动生成新的虚拟机来接管其业 务,例如使用虚拟机的HA启动功能,并在高速缓存系统中加载其系统数据,例如使用虚拟机快照的恢复功能。HA(High Availability)是VMware的企业应用环境中用来保障企业级应用的不间断运行需求所产生的一个组件,允许一个集群中在资源许可的情况下,将出现故障的ESX主机上面的VM在其他的主机上启动起来。

上述实施例中的虚拟机数据容灾方法,通过利用虚拟机的状态可保存技术,对虚拟机的运行状态数据进行异地备份,能减少突发情况下数据的丢失,提升业务可靠性,通过利用高速缓存设备对虚拟机的运行状态进行保存,能有效提升业务的快速恢复能力。

在一个实施例中,判断虚拟机的运行是否正常可以有多种方法。按预设的时间间隔周期性地向第一虚拟机发送心跳请求,接收第一虚拟机返回的心跳请求答复。如果在预设的时间阈值内没有接收到心跳请求答复,则判断第一虚拟机出现故障。或者,按预设的时间间隔周期性地向第一虚拟机发送ICMP报文并检测缓存服务器的TCP/UDP端口,判断第一虚拟机的状态是否为可用状态。也可以基于资源状态参数判断第一虚拟机是否出现故障。

在一个实施例中,如图3、4所示,本发明提供一种虚拟机数据容灾的管理装置。采集单元31采集云数据中心中的第一虚拟机的状态数据和用户数据,状态数据包括:内存数据和资源状态数据。发送单元32将状态数据和用户数据发送到灾备中心的缓存系统中进行备份。当第一虚拟机出现故障时,恢复单元33基于状态数据和用户数据进行业务切换。

在一个实施例中,采集单元31周期性获取运行在云数据中心中的物理服务器上的第一虚拟机的内存数据、资源状态参数和用户数据,资源状态数据包括:CPU使用率、内存利用率、磁盘使用率等。发送单元32周期性地将获取的状态数据和用户数据发送到灾备中心,并对状态数据进行加密处理,灾备中心的缓存系统对状态数据和用户数据进行存储。

恢复单元33包括:虚拟机启动模块331、虚拟机切换模块332和虚 拟机检测模块313。虚拟机启动模块331在灾备中心中启动第二虚拟机。第二虚拟机周期性接收到状态数据和用户数据,根据状态数据同步第二虚拟机的运行状态,并将状态数据和用户数据发送到缓存系统。缓存系统将接收到的状态数据和用户数据的增量数据与已存储的状态数据和用户数据进行融合处理,并存储。

当判断第一虚拟机出现故障时,虚拟机切换模块332使第二虚拟机从缓存系统中获取与第一虚拟机相对应的用户数据并进行加载,进行第一虚拟机到第二虚拟机的动态切换。

在一个实施例中,当第一虚拟机出现故障时,虚拟机切换模块332从缓存系统中获取的与第一虚拟机相对应的状态数据和用户数据。虚拟机启动模块331在灾备中心中启动第三虚拟机其中,虚拟机切换模块332使第三虚拟机加载与第一虚拟机相对应的状态数据和用户数据,进行第一虚拟机到第三虚拟机的切换。

虚拟机检测模块333按预设的时间间隔周期性地向第一虚拟机发送心跳请求;接收第一虚拟机返回的心跳请求答复。如果在预设的时间阈值内没有接收到心跳请求答复,则判断第一虚拟机出现故障。虚拟机检测模块333也可以按预设的时间间隔周期性地向第一虚拟机发送ICMP报文并检测缓存服务器的TCP/UDP端口,判断第一虚拟机的状态是否为可用状态。虚拟机检测模块333也可以基于资源状态参数判断第一虚拟机是否出现故障。

上述实施例提供的虚拟机数据容灾方法及管理装置,通过利用虚拟机的状态可保存技术,对虚拟机的运行状态数据进行异地备份,能减少突发情况下数据的丢失,提升业务可靠性,并通过利用高速缓存设备对虚拟机的运行状态进行保存,能有效提升业务的快速恢复能力。

可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程 序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

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