國家廣播電視總局無線電臺管理局七二二臺 王曉峰
在使用VMware的服務器虛擬化系統一段時間以后,發現系統內有一些需要優化的地方。在部署一臺交換機和若干千兆網線并進行相應配置后,服務器虛擬化系統的容錯能力和性能都得到了提升,系統運行的更加穩定可靠。
本人所在單位目前已經使用VMware公司的服務器虛擬化軟件vSphere ESXi6.7和配套的虛擬化管理軟件vCenter6.7實現了機房服務器系統虛擬化。服務器虛擬化以后,整個機房物理服務器的數量從原來的二十多臺降為了三臺;保障服務器工作的UPS電源負載降低了35%左右;減輕了機房制冷系統的負荷;機房總體耗能有所降低。總的來說服務器虛擬化之后單臺物理機上運行業務系統的密度增大了,整個機房提高了運維效率降低了運維費用。但是隨著這兩年來的使用,我們發現目前的服務器虛擬化系統存在一些問題,需要升級改造。
本人所在單位的服務器虛擬化系統是按照最小系統規格配置的。分別由三臺物理服務器,一臺千兆交換機,一臺光交換機、一臺FC共享存儲和vSphere虛擬化軟件組成。從邏輯上可以分為系統存儲部分、系統網絡通信部分和宿主機部分。
系統存儲部分組成如下:三臺物理服務器上安裝了HBA光纖通道卡,通過8G速率的光纖與光交換機連接;虛擬化共享存儲的控制器上自帶光纖接口,通過8G速率的光纖與光交換機連接。三臺物理服務器可以通過光纖與光交換機組成的“光通路”訪問共享存儲,實現服務器虛擬化系統的數據讀寫。改造前服務器虛擬化系統連接拓撲圖如圖1所示。

圖1 改造前服務器虛擬化系統連接拓撲圖
系統網絡通信部分組成如下:每一臺物理服務器均配置了八個網口,目前僅僅使用其中三個網口與一臺千兆交換機連接;在這臺千兆交換機上劃分了三個網絡Vlan:虛擬化系統遷移時需要用到的vMotion業務所在網絡Vlan,管理虛擬化系統時需要用到的Management業務所在網絡Vlan,還有虛擬服務器對外提供服務使用到的業務Vlan。前兩個Vlan是保障服務器虛擬化系統自身能夠正常工作的基礎;后一個Vlan是系統內運行的虛擬機保持對外服務的通道。每臺物理服務器使用三條千兆網線分別通過不同的網口連接到系統千兆交換機對應的Vlan網口。
服務器虛擬化系統與其他網絡系統的關系如下所述。服務器虛擬化系統內的千兆交換機通過一個設置為Trunk工作模式的網口與上一級核心交換機連接,同時另外一個設置為Trunk工作模式的網口與遠端工作現場的一臺交換機連接。通過上述兩條鏈路,系統內運行的辦公業務類虛擬機給本單位接入核心交換機的用戶提供日常辦公相關服務;設備控制相關的虛擬機給遠端工作現場的工控設備提供數據存儲和遠程自動控制服務。
經過兩年的實際運行,我們發現在生產環境下這套服務器虛擬化系統存在以下問題。首先系統中的交換機與上一級核心交換機之間、系統交換機與遠端工作現場交換機之間只有一條物理鏈路,只要發生故障,它們與虛擬化系統之間的通信就會中斷。其次在服務器虛擬化系統中,僅僅有一臺千兆交換機,這臺交換機即需要負擔虛擬化系統內部的網絡流量,又需要承擔與系統內虛擬服務器進行業務交互的網絡流量,在系統內虛擬機大規模遷移時交換機容量捉襟見肘;同時因為設備故障或者意外造成這臺交換機停止工作會使所有虛擬化服務器無法訪問,造成虛擬化系統內運行的全部業務對外服務中斷。
因為這套服務器虛擬化系統已經使用了兩年左右,在功能上能夠滿足單位的日常需要,所以這次升級系統的主要目的是盡量提高系統的可靠性。在計算機系統中可靠性的提升一般采用冗余設備的方法。但是計算機系統不僅僅是物理硬件的堆砌,還包含運行在物理硬件上的各種軟件。因此在做冗余設置提升系統可靠性時,不僅要考慮硬件配置,還要考慮軟件設置。
為了提升服務器虛擬化系統中使用的交換機與單位其它交換機之間通信的可靠性,從物理上看,我們可以直接在這兩臺交換機之間增加一條千兆網線,以實現鏈路冗余。而實際上在不對交換機做任何配置的情況下,兩臺交換機之間直接連接兩條網線會在交換機之間形成環路,產生廣播風暴,使交換機無法正常工作。
可以在交換機中啟用STP協議(生成樹協議)或配置鏈路聚合功能解決冗余物理鏈路的環路問題。
交換機中的STP協議啟用以后,會根據當前交換機的物理連接拓撲生成邏輯上的、無環路的交換機樹形拓撲,通過關閉環路中上層交換機指定端口的方法,使環路中一條物理鏈路處于工作狀態,而另一條處于不工作狀態。當處于工作狀態的鏈路中斷時,原本中斷狀態的鏈路才會啟用。這樣可以實現物理鏈路冗余,但是STP協議切換鏈路花費的時間比較長,在鏈路切換時會產生較長的中斷時間。
在交換機上配置鏈路聚合功能,會將兩臺交換機之間連接的多條物理鏈路,看成一條邏輯鏈路,解決了鏈路備份與環路的矛盾。根據對交換機的配置,一些物理鏈路可以同時工作,在增加交換機之間通信帶寬的同時,提供了鏈路冗余;另一些物理鏈路可以作為備份鏈路存在,平時鏈路上沒有數據傳輸,當上文中工作鏈路中某一條中斷后,由備份鏈路補上。
經過綜合考慮,我們選擇在交換機上開啟STP協議同時配置鏈路聚合,使用STP協議防止物理鏈路自環;使用鏈路聚合技術為交換機之間增加冗余物理鏈路,實現交換機之間鏈路可靠性與性能的提升。
為了解決虛擬化系統內的一臺千兆交換機單點部署的問題,我們增加了一臺新的同型號交換機并且在兩臺交換機之間實施了堆疊配置。交換機堆疊是一種交換機集群技術,在兩臺同型號的交換機之間通過指定接口把兩臺交換機連接起來并在交換機上啟動堆疊配置,堆疊后的交換機對外呈現出一臺交換機的特性。這臺通過堆疊技術實現的邏輯交換機,只有一個管理IP,接口數量和性能都得到了加強,配合跨設備鏈路聚合技術,可以實現交換機的熱備。也就是說,一臺物理服務器的兩個網口,分別連接到堆疊交換機中的兩臺物理交換機,并將這兩個來自不同物理交換機的端口在堆疊后的邏輯交換機內做端口聚合配置。當堆疊交換機中的一臺物理交換機故障后,服務器可以通過堆疊交換機中的另一臺物理交換機通信。

圖2 改造后服務器虛擬化系統連接拓撲圖
綜上所述,我們制定如下升級方案。新增一臺千兆交換機,與虛擬化系統中的原千兆交換機使用千兆網線分別通過兩組物理網口連接組成堆疊交換機。從三臺物理服務器上,通過空余的網口分別為vMotion業務所在Vlan、Management業務所在Vlan和業務網絡所在Vlan增加一條冗余千兆網線,連接到堆疊交換機中新增的物理交換機上。實施堆疊配置后的兩臺物理千兆交換機和其他外圍交換機連接時,可以從兩臺物理交換機上使用千兆網口同時連接到外圍交換機的兩個網口上,在堆疊交換機和外圍交換機上同時配置端口聚合。改造后服務器虛擬化系統連接拓撲圖如圖2所示。
將虛擬化系統中的一臺交換機的19號網口和20號網口依次與另一臺新增交換機的20號網口和19號網口連接起來。
使用Telnet連入一臺物理交換機的配置系統,依次運行interface stackport 0/1,port interface GigabitEthernet 0/0/19 enable,quit;依次運行interface stack-port 0/2,port interface GigabitEthernet 0/0/20 enable,quit。
使用Telnet連入另外一臺物理交換機的配置系統,依次運行interface stack-port 0/1,port interface GigabitEthernet 0/0/19 enabl e,quit;依次運行interface stack-port 0/2,port interface GigabitEt hernet 0/0/20 enable,quit。
重新啟動兩臺交換機,啟動后會組成堆疊交換機。
除了交換機堆疊之外,交換機之間的級聯和交換機與服務器的連接使用兩個網口通過網線對應連接對端網口,交換機系統內以手工負載分擔模式配置鏈路聚合。下面以虛擬化系統內堆疊后形成的邏輯交換機與核心交換機之間的鏈路聚合配置為例予以說明。
在堆疊交換機上做如下配置:interface eth-trunk 1,trunkport GigabitEthernet 0/0/1,trunkport GigabitEthernet 1/0/1,port link-type trunk,port trunk allow-pass vlan 10 to 100。
在核心交換機上的配置與堆疊交換機上的類似,僅僅是把trunkport GigabitEthernet 1/0/1命令改為trunkport GigabitEthernet 0/0/2。
通過配置堆疊交換機的GigabitEthernet 0/0/1口和GigabitEthernet 1/0/1與核心交換機的GigabitEthernet 0/0/1和GigabitEthernet 0/0/2口實現了鏈路匯聚。
結論:經過本次升級,優化了多個可能會出現單點故障的網絡結構,整個系統的性能和可靠性均有了很大的提升。此后單臺交換機或者單條鏈路的故障再也無法中斷虛擬化系統對外提供服務。