Hyper-v Event ID 2 错误解决

     在系统管理员日常管理Hyper-v中,可能会遇见各种各样的错误。

    笔者这次遇见的错误现象是:一台DB虚拟机无故连接不上,重启,而且监控软件也没有监控到。

    从这个描述来看,问题可能不光出在Hyper-v这边,也可能是出在监控软件一端,我们姑且先从Hyper-v虚拟机这边排查起,听到这个问题的时候,感觉很奇怪,hyper-v虚拟机突然无故重启,之前从没遇见过

    初步分析,可能是由于虚拟网络或者Hyper-v宿主机相关因素导致

    连接到VM虚拟机中,发现如下两个错误事件


wKiom1VayZ6hUJxnAADZ9uVY-nU913.jpg



wKioL1Vayxig1SvYAADuFHM18lQ539.jpg


     经过google搜索,发现其中一个Event 2的事件日志,可能为罪魁祸首

    以下为老外们的相关描述

     https://social.technet.microsoft.com/Forums/en-US/6ac83ecd-23cb-401a-931a-fc98e7285b2d/the-vm-and-host-networking-components-failed-to-negotiate-protocol-version-40?forum=winserverhyperv

     https://social.technet.microsoft.com/Forums/windowsserver/en-US/d4dcdc8b-107b-4175-a8a6-c529f4833d18/the-vm-and-host-networking-components-failed-to-negotiate-protocol-version-50?forum=winserverhyperv

     http://blogs.msdn.com/b/virtual_pc_guy/archive/2014/06/30/can-you-run-windows-server-2012-r2-on-windows-server-2008-r2.aspx

     通过描述,我们可以看到,出现这个错误的原因,很可能是因为我们在2008R2的Hyper-v上,运行了2012R2的虚拟机。

     首先微软是不建议这样做的,微软建议2012R2或者Win8.1最好在最新的hyperv平台上运行,一旦我们在08R2的Hyper-v上运行了2012R2的虚拟机,就有可能会出现虚拟机停止响应或者重启的情况

     以下为微软相关的KB说明

     https://support.microsoft.com/zh-cn/kb/2744129

     看过了KB和老外的描述之后,我们再来确定一下,物理机到底是什么操作系统,但是目前我们只知道虚拟机的连接方法,并不知道物理机的IP地址或者FQDN,那么如何在虚拟机上知道 虚拟机是运行在那一台物理机呢?重点来了。

     相信这个也是很多朋友的需求,如何在虚拟机中,查询到虚拟机位于那一台物理机,实际上,如果虚拟机是Hyper-v虚拟机,会在虚拟机的注册表中,写入一些关于Hyper-v物理机的键值

     打开注册表位置:

     HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters

wKioL1Vay5ji56dQAAUUfFIL57A992.jpg


     可以看到,关于物理机的相关信息,既然在注册表中有键值,那就好说了,只需要打开注册表,就可以看到虚拟机位于那一台物理机了有没有

     

     你可以在来宾OS中通过Powershell进行查询,命令格式如下


     列出虚拟机位于的物理机

    (Get-ItemProperty �Cpath “HKLM:\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters”).PhysicalHostName

     

wKiom1VaydvhIGGKAAFFltg2S7E861.jpg

    

      列出虚拟机位于的物理机FQDN

     (Get-ItemProperty �Cpath “HKLM:\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters”).PhysicalHostNameFullyQualified


wKiom1VayefxZq_hAAEaDvLVQ_0115.jpg

     

      列出虚拟机的“虚拟机名称”

     (Get-ItemProperty �Cpath “HKLM:\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters”).VirtualMachineName


wKiom1Vaye7jOGpRAAD0khznZIQ532.jpg

    

   经过查询,我们得到了物理机为 SYSVH-33-207,连接过去看到果然是2008R2

wKiom1VayfzSrkUqAAS0-DaQyZw101.jpg

    得知之后,我们就按照KB2744129中的要求,安装KB2744129补丁,即可规避此问题。

    虽然说,在2008R2 物理机上安装KB2744129可以避免问题,但是仍然建议将hyper-v2.0升级至最新的3.0,再运行最新的操作系统。



你可能感兴趣的:(虚拟机,注册表,物理机,hyperv2.0)