上节我们介绍了导致虚拟机迁移失败的两个原因:硬件资源不足以及服务器硬件不兼容。本文接续介绍虚拟机迁移失败的其他三个原因以及如何解决。
3.虚拟机任务冲突
某些虚拟化任务需要花费相当多的时间才能完成,而且即使在发生超时错误后仍在后台运行。当另一个虚拟化任务也在同时运行时尝试启动一个虚拟机可能会导致服务器发生错误。例如,当你删除不需要的快照时,在合并过程中,虚拟机可能不会重启。修改虚拟机配置文件中的超时设置将允许关键的活动不间断运行,但是你可能还需要重新配置后台任务来避免在下班时间虚拟机发生迁移以及重启。
4.虚拟机文件损坏
虚拟机仅仅是运行于内存中的镜像,而且该镜像以特定的虚拟机文件格式比如.vmx以及.vmdk保存在磁盘中。与所有基于磁盘的存储一样,磁盘存储子系统或者网络连接存储以及服务器存在的问题可能会破坏虚拟机文件。当虚拟机所需要的必要文件丢失、被锁定、损坏时,虚拟机将无法启动。
文件锁定用于避免并发的任务对正在使用的文件带来意想不到的变化,经常会发生上述错误。在某些情况下,虚拟机组件文件仍旧被锁定而且避免了虚拟机在另一台服务器上启动。你可以修改被锁定的文件然后移除锁定,但是这一详细的过程需要具备有关特定hypervisor以及数据中心环境的专业知识。更为常见的是从最近的快照或者另一个备份恢复虚拟机。
5.许可、管理输入以及其他问题
导致虚拟机无法启动的其他问题与比如用户输入意外中断有关,而与服务器功能或者文件完整性无关。虚拟机可能开启了一个正常以及成功的启动过程,但是在启动完成之前暂停了,并等待管理输入。一旦你回答了该问题,虚拟机将会继续启动。在重新配置虚拟机以自动应答常规问题、消除人为干预之前,你需要在虚拟机启动过程中避免中断。这一过程与hypervisor相关而且需要具备专业知识。
另一个经常被忽略的问题是许可,该问题通常源于hypervisor安装疏忽。例如,将虚拟机部署在一台刚被虚拟化的服务器上时,这台新服务器的许可可能没有被正确配置。在其他情况下,许可可能被破坏了,或者组织可能就没有许可。因此,你必须确保有足够的许可来支持正在使用的虚拟化服务器,确保服务器已经配置了许可而且务必使许可是完整的而且没有被破坏。
访问hypervisor的日志文件或者管理日志也可能会加速故障诊断过程。如果通过日志没有找到问题,根本原因很可能是上述问题中的一个。