基于(網絡)設施的虛擬I/O技術
在基礎網絡架構層同樣可以實現I/O虛擬化。基于網絡設施的虛擬化既可以單獨使用,也可以與支持虛擬化的網絡適配器協同工作。在基礎網絡設施層,I/O的虛擬化有兩種實現方式。第一種是交換機自身支持虛擬化,本質上是主機適配器端虛擬I/O功能的延伸與擴展;另一種則以網關設備的形式出現,它需要在主機端與網關之間構建出一個私有的I/O通道網絡,能夠實現更廣泛的I/O虛擬化功能,所以它通常也叫I/O網關。
基于交換機的虛擬I/O。由于能夠控制并分配網絡帶寬,主機內部的虛擬I/O網絡適配器無疑具有相當重要的價值。但是,如果另一端的交換機設備不知道如何管理它的話,那么其中很多優化功能將無法發揮作用。因此,像Brocade和Cisco等公司都推出了支持虛擬I/O的交換機產品,能夠在網絡層的各個方面確保虛擬機的性能保持在所需的水平。通過這些交換機,用戶可以識別虛擬機并且設置一定的策略,包括那些與性能相關的參數,比如設置QoS的低/中/高,或者調整總體可用帶寬的百分比。
只不過,虛擬I/O的管理策略不僅僅涉及性能部分,還可以針對每個虛擬機甚至是每個物理端口設置安全部分和其他參數。在服務器虛擬化應用環境里,當一個虛擬機從一臺主機遷移到另一臺主機時,這些網絡設置也能夠同虛擬機一起遷移。
讓人興奮的是,一些廠商開發的虛擬I/O解決方案支持交換機端與網絡適配器端相互通訊,那些在網絡適配器層設置的策略就可以在主機和交換機之間移動,甚至可達網絡設施的任何層面。如果沒有這些通訊機制,那么針對虛擬機的虛擬I/O設置將無法隨虛擬機一同遷移。(比如在某主機上針對某個虛擬機,我們將可用網絡I/O帶寬的25%分配給其專用,但當該虛擬機從本機遷移到另一臺主機之后,以上配置將丟失)。交換機層的虛擬I/O技術能夠支持這類配置隨虛擬機一起在虛擬化環境中任意遷移。
像服務器虛擬化一樣,有些交換機產品甚至可以實現交換機虛擬化。在這樣的場景中,網絡中的多個獨立的交換機看起來就好像一臺大的交換機,因為用戶可以在一點登錄并實施管理,而不需要登錄到每一臺獨立的交換機, 所以執行系統配置和策略管理都更加簡單。交換機虛擬化還可以提供更好的網絡可用性,即使其中一臺交換機發生故障,整個網絡環境依然可用。
虛擬I/O網關。業內提供虛擬I/O網關設備的公司包括Xsigo System公司以及Virtensys公司(Virtensys近期被Micron Technology公司收購)。虛擬I/O網關設備是一種類似于交換機的裝置,里面安裝了存儲接口卡和網絡接口卡,該裝置(及其上的I/O卡)可以被網絡中多臺服務器所共享。如果使用了虛擬I/O網關,那么多臺服務器之間的通訊就鎖定在一個由網關構建的私有的平面網絡體系之內。從某種程度上說,我們可以把虛擬I/O網關設備看成是服務器總線向外的擴展,I/O網關相當于服務器外部的PCI Express總線插槽,只不過這個擴展的總線是被多個主機所共享的。
用戶需要在服務器端安裝一個專用接口卡,用于與I/O網關互聯。有些廠商用的是PCIe總線擴展卡,但大部分廠商選擇使用Infiniband適配器或10Gbps以太網適配器。無論在服務器上安裝什么卡,其目的都是為了以相對較低的成本獲得最高的性能,以便實現PCI總線的對外擴展。
虛擬I/O網關與支持虛擬I/O的網絡適配器之間最主要的差別在于,多個服務器可以共享一塊安裝在虛擬I/O網關上的接口卡。從這個意義上來說,虛擬I/O網關在連接的靈活性以及資源優化方面具有比較明顯的優勢。
服務器上究竟要插哪種接口卡(連到I/O網關),這取決于廠商的技術,既可以是定制的專用卡,也可以是現成的PCIe接口卡。通常,基于專用卡(的網關)具有更好的多主機共享能力。而基于現成PCI卡的網關則可以提供更多的靈活性,不過受限于今天所能采用的PCI卡的類型,其共享能力會受到一定的限制。
虛擬I/O網關的另一個好處是在未來升級時可以保護現有投資。因為接口卡和軟件驅動都由I/O網關廠商提供,所以實現不同網絡和存儲協議之間的轉換是很容易的事情。
舉個例子,如果當前存儲系統與服務器之間的連接通過光纖通道,那么當增加一個新的iSCSI存儲之后,主機端就需要換掉原來的光纖通道接口卡,或者在原有通道卡之外再增加以太網卡(除非服務器上已經使用了前文提到的支持虛擬I/O的網絡適配器)。而如果使用虛擬I/O網關方案,那么服務器上的接口卡可以保持不變,只需要在網關設備上安裝一塊共享的iSCSI卡即可。所以說,主機端只需要一塊卡就能實現光纖通道和iSCSI兩種連接功能。主機端唯一需要做的變化是軟件配置的升級,而任何一臺主機的物理配置都可以保持不動。這種方式不僅為網絡類型和協議的變更提供了最大的靈活性,而且因配置變更導致的服務器本身的宕機時間也更少。
虛擬I/O技術的選擇策略
用戶究竟應該選擇哪種虛擬I/O策略用于他們的數據中心,很大程度上取決于用戶眼前的需求以及長期的業務目標。比方說,如果用戶把提高主機端存儲和網絡I/O的性能作為首要改造目標的話,那么最佳方案是直接購買支持I/O虛擬化的網絡接口卡,而不是購買普通的(沒有I/O虛擬化功能)10GigE網卡。這個方案能夠幫助用戶更有效地利用萬兆網絡的帶寬,并且保證其中關鍵業務的優先服務水平。
如果用戶正在更新或者擴展他們的網絡和存儲基礎設施,那么增加一些I/O虛擬化組件是很值得考慮的事情。交換機層的虛擬I/O技術可以逐步升級,并且作為(支持虛擬I/O的)網絡接口卡方案的完美補充。
當企業中已有設施面臨升級時,利用虛擬I/O網關構建私有的I/O平面網絡的方案也是值得考慮的。因為它可以有效的改進性能并且獲得更大的靈活性。在日新月異的I/O技術市場中,網關類產品具有更好的投資保護性。
總之,不論我們選擇哪種虛擬I/O方案,都可以明顯改進現有基礎設施的靈活性,獲得一個動態性更強的架構,從而讓我們的服務器基礎架構能夠適應不斷變化的應用需求。本文提及的三種方案都具有較好的投資收益、也能夠保證關鍵應用優先獲得資源以維持高性能,更可貴的是,對于服務器虛擬化項目來說,它們都可以幫助用戶獲得更多的投資回報(ROI)。
相關鏈接一:I/O虛擬化的三種主流方案
不論哪種I/O虛擬化解決方案,其最終的目標都是一個:即解決服務器虛擬化環境中網絡資源競爭問題,減少主機和存儲之間的訪問瓶頸。這里我們羅列了三種常見的虛擬I/O解決方案:
基于網絡適配器的虛擬I/O技術
基于存儲網絡交換機的虛擬I/O技術
基于I/O網關設備的虛擬I/O技術
我們列出那些與I/O虛擬化相關的常見關鍵術語:
Converged Network Adapter (CNA,融合網絡適配器),融合網絡適配器同時兼有以太網卡和光纖通道HBA卡的功能。
Fibre Channel over Ethernet (FCoE),是一種新的存儲協議,其本質是利用以太網來承載光纖通道協議。
Network Interface Card Partitioning (NPAR),是一種由QLogic公司開發的高效分區技術,可以將一個物理網卡切成幾個分區(相當于虛擬出多個網卡),以便分配給多個虛擬機使用。
PCI-SIG I/O Virtualization (IOV),是PCI組織旗下的一個特別興趣小組,主要工作是開發基于PCI-E的共享設備技術規范。
Single Root I/O Virtualization (SR-IOV),是一種由PCI-SIG(PCI組織特別興趣小組)提出的,關于單臺主機內部使用共享虛擬化PCI設備的技術規范。
Multi-Root IOV (MR-IOV),是一種由PCI-SIG(PCI組織特別興趣小組)提出的,關于跨多臺主機(比如在一個刀片機箱中的多臺刀片服務器)使用共享虛擬化PCI設備的技術規范。