《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 存儲網(wǎng)絡(luò)中的虛擬I/O技術(shù)
存儲網(wǎng)絡(luò)中的虛擬I/O技術(shù)
來源:TechTarget中國
作者:George Crump
摘要: 在服務(wù)器虛擬化環(huán)境中,I/O流量的暴增往往導(dǎo)致存儲網(wǎng)絡(luò)不堪重負(fù),。而I/O虛擬化技術(shù)則可以幫助系統(tǒng)減少資源競爭,、保證服務(wù)質(zhì)量而且顯著提高性能,。
Abstract:
Key words :

當(dāng)下,,數(shù)據(jù)中心的全面虛擬化成為一種趨勢,,無論是存儲網(wǎng)絡(luò)還是IP網(wǎng)絡(luò),,其發(fā)展目標(biāo)都必須適應(yīng)這一潮流,,因此虛擬I/O(Virtual I/O)技術(shù)便有了廣闊的應(yīng)用前景,。如果我們希望在服務(wù)器虛擬化和桌面虛擬化應(yīng)用場景中,,創(chuàng)建一個更高效且更經(jīng)濟的存儲基礎(chǔ)架構(gòu),并滿足虛擬化應(yīng)用的I/O請求特點的話,,虛擬I/O是必不可少的核心技術(shù),。虛擬I/O是一種網(wǎng)絡(luò)連接技術(shù),既可以用在主機端,,也可以在存儲網(wǎng)絡(luò)端實現(xiàn),,當(dāng)然這兩種模式還可以一起使用,,貫穿整個基礎(chǔ)架構(gòu)環(huán)境。在不同的應(yīng)用模式之間虛擬I/O的定義會稍有差異,。下文中我們會就此展開分析,,看看這兩種模式之間的差異以及它們二者是如何協(xié)同工作的。

今天,,服務(wù)器(主機)所使用的處理器與4,、5年前截然不同。過去,,一臺服務(wù)器上只需要運行一個應(yīng)用程序,,因此這臺服務(wù)器上所有的I/O處理能力可以被單個應(yīng)用程序所獨享。但今天,,在虛擬化的數(shù)據(jù)中心里,,主機上的網(wǎng)卡和HBA卡是被多個虛擬機所共享的。在傳統(tǒng)的服務(wù)器平臺體系結(jié)構(gòu)中,,網(wǎng)卡和HBA卡這兩種I/O適配器是相互獨立的,,但現(xiàn)在,伴隨著iSCSI,、NAS和FCoE等技術(shù)的發(fā)展,,網(wǎng)卡和HBA卡有逐漸統(tǒng)一的趨勢,或者叫融合,。未來的趨勢很明顯,,主機上將只有一種物理I/O端口,所有的協(xié)議都通過它來進(jìn)行通信,。
混合I/O時代已經(jīng)來臨
在虛擬化和網(wǎng)絡(luò)融合的環(huán)境中,,虛擬機之間要競爭I/O資源,I/O適配器也必須處理多種類型的網(wǎng)絡(luò)I/O流量和存儲I/O流量,。問題看起來很好解決,,我們只需要配置高性能、高帶寬的10 Gbps以太網(wǎng)卡,、10 Gbps FCoE卡,、以及8 Gbps或16 Gbps的光纖通道卡,就能讓主機端更好地處理虛擬機的I/O請求,。但事實上更大的挑戰(zhàn)在于,,如何確保主機能夠?qū)⒑线m的帶寬資源在合適的時間分配給需要它的虛擬機。
服務(wù)器虛擬化應(yīng)用如今已發(fā)展到第三個階段,。在最初的時期,,通常只有測試和開發(fā)系統(tǒng)才使用虛擬機;后來,人們開始在虛擬機上部署一些優(yōu)先級較低的系統(tǒng)和負(fù)載較輕的應(yīng)用。因此在前兩個階段,,通過簡單的輪詢,、將I/O資源平均分配給每個虛擬機的機制是可行的。但進(jìn)入到第三階段,,當(dāng)關(guān)鍵應(yīng)用和復(fù)雜應(yīng)用開始部署到服務(wù)器虛擬化平臺之后,,如何將合適的帶寬資源在合適的時間分配給需要它的虛擬機就顯得越發(fā)重要。
當(dāng)那些關(guān)鍵的以及對性能有較高要求的應(yīng)用系統(tǒng)虛擬化之后,,I/O資源就不能再簡單的共享,,并在虛擬機之間平均分配了。某些虛擬機需要更高的服務(wù)級別保證,,需要獨享固定的帶寬,。另一方面,輪詢機制會造成頻繁的系統(tǒng)中斷,,對CPU的利用率產(chǎn)生負(fù)面影響,。因此,確保I/O請求的及時響應(yīng),,已成為重要應(yīng)用程序能否成功遷移到虛擬化環(huán)境的關(guān)鍵因素,。
有一個方法可以讓關(guān)鍵業(yè)務(wù)擁有充足的I/O資源,即為每個虛擬機都配置一個網(wǎng)卡或HBA卡,,并將運行關(guān)鍵業(yè)務(wù)的虛擬機與該接口卡綁定,。這樣工作是沒問題,但這種方法既不經(jīng)濟,,可能也沒有足夠的物理空間,,而且,如果采用這個方案,,那么每臺主機上運行的虛擬機的數(shù)量也會受到限制。
另一個可用的方案是為主機準(zhǔn)備足夠的,,甚至是超出需求的可用存儲和網(wǎng)絡(luò)帶寬,,以便主機能夠有充足的I/O資源處理請求,并滿足其上運行的每個虛擬機的性能要求,。但這種方法也不是非常劃算,,因為大部分虛擬機并非每時每刻都需要較高I/O性能。此外,,Hypervisor通常使用循環(huán)的排隊策略來分配共享的可用的帶寬,,因此這種方法也需要頻繁的系統(tǒng)中斷操作,效率方面也有損失,。
基于網(wǎng)絡(luò)適配器的虛擬I/O技術(shù)
網(wǎng)絡(luò)適配器層的I/O虛擬化技術(shù)主要由Brocade,、Emulex和QLogic等幾家公司提供,他們都可以提供支持虛擬I/O功能的高速網(wǎng)絡(luò)適配器產(chǎn)品。雖然這種適配器仍然要被多個虛擬機所共享,,但它仍然能夠保證運行關(guān)鍵業(yè)務(wù)的虛擬機有較高的服務(wù)級別,。比如說,一個支持虛擬I/O功能的10GigE物理網(wǎng)絡(luò)適配器既可以劃分成多個虛擬網(wǎng)絡(luò)適配器,,也可以為指定的虛擬機群組按百分比分配固定的帶寬,。
在以上場景中,單塊10 GigE的物理網(wǎng)卡可以分成10個1GigE的虛擬網(wǎng)卡并靈活使用,。比如,,一個虛擬網(wǎng)卡專門用于虛擬機的遷移;另外幾個指定分配給那些特殊的虛擬機,以便保證關(guān)鍵應(yīng)用的性能水平;而其余的虛擬網(wǎng)卡則納入資源池,,供其它的虛擬機共享使用,。
因為所有的I/O虛擬化工作都由硬件適配器處理,因此主機端hypervisor虛擬化管理軟件層的負(fù)擔(dān)相當(dāng)小,,主機可以回收大量的CPU資源,。換句話說,CPU的內(nèi)核不需要為管理I/O共享而進(jìn)行頻繁的中斷操作,。這種虛擬I/O技術(shù),,不僅自身可以支持更大密度的虛擬機數(shù)量,而節(jié)約的CPU處理能力也可以用來運行更多的虛擬機,。
基于網(wǎng)絡(luò)適配器的虛擬I/O技術(shù)的另一個特性是可以在網(wǎng)卡上創(chuàng)建一個虛擬交換機,。這個技術(shù)非常有價值,尤其是在服務(wù)器虛擬化環(huán)境中,,它可以極大地降低出入服務(wù)器的網(wǎng)絡(luò)流量,。利用這個功能,同一臺主機上的兩個虛擬機可以直接相互通訊(這種情況很常見),。以往,,這種流量都需要經(jīng)過外部的物理交換機處理。現(xiàn)在,,虛擬交換機可以識別本地流量,,并將這些流量限制在物理主機的內(nèi)部。這個功能不但可以為主機內(nèi)部的虛擬機提升性能,,而且還可以提高整個網(wǎng)絡(luò)環(huán)境的效率,。
最后要說的是,那些支持I/O虛擬化的網(wǎng)絡(luò)適配器還可以虛擬所用存儲協(xié)議的類型,。例如,,有些卡同時支持FC、FCoE,、10Gbps以太網(wǎng)和iSCSI協(xié)議,,那么用戶就能夠在不中斷服務(wù)器或虛擬機運行的前提下隨時變更端口的用途。今天,有些適配器還需要reboot才能變更配置,,不過這種情況未來肯定會得到改變,。
 
基于(網(wǎng)絡(luò))設(shè)施的虛擬I/O技術(shù)
在基礎(chǔ)網(wǎng)絡(luò)架構(gòu)層同樣可以實現(xiàn)I/O虛擬化?;诰W(wǎng)絡(luò)設(shè)施的虛擬化既可以單獨使用,,也可以與支持虛擬化的網(wǎng)絡(luò)適配器協(xié)同工作。在基礎(chǔ)網(wǎng)絡(luò)設(shè)施層,,I/O的虛擬化有兩種實現(xiàn)方式,。第一種是交換機自身支持虛擬化,本質(zhì)上是主機適配器端虛擬I/O功能的延伸與擴展;另一種則以網(wǎng)關(guān)設(shè)備的形式出現(xiàn),,它需要在主機端與網(wǎng)關(guān)之間構(gòu)建出一個私有的I/O通道網(wǎng)絡(luò),,能夠?qū)崿F(xiàn)更廣泛的I/O虛擬化功能,所以它通常也叫I/O網(wǎng)關(guān),。
基于交換機的虛擬I/O,。由于能夠控制并分配網(wǎng)絡(luò)帶寬,主機內(nèi)部的虛擬I/O網(wǎng)絡(luò)適配器無疑具有相當(dāng)重要的價值,。但是,,如果另一端的交換機設(shè)備不知道如何管理它的話,那么其中很多優(yōu)化功能將無法發(fā)揮作用,。因此,,像Brocade和Cisco等公司都推出了支持虛擬I/O的交換機產(chǎn)品,能夠在網(wǎng)絡(luò)層的各個方面確保虛擬機的性能保持在所需的水平,。通過這些交換機,,用戶可以識別虛擬機并且設(shè)置一定的策略,包括那些與性能相關(guān)的參數(shù),,比如設(shè)置QoS的低/中/高,,或者調(diào)整總體可用帶寬的百分比。
只不過,,虛擬I/O的管理策略不僅僅涉及性能部分,,還可以針對每個虛擬機甚至是每個物理端口設(shè)置安全部分和其他參數(shù)。在服務(wù)器虛擬化應(yīng)用環(huán)境里,,當(dāng)一個虛擬機從一臺主機遷移到另一臺主機時,這些網(wǎng)絡(luò)設(shè)置也能夠同虛擬機一起遷移,。
讓人興奮的是,,一些廠商開發(fā)的虛擬I/O解決方案支持交換機端與網(wǎng)絡(luò)適配器端相互通訊,那些在網(wǎng)絡(luò)適配器層設(shè)置的策略就可以在主機和交換機之間移動,,甚至可達(dá)網(wǎng)絡(luò)設(shè)施的任何層面,。如果沒有這些通訊機制,那么針對虛擬機的虛擬I/O設(shè)置將無法隨虛擬機一同遷移。(比如在某主機上針對某個虛擬機,,我們將可用網(wǎng)絡(luò)I/O帶寬的25%分配給其專用,,但當(dāng)該虛擬機從本機遷移到另一臺主機之后,以上配置將丟失),。交換機層的虛擬I/O技術(shù)能夠支持這類配置隨虛擬機一起在虛擬化環(huán)境中任意遷移,。
像服務(wù)器虛擬化一樣,有些交換機產(chǎn)品甚至可以實現(xiàn)交換機虛擬化,。在這樣的場景中,,網(wǎng)絡(luò)中的多個獨立的交換機看起來就好像一臺大的交換機,因為用戶可以在一點登錄并實施管理,,而不需要登錄到每一臺獨立的交換機, 所以執(zhí)行系統(tǒng)配置和策略管理都更加簡單,。交換機虛擬化還可以提供更好的網(wǎng)絡(luò)可用性,即使其中一臺交換機發(fā)生故障,,整個網(wǎng)絡(luò)環(huán)境依然可用,。
虛擬I/O網(wǎng)關(guān)。業(yè)內(nèi)提供虛擬I/O網(wǎng)關(guān)設(shè)備的公司包括Xsigo System公司以及Virtensys公司(Virtensys近期被Micron Technology公司收購),。虛擬I/O網(wǎng)關(guān)設(shè)備是一種類似于交換機的裝置,,里面安裝了存儲接口卡和網(wǎng)絡(luò)接口卡,該裝置(及其上的I/O卡)可以被網(wǎng)絡(luò)中多臺服務(wù)器所共享,。如果使用了虛擬I/O網(wǎng)關(guān),,那么多臺服務(wù)器之間的通訊就鎖定在一個由網(wǎng)關(guān)構(gòu)建的私有的平面網(wǎng)絡(luò)體系之內(nèi)。從某種程度上說,,我們可以把虛擬I/O網(wǎng)關(guān)設(shè)備看成是服務(wù)器總線向外的擴展,,I/O網(wǎng)關(guān)相當(dāng)于服務(wù)器外部的PCI Express總線插槽,只不過這個擴展的總線是被多個主機所共享的,。
用戶需要在服務(wù)器端安裝一個專用接口卡,,用于與I/O網(wǎng)關(guān)互聯(lián)。有些廠商用的是PCIe總線擴展卡,,但大部分廠商選擇使用Infiniband適配器或10Gbps以太網(wǎng)適配器,。無論在服務(wù)器上安裝什么卡,其目的都是為了以相對較低的成本獲得最高的性能,,以便實現(xiàn)PCI總線的對外擴展,。
虛擬I/O網(wǎng)關(guān)與支持虛擬I/O的網(wǎng)絡(luò)適配器之間最主要的差別在于,多個服務(wù)器可以共享一塊安裝在虛擬I/O網(wǎng)關(guān)上的接口卡,。從這個意義上來說,,虛擬I/O網(wǎng)關(guān)在連接的靈活性以及資源優(yōu)化方面具有比較明顯的優(yōu)勢。
服務(wù)器上究竟要插哪種接口卡(連到I/O網(wǎng)關(guān)),,這取決于廠商的技術(shù),,既可以是定制的專用卡,,也可以是現(xiàn)成的PCIe接口卡。通常,,基于專用卡(的網(wǎng)關(guān))具有更好的多主機共享能力,。而基于現(xiàn)成PCI卡的網(wǎng)關(guān)則可以提供更多的靈活性,不過受限于今天所能采用的PCI卡的類型,,其共享能力會受到一定的限制,。
虛擬I/O網(wǎng)關(guān)的另一個好處是在未來升級時可以保護現(xiàn)有投資。因為接口卡和軟件驅(qū)動都由I/O網(wǎng)關(guān)廠商提供,,所以實現(xiàn)不同網(wǎng)絡(luò)和存儲協(xié)議之間的轉(zhuǎn)換是很容易的事情,。
舉個例子,如果當(dāng)前存儲系統(tǒng)與服務(wù)器之間的連接通過光纖通道,,那么當(dāng)增加一個新的iSCSI存儲之后,,主機端就需要換掉原來的光纖通道接口卡,或者在原有通道卡之外再增加以太網(wǎng)卡(除非服務(wù)器上已經(jīng)使用了前文提到的支持虛擬I/O的網(wǎng)絡(luò)適配器),。而如果使用虛擬I/O網(wǎng)關(guān)方案,,那么服務(wù)器上的接口卡可以保持不變,只需要在網(wǎng)關(guān)設(shè)備上安裝一塊共享的iSCSI卡即可,。所以說,,主機端只需要一塊卡就能實現(xiàn)光纖通道和iSCSI兩種連接功能。主機端唯一需要做的變化是軟件配置的升級,,而任何一臺主機的物理配置都可以保持不動,。這種方式不僅為網(wǎng)絡(luò)類型和協(xié)議的變更提供了最大的靈活性,而且因配置變更導(dǎo)致的服務(wù)器本身的宕機時間也更少,。
虛擬I/O技術(shù)的選擇策略
用戶究竟應(yīng)該選擇哪種虛擬I/O策略用于他們的數(shù)據(jù)中心,,很大程度上取決于用戶眼前的需求以及長期的業(yè)務(wù)目標(biāo)。比方說,,如果用戶把提高主機端存儲和網(wǎng)絡(luò)I/O的性能作為首要改造目標(biāo)的話,,那么最佳方案是直接購買支持I/O虛擬化的網(wǎng)絡(luò)接口卡,而不是購買普通的(沒有I/O虛擬化功能)10GigE網(wǎng)卡,。這個方案能夠幫助用戶更有效地利用萬兆網(wǎng)絡(luò)的帶寬,,并且保證其中關(guān)鍵業(yè)務(wù)的優(yōu)先服務(wù)水平。
如果用戶正在更新或者擴展他們的網(wǎng)絡(luò)和存儲基礎(chǔ)設(shè)施,,那么增加一些I/O虛擬化組件是很值得考慮的事情,。交換機層的虛擬I/O技術(shù)可以逐步升級,并且作為(支持虛擬I/O的)網(wǎng)絡(luò)接口卡方案的完美補充,。
當(dāng)企業(yè)中已有設(shè)施面臨升級時,,利用虛擬I/O網(wǎng)關(guān)構(gòu)建私有的I/O平面網(wǎng)絡(luò)的方案也是值得考慮的。因為它可以有效的改進(jìn)性能并且獲得更大的靈活性,。在日新月異的I/O技術(shù)市場中,,網(wǎng)關(guān)類產(chǎn)品具有更好的投資保護性。
總之,,不論我們選擇哪種虛擬I/O方案,,都可以明顯改進(jìn)現(xiàn)有基礎(chǔ)設(shè)施的靈活性,獲得一個動態(tài)性更強的架構(gòu),,從而讓我們的服務(wù)器基礎(chǔ)架構(gòu)能夠適應(yīng)不斷變化的應(yīng)用需求,。本文提及的三種方案都具有較好的投資收益、也能夠保證關(guān)鍵應(yīng)用優(yōu)先獲得資源以維持高性能,,更可貴的是,,對于服務(wù)器虛擬化項目來說,它們都可以幫助用戶獲得更多的投資回報(ROI),。
相關(guān)鏈接一:I/O虛擬化的三種主流方案
不論哪種I/O虛擬化解決方案,,其最終的目標(biāo)都是一個:即解決服務(wù)器虛擬化環(huán)境中網(wǎng)絡(luò)資源競爭問題,減少主機和存儲之間的訪問瓶頸,。這里我們羅列了三種常見的虛擬I/O解決方案:
• 基于網(wǎng)絡(luò)適配器的虛擬I/O技術(shù)
• 基于存儲網(wǎng)絡(luò)交換機的虛擬I/O技術(shù)
• 基于I/O網(wǎng)關(guān)設(shè)備的虛擬I/O技術(shù)
相關(guān)鏈接二:I/O虛擬化常見術(shù)語
我們列出那些與I/O虛擬化相關(guān)的常見關(guān)鍵術(shù)語:
• Converged Network Adapter (CNA,,融合網(wǎng)絡(luò)適配器),融合網(wǎng)絡(luò)適配器同時兼有以太網(wǎng)卡和光纖通道HBA卡的功能,。
• Fibre Channel over Ethernet (FCoE),,是一種新的存儲協(xié)議,其本質(zhì)是利用以太網(wǎng)來承載光纖通道協(xié)議,。
• Network Interface Card Partitioning (NPAR),,是一種由QLogic公司開發(fā)的高效分區(qū)技術(shù),可以將一個物理網(wǎng)卡切成幾個分區(qū)(相當(dāng)于虛擬出多個網(wǎng)卡),,以便分配給多個虛擬機使用,。
• PCI-SIG I/O Virtualization (IOV),是PCI組織旗下的一個特別興趣小組,,主要工作是開發(fā)基于PCI-E的共享設(shè)備技術(shù)規(guī)范,。
• Single Root I/O Virtualization (SR-IOV),是一種由PCI-SIG(PCI組織特別興趣小組)提出的,,關(guān)于單臺主機內(nèi)部使用共享虛擬化PCI設(shè)備的技術(shù)規(guī)范,。
• Multi-Root IOV (MR-IOV),是一種由PCI-SIG(PCI組織特別興趣小組)提出的,,關(guān)于跨多臺主機(比如在一個刀片機箱中的多臺刀片服務(wù)器)使用共享虛擬化PCI設(shè)備的技術(shù)規(guī)范,。
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。