最简单的虚拟化问题常常也是我们最经常遇到的。尤其是在回顾Hyper-V相关的问题时这个现象更为明显,从2009年第四季度的请求微软产品支持服务次数就可以看出。在本文中,我们会讨论到五个或者更多有趣的微软服务器虚拟化问题。需要注意的是这些问题主要都是和Windows Server 2008 RTM相关,而不是和R2相关。
1.微软服务器虚拟化安装
虚拟化问题:用户在Hyper-V角色安装后试图启动新虚拟机时,可能会看到如下的错误提示:由于Hypervisor还没有运行,所以虚拟机无法启动。
解决方案:硬件虚拟化扩展或者数据执行保护(DEP:Data Execution Prevention)没有在服务器的BIOS中激活,激活这些处理器属性可以防止此类错误。
需要注意的是虚拟化扩展或者数据执行保护在新服务器中的默认配置是关闭的,激活这些属性并且关闭计算机电源(并不是简单重新启动)可以确保Hyper-V的一切准备工作就绪。
2.虚拟设备
虚拟化问题:在设备管理器中,集成网卡将会被视为未知设备。
解决方案:在虚拟机上安装集成组件。
最佳实践表明每一台虚拟机(无论该虚拟机内运行的操作系统如何配置)都应该配置一个单独的集成组件(IC:Integration Components),并且需要在操作系统安装之后立刻安装集成组件。由于某些IC只能在一些特定的操作系统上使用,把这一步和默认构建分开确保每一台虚拟机内的IC都能够及时更新。
3.微软服务器虚拟化快照
虚拟化问题:与虚拟机有关的一个或者更多的快照丢失。
解决方案:从备份中恢复快照。这个问题的原因可能和父VHD文件有关,在快照之后可能会对父VHD文件进行编辑或者扩展。实际上不应该对有快照的父VHD文件进行任何编辑或者扩展。
但是要知道快照只是短期解决方案。对于长期备份或者其它存储使用快照可能也会带来相似的问题。
4.集成组件
虚拟化问题:在Windows Server 2008 RTM服务器的Windows Vista Service Pack 2客体机上尝试安装集成组件将会出现如下错误提示消息:发生错误:一个更新程序返回错误值1。
解决方案:把Hyper-V服务器升级到Service Pack 2或者从Service Pack 2安装集成组件来升级虚拟机。
微软强烈建议把所有的Hyper-V升级到Service Pack 2,该升级包括必要组件升级到Vista虚拟机、以及解决Hyper-V带来的大量其它问题。
5.虚拟机和反病毒解决方案
虚拟化问题:在试图创建或者启动虚拟机时,在Hyper-V上可能会遇到下面的三个问题之一:
- 用户匹配部分的打开请求操作将会被拒绝执行(0x800704C8);
- “VMName”Microsoft同步以太网端口(ID实例{7E0DA81A-A7B4-4DFD-869F-37002C36D816}):启动失败(指定的网络资源或者设备不可用(0x80070037));
- 由于线程跳出或者应用程序请求,停止I/O操作;
解决方案:三种错误可能都是由反病毒解决方案引起的,这些反病毒解决方案安装在Hyper-V服务器的父分区,并且配置为对虚拟机文件进行实时扫描。为了解决这个问题,需要把下列文件和文件夹排除在实时扫描之外:
- 默认虚拟机配置目录:C:\ProgramData\Microsoft\Windows\Hyper-V;
- 客户虚拟机配置目录;
- 默认虚拟硬盘驱动目录:C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks ;
- 客户虚拟硬盘驱动目录;
- 快照目录;
- Vmms.exe(注意:可能需要在反病毒软件内配置为进程互斥);
- Vmwp.exe(注意:可能需要在反病毒软件内配置为进程互斥);
- C:\Clusterstorage(在集群共享卷激活的情况下);
本文只列举了一些Microsoft 2009年最后一个季度所报告的关键事件样例,在处理特定问题时,其它事件也可以从中得到启发。