當下,數據中心的全面虛擬主機化成為一種趨勢,無論是存儲網絡還是IP網絡,其發展目標都必須適應這一潮流,因此虛擬主機I/O(Virtual I/O)技術便有了廣闊的應用前景。如果我們希望在服務器虛擬主機化和桌面虛擬主機化應用場景中,創建一個更高效且更經濟的存儲基礎架構,并滿足虛擬主機化應用的I/O請求特點的話,虛擬主機I/O是必不可少的核心技術。虛擬主機I/O是一種網絡連接技術,既可以用在主機端,也可以在存儲網絡端實現,當然這兩種模式還可以一起使用,貫穿整個基礎架構環境。在不同的應用模式之間虛擬主機I/O的定義會稍有差異。下文中我們會就此展開分析,看看這兩種模式之間的差異以及它們二者是如何協同工作的。
今天,服務器(主機)所使用的處理器與4、5年前截然不同。過去,一臺服務器上只需要運行一個應用程序,因此這臺服務器上所有的I/O處理能力可以被單個應用程序所獨享。但今天,在虛擬主機化的數據中心里,主機上的網卡和HBA卡是被多個虛擬主機機所共享的。在傳統的服務器平臺體系結構中,網卡和HBA卡這兩種I/O適配器是相互獨立的,但現在,伴隨著iSCSI、NAS和FCoE等技術的發展,網卡和HBA卡有逐漸統一的趨勢,或者叫融合。未來的趨勢很明顯,主機上將只有一種物理I/O端口,所有的協議都通過它來進行通信。
混合I/O時代已經來臨
在虛擬主機化和網絡融合的環境中,虛擬主機機之間要競爭I/O資源,I/O適配器也必須處理多種類型的網絡I/O流量和存儲I/O流量。問題看起來很好解決,我們只需要配置高性能、高帶寬的10 Gbps以太網卡、10 Gbps FCoE卡、以及8 Gbps或16 Gbps的光纖通道卡,就能讓主機端更好地處理虛擬主機機的I/O請求。但事實上更大的挑戰在于,如何確保主機能夠將合適的帶寬資源在合適的時間分配給需要它的虛擬主機機。
服務器虛擬主機化應用如今已發展到第三個階段。在最初的時期,通常只有測試和開發系統才使用虛擬主機機;后來,人們開始在虛擬主機機上部署一些優先級較低的系統和負載較輕的應用。因此在前兩個階段,通過簡單的輪詢、將I/O資源平均分配給每個虛擬主機機的機制是可行的。但進入到第三階段,當關鍵應用和復雜應用開始部署到服務器虛擬主機化平臺之后,如何將合適的帶寬資源在合適的時間分配給需要它的虛擬主機機就顯得越發重要。
當那些關鍵的以及對性能有較高要求的應用系統虛擬主機化之后,I/O資源就不能再簡單的共享,并在虛擬主機機之間平均分配了。某些虛擬主機機需要更高的服務級別保證,需要獨享固定的帶寬。另一方面,輪詢機制會造成頻繁的系統中斷,對CPU的利用率產生負面影響。因此,確保I/O請求的及時響應,已成為重要應用程序能否成功遷移到虛擬主機化環境的關鍵因素。
有一個方法可以讓關鍵業務擁有充足的I/O資源,即為每個虛擬主機機都配置一個網卡或HBA卡,并將運行關鍵業務的虛擬主機機與該接口卡綁定。這樣工作是沒問題,但這種方法既不經濟,可能也沒有足夠的物理空間,而且,如果采用這個方案,那么每臺主機上運行的虛擬主機機的數量也會受到限制。
另一個可用的方案是為主機準備足夠的,甚至是超出需求的可用存儲和網絡帶寬,以便主機能夠有充足的I/O資源處理請求,并滿足其上運行的每個虛擬主機機的性能要求。但這種方法也不是非常劃算,因為大部分虛擬主機機并非每時每刻都需要較高I/O性能。此外,Hypervisor通常使用循環的排隊策略來分配共享的可用的帶寬,因此這種方法也需要頻繁的系統中斷操作,效率方面也有損失。
基于網絡適配器的虛擬主機I/O技術
網絡適配器層的I/O虛擬主機化技術主要由Brocade、Emulex和QLogic等幾家公司提供,他們都可以提供支持虛擬主機I/O功能的高速網絡適配器產品。雖然這種適配器仍然要被多個虛擬主機機所共享,但它仍然能夠保證運行關鍵業務的虛擬主機機有較高的服務級別。比如說,一個支持虛擬主機I/O功能的10GigE物理網絡適配器既可以劃分成多個虛擬主機網絡適配器,也可以為指定的虛擬主機機群組按百分比分配固定的帶寬。
在以上場景中,單塊10 GigE的物理網卡可以分成10個1GigE的虛擬主機網卡并靈活使用。比如,一個虛擬主機網卡專門用于虛擬主機機的遷移;另外幾個指定分配給那些特殊的虛擬主機機,以便保證關鍵應用的性能水平;而其余的虛擬主機網卡則納入資源池,供其它的虛擬主機機共享使用。
因為所有的I/O虛擬主機化工作都由硬件適配器處理,因此主機端hypervisor虛擬主機化管理軟件層的負擔相當小,主機可以回收大量的CPU資源。換句話說,CPU的內核不需要為管理I/O共享而進行頻繁的中斷操作。這種虛擬主機I/O技術,不僅自身可以支持更大密度的虛擬主機機數量,而節約的CPU處理能力也可以用來運行更多的虛擬主機機。
基于網絡適配器的虛擬主機I/O技術的另一個特性是可以在網卡上創建一個虛擬主機交換機。這個技術非常有價值,尤其是在服務器虛擬主機化環境中,它可以極大地降低出入服務器的網絡流量。利用這個功能,同一臺主機上的兩個虛擬主機機可以直接相互通訊(這種情況很常見)。以往,這種流量都需要經過外部的物理交換機處理。現在,虛擬主機交換機可以識別本地流量,并將這些流量限制在物理主機的內部。這個功能不但可以為主機內部的虛擬主機機提升性能,而且還可以提高整個網絡環境的效率。
最后要說的是,那些支持I/O虛擬主機化的網絡適配器還可以虛擬主機所用存儲協議的類型。例如,有些卡同時支持FC、FCoE、10Gbps以太網和iSCSI協議,那么用戶就能夠在不中斷服務器或虛擬主機機運行的前提下隨時變更端口的用途。今天,有些適配器還需要reboot才能變更配置,不過這種情況未來肯定會得到改變。
基于(網絡)設施的虛擬主機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技術能夠支持這類配置隨虛擬主機機一起在虛擬主機化環境中任意遷移。






