惭愧啊,本blog很久不更新,都长草了。
最近几个月实在忙得厉害,今天抽出1个小时更新一下最近的流水账吧。
由于工作环境的需要和出于对新技术的追求,最近我一直在研究基于硬件级别的虚拟机,说是研究,实际上还停留在很肤浅的应用层次。研究的对象是 Windows Server 2008 里面的Hyper-V虚拟机组件。
由于今天时间的关系,关于Hyper-V虚拟机组件的一些心得今天就没有时间和大家分享了,今天提及的问题是关于 Hyper-V RC1 升级补丁的安装问题。
Hyper-V RC1 补丁放出来很长一段时间了,我在发布的第2天就下载并进行了安装,安装过程进行了重启,重启以后,当时我很惊讶的发现虚拟机启动的时候还是显示着 RC0 的字样,当时我猜想是不是MS的显示错误,也就没有多关注,认为我已经把Hyper-V RC1补丁安装成功了。
但是今天我检查 WindowsUpdate 日志的时候,居然发现有一个Fail。一查,居然是在安装 Hyper-V RC1 的时候报告的安装失败。错误代码是:0x80070020。
既然安装失败了,那好,我再来安装一次,运行RC1安装包,一切正常的操作结束以后,重启以后发现还是提示安装失败,比较奇怪哦。
第二次尝试,把正在运行的2个虚拟机关闭,运行RC1安装包,一切正常的操作结束以后,重启以后发现还是提示安装失败,大惊。
算上第一次的失败,安装Hyper-V RC1升级包连续失败了3次了,好奇心油然而生,我就不信我搞不定这个补丁的安装。也罢,祭出本人法宝:Microsoft Exchange Server Error Code Look-up Tool,查询看看 0x80070020 错误号代表的字符串含义,查询到的结果是 STIERR_SHARING_VIOLATION,恩,共享违例。
知道错误号的详情以后,我就知道安装失败的原因了:安装的时候文件没法替换成功。解决方法也很简单:
- 关闭虚拟机;
- 停止Hyper-V相关的3个服务;
- 将上述3个服务的启动类型从自动改为手动;
- 运行Hyper-V RC1 升级包安装
执行上述操作以后,重启以后,哈哈,成功升级到Hyper-V RC1,然后再把3个服务启动类型设置为自动,启动这3个服务,启动虚拟机,一切恢复正常。
再回过去看看KB知识库的描述 KB450049,上面写的是:
...
All virtual machines must be shut down correctly before you install the Hyper-V Release Candidate 1 update
...
仅仅执行上述操作好像不行啊,不知道这篇KB的作者有没有自己尝试过呢?呵呵。
顺便抱怨一点的是,Hyper-V虽然提供了上层和底层两套API接口,底层的接口层次太低了,我不需要这么低的,而对于上层的接口,功能不够,虽然是基于WMI的,但是我跟喜欢纯C的接口类型,不知道是否是因为我跟不上时代的进步了。
BTW:Hyper-V RC0 挺稳定的,我的测试环境部署了2套虚拟机(Windows XP SP3 和 Windows Vista SP1),每天这2个虚拟机里面的工作环境会执行非常复杂的任务,每天需要从6:00——24:00连续执行任务,而且有大量的重启任务和高负载任务,但是经过这么多天的试用,运行Hyper-V机器没有发生过任何的不稳定情况,还是很不错的。
下次,我会进一步把现阶段学习到的知识分享给大家,时间上我尽可能在近期完成吧,敬请期待。
Smallfrogs
http://www.KZTechs.com
已发表 2008年6月5日 23:16 作者