您的位置: 网界网 > 存储 > 正文

Hyper-V备份中的常见问题

2011年05月31日 17:26:44 | 作者:Rob McShinsky | 来源:TechTarget中国 | 查看本文手机版

摘要:通过本文,我们将了解到全新的Hyper-V备份故障诊断方法,以确保我们的虚拟机有可靠的、一致的恢复时间点。在我们遇到Hyper-V备份问题时,遵循这些常见的故障排除方法,我们就能快速的解决问题或阻止更严重的问题发生。

标签
排除
故障
Hyper-V备份

通过本文,我们将了解到全新的Hyper-V备份故障诊断方法,以确保我们的虚拟机有可靠的、一致的恢复时间点。在我们遇到Hyper-V备份问题时,遵循这些常见的故障排除方法,我们就能快速的解决问题或阻止更严重的问题发生。

最常见且高效的虚拟机备份方法是在宿主机层(host-level)做备份,Hyper-V利用VSS(Volume Shadow Service)中的“writer”组件静默所有的虚拟机,在执行数据备份之前,确保每一个虚拟机上的数据都处于一致性的状态。通常我们需要有能够调用VSS的备份程序,比如System Center Data Protection Manager (DPM)。然而,许多Hyper-V的备份问题发生在过程的中间环节。下面列出一些常见的问题以及解决方案,既有虚拟机层面、也有宿主物理机层面,希望这些信息能够对Hyper-V用户有所帮助。

虚拟机层面的故障诊断

虚拟机内部的故障可能导致整个备份任务失败。如果要保证宿主机层的备份成功率,那么首先得排除虚拟机层的问题。下面列出的是最常见的故障提示。

释放磁盘空间:在宿主机层做虚拟机的统一备份,每个虚拟机的每个VHD(virtual hard disk)至少要预留300GB的磁盘空间。若想保证在虚拟机中成功运行卷影拷贝(Volume Shadow Copy),预留空间是必要的前提。宿主机的Hyper-V VSS writer会向虚拟机发起请求,之后由虚拟机完成VSS操作流程,确保虚拟机内部数据处于一致性的状态,通常称为数据静默,而后,宿主机发起备份进程开始做备份。但如果磁盘空间不足的话,这个备份过程就会失败。

解决办法:如果VHD空闲的空间较少,则需要通过删除文件或者扩展VHD卷的方式释放/增加空间。

集成组件(Integration components):集成组件是一套安装虚拟机上的代理程序。使用集成组件有两方面的作用:首先它可以让虚拟机发挥出最佳性能;另外它也是虚拟机和宿主机hypervisor管理层之间的直接通讯接口。集成组件的功能包括:时间同步、关闭操作系统、心跳检测、虚拟机和宿主机之间的数据交换、提升磁盘I/O性能、提升网络I/O性能以及辅助VSS备份等等。在所有被支持的虚拟机上安装合适的集成组件是非常重要的。如果集成组件不匹配或者版本有问题,可能会导致备份出来的数据有不一致的情况。

解决办法:使用最新版本的集成组件。需要注意一点,在升级或更新备份软件之前,可能也需要对所有的(在备份列表中的)虚拟机上的集成组件做一次升级。

虚拟机的VSS writers不可用:有时候,单独备份一个虚拟机会持续报错。如果不是虚拟机磁盘空间不足的原因,也非集成组件的问题,那么最有可能的原因是虚拟机上的VSS writers状态异常。此时,我们可以用系统命令“Vssadmin list writers”来检查,如果运行这个命令之后没有任何数据反馈,那么就可以确认是这个问题。

解决办法:在出现问题的虚拟机上重启Hyper-V Volume Shadow Copy Requestor服务,然后再次运行Vssadmin list writers命令,查看进程是否正常。一般情况下我们应该可以看到所有VSS writers的状态信息。在output栏检查每一个writer的状态,显示OK则为正常。

补丁问题:使用通用的Microsoft安全补丁。补丁都有指定的下载地址,不会存在安全问题,补丁能够用来修复那些引起备份错误的bug。比如运行Windows server 2003的虚拟机在宿主机层做VSS备份时会有不一致的情况,这个问题就可以通过特定的补丁来解决。

解决办法:安装VSS补丁包KB940349,然后重启系统。

宿主机层面的故障诊断

选择在宿主机层做备份,那么就将由宿主机负责调度备份进程。因此在宿主机层发生的错误会直接导致所有的虚拟机备份失败。幸运的是,我们有一系列的步骤方法可以解决相关问题。

Hyper-V VSS writer状态错误:宿主机层的备份错误有不同的情况,对虚拟机备份的影响范围也不同。通常我们看到的情况都只是一部分虚拟机出现报错,因此,如果不是全部的虚拟机都备份失败,那么也许意味着报错的虚拟机的集成组件存在问题。除了集成组件的因素之外,还有可能的故障原因是宿主机的Hyper-V VSS writer状态异常。想要确定这一点,可以在命令行窗口输入以下命令:vssadmin list writers status。一般情况下在Hyper-V VSS writer的输出状态栏会显示“Failed”,并且在事件日志中也会显示错误的信息。

解决办法:重新启动“Hyper-V Virtual Machine Management”服务(VMMS.exe进程)。等待一两分钟之后重新检查writer的状态(+微信关注网络世界),或者再做一次备份试一下。

宿主机层备份时出现备份挂起现象,长时间显示0 MB状态:对于这个问题,我的经验是与System Center Data Protection Manger有关。它表明Hyper-V宿主机上的Hyper-V VSS writer出错。通常在有问题的Hyper-V宿主机上,所有的虚拟机都会出现备份挂起的现象。

解决方案:查出有问题的宿主机,然后重启“System Center Data Protection Manger”服务。DPM可以识别Hyper-V VSS writer修正后的状态,并且重新发起之前挂起的备份任务。

宿主机修补程序(hotfix)的问题:Windows Server 2008 R1和R2上的Hyper-V存在一个bug,每次执行完基于VSS的备份之后,VMBus设备都不会自动退出。在重复了多次备份之后,系统注册表也会随之膨胀,系统和VSS的稳定性也都因此受到影响。

解决方案:操作系统如果是Windows Server 2008 R2,可以通过安装KB982210或SP1来解决问题。如果是Windows Server 2008 R1,用户可以致电Microsoft电话服务中心,了解关于DevNodeClean工具的使用,获得专家级的支持,或者使用他们定制的DevNodeClean工具。此外,用户还可以使用DeviceRemover工具从注册表中清除残留的VMBus设备项。我们可以访问VirtuallyAware.com网站了解更多关于这些工具的信息、以及如何使用它们解决注册表残留VSS设备项的问题。

综上所述,Hyper-V备份是容灾保护的关键环节,确保备份系统每天都能正常的工作是成功进行恢复的关键,但正如物理机的备份一样,我们仍然有许多技术环节需要处理。最后,我必须要说备份Hyper-V其实是件很轻松的事儿,毕竟比起物理机环境,它耗费的时间可少多了。

[责任编辑:存储 chai_shasha@cnw.com.cn]