微軟的 Ask Premier Field Engineering (PFE) Platforms 是很棒的部落格,不僅持續更新,而且還有許多很棒也很有用的觀念及資料,包括上個月他們所發表的 Windows Server 2012 Hyper-V Best Practices (In Easy Checklist Form)。在認真看完這篇文章後,小弟就決定著手翻譯,想分享給有心學習及正在使用 Hyper-V 的朋友。
文章內容及排版盡可能參照原文,且針對或許會有操作疑惑的部分,有再截圖補充。但小弟的時間及能力有限,所以將原文分批翻譯,也歡迎大家不吝指正錯誤。
還有,文章不是我寫的,小弟只是順手翻譯,若覺得文章不錯,請記得到原部落格感謝!
以下為翻譯原文第一部分:
Windows Server 2012 在 Hyper-V 的角色服務上有大幅的改進,包含合併伺服器的負載、Hyper-V 複寫、叢集感知更新、網路虛擬化和 Hyper-V 可擴充式交換器,這只是其中幾個!有人稱它為「Hyper-V 3.0」,可協助組織降低成本並提升伺服器使用率。
下面是我最早為 Windows Server 2008 R2 SDP1 所研擬的檢查表 (就在: http://blogs.technet.com/b/askpfeplat/archive/2012/11/19/hyper-v-2008-r2-sp1-best-practices-in-easy-checklist-form.aspx) 和大修後所發佈的最新版本。有曾使用先前版本的朋友會發現到許多沿用項目,是因為許多最佳化建議仍可套用到 Windows Server 2012!
我認為有一個檢查表,不僅能當做很好的工具,來檢視現有的 Hyper-V 環境,也能有效幫助前期規劃階段,以確保能從一開始就實行最佳設定。
特別提醒的是,這並非一個詳盡的彙總,而是我有幸協助企業設定的一些常用功能和項目。
另外特別感謝 Ted Teknos、Ryan Zoeller 和 Rob Hefner 他們的投入/建議/校正,讓我得以將這些整理在一起!
不囉唆,就開始我們新發佈的 Hyper-V 2012 最佳化建議檢查表。
免責聲明:所有的最佳化建議,並非每一個建議都可以,或一定要套用。最佳化建議是一般指導方針,沒有特定,或硬性規定要遵循。因此,您應該仔細檢視每個設定是否合乎您的環境。如果這個或多個最佳化建議是合乎情理的,那很好;如果不是,很簡單,就忽略他。換句話說,是由您決定是否套用這些設定。
一般設定 (主機)
⎕ 如果可以,使用 Server Core 可降低作業系統負載,減少潛在攻擊,並將重開機次數降到最少(因僅有少量的軟體更新)。
• 更多資訊:
http://msdn.microsoft.com/en-us/library/windows/desktop/hh846313(v=vs.85).aspx
⎕ 確認實體主機有套用最新的微軟更新,及重大修補程式和資訊安全更新(用於修補作業系統核心或解決安全問題)。
⎕ 確認所有適用於 Hyper-V 及叢集伺服器的 Hotfix(如果適用的話)均有安裝。請檢視下列網站並比較你的環境,因為不是所有的 Hotfix 都適用。
• Windows Server 2012 Hyper-V 更新清單:
http://social.technet.microsoft.com/wiki/contents/articles/15576.hyper-v-update-list-for-windows-server-2012.aspx
• 容錯移轉叢集(Failover Cluster)修補程式清單:
http://social.technet.microsoft.com/wiki/contents/articles/15577.list-of-failover-cluster-hotfixes-for-windows-server-2012.aspx
⎕ 確認實體主機及其他硬體裝置(像是光纖通道卡,網路介面卡等)有安裝最新版本 BIOS (譯者註:建議包含韌體),以解決任何已知或相容性支援的問題。
⎕ 實體主機應該加入網域,除非有其他安全考量。這樣能做到身份驗證、安全性與稽核的集中化管理。此外,要建立高可用性的 Hyper-V 叢集,主機也必須先加入網域。
• 更多資訊:
http://technet.microsoft.com/en-us/library/ee941123(v=WS.10).aspx
⎕ 禁用主機上的 RDP 印表機對應功能,以排除任何可能因印表機驅動程式而造成實體主機不穩定的狀況。
• 首選方式:建立主機群專屬的個別 OU 並使用群組原則進行設定。
◦ 電腦設定 -> 系統管理範本 -> Windows元件 -> 遠端桌面服務 -> 遠端桌面工作階段主機 -> 印表機重新導向 -> 不允許用戶端印表機重新導向 -> 設定為「已啟用」
⎕ 請不要安裝任何角色在實體主機上,除了 Hyper-V 角色和遠端桌面服務角色(除非這台主機將啟用 VDI)。
• 在安裝了 Hyper-V 角色後,實體作業系統將變成「父分割區」(類似於虛擬機器),而 Hypervisor 層將位於父分割區與硬體層間。因此,不建議安裝額外(非 Hyper-V 和/或 VDI 相關)的角色。
⎕ 只有這些功能應該被安裝在主機上:容錯移轉叢集管理員(如果主機是叢集的一員),多重路徑 I/O(如果主機將連接一個 iSCSI SAN、空間抑或是光纖通道),或者使用 VDI 時要用的遠端桌面服務。(可參閱先前的說明瞭解為何不建議安裝額外的功能。)
⎕ 防毒軟體應排除 Hyper-V 在使用的特定檔案:防毒軟體需排除的 Hyper-V 項目,分別是:
◦ 所有包含 VHD、VHDX、AVHD、VSV 和 ISO 檔案的資料夾
◦ 虛擬機器設定檔預設存放的目錄位置,一般是使用:
C:\ProgramData\Microsoft\Windows\Hyper-V
◦ 快照預設存放目錄位置,一般是使用:
%systemdrive%\ProgramData\Microsoft\Windows\Hyper-V\Snapshots
◦ 自訂的虛擬機器設定檔存放目錄
◦ 虛擬硬碟檔案預設存放目錄
◦ 自定的虛擬硬碟檔案存放目錄
◦ 快照目錄
◦ Vmms.exe
(注意:可能需要在防毒軟體上設定為排除程式)
◦ Vmwp.exe
(注意:可能需要在防毒軟體上設定為排除程式)
◦ 此外,如有使用叢集共用磁碟區,排除 CSV 路徑「C:\ClusterStorage」和其所有子目錄。
⎕ 虛擬硬碟檔案的預設存放位置應被設定到非系統使用的磁碟上,因為這樣可降低磁碟延遲並增加主機可運作的潛在空間。
⎕ 如果選擇虛擬機器的自動停止動作為儲存虛擬機器狀態,預設的虛擬機器路徑應該設定到非系統磁碟上,因為這樣的儲存狀態行為會為了還原虛擬機器,而建立一個大小與這台虛擬機器記憶體相同大小的 .bin 檔案。同樣位置也可能會建立一個 .vsv 的檔案,造成每個虛擬機器的磁碟使用空間增加。
(預設位置為:C:\ProgramData\Microsoft\Windows\Hyper-V)
• 注意:如果選擇自動停止動作為儲存虛擬機器狀態,在 Server 2012 的 Hyper-V 將只會使用 .bin 檔案。
• 在 Server 2012 改變使用 .bin 檔案的緣由:
http://blogs.msdn.com/b/virtual_pc_guy/archive/2012/03/26/option-to-remove-bin-files-with-hyper-v-in-windows-8.aspx
⎕ 如果你有使用 iSCSI 功能:請在每個主機的防火牆設定,於具有進階安全性的 Windows 防火牆中,啟用 iSCSI 服務 ( TCP-In ) 的輸入規則和 iSCSI 服務 ( TCP-Out ) 的輸出規則,讓 iSCSI 網路流量能傳入及傳輸到主機和 SAN 設備。未啟用這些規則會阻礙 iSCSI 的溝通。
若想透過 netsh 設定iSCSI 的防火牆規則,可參考下面指令:
Netsh advfirewall firewall set rule group="iSCSI Service" new enable=yes
(譯者註;若原生為繁體中文的作業系統,請將 group 的名稱改為「iSCSI 服務」,完整指令如下)
Netsh advfirewall firewall set rule group="iSCSI 服務" new enable=yes
⎕ 對實體主機定期執行效能計數器,以確保最佳效能。
• 推薦使用從 CodePlex PAL 專案(譯者註:Performance Analysis of Logs (PAL) Tool)所取出的Hyper-V 效能計數器:
◦ http://pal.codeplex.com/
• 在工作站安裝 PAL 並開啟使用,然後點選 Threshold File 頁籤。
(譯者註:需先安裝 Microsoft .NET Framework 3.5 及 Microsoft Chart Controls for Microsoft .NET Framework 3.5)
(譯者補圖)
◦ 從 Threshold file title 找到「Microsoft Windows Server 2012 Hyper-V」,再選擇 Export to Perfmon template file。將這 XML 檔案儲存到 Hyper-V 主機可存取的位置。
(譯者補圖)
• 下一步,在實體主機上開啟伺服器管理員 -> 工具 -> 效能監視器
(譯者補圖)
• 在效能監視器,選擇「資料收集器集合工具」–> 使用者定義。在使用者定義用滑鼠右鍵選擇「新增」–> 資料收集器集合工具。給予這個收集器名為「Hyper-V Performance Counter Set」,然後選擇「從範本建立 (建議選項)」,接著下一步。在下一步的視窗中,選擇「瀏覽」並使用從 PAL 應用程式所匯出的 XML 檔案。一旦完成,這將會出現在你自行定義的收集器集合工具中。(譯者註:收集器名稱可自定)
(譯者補圖)
(譯者補圖)
• 在效能監視器中執行這個資料收集器 30 分鐘至一小時(於高使用率期間),並找出 Disk Latency、記憶體和 CPU 等問題。
(譯者補圖)
(譯者補圖)
雖然不是關於hyper-v的問題不過我在TechNet所發表的文章
http://social.technet.microsoft.com/Forums/zh-tw/windowsserver2008zhcht/thread/0109351b-c580-4cac-bb6d-e8276dd6d414
您似乎知道答案能否告訴我呢?感謝
如果我已經找出答案或知道答案,
是不會故意不在論壇上回答你的,
所以不需要特別跑到小弟的部落格來請我回答。
請問一下,HYPER-V SERVER裡可以再新增HYPER-V腳色的GUEST OS嗎?
因為我新增後會出現錯誤,謝謝。
不能喔。
因為硬體的虛擬化資源已經被實體使用了,
但曾有聽說可以用某些方法硬幹,
不過這些方式都不在微軟官方的技術支援範圍內,
也沒人可以保證能正常使用。
非常感謝
感謝Askasu分享,對於優化自家的HyperV3效能非常有參考價值.