技术领域
[0001] 本公开整体涉及虚拟机,更具体地讲,涉及用于还原虚拟机的技术。
相关背景技术
[0002] 虚拟机(VM),诸如VMware ESX或者Microsoft Hyper-V服务器,使得能够通过虚拟系统进行业务流程。虚拟机可在不同的数据存储器和主机间备份、复制或迁移。在毁坏的情况下,常规系统可从备份副本恢复虚拟机。
[0003] 应用的恢复时间目标(RTO)是由业务流程在崩溃或其它毁坏之后恢复到全部功能所耗费的时间确定的。RTO有时由从备份副本恢复相关数据所用的时间确定,这根据要恢复的数据量可能耗费数小时或更长时间。
[0004] 一些常规系统尝试通过从备份副本恢复数据至生产服务器(production server)的同时从它的备份副本直接运行虚拟机来减少RTO。然而,因为备份数据必须在恢复进程和虚拟机执行进程之间共享,这些常规系统会遭受性能降低。另外,根据备份数据存储器是被优化用于有利于恢复进程的快速串行存储器访问或被优化用于有利于执行进程的快速随机存储器访问,将导致两个进程中的一个进程性能进一步降低。
[0005] 鉴于上述情况,可以理解,可能存在与传统的虚拟机还原技术相关的重大问题和缺点。
具体实施方式
[0031] 图1示出了根据本公开的实施例的描述用于虚拟机还原的网络架构100的框图。图1是网络架构100的简化视图,网络架构100可包括未示出的另外的元件。网络架构100可以包含客户端系统110、120和130,以及服务器140A和140B(可使用图2所示的计算机系统200来实施它们中的一个或多个)。客户端系统110、120和130可以通信地连接到网络150。服务器140A可以通信地连接到存储设备160A(1)-(N),而服务器140B可以通信地连接到存储设备160B(1)-(N)。服务器140A和140B可包含管理模块(例如,服务器140A的虚拟机还原模块154)。服务器140A和140B可以通信地连接到SAN(存储器域网络)光纤网170。SAN光纤网170可经由网络150支持通过服务器140A和140B以及通过客户端系统110、120和130来访问存储设备180(1)-(N)。
[0032] 参照图2的计算机系统200,可使用调制调解器247、网络接口248或者一些其他方法来提供从客户端系统110、120和130中的一个或多个到网络150的连接。客户端系统110、120和130可能能够使用(例如)网络浏览器或其他客户端软件(未示出)来访问服务器140A或140B上的信息。此类客户端可允许客户端系统110、120和130访问由服务器
140A或140B或存储设备160A(1)-(N)、160B(1)-(N)和/或180(1)-(N)中的一者托管的数据。
[0033] 网络150和190可以为局域网(LAN)、广域网(WAN)、互联网、蜂窝网络、卫星网络或允许在客户端110、120、130、服务器140、以及通信地耦接到网络150和190的其他设备之间通信的其他网络。网络150和190还可以包括一个或任意数量的示例类型的上述网络,所述网络作为独立的网络运行或与每个其他网络协同运行。网络150和190可以利用其通信地耦接到的一个或多个客户端或服务器的一个或多个协议。网络150和190可以转换到或从其他协议转换到网络设备的一个或多个协议。虽然网络150和190各自被描述为一个网络,但应当理解,根据一个或多个实施例,网络150和190可各自包括多个互连的网络。
[0034] 存储设备160A(1)-(N)、160B(1)-(N)和/或180(1)-(N)可以是网络可访问存储器,并且相对于服务器140A或140B可以是本地的、远程的或它们的组合。存储设备160A(1)-(N)、160B(1)-(N)和/或180(1)-(N)可以利用廉价磁盘冗余阵列(“RAID”)、磁带、磁盘、存储器域网络(“SAN”)、互联网小型计算机系统接口(“iSCSI”)SAN、光纤通道SAN、通用互联网文件系统(“CIFS”)、网络附加存储器(“NAS”)、网络文件系统(“NFS”)、基于光的存储器或其他计算机可访问存储器。存储设备160A(1)-(N)、160B(1)-(N)和/或
180(1)-(N)可用于备份或存档目的。
[0035] 根据一些实施例,客户端110、120和130可以为智能电话、PDA、台式计算机、便携式电脑、服务器、其他计算机或通过无线或有线连接耦接到网络150的其他设备。客户端110、120和130可从用户输入、数据库、文件、网络服务和/或应用编程接口接收数据。
[0036] 服务器140A和140B可以是应用程序服务器、存档平台、备份服务器、网络存储设备、媒体服务器、电子邮件服务器、文档管理平台、企业搜索服务器,或通信地连接到网络150的其他设备。服务器140A和140B可利用存储设备160A(1)-(N)、160B(1)-(N)和/或
180(1)-(N)中的一者来存储应用程序数据、备份数据或其他数据。服务器140A和140B可以为主机,诸如应用程序服务器,该主机可以处理在客户端110、120和130与备份平台、备份进程和/或存储器之间传输的数据。根据一些实施例,服务器140A和140B可以是用于备份和/或存档数据的平台。可基于备份策略和/或应用的存档、与数据源相关联的属性、可用于备份的空间、可用在数据源处的空间,或其他因素来备份或存档数据的一个或多个部分。
[0037] 根据一些实施例,客户端110、120和/或130可包含用于虚拟机还原的一个或多个软件部分,例如虚拟机还原模块154。如图所示,虚拟机还原模块154的一个或多个部分可驻存在网络中心位置。例如,服务器140A可为服务器、防火墙、网关,或可执行一个或多个动作以扫描网络应用程序漏洞的其他网络元件。根据一些实施例,网络190可为外部网络(例如,互联网),并且服务器140A可为在一个或多个内部组件和客户端与外部网络之间的网关或防火墙。根据一些实施例,虚拟机还原模块154可作为云计算环境的一部分来实施。
[0038] 图2示出根据本公开的实施例用于虚拟机还原的计算机系统200的框图。计算机系统200适用于实施根据本公开的技术。计算机系统200可以包括总线212,该总线可以将计算机系统200的主要子系统互连,所述主要子系统诸如中央处理器214、系统存储器217(例如,RAM(随机存取存储器)、ROM(只读存储器)、闪存RAM等)、输入/输出(I/O)控制器218、外部音频设备(诸如经由音频输出接口222的扬声器系统220)、外部设备(诸如经由显示适配器226的显示屏224)、串行端口228和230、键盘232(经由键盘控制器233连接)、存储接口234、用于接收软盘238的软盘驱动器237、用于与光纤通道网络290连接的主机总线适配器(HBA)接口卡235A、用于连接到SCSI总线239的主机总线适配器(HBA)接口卡235B,以及用于接收光盘242的光盘驱动器240。此外,还可以包括鼠标246(或经由串行端口228耦接到总线212的其他点击设备)、调制解调器247(经由串行端口230耦接到总线212)、网络接口248(直接耦接到总线212)、电源管理器250,以及电池252。
[0039] 总线212允许在中央处理器214和系统存储器217之间进行数据通信,如前文提及,系统存储器217可以包括只读存储器(ROM)或闪存存储器(均未示出)以及随机存取存储器(未示出)。RAM可为可将操作系统和应用程序加载到其中的主存储器。除了其他代码,ROM或闪存存储器可以包含控制基本硬件操作(例如与外围组件的交互)的基本输入输出系统(BIOS)。与计算机系统200驻存在一起的应用程序可以存储在计算机可读介质上并经由该计算机可读介质进行访问,计算机可读介质诸如硬盘驱动器(例如,固定磁盘244)、光盘驱动器(例如,光盘驱动器240)、软盘单元237或其他存储介质。例如,虚拟机还原模块154可驻存在系统存储器217中。
[0040] 存储接口234与计算机系统200的其他存储接口一样可以连接到标准计算机可读介质(例如固定磁盘驱动器244)以存储和/或检索信息。固定磁盘驱动器244可以是计算机系统200的一部分,或者可以是独立的,并且可以通过其他接口系统进行访问。调制解调器247可以经由电话链路提供到远程服务器的直接连接,或经由互联网服务提供方(ISP)提供到互联网的直接连接。网络接口248可以经由直接网络链路提供到远程服务器的直接连接,或经由POP(入网点)提供到互联网的直接连接。网络接口248可以使用无线技术提供此类连接,包括数字蜂窝电话连接、蜂窝数字分组数据(CDPD)连接、数字卫星数据连接等。
[0041] 很多其他设备或子系统(未示出)可以通过相似的方式进行连接(例如文档扫描仪、数码相机等)。相反,不需要提供图2中显示的所有设备即可操作本发明。可以使用与图2中所示方法不同的方法来互连设备和子系统。用于实施本公开的代码可以存储在计算机可读存储介质中,所述计算机可读存储介质诸如系统存储器217、固定磁盘244、光盘242或软盘238中的一者或多者。用于实施本公开的代码还可以通过一个或多个接口来接收并存储在存储器中。提供在计算机系统200上的操作系统可以是或其它已知操作
系统。
[0042] 电源管理器250可以监控电池252的功率电平。电源管理器250可以提供一个或多个API(应用程序编程接口)以允许确定功率电平、在关闭计算机系统200之前保留的时窗、功率消耗率、计算机系统正使用市电(例如,交流电源)还是电池电源的指示符、以及其他电源相关的信息。根据一些实施例,可以远程访问电源管理器250的API(例如,可以通过网络连接访问远程备份管理模块)。根据一些实施例,电池252可以是位于计算机系统200近旁的或远离计算机系统200的不间断电源(UPS)。在此类实施例中,电源管理器250可以提供与UPS的电量水平有关的信息。
[0043] 参见图3,图3示出了根据本公开的实施例的虚拟机还原模块310。如图所示,虚拟机还原模块310可包含一个或多个组件,所述组件包括虚拟机备份管理模块312、虚拟机数据存储管理模块314、虚拟机配置管理模块316以及虚拟机迁移管理模块318。
[0044] 以下的说明描述了网络元件、计算机和/或系统的组件以及用于虚拟机还原的方法,该方法可包括一个或多个模块。如本文所用,术语“模块”可理解为是指计算软件、固件、硬件和/或它们的各种组合。然而,模块不应被理解为不在硬件、固件上实施的或在处理器可读可记录存储介质上记录的软件(即,模块不是软件本身)。应当注意的是,这些模块是示例性的。这些模块可以是组合的、集成的、独立的和/或复制的,以便支持各种应用程序。另外,本文描述的在特定模块上执行的功能可以替代在该特定模块上执行的所述功能或除在该特定模块上执行的所述功能之外在一个或多个其他模块上执行和/或由一个或多个其他设备来执行。此外,这些模块可以在多个设备之间和/或彼此接近或远离的其他组件上实施。另外,这些模块可以从一个设备移开并添加到另一个设备上,和/或可以包括在这两个设备中。
[0045] 根据一些实施例,虚拟机备份管理模块312可管理虚拟机的备份副本。备份模块312可维护虚拟机的多个副本。副本可被写入一个或多个存储系统并被配置为在期望从备份副本还原的情况下仅能只读访问。在一些实施例中,虚拟机的一个或多个副本可存储在被优化用于快速随机访问的数据存储器中。在一些实施例中,虚拟机的一个或多个副本可存储在被优化用于快速串行访问的数据存储器中。
[0046] 当需要还原时,备份模块312可选择第一备份副本以供虚拟机执行进程使用。执行进程可从第一备份副本读取虚拟机数据并且使得最终使用者能够使用虚拟机。在一些实施例中,备份模块312可从被优化用于快速随机访问的第一数据存储器选择第一备份副本以提高执行进程的性能。
[0047] 当需要还原时,备份模块312可选择第二备份副本以供虚拟机恢复进程使用。恢复进程可从第二备份副本读取虚拟机数据并且使得虚拟机恢复到生产数据(production data)存储器。恢复进程可包括从一个数据存储器向另一个数据存储器复制或迁移虚拟机数据。在一些实施例中,备份模块312可从被优化用于快速串行访问的第二数据存储器选择第二备份副本以提高恢复进程的性能。
[0048] 根据一些实施例,备份模块312可与虚拟机数据存储管理模块314通信以有利于选择存储有第一和第二备份副本的数据存储器。
[0049] 数据存储模块314管理其中存储有虚拟机数据的数据存储器。数据存储模块314可管理存在于任何地方的数据存储器。在一些实施例中,它们可存在于远程服务器上,而在其它实施例中,它们可与数据存储模块314搭配在一起(collocate)。数据存储器可以是云计算环境或虚拟存储环境的一部分。数据存储器可被配置成只读或用于读写访问。备份数据存储器可专用于存储虚拟机的一个或多个备份副本,而生产数据存储器可专用于存储虚拟机的一个或多个生产副本(production copy)。备份存储器可被优化用于快速随机访问或快速串行访问。
[0050] 当需要还原时,数据存储模块314可选择虚拟机可还原至的第二数据存储器。第二数据存储器可用于在还原期间将生产写入(production write)存储到重做日志中。第二数据存储器还可用于当虚拟机数据从备份副本还原至新生产副本时存储虚拟机数据。
[0051] 根据一些实施例,数据存储模块314和备份模块312可与虚拟机配置管理模块316通信以有利于修改虚拟机配置,以指定备份副本和存储有备份副本的数据存储器。虚拟机配置,如用于VMware ESX虚拟机的VMX文件,可包括对虚拟机的特定副本或存储有该虚拟机副本的特定数据存储器的指定。在一些实施例中,配置模块316可修改一个或多个虚拟机的一个或多个配置。
[0052] 当需要还原时,配置模块316可将与第一备份副本的配置相关的文件复制到第二数据存储器,所述第二数据存储器可接收生产写入和还原的虚拟机数据。配置模块316可修改配置的副本以指定第一备份用于生产读取,第二数据存储器用于在还原期间生产写入。在一些实施例中,在虚拟机数据恢复至第二数据存储器后,配置模块316可修改配置的一个或多个副本以指定第二数据存储器用于生产读取和生产写入两者。配置模块316可移除或禁用任何对于不再用于生产读取的第一备份副本的指定。
[0053] 根据一些实施例,配置模块316可与虚拟机迁移管理模块318通信以有利于用于一个或多个虚拟机的数据的迁移。虚拟机的迁移可包括将虚拟机数据从一个数据存储器移动或复制到另一个数据存储器。在一些实施例中,大部分或全部迁移可在一个或多个进程正使用虚拟机数据的同时发生。例如,虚拟机在还原进程中可立刻还原使用。在一些实施例中,根据需要,迁移模块318可以启动虚拟机、暂停已启动的虚拟机、恢复已暂停的虚拟机、停止或关闭虚拟机、移动、复制、发送有关虚拟机状态的通知,或以其它方式迁移虚拟机,以及合并虚拟机在迁移期间发生的更改。
[0054] 当需要还原时,迁移模块318可与备份模块312通信以有利于选择第一备份副本用于执行进程。迁移模块318还可与数据存储模块314和配置模块316通信以有利于选择第二数据存储器以在重做日志中接收用于执行进程的生产写入并且配置成虚拟机的工作目录。在配置模块316可根据第一备份副本和第二数据存储器复制和修改虚拟机的配置之后,迁移模块318可创建虚拟机的快照并启动虚拟机。迁移模块318可选地可通知其他模块、用户或者系统管理员:虚拟机已经还原并且可供使用。
[0055] 在一些实施例中,迁移模块318还可与数据存储模块314通信以有利于选择要迁移的第二备份副本。在一些实施例中,第二备份副本可被存储在被优化用于快速串行访问的数据存储器中。迁移模块318可发起第二备份副本中的虚拟机数据向被选为用于接收还原的虚拟机数据的第二数据存储器迁移。例如,在一些实施例中,迁移可作为后台恢复进程执行,该后台恢复进程可作为赛门铁克企业资料防护(Symantec NetBackup)的一部分。在其它实施例中,迁移可通过虚拟机存储迁移(VMware Storage vMotion)执行。当迁移完成时,迁移模块318可暂停或停止虚拟机以有利于配置模块316可修改配置以指定完全迁移的虚拟机数据。在配置被修改之后,迁移模块318可恢复或重启虚拟机。
[0056] 参见图4,其示出了根据本公开的实施例用于还原虚拟机的方法400。在方框402处,方法400可开始。
[0057] 在方框404处,可从第一数据存储器选择虚拟机的第一备份副本。在一些实施例中,第一数据存储器可被优化用于快速随机访问以供执行进程使用。
[0058] 在方框406处,可选择与第一数据存储器不同的第二数据存储器。在一些实施例中,第二数据存储器可被优化用于快速串行访问以供恢复或迁移进程使用。第一和第二数据存储器可位于远程网络系统、云存储或虚拟存储系统上。在其它实施例中,所述数据存储器可以是协同定位(co-located)的。
[0059] 在方框408处,基于存储于在方框404处选择的第一备份中的配置,虚拟机可于在方框406处选择的第二数据存储器处被配置。
[0060] 在方框410处,配置可修改为指定在方框406处选择的第二数据存储器用作工作目录。配置信息还可进一步修改为指定第一备份副本在执行进程中用于生产读取。
[0061] 在方框412处,可创建虚拟机的快照以指定第二数据存储器在执行进程中存储生产写入。在一些实施例中,生产写入可存储在重做日志中。
[0062] 在方框414处,虚拟机可被启动。
[0063] 在方框416处,可发送虚拟机的快照已经启动并在执行进程中已可用于生产使用的通知。在方框414和可选的方框416之后,虚拟机已被还原为具有完整的读写功能。在一些实施例中,如果第一数据存储器已被优化用于随机读取,在生产读取期间性能可能提高。在这一点上,被还原的虚拟机从第一数据存储器中的第一备份副本读取数据并且将数据写入第二数据存储器中的重做日志。
[0064] 在方框418处,虚拟机数据的后台恢复可从不同于第一备份副本的第二备份副本发起。在一些实施例中,第二备份副本可被优化用于快速串行访问以提高恢复或迁移进程的性能。在一些实施例中,后台恢复可从多个并行的不同于第一备份副本的备份副本发起以进一步提高性能。在一些实施例中,后台恢复可使用SAN转移介质以更进一步提高性能。
[0065] 在方框420处,在第二备份副本后台恢复到第二数据存储器中的生产副本完成后,虚拟机的配置可修改为指定恢复的副本在执行进程中用于生产读取和写入。在一些实施例中,虚拟机的快照可暂停或者关闭以有利于修改配置,然后,虚拟机可在配置已修改后恢复或重启。
[0066] 在方框422处,可发出还原和恢复进程完成的通知。
[0067] 在方框424处,方法400可结束。
[0068] 在这一点上应该指出的是,根据本公开的上述内容的虚拟机还原可在一定程度上涉及输入数据处理和输出数据生成。该输入数据处理和输出数据生成可在硬件或软件中实施。例如,可在虚拟机还原模块或用于执行根据本公开的上述内容与虚拟机还原相关的功能的类似或相关电路中使用特定电子元器件。作为另外一种选择,根据指令进行操作的一个或多个处理器可实施根据本公开的上述内容与虚拟机还原相关的功能。如果是这种情况,则其在本公开的范围之内,此类指令可存储在一个或多个非暂时性处理器可读存储介质(例如,磁盘或其他存储介质)上,或经由一个或多个载波中体现的一个或多个信号而传输到一个或多个处理器。
[0069] 本公开并不限于本文所述的特定实施例的范围内。实际上,通过前述描述和附图,除了本文所述的内容之外,本公开的其他各种实施例和修改形式对于本领域的普通技术人员而言将是显而易见的。因此,此类其他实施例和修改形式旨在落入本公开的范围内。此外,虽然本公开针对至少一种特定用途在至少一种特定环境中以至少一种特定实施情形对本发明进行了描述,但本领域的技术人员将认识到,本公开的适用性并不局限于此,并且本发明可针对任意数量的用途在任意数量的环境中有利地实施。因此,应根据如本文所述的本公开的全部范围和精神来理解下文所阐述的权利要求。