天天看點

2012R2 VM on Hyper-v 2008 R2錯誤解決

     在系統管理者日常管理Hyper-v中,可能會遇見各種各樣的錯誤。

    筆者這次遇見的錯誤現象是:一台DB虛拟機無故連接配接不上,重新開機,而且監控軟體也沒有監控到。

    從這個描述來看,問題可能不光出在Hyper-v這邊,也可能是出在監控軟體一端,我們姑且先從Hyper-v虛拟機這邊排查起,聽到這個問題的時候,感覺很奇怪,hyper-v虛拟機突然無故重新開機,之前從沒遇見過

    初步分析,可能是由于虛拟網絡或者Hyper-v主控端相關因素導緻

    連接配接到VM虛拟機中,發現如下兩個錯誤事件

<a href="http://s3.51cto.com/wyfs02/M01/6D/0C/wKiom1VayZ6hUJxnAADZ9uVY-nU913.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/6D/07/wKioL1Vayxig1SvYAADuFHM18lQ539.jpg" target="_blank"></a>

     經過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

<a href="http://s3.51cto.com/wyfs02/M00/6D/07/wKioL1Vay5ji56dQAAUUfFIL57A992.jpg" target="_blank"></a>

     可以看到,關于實體機的相關資訊,既然在系統資料庫中有鍵值,那就好說了,隻需要打開系統資料庫,就可以看到虛拟機位于那一台實體機了有沒有

     你可以在來賓OS中通過Powershell進行查詢,指令格式如下

     列出虛拟機位于的實體機

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

<a href="http://s3.51cto.com/wyfs02/M01/6D/0C/wKiom1VaydvhIGGKAAFFltg2S7E861.jpg" target="_blank"></a>

      列出虛拟機位于的實體機FQDN

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

<a href="http://s3.51cto.com/wyfs02/M02/6D/0C/wKiom1VayefxZq_hAAEaDvLVQ_0115.jpg" target="_blank"></a>

      列出虛拟機的“虛拟機名稱”

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

<a href="http://s3.51cto.com/wyfs02/M00/6D/0C/wKiom1Vaye7jOGpRAAD0khznZIQ532.jpg" target="_blank"></a>

   經過查詢,我們得到了實體機為 SYSVH-33-207,連接配接過去看到果然是2008R2

<a href="http://s3.51cto.com/wyfs02/M01/6D/0C/wKiom1VayfzSrkUqAAS0-DaQyZw101.jpg" target="_blank"></a>

    得知之後,我們就按照KB2744129中的要求,安裝KB2744129更新檔,即可規避此問題。

    雖然說,在2008R2 實體機上安裝KB2744129可以避免問題,但是仍然建議将hyper-v2.0更新至最新的3.0,再運作最新的作業系統。

本文轉自 老收藏家 51CTO部落格,原文連結:http://blog.51cto.com/wzde2012/1652742

繼續閱讀