前言

在現今的雲端運算時代中,IT人員已經無法否認虛擬化的重要性,甚至已經享受虛擬化所帶來的好處多時。除了伺服器虛擬化(Server Virtualization)之外,各式各樣的虛擬化技術也風起雲湧地蓬勃發展。

但伴隨著虛擬化好處而來的,便是IT人員對於虛擬化之後效能的疑慮。本文將探討在虛擬化之後,Cisco Virtual Interface Card (VIC)與VM-FEX技術如何大大減輕I/O對於CPU效能的影響,進而將伺服器發揮到極致。

一、虛擬化後對伺服器帶來的影響

伺服器虛擬化對於IT帶來的好處,本文將不一一贅述。但是,若從伺服器的效能角度來看,在我們把虛擬化帶到伺服器之前,無論是政策、安全或效能考量,大部分的伺服器都執行單一的應用程式。在這個時候,每部伺服器的CPU、I/O、記憶體都是各自獨立的資源(如下圖)。

虛擬化之前,大家將注意力集中到了資源的浪費,尤其是CPU。因為伺服器大多僅僅提供單一或少量的服務,導致CPU的利用率(utilization)偏低。

虛擬化適時、恰當的解決了這些資源的浪費。伺服器虛擬化技術將記憶體、I/O (網路與磁碟)與CPU虛擬之後,組成一部部的虛擬機器存在於實體機器內,讓CPU的效能與利用率能夠大幅的提升(如下圖)。

在降低實體成本(虛擬化軟體License、伺服器購置數量)與提升效能(榨出伺服器的效能極限)兩個看似衝突的方向之下,我們當然希望實體機中的虛擬機器數量越多越好。但虛擬機器數量增加後,似乎就不能對效能有所期待。

I/O由CPU模擬之後,I/O的效能變成為虛擬化的瓶頸之一。而這個瓶頸正是某些IT人員(特別是資料庫管理員)對於虛擬化猶疑不前的最大因素。

記憶體是另外一個成本與效能相衝突的實例。現代的記憶體控制器(memory controller)多內建於CPU當中,當虛擬機器數量增加時,記憶體的需求量也隨之增加。為了增加記憶體,也就需要增加CPU數量,如此一來,建置成本也就水漲船高(為了增加記憶體,需再買CPU、更高階的主機板或伺服器、更多的虛擬化軟體License、更多的電源與冷卻)。

Cisco的UCS產品依照CPU世代與機型的不同,最多可提供二倍或四倍的記憶體擴充空間,降低後續採購的成本,並發揮整體的效能。

本文將聚焦討論I/O效能瓶頸的解決技術。

二、I/O效能的瓶頸

在傳統虛擬化架構中,虛擬機器的I/O介面(Ethernet網路、Fiber Channel)都是由CPU來模擬處理。單由這點來看,這樣等於是走回頭路。好不容易,這些I/O已可獨立讓硬體晶片處理以提高效能,現在卻將這些動作交回給CPU處理。因此越多的虛擬機器,就需要越多的CPU資源,並且會造成排擠效應,因而降低某些需大量依靠I/O服務的效能。

到最後,整體CPU的利用率是增加了,但卻有大部分是用來處理I/O。虛擬機器的數量更不可能提升了。

除此之外,使用CPU資源的Hypervisor中,虛擬交換器(virtual switch)連接虛擬機器的虛擬網路卡(vNIC),依照封包的目的地,在虛擬機器之間交換,或送出實體機器。這些動作都更再加重了CPU處理的負擔(如下圖)。但這些虛擬交換器所造成的問題不僅僅是效能上的瓶頸而已。

傳統上,實體網路卡(PCI資源)數量一定遠小於虛擬網卡(vNIC)的數量。所以下面幾個問題將無可避免:

封包可見度:虛擬機器之間的封包交換是在虛擬交換器的協助下直接在本地端交換,這使得網路管理人員無法直接監控、管理該類封包,因而衍生管理與安全上的問題。
管理政策:由於多片虛擬網卡共用實體網路卡,因此虛擬網卡的服務或管理政策(例如:ACL、QoS等等),變成相當難以設定,並需考量管理政策聯動、排斥性。尤其是在QoS方面,vNIC所送出的封包將變得難以預測。
廣播領域(broadcast domain)的擴大:由於外部的實體交換器失去對虛擬機器的可見度,以至於實體的網路卡皆必須使用VLAN trunking,如此將擴大廣播領域,降低整體效率。
某些功能(例如:QoS Shaping、Load Balance)只能在實體介面卡上設定使用,由於虛擬機器的vNIC藏在虛擬交換器之後,而非連接在實體介面卡上,所以無法使用相關的設定。

三、Cisco Virtual Interface Card(VIC)虛擬介面卡

前面提到傳統上實體I/O介面卡數量遠小於虛擬介面卡(vNIC、vHBA),因而產生多種限制。如果伺服器上能夠提供、使用相同數量的網路卡那該多好!

由於CPU與主機板上擴充槽上的限制,使得實體介面卡的數量必定無法盡如人意。

即使擴充槽的數量增加了,購置那麼多張卡片與後續維護的成本必然增加。

向上連接的線路與交換器(購置與維護成本)也必須增加。
更不用說因而增加的電力與冷卻成本。

即使可接受成本與管理複雜度的增加,購買實體Ethernet網路卡與HBA介面卡前必須算好數量,因為無法事後彈性調配數量與比例。

線路或介面卡損壞時,須啟動複雜的HA (如:teaming)設定。

Cisco Virtual Interface Card (VIC)虛擬介面卡的推出解決了這些問題。

第一代的Cisco UCS 1120 VIC (M81KR)支援128張PCI-e介面卡,無論在實體作業系統或是虛擬化軟體Hypervisor中所偵測到的這些PCI-e資源就是可設定的實體介面卡。管理人員可彈性設定這些介面卡的數量與種類(Ethernet或HBA)。對外支援兩條10Gbps共20Gbps的Fibre Channel over Ethernet (FCoE)通道(如下圖)。

第二代的Cisco UCS 1280 VIC更支援256張PCI-e介面卡,對外更支援高達兩條4*10Gbps,共80Gbps的FCoE通道(不過受限於PCI-e通道標準,同時運作時,最高支援64Gbps)(如下圖)。

這些由實體作業系統或Hypervisor所偵測到的PCI-e介面資源,不需特殊的驅動程式;當對外通道斷線或無法連通時,vNIC並不會被作業系統偵測為斷線,Cisco UCS Manager會自動安排備援通道,因此使用者可完全不需設定或啟動teaming等HA功能。

有了這麼多張可運用的介面卡之後,我們就可以在最節省成本的前提之下彈性運用這些PCI-e資源、減少虛擬機器vNIC的共用,提升封包交換可見度、獨立設定vNIC的管理或安全政策,以降低管理複雜度、減少VLAN trunking的需求,適度縮小廣播領域、增加QoS的正確與可預測性。

更重要的,透過Cisco VIC所支援的Cisco VM-FEX技術(下一節說明),可以大幅(或根本)降低虛擬化之後I/O對於CPU資源的損耗,以降低各式虛擬I/O的CPU利用率,讓CPU有更多的空間容納更多的虛擬機器。這才是讓伺服器發揮極致效能的解決之道,也才能解除部分使用者對於虛擬化I/O效能瓶頸的疑慮!

VM-FEX除了搭配VMware的VMDirectPath技術之外,未來Cisco VIC更將支援另一個I/O虛擬技術:SR-IOV,讓更廣泛的虛擬化軟體都可以使用到Cisco VIC所帶來的好處。

四、Cisco VM-FEX技術

前面一節,我們提到了Cisco VIC對於管理上帶給使用者非常多的便利與彈性。除此之外,透過VM-FEX技術的支援,更可進一步幫助CPU減少因I/O虛擬化而增加的資源需求。

卸載(offload) CPU負擔的主要方法有二個步驟:

1.使用外部硬體式交換器交換封包。
使用VM-FEX技術之後,所有進出虛擬機器的封包不再由虛擬交換器交換,而是利用外部的硬體式交換器(如下圖虛線)。

這種運作方式就好像虛擬機器上的網路卡,直接連線(或透過patch panel)接到交換器,可以為虛擬化環境帶來很多的好處:

(1) 擴充性:vNIC連線至交換器,管理人員可以在單一設備上管理、設定多個虛擬機器之相關規則、功能。也因此,虛擬機器移轉、更動時,可以快速、彈性的修改與移植。
(2) 高效能:不再使用CPU運算資源交換封包。
(3) 易於管理:由於虛擬網卡直接接到硬體交換器,管理人員可直接在交換器上設定相關功能與規則。如此不僅可讓網管人員方便監控網路狀態,並可讓網管人員不需再深入伺服器中調整設定或監控網路,使網路與系統管理人員的管理範圍與界限,更為清楚、明確。

2.穿透(pass through)或跳過(bypass)虛擬交換器

Cisco VM-FEX技術支援虛擬機器介面卡的兩種模式:

(1) 標準模式(standard mode)
在這個模式下,Hypervisor中的虛擬交換器就如同patch panel,將對內(虛擬機器vNIC)與對外(Cisco VIC上之vNIC)之交換埠一一對接,封包不在虛擬交換器交換,而是穿透(pass through)過後,再到實體交換器交換(如下圖)。

下圖為流程示意圖,在標準模式下,不管是資料流(由Vmxnet3往下之粗線),或是控制訊號流(其他線條)都會流經虛擬交換器。但因其為內外對接,省去交換的動作,仍可節省可觀的CPU負載。

(2) 高效能模式(high performance mode)
搭配VMware所發展之VMDirectPath技術,VM-FEX可執行高效能模式,讓I/O跳過CPU (hypervisor),直接呼叫硬體介面卡,並將資料送出,如此讓CPU不需負擔I/O重任,進而允許部署更多的虛擬機器(如下圖)。

下圖為流程示意圖,在高效能模式下,資料流直接跳過虛擬交換器與網路卡驅動程式,直接將資料送到介面卡上送出。如此,使用者便不需擔心在大量I/O的同時造成CPU利用率的上升,而影響其他虛擬機器的運行。

下圖可統整說明Cisco VM-FEX之架構:最下方的實體交換器,雖然只使用單一線路,但利用802.1BR的技術可虛擬切分為多個虛擬埠(virtual port)連線至Cisco VIC。圖中VM0與VM2使用的是標準模式,將虛擬機器上的vNIC與Cisco VIC上的vNIC連接,封包穿透過虛擬交換器,由下方實體交換器來交換封包。

下圖的VM1則使用高效能模式,封包跳過虛擬交換器,只有在vMotion (VMware vSphere 5.0以上)需要抄寫狀態時才會短暫回到標準模式(VM1下方黑框)。

五、VM-FEX技術達成之效益

經過實驗證明,利用Cisco VM-FEX技術之後,最多可以增加38%的網路吞吐量(throughput)。

下圖是實驗的統計圖表。最下方的實驗曲線是使用傳統虛擬交換器交換封包,中間的曲線是使用VM-FEX標準模式,上方的曲線則是使用VM-FEX高效能模式。我們可以看到,即使到最右邊48對虛擬機器的互傳時,高效能模式還可比傳統虛擬交換器有近27%的增長。

使用標準模式時,也可比傳統方式增加10~13%的效能。

使用Cisco VIC之後,透過VM-FEX技術,除了因此增加網路效能之外,CPU的利用率也跟著降低了。CPU利用率降低之後,同一台伺服器就可以部署更多虛擬機器,軟硬體的購置與維護成本就更為降低。當使用者可以使用較少的伺服器做到相同的服務時,不管是外接設備的數量、線路的佈放、空間的利用、電力與空調系統的消耗都可以大幅的降低。因此Cisco VIC可以讓使用者使用更為節能、更為節省成本的方法,提供更高效的服務。

結語

在我們擁抱虛擬化技術之後,伴隨而來的效能瓶頸是IT無法全面導入虛擬化的因素之一。Cisco Virtual Interface Card支援高達256張實體PCI-e資源,讓使用者彈性調配使用Ethernet與HBA介面卡,並且可解決傳統虛擬化環境的管理困境,可以輕鬆制定、控管各種功能、讓網路與系統的管理人員有更明確的範圍界定。

VM-FEX技術則是卸載虛擬化之後I/O對於CPU的負擔,透過標準模式或高效能模式,提升整體I/O效能最多達38%,並且可讓CPU不因大量的I/O而影響虛擬機器的效能。

伺服器可部署更多的虛擬機器是虛擬化的終極目標。更多的虛擬機器代表?更少的建置與與維護成本、更少的電力與空調損耗、更少的空間需求。Cisco VIC介面卡與VM-FEX的結合讓這樣子的目標不再是“不可能的任務”。

來源:http://www.ringline.com.tw/index.php/zh/support/techpapers/cloud-storage-virtualization/690-io.html

最後修改日期: 2014-08-03

作者

留言

撰寫回覆或留言