帳號:
密碼:
最新動態
產業快訊
CTIMES / 文章 /
PCIe I/O虛擬化及其儲存應用
儲存I/O虛擬化:

【作者: Richard Solomon】   2008年10月22日 星期三

瀏覽人次:【9553】

虛擬化是當前的熱門話題;雖然多年來大家不斷討論一些持續存在的簡單概念,隨著該技術從大型電腦(mainframe)發展到主流電腦(mainstream) 領域,虛擬化才逐漸成為當前的焦點。


虛擬化的核心在於:讓作業系統「認定」本身是獨立在電腦上運作的,而事實上是幾個不同的作業系統在共用一台電腦,每一個作業系統都稱作一個系統鏡像(System Image),進而達到「虛擬」的功能。由於記憶體管理單元(memory management units)被併入到主流電腦上,因此這種虛擬化在主流電腦上是完全可行的,不過這種技術為了要同步電腦中的所有裝置,對性能造成極大影響,所以並沒有引起很大的流行,近期軟硬體技術的發展雖然提高了同步的速度,但仍有待改善。


簡單的說,I/O虛擬化(簡稱IOV)就是將一個裝置視為多個,而個別支援唯一的系統鏡像。虛擬化發展到裝置的級別,能夠將系統處理器從繁重的同步工作中解放出來,大幅提高其性能。PCI-SIG工作小組正在制訂PCI Express介面匯流排上提供虛擬裝置的機制。上述工作完成後,其就會為主流IOV設計提供必要的標準,確保不同廠商的矽晶片解決方案能在不同平臺上的不同作業系統中協同工作。


這樣一來,問題能否就能得到解決呢?我們用當前的PCI Express前端邏輯配合I/O虛擬化技術,是否能順利實現晶片虛擬化呢?答案既是肯定,也是否定。雖然應用此技術,晶片就能同時分配給多個系統鏡像,但如何虛擬化後端(back-end)的設備,又是另一個問題所在。不妨再設想儲存控制器的問題,顯然,我們希望將連接的儲存設備加以分區,這樣系統鏡像X(比方說:我的線上銀行系統)就能擁有專門分配給該區的空間,系統鏡像Y(比方說:www.hackers-are-we.org的 Web 伺服器)則不能存取該空間。


本文將著重在SAS控制器,討論上述後端設備的虛擬化技術;首先,將先介紹IOV在前端(front-end)設備的概況,再進一步討論運用SAS概念來完成虛擬化圖形儲存的不同方式。


PCI Express I/O虛擬化

我們不妨先來談談I/O虛擬化的系統:「系統鏡像」是指CPU、記憶體、O/S、I/O等構成的實際或虛擬系統,多個系統鏡像可運行在一組或多組真實的硬體之上。舉例來說,VMWare等系統管理程式可在單核心的桌上型電腦上同時運行Windows XP和Linux兩種作業系統,在此情況下,兩個系統鏡像共用一個CPU、記憶體、磁碟機等。不妨再舉一個刀鋒型伺服器(blade sever)的例子,一個刀鋒運行Windows XP,而另一個刀鋒則運行Linux,這時每個系統鏡像儘管並未共用CPU刀鋒上的硬體,但實際上卻存在著共用I/O刀鋒上的硬體。


不管如何分配,每個系統鏡像都應該「看得到」自己的PCI階層架構。即使不共用終端設備(如 I/O刀鋒上的兩個光纖通道控制器,一個分配給Linux刀鋒,另一個則分配給XP刀鋒),也必須採取一定的控制,以實現對PCI階層架構的視覺化(visibility)。如果共用終端設備,那麼就必須限制每個系統鏡像,使其僅能「看到」共用終端設備中屬於自己的那一部分。


設備需要將自身的硬體類比為多個虛擬裝置,可能的方式有:分別佔用不同的 PCI記憶體區域;對多種PCI組態暫存器(PCI Configuration registers)採用不同的設定;或可分別作為PCI多功能設備。此外,還應隔離內部跨設備的流量,這樣才能避免虛擬裝置間的資料溢出。


從上述示例可以看出,單點連接到PCI 階層架構的系統與多點連接到PCI 階層架構的系統有著明顯的區別。傳統的單核心桌上型電腦乃至傳統的多路(N-way)多核心伺服器,僅通過單個邏輯連接點連接到PCI階層架構(如圖一 所示)。與此相對應的是,刀鋒系統可支援新的階層架構,上層增強型PCI Express 交換器(enhanced PCI Express switch)可通過多個根聯合體(Root Complex)與整個PCI階層架構相連(如圖二所示)。因此,顯然需要一些新的機制來確保每個根聯合體僅存取分配給它的那一部分PCI階層架構。


鑒於上述兩種系統類型差異巨大,個別考慮其複雜性以及市場區隔特性,PCI-SIG決定將I/O虛擬化規範分為兩部分。由於每個根聯合體(圖二所示)也可利用單根I/O虛擬化,因此上述兩種規範應當是相互依賴的,這就形成了一種同心圓模式:單根(Single Root)規範建立在PCI Express基本規範基礎之上,而多根(Multi-Root)規範則建立在單根規範基礎之上。


單根I/O虛擬化

單根I/O虛擬化主要面向現有的PCI階層架構,其中的單核心及多核心電腦均通過單點連接到PCI階層架構(如圖一所示)。單根規範的目標之一是支援繼續使用現有的或稍作修改的根聯合體晶片(即晶片組),這會造成很大的局限性。同樣,支持現有的或稍作修改的矽開關(silicon switch),這也會造成一定的限制。考慮到上述要求,從匯流排角度說,只能存在單一的記憶體位址空間,虛擬化系統鏡像的分區與分配在根聯合體連接點的上層進行。通常認為,在根聯合體之內或之上,會有某種類型的位址轉換邏輯來支援虛擬化中介軟體(Virtualization Intermediary,通常稱作系統管理程式),以實現映射功能。當然需要新的 I/O虛擬化端點設備,這種設備在設計和支援方面也面臨著巨大的挑戰,人們並不希望修改晶片組。在此情況下,虛擬化市場得以迅速向現有系統或簡單衍生系統(比方說採用新版BIOS或晶片組得到衍生系統)領域擴展,但這卻造成了在執行虛擬化中介軟體時,較大的軟體負擔。



《圖一  以四核系統為例,給出採用PCI Express單根I/O虛擬化技術的 I/O設備架構。》
《圖一 以四核系統為例,給出採用PCI Express單根I/O虛擬化技術的 I/O設備架構。》

多根I/O虛擬化

儘管PCI Express電纜規範(PCI Express Capable specification)帶來其他眾多的可能性,但多點連接階層架構(如圖二所示)最典型的實施範例仍採用帶有PCI Express背板的刀鋒伺服器。這是一種全新的PCIe階層架構,屬於一種微型架構。PCI-SIG的目標是「小型化」的系統,可能最多帶有16至32個根埠(Root Ports),不過該階層架構也能支持更多根埠。(PCI小組指出他們的目標就是小型化,也就是說,典型的系統應用的體積不會超過3英尺。)此外,他們還有一個目標,就是繼續使用現有的(或稍作修改的)根聯合體(即晶片組)晶片。不過,與單根不同的是,假設沒有虛擬化中介軟體,系統磁碟分割的複雜性則轉移到新的增強型PCI Express開關中(如圖二所示)。多根系統的特別在於PCI 階層架構分為多個虛擬階層架構,且共用同一的物理架構。單根系統只有單一的記憶體位址空間且在其系統鏡像中進行分區,而多根系統則針對每個虛擬架構提供全64位記憶體位址空間。配置管理軟體與增強型開關和I/O虛擬化設備程式協作對階層架構進行程式設計,這樣圖二中每個根聯合體都能看到本部分的所有多根階層架構,就像如圖一所示的單根階層架構一樣。每個這種架構視圖都稱作虛擬架構。請注意,多根系統的每個虛擬架構都能就單根分別啟用,也可不啟用,這樣多根系統中的端點設備會面臨兩種模式分層的挑戰。


就給定的虛擬化設備而言,每個系統鏡像都應看到其自己的虛擬化配置空間和位址映射副本。事實上,設備需要n組PCI配置空間來支援n組虛擬功能。單根規範定義了羽量級虛擬功能,可減少門數量的影響,而多根規範則針對每個設備可用的虛擬架構需要全配置空間。本文難以一一介紹不同類型的配置空間的具體差別,這涉及到高級虛擬化的問題。就本文而言,僅特別說明的是,每個與IOV設備互動的系統鏡像都有自己的設備位址範圍與配置空間。因此,IOV設備可根據存取哪個位址空間來與特定的系統鏡像建立工作關係。



《圖二  以刀鋒伺服器為例給出的I/O設備架構,具有三個四核刀鋒,連接到開關和端點設備,並採用PCI Express多根I/O虛擬化技術。》
《圖二 以刀鋒伺服器為例給出的I/O設備架構,具有三個四核刀鋒,連接到開關和端點設備,並採用PCI Express多根I/O虛擬化技術。》

IOV設備的儲存「後端」側虛擬化

啟用IOV設備,使其能像多個設備一樣做出回應,並通過一定的機制能區分不同系統鏡像之間的工作差別。如果就此結束實施方案的話,那麼就會產生如圖三所示的模型。(請注意,系統鏡像的描述不強調單根或多根的區別,這裡只注意它們是不同的鏡像即可,而確切的連接方式並不重要。)基本說來,所有系統鏡像都能看到連接到 IOV 儲存控制器的所有磁片。在某些環境中,這種模式還是可行的。如果系統鏡像比較合作,那麼自己就能驅動儲存池。同樣,如果在每個系統鏡像與儲存控制器之間存在軟體中間體(software intermediary)的話,那麼也能驅動儲存池,並允許系統鏡像只能看到儲存池的一部分。



《圖三  連接到控制器後儲存池的多系統鏡像,採用I/O虛擬化技術,但不採用「後端」虛擬。》
《圖三 連接到控制器後儲存池的多系統鏡像,採用I/O虛擬化技術,但不採用「後端」虛擬。》

不妨考慮一下本文開頭給出的例子中的情況——使用者的銀行系統要是和www.hackers-are-we.org網站聯繫起來,那就有麻煩了。軟體中間體的概念似乎還能成立,但是會抵消硬體 I/O虛擬化帶來的性能優勢,而且軟體也會相當複雜,需要詳細瞭解每個控制器的硬體和設備驅動程式才能實現。顯然,對大多數環境而言,理想的做法是實現儲存側的硬體虛擬化。


SAS發揮作用

創新型IOV儲存控制器設計人員完全可以再進一步發揮設計作用,直接添加表格機制,根據ID過濾出磁碟機,僅允許系統鏡像看到某些磁碟機。這時所得的系統就會如圖四所示,其中每種顏色的系統鏡像只能存取同色的磁碟機。過去,可在SCSI環境中輕鬆實現上述目的,SCSI甚至還能進一步劃分某部磁碟機。目前,即便SATA控制器也能處理這類每磁碟機的「遮罩」工作。與圖三中多驅動器遮罩模式(free-for-all model)一樣,圖四中每驅動器遮罩模式(per-drive-masking model)在某些受控環境中也是可用的。只要連接的磁碟機數量不大(如SCSI支持的1到15個驅動器),那麼這種模型就完全可行。不過,一旦系統超過了直連磁碟機的限度,那麼這種複雜性機制就會帶來麻煩。此外,也可用軟體實施某種專有技術機制,以此來支援十幾個磁片,這麼做工作量很大,不過還不至於完全不可行。不過,要是讓軟體來支援數十個、數百個乃至數千個磁碟機,那麼每個稍有理智的開發人員都不會這麼去做的。幸運的是,SAS提供了一種所謂分區的存取控制的標準機制,對儲存虛擬化技術來說幾乎是完美的。SAS分區機制非常類似於光纖通道及其他SAN 技術中的相關機制。



《圖四  連接到SAS控制器後SAS儲存的多系統鏡像,採用I/O虛擬化技術,並用專有特性來實現儲存虛擬化。》
《圖四 連接到SAS控制器後SAS儲存的多系統鏡像,採用I/O虛擬化技術,並用專有特性來實現儲存虛擬化。》

大多數讀者應該瞭解,SAS是一種點對點的串列協定,其建立在並行 SCSI技術的基礎之上,其採用所謂擴展器的設備來支援更多設備的連接。典型的 SAS主機介面卡可支援8個埠,允許直接連接8個磁碟機。(事實上,SAS磁碟機可用多個埠來支援更高頻寬,因此可通過連接4個更高性能的雙埠磁碟機就能全面實現8埠的功能。)為了提供更高的連線性,可使用SAS擴展器(如圖五所示),暫時可不管圖中的顏色。每個擴展器在邏輯上都是一個開關,不過不像光纖通道的開關那麼昂貴。SAS擴展器可選擇性地支援分區功能,這可以作為限制特定主機對特定目標(如磁碟機)存取的方法。


就SAS分區而言,可在擴展器上就每個連接點控制存取(在SAS術語中稱作實體層,PHY)。每個擴展器中的清單記錄著哪些PHY可在擴展器上同其他PHY通信。利用分區擴展器上的清單,SAS系統能實現全面的存取控制。可通過能夠擴展SAS內置的現有SCSI管理協定的專用SAS消息來配置SAS分區該協定已包括了受保護的監控器理念,只有它才能對分區進行再配置。由於SAS分區是就每個連接點完成的,因此設備的增減會自動觸發分區再分析以及潛在的分區再配置。這樣,在添加新的磁碟機的時候就不會影響其他的分區,甚至還能告訴其他分區系統組態變動後的情況。單就SAS分區就能寫下好幾篇文章,就本文而言,只須說明分區能夠實現全面的主機到磁片隔離和存取控制圖五,且圖中不同的顏色代表不同的分區。



《圖五  採用SAS分區技術的系統示例。每種顏色代表一個不同的分區。》 - BigPic:799x616
《圖五 採用SAS分區技術的系統示例。每種顏色代表一個不同的分區。》 - BigPic:799x616

根據上述步驟,可以清楚地看出,將SAS分區映射到PCI Express I/O虛擬化的系統鏡像能實現功能齊全的儲存虛擬化機制。圖六顯示了SAS IOV控制器的完整示意圖。SAS控制器提供一個或多個邏輯SAS擴展器,內置映射系統鏡像的微調機制,可把系統鏡像當作實體層(PHY)一樣處理。每個系統鏡像都只能看到整個儲存池的一部分,無需軟體中間體濾波器。此外,可用現有的標準化機制實現上述目的。



《圖六  連接到SAS儲存池的多系統鏡像,採用SAS控制器後的分區 SAS擴展器,實施I/O虛擬化。》 - BigPic:799x487
《圖六 連接到SAS儲存池的多系統鏡像,採用SAS控制器後的分區 SAS擴展器,實施I/O虛擬化。》 - BigPic:799x487

請注意,雖然本示例採用的是簡單的SAS控制器,不過也可使用SAS RAID控制器。就像在一般控制器中一樣,利用相同類型的內部邏輯SAS擴展器,這種RAID控制器可讓RAID組變得像簡單的磁碟機一樣。


<作者任職於LSI主機介面架構師>


相關文章
MCU的虛擬化解決方案平台
IoT成就HMI虛擬化之路
為NVMe-over-Fabrics確定最佳選項
創新永不止息 聯想進攻伺服器市場的成長關鍵
五大好「機」會建立高效率資料中心
comments powered by Disqus
相關討論
  相關新聞
» 數智創新大賽助力產學接軌 鼎新培育未來AI智客
» 工研院通訊大賽獲獎名單出爐 AI創新應用助2025年通訊業產值破兆
» 嚴苛環境首選 – 強固型MPT-7100V車載電腦
» VicOne深植車用資安DNA再報喜 獲TISAX AL3最高等級認證
» 勤業眾信獻策5方針 解決GenAI創新3大常見風險


刊登廣告 新聞信箱 讀者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 遠播資訊股份有限公司版權所有 Powered by O3  v3.20.2048.3.145.33.230
地址:台北數位產業園區(digiBlock Taipei) 103台北市大同區承德路三段287-2號A棟204室
電話 (02)2585-5526 #0 轉接至總機 /  E-Mail: webmaster@ctimes.com.tw