如何备份Hyper-V虚拟机?

时间:2020-01-09 10:46:12  来源:igfitidea点击:

尽管Hyper-V环境为运行的虚拟机提供了大量的高可用性和容错技术(如故障转移群集、实时迁移、复制等),但管理员必须实施传统的方法来备份虚拟机实例。所有这些技术都可以最大限度地减少虚拟机在各种情况下的停机时间,但不提供任何由于人为错误、黑客或者病毒攻击、竞争对手攻击或者类似情况而导致的灾难恢复选项。在这篇文章中,我将尝试回顾Hyper-V备份解决方案的基本要求、备份策略以及免费和商业备份产品的特性。

我们可以使用内置的Windows Server备份功能(或者基于它的wbadmin脚本)以及其他免费或者商业产品备份在Hyper-V主机上运行的虚拟机。他们都使用快照(检查点)技术来备份运行中的Hyper-V虚拟机。检查点是虚拟机在某个时间点的状态。检查点存储虚拟磁盘的状态、RAM的内容以及VM的设置。

Hyper-V虚拟机备份是如何工作的?

让我们考虑一下任何现代Hyper-V虚拟机备份解决方案的操作方案。

。以前,服务器备份是由安装在每个主机上的备份代理执行的。在虚拟化时代,备份创建点已从来宾操作系统转移到运行虚拟机的Hyper-V主机。目前,代理备份场景非常少见,主要用于不支持VSS的特定应用程序。

备份工具指示Hyper-V主机创建检查点。在收到命令后,hypervisor创建一些新文件(delta文件),VM继续工作并开始保存文件中的更改。现在,备份工具必须将原始VM文件(不写入更改)复制到备份媒体,然后删除检查点。删除检查点时,Hyper-V合并(合并)原始文件和增量文件,同时虚拟机继续工作。如果丢失了生产虚拟机,则可以恢复其在创建备份时的状态。

Hyper-V虚拟机备份最佳实践和要求

这是关于Hyper-V备份的一般信息,但实际上有很多细微差别和问题。我将列出最常见的问题:

备份工具复制检查点(备份)的时间越长,增量文件中记录的更改就越多。如果在复制检查点时虚拟机中有许多更改,则删除检查点后合并文件可能会导致存储子系统、Hyper-V主机和VM本身的高负载。这意味着最好尽快复制检查点。在Hyper-V Server 2015中, Resility Changed Tracking(RCT)技术用于加快备份速度,因为只复制上次备份后更改的数据块。因此,我们不需要将VM作为一个整体进行复制。

当通过LAN将VM检查点数据从Hyper-V主机复制到备份存储时,网络可能处于高负载状态。因此,最好为备份流量使用单独的服务器网络或者HBA接口,或者通过SAN复制数据。

基于上述几点,当使用外部数据存储来存储VM文件时,可以使用数据存储与备份产品(如硬件快照)集成的功能。

最初,来宾操作系统不知道它已备份。因此,当尝试从该备份恢复虚拟机时,操作系统会尝试从创建检查点的那一刻起继续其操作。在某些情况下,它可能会导致操作系统本身出现一些问题,并在运行的应用程序中丢失数据(尤其是在事务应用程序中,如Exchange、SQL、ADDS等)。为了解决这个问题,一种新的检查点类型- 生产检查点出现在Hyper-V 2015中。(Microsoft建议仅在测试或者实验室环境中使用 标准检查点或者备份停止的虚拟机。)生产检查点由于来宾操作系统中的Hyper-V集成工具而正常工作,并且基于 卷影复制(Windows)或者Linux上的文件系统冻结守护程序( fsfreeze)。但是,不会复制内存的状态。这意味着Hyper-V通知来宾操作系统创建检查点,支持VSS合并的应用程序结束当前事务,进入一致状态,并创建VM检查点。当从检查点恢复时,来宾操作系统将关闭电源(因为内存状态尚未保存),打开后,它认为发生了紧急关闭。应用程序(如果支持VSS)从保存的一致状态开始工作。

要存储虚拟机备份,我们需要相当大的空间。设置检查点的频率越高,备份存储中需要的位置就越多。通常,我们可以使用重复数据消除技术(集成在Windows Server中)或者备份提供商提供的重复数据消除解决方案。如果我们使用的是差异磁盘,请选择支持此技术的备份工具。否则,可以多次存储相同的VM数据。

如果主机上的虚拟机密度很高,那么有必要计划备份时间,以防止生产系统在工作时间内承受高负载。

如果我们必须在几天内存储多个虚拟机副本,则必须管理存储的虚拟机副本的数量(可以使用脚本或者备份工具功能自动执行备份管理)。

备份监视工具也很重要。如果得知由于数据存储中缺少可用空间而无法备份某些内容,则会令人沮丧。还建议使用备份验证工具。

经常需要从虚拟机备份中恢复某个文件。有些备份/恢复产品允许对文件/文件夹进行细粒度恢复,而无需恢复整个虚拟机或者其虚拟磁盘。 。此外,还有一些工具可以从安装了Exchange的虚拟机备份中恢复特定的邮箱数据库、邮箱甚至特定的电子邮件。

.

我们可以使用基于角色的备份管理模型拆分访问权限(它适用于负责不同系统或者设备组的管理员)。

别忘了执行传统的备份策略 3-2-1(在 个不同的介质上 个拷贝,其中 一个存储在远程站点)。

接下来,我们将基于上述特性考虑一些常见的Hyper-V VM备份解决方案。

使用Windows Server Backup备份Hyper-V虚拟机

在Hyper-V上组织虚拟机备份的免费方法建议使用内置的 Windows Server backup功能。我们可以通过图形备份/还原向导或者 wbadmin命令行工具(它是WSB的一部分)来使用WSB。Windows Server Backup支持VSS和增量备份。此功能在Windows Server 2012(及更高版本)和Hyper-V Server上都可用。要安装WSB组件,请转到服务器管理器控制台或者运行以下命令:

[Install-WindowsFeature](http://theitroad.local/install-remove-windows-server-roles-features-powershell/) Windows-Server-Backup -IncludeManagementTools

Windows Server Backup具有GUI控制台( wbadmin.msc),允许创建和管理Hyper-V备份、创建备份计划等。要备份虚拟机,只需启动一个简单的向导,选择必须备份Hyper-V服务器中的哪些虚拟机以及将备份保存在何处,然后指定备份计划。

提示。在2012年之前的Hyper-V服务器版本中,无法使用内置备份工具创建单个虚拟机的备份-所有虚拟机都会同时备份。

通常使用命令提示符备份Hyper-V虚拟机更容易。此外,我们不能在图形界面中创建多个虚拟机备份任务,并且该任务将覆盖以前的所有备份任务。

将名为“server1”的VM备份到磁盘C上的本地文件夹:(这不是最好的主意,是吗?),只需运行以下命令:

wbadmin start backup –backupTarget:C: –hyperv:"Server 1"

例如,要备份两个虚拟机并将它们保存到网络共享文件夹(假设是外部NAS存储),只需运行以下命令即可:

wbadmin start backup -backuptarget:2.168.2.15\HVMback: -hyperv:"TestVM01,TestVM02" -allowDeleteOldBackups -quiet

我们可以使用PowerShell将此命令添加到Windows任务计划程序中,从而计划常规VM备份(在这种情况下,旧的备份将被删除)。

例如,要使用AD域控制器备份VM,可以在备份结束后重置AD事务日志,以便备份中的ADDS数据库保持一致(与使用Exchange或者SQL Server备份VM的方法相同):

wbadmin start backup -backuptarget:2.168.2.15\HVMback: -hyperv:PAR-DC1 -vssFull

要获取在系统中注册的备份列表,请运行以下命令:

wbadmin get versions

提示。请注意,在运行Windows 2012或者更高版本的Hyper-V主机上备份VM时,如果该VM已安装Hyper-V集成组件,则不会暂停(挂起)。

WSB是一个简单但可靠的Hyper-V VM备份解决方案。备份和管理非常快。但是,Windows Server Backup有其缺点:

没有工具可以监视备份过程,验证虚拟机备份或者其中的应用程序的一致性。

在中型和大型Hyper-V安装中很难管理备份(它仅适用于具有1-3个Hyper-V主机的小型环境)。

无法自动恢复特定文件或者应用程序状态。(我们必须手动装载备份的.vhdx文件,并手动复制所需的文件)。

由于主机上有高密度和大容量的虚拟机,我们必须使用Windows任务计划程序来安排备份,以防止服务器过载,以及在工作时间(如果将备份存储在外部存储上)LAN/SAN/iSCSI网络上的高负载。