Hyper-V [shared nothing live migration]時,速度減半問題紀錄

目前公司Hypre-v環境4台windows server 2012 R2 Hyper-v Host無share storage
且VM會在這4台主機之間做shared nothing live migration。

4台主機網路卡各有4張。2張LACP給VM使用,一張join domin 管理用,一張接到一顆獨立L2 switch 做share nothing live migration(獨立網段)用。

簡略架構圖:

clip_image001

正常VM遷移時速率(不管vhdx容量多大都一樣):

由HostA 主機將VM Share nothing live migration 到HostB 使用的網卡為1G

平均速度會若再6XX Mbps – 7XX Mbps之間,且在遷移VM時網卡流量顯示最高可達1G (如下兩張圖)

clip_image003

clip_image005

不知何時在這四台主機間遷移VM時速率變成大約降低 3XX Mbpx – 4XX Mbps,且網卡流量顯示最高只可達500 Mbps

clip_image007

首先檢查個主機關於[shared nothing live migration]設定=>沒有問題

基本設定連結可參考 : https://msdn.microsoft.com/zh-tw/library/dn464010.aspx

接下來做了一些測試

因為在做移轉時是使用獨立網段及網卡及L2 switch,網段為192.168.10.x/24

所以測試這幾台主機間分享資料夾copy 大約4G的iso 。

1.測試方式主機分享資料夾將iso放進去,另一台主機已\\192.168.10.x\sharefolder來複製檔案

大約不到15秒就複製完成,看起來網卡部分沒問題。

clip_image009

2.也利用ipref 測試軟體來測試,數據上也是沒問題,網路卡部分應沒問題。

clip_image010

3.也將其中兩台hyper-v主機移轉專用的網卡直接對接來做VM遷移,可是速度還是沒提升,這樣就排除了Switch問題。

4.在國外論壇上有類似的討論,不過看起來沒有結果

https://social.technet.microsoft.com/Forums/office/en-US/1474da1a-d6ab-4b4c-bd39-1e4f0efe6432/win-2012-sharednothing-live-migration-slow-performance?forum=winserverhyperv

其中有網友回復可能是磁碟效能關係,所以可以更新RAID card firmware 看看 =>無效

5.更新網路卡驅動程式到最新 => 無效

6.將主機電源配置改為高效能,及網卡省電模式拿掉都沒作用

clip_image012

clip_image013

也參考此篇

http://blogs.technet.com/b/virtualpfe/archive/2012/09/14/hyper-v-and-bios-power-plans-c-states.aspx

調整了BIOS,將 Process 選項中的 C States 停用

但這個在我的主機中只有R710有該設定 R720沒看到,但是還是沒用 ==.

clip_image015

因為有些VM vhdx比較大所以臨時Host機器要維護就必須要遷移到另外一台才行,但是因為變慢所以遷移時間多一倍,我實在忍不住了,所以陸續重灌了3台機器,重灌完畢後並windows update至最新。在這三台host之間做VM遷移速度就恢復正常,但是只要遷移到尚未重灌的那一台主機上又是非常慢的遷移速率。

因為不死心,留下一台有問題的主機繼續研究,想了一下在VM移轉時copy 檔案應該是用smb所以找了一下相關的指令在正常主機看一下smb 相關設定然後比對

指令 Get-SmbServerConfiguration

在正常與異常主機執行指令後比對有一個地方設定不同

移轉正常主機查詢看到的設定如下圖

RequireSecuritySignature 設定是 False

clip_image017

異常的主機是RequireSecuritySignature 設定是 True

clip_image019

發現 RequireSecuritySignature 這個設定是不一致,異常主機是啟用的狀態

執行下面指令:將他disable 0=>停用 1=>啟用

Set-SmbServerConfiguration -RequireSecuritySignature 0

修改設定後做了測試,只恢復了一半,怎麼說呢

就是這一台速度減半的主機接收另一台主機移轉VM過來 => 恢復正常速度

異常主機上的VM移轉至正常的主機 => 還是一樣慢

剛才上述的設定是屬於Server端的,因為同一台主機當是將VM遷移至另一台主機扮演是client端

查詢指令 Get-SmbClientConfiguration執行後發現果然RequireSecuritySignature參數果然也是啟用

所以Client端設定也要修改如下指令,修正後另一半也恢復正常。

Set-SmbClientConfiguration -RequireSecuritySignature 0

最後:

因為不確定RequireSecuritySignature參數意義,所以查了一下應該是一個SMB安全機制,應該算是加密吧

參考連結如下

https://blogs.technet.microsoft.com/josebda/2010/12/01/the-basics-of-smb-signing-covering-both-smb1-and-smb2/

http://www.windowsecurity.com/articles-tutorials/misc_network_security/Secure-SMB-Connections.html

http://www.serverlab.ca/tutorials/windows/storage-file-systems/windows-server-2012-smb-3-0-invalid-signature-error-with-smb-2-storage/

也搜尋到一篇 [disable SMB Signing on Windows Servers to improve SMB performance]

https://support.exinda.com/topic/how-to-disable-smb-signing-on-windows-servers-to-improve-smb-performance

以我自己環境的狀況此參數會被修改可能原因有

1. 在做windows update 被更新,但因太多支我就沒有仔細研究,但因為我重灌過主機更新卻沒有問題所以只能懷疑。

2. 總公司都會做一些定期伺服器安全漏洞掃描若有漏洞就會幫各地主機修補。

以上提供大家參考,也謝謝曾經被我詢問過此問題的IT前輩們幫忙。



本篇瀏覽人數: 4339
分類: Hyper-V篇。這篇內容的永久連結

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *