有客戶聯系筆者,說在監控程序里面看到虛擬機延遲非常大,讓幫助檢查一下。客戶環境采用8臺服務器(每臺服務器配置256GB內存、6塊 1.2TB 的 SSD)、2臺萬兆交換機組成的全閃存vSAN群集,拓撲如圖1所示(圖中畫出了2臺服務器,其他服務器未列出)。
用戶的管理流量、虛擬機流量以及vSAN流量由2臺華為S6720萬兆交換機分擔,正常情況下不可能出現延遲的現象。下面是檢查的過程。

圖1 8節點標準vSAN群集

圖2 172.16.1.4主機延遲較大
1.使 用vSphere Web Client登 錄 到vCenter Server,在左側導航器中選擇vSAN群集,在右側“主機”選項卡中查看主機狀態,在清單中可以看到8臺主機狀態正常,主機CPU消耗、內存消耗都在正常范圍以內;在“虛擬機”列表中看到虛擬機的狀態正常;在“監控→問題→所有問題”中查看的有三條警告信息,其中有一條“網絡延遲檢查”的警告信息。
2.在“監控→vSAN→運行狀況”的“網絡→網絡延遲檢查”選項中的“網絡延遲檢查結果”表示172.16.1.4這臺主機與其他主機延遲較大,其他主機延時較為正常,如圖2所示。除此以外其他信息正常。
(3)在導航器中選中172.16.1.4這臺主機,在“配置→網絡→物理適配器”中查看物理網卡狀態,查看到鏈路速度正常(10000Mb)。其他主機網卡狀態及鏈路速度正常。因為現在檢查到的問題是172.16.1.4這臺主機與其他主機之間延遲較大,初步想法是先將這臺主機下線檢查,遷移數據與虛擬機到其他主機。
因為懷疑是172. 16.1.4主機有問題,所以想先將有問題主機下線,然后看故障能否解決。
1.在導航器中右擊172.16.1.4主機,在彈出的快捷菜單中選擇“維護模式→進入維護模式”。當前主機有4臺虛擬機正在運行。
2.因為當前主機是vSAN環境并且想要下線檢查,所以將進入維護模式前需要將當前主機上的虛擬機遷移到其他主機,選中“將關閉電源和掛起的虛擬機移動到群集中的其他主機上”,同時選中“將所有數據撤出到其他主機”。
3.當前環境是萬兆網絡的全閃存磁盤組vSAN環境,正常情況下遷移這4臺虛擬機的數據到其他主機,應該很快完成,但直到10多個小時后仍然沒有完成數據的遷移。在“群集→監控→vSAN→重新同步組件”中看到仍然還有2.03TB數據需要重新同步。
4.這時,筆者分析可能不是服務器的問題,而是其他問題引起的。登錄vSAN主機的交換機,發現交換機的每個端口都被添加了如下兩行配置。

詢問管理員得知,因為有臺機器大量向外發包,管理員為找出是哪個IP,對交換機進行了限速,但找到問題虛擬機后沒有取消限速配置。
找到問題所在之后,將交換機端口取消限速即可。另外為了避免再有虛擬機對外發包對其他網絡造成影響,可以將vSAN及虛擬化環境的交換機的“級聯”端口進行限速。
1.在本示例中每臺交換機的23、24與核心交換機級聯,登錄每臺交換機,將1~22端口取消限速并保存配置即可。批量為1~22端口取消限速的命令格式如下。

2.交換機取消限速之后,再在“監控→vSAN→網絡→網絡延遲檢查”中重新測試,此時已經沒有延遲。
3.交換機端口速度恢復正常之后,數據同步很快完成。172.16.1.4進入維護模式。然后將該主機退出維護模式,至此虛擬機的IO延遲問題解決。
4.在“監 控 → 性 能→vSAN-虛擬機消耗”,將“時間范圍”改為24小時,查看取消交換機限速6小時后前后速度對比可發現,取消交換機端口限速之后吞吐量增加、延遲減小到接近0的狀態。
說明:交換機端口qos命令格式為:qos lr cir cir cbs cbs
“cir cir”表示承諾信息速率,整數形式,取值范圍是64~接口自帶帶寬,例如Ethernet接口帶寬為100000(100Mbps)、GE 接 口帶寬為1000000(1000Mbps,1Gbps)、XG 接 口 帶 寬 為10000000(10Gbps)。
“cbs cbs”表示承諾突發尺寸,整數形式,每次突發所允許的最大流量尺寸,設置的突發尺寸必須大于最大報文長度,單位是byte。