InfiniBand的版本演进、基础观念、传量传速
| InfiniBand標準? 隨著計算能力向數據中心的集中,消除性能瓶頸和改進系統管理變得比以往更加至關重要。I/O子系統中是造成很多這類問題的根源。InfiniBand?是一種被很多人認為可以消除由今天脆弱而又不堪重負的I/O架構帶來的煩惱的一種新I/O技術。? InfiniBand貿易協會(InfiniBand?Trade?Association,IBTA)發布了以該協會名稱命名的I/O?規范的1.0版本。這個擁有180名組員的組織包括所有業界的主要系統、?半導體和外設制造商。該協會是去年兩項競爭性I/O標準?——未來I/O(Future?I/O)和下一代I/O(Next?Generation?I/O)合并的結果。隨著這項標準的發布,IBTA成員將開始設計和生產將在明年出現在市場上的InfiniBand就緒產品。? 不僅限于I/O? InfiniBand將主要用于取代服務器上的“外圍部件互連局部總線”(PCI)。?它提供了PCI所不具備的更多的功能和性能。盡管PCI的可靠性和高速度已經得到證明,并且隨著PCI-X?的發布,?它的速度將會繼續提高(達到1Gbps),?但是它仍落后于InfiniBand的通道設計。? 例如,在使用InfiniBand系統時,設計者和信息技術經理可以不再將I/O永遠當做是服務器的一部分,特別是,不再認為I/O局限于機箱的內部。? 在使用InfiniBand標準的情況下,遠程存儲、網絡以及服務器之間的連接可以通過將所有的設備利用一條由InfiniBand交換機和鏈路組成的集中的、統一的光纖連接起來實現。InfiniBand將利用這種方式解決象PCI?這類基于總線的架構的距離問題。現在PCI距CPU主板的距離是以英寸甚至厘米來計算的。InfiniBand?的通道設備使I/O設備在使用銅線時可以放在距服務器17米遠的地方,而在使用單模光纖時這一距離甚至可達10公里。? 由于消除了對內部I/O總線系統的需要,結構設計師將重新考慮如何設計服務器的機箱。分析人員說,他們認為服務器的占地面積可以減少多達60%,從而通過利用更加優化的機器來取代體積龐大的服務器,直接使擁擠的數據中心受益。? 由于不再規定服務器的PCI插槽的數量,多數系統將只配置一個InfiniBand?主機通道適配器(Host?Channel?Adapter,HCA?)。?HCA?負責將計算機與一個基于通道的InfiniBand交換機連接起來,而這臺交換機將計算機與大規模存儲系統、路由器以及其他配置InfiniBand目標通道適配器(Target?Channel?Adapter,TCA)外設連接在一起。這臺交換機通過光纖提供點對點連接。? 目前,如果你需要向一臺服務器增加更多的存儲容量而你又沒有空閑的PCI?插槽可用的話,你必須關閉服務器,添加PCI擴展板,連接存儲設備,?然后在操作系統上配置這部磁盤陣列,最后再重新啟動服務器。而在使用InfiniBand的情況下,你只需將磁盤陣列的TCA連接到InfiniBand交換機上,?通道適配器中的智能性完成其余的事,不會中斷服務器的運行。? 通道適配器是可以在不中斷服務器CPU運行的情況下處理所有I/O功能的智能設備。例如,當InfiniBand的光纖線路初始化時,它會發現光纖線路中的所有的HCA和TCA,并為它們分配邏輯地址。它通過一種輪詢算法跟蹤所有的設備。在向光纖線路上添加新的通道適配器時,輪詢算法使它能夠找到這些新適配器。? 連接到任何地方? InfiniBand規范中包括一些選項,根據這些選項,通道適配器可以包括1條、4條或12條滿足不同性能需求的鏈接。這三種鏈接選項分別可以處理500Mbps、2Gbps和6Gbps雙向數據傳輸速率。? InfiniBand使用IPv6(Internet協議第?6?版)中的擴展地址。傳輸的數據包包括InfiniBand?全球路由首標中的(Global?Route?Header)源(HCA)和目的(TCA)地址,這些地址使InfiniBand交換機可以立即將數據包直接交換到正確的設備上。? 你可將InfiniBand交換機串聯起來提供故障轉移保護。PCI?總線一直是服務器中的潛在單點故障,而InfiniBand的外部位置和通道架構使你可以建立自動的備份與恢復機制:迄今為止這在總線系統上是不可能實現的。? InfiniBand?將使應用開發人員放開手腳,開發出速度更快的軟件,因為開發人員可以使應用程序不必再經過CPU就可直接調用I/O設備。? 例如,PCI?總線上的一個簡單的打開或關閉文件的請求必須經過微處理器來完成文件操作。而在使用InfiniBand系統的條件下,?應用程序可以直接調用管理文件的存儲系統,從而使CPU避免了不必要的中斷。? 為服務器I/O提速的新規范? InfiniBand貿易協會將發布第一個用于其寬帶總線架構的規范。該規范將為實現群集服務器之間更高速的通信鋪平道路,幫助消除服務器與網絡資源之間存在的I/O瓶頸。? 對于客戶來說,InfiniBand將意味著在實現網絡、存儲和群集連接時,不再需要將多個適配器插入到服務器上。相反,與符合InfiniBand規范的交換機的連接將提供一種虛擬的寬帶通道,從而使用戶避免了安裝和維護復雜的I/O配置。其結果是以一種更簡單的方式使服務器處理器與外設、存儲設備以及其他服務器連接,獲得更高的性能。? 在產品方面,IBM將宣布一款預定于明年下半年上市、用于為InfiniBand交換機提供動力的芯片。Banderacom公司計劃推出一種芯片架構以支持InfiniBand存儲設備、服務器和網絡產品。? 甚至基于先進的PCI-X的服務器也將面臨1Gbps的總線速度限制,這是推動人們對InfiniBand需要的原因。InfiniBand技術將支持可以傳送500Mbps到6Gbps的鏈接以及吞吐量高達2.5Gbps的交換光纖背板。? 理論上,通過使用支持這項技術的產品,網絡上具有地址的設備的數量可達64000部。? Intel公司企業產品部營銷經理說,通過將多個InfiniBand網絡連接起來,具有地址的設備數量幾乎是無限的。? InfiniBand將支持銅質電纜和光纜鏈路,從而降低高端服務器的入門水平,使之更容易適應網絡上基于事務的傳輸流。? 然而,InfiniBand不僅能用于服務器。安裝在網絡上連接設備的中央InfiniBand?I/O交換機也可以用于群集服務器,用于服務器之間高速互聯。? IBM公司計劃宣布三種InfiniBand技術,包括驅動InfiniBand交換機的專用集成電路芯片、將InfiniBand交換機光纖網絡與服務器連接的主機通道適配器,以及用于連接I/O設備(如連接到交換機光纖上的網絡或存儲設備)的目標通道適配器(Target?Channel?Adpapter)。? Banderacom公司將宣布Ibandit——一種為InfiniBand通道適配器提供基礎的InfiniBand半導體架構。該公司還計劃宣布與生產軟件以及為Internet設備提供服務的公司的合作,以開發和提供包括支持Banderacom公司的Ibandit架構在內的InfiniBand傳輸軟件。包括一些新興的公司也正在開發InfiniBand技術。? 與此同時,推出的新成立的工作組可以決定第三方產品如何利用InfiniBand一起工作。? 對于客戶來說,這意味著他們可以將不同廠商的服務器連接在一起以及部署多廠商存儲和網絡設備。? 光明的未來? IDC公司預測,這個市場的總份額將在2004年前達到約20億美元。這個市場為供應商提供了開發和安裝包括服務器、交換機和其他設備在內的InfiniBand技術的機會。? 這意味著在2004年發送的大約六百萬臺服務器中,有四百萬臺將具有InfiniBand功能。? 但是,InfiniBand必須與支持著網絡、服務器和存儲設備的現有行業標準共存并幫助現有標準。? InfiniBand的成功在很大程度上取決于能否與現有PCI光纖、Ethernet以及光纖通道共存。? InfiniBand還可以提高可靠性。例如,如果服務器的PCI總線出現故障的話,服務器就癱患了。然而這種情況不會發生在InfiniBand上。由于InfiniBand的實現方式,它可以提供多條連接路徑。如果損失一條線路或連接的話,其他連接仍可以被訪問,這一點與大型機可以訪問多個分區類似。? Intel公司認為,InfiniBand將向用戶提供與帶來光明的電力網相似的格柵網計算功能。如果一個資源不可使用的話,可以連接另一資源來代替它,補充帶寬的需要。? InfiniBand最終將取代的是老式的共享總線技術,這種技術需要關鍵的服務器和網絡部件來分擔今天數據中心中很緊缺的資源。? |
?
?
InfiniBand:還會有多少人想起我?
?
2005年10月27日 Zxm(整理)
前言:InfiniBand——速起速落
如果說IT(Information Technology;信息技術)界要頒發“最速黯淡獎”,那么筆者可能會提名“InfiniBand”,理由是InfiniBand的規格及標準規范自1999年開始起草,2000年正式發表,之后主力業者紛紛退出,再經過一、二年的前期推展與市場觀察,以及PCI Express的出現,幾乎注定了InfiniBand的發展界限。
InfiniBand雖自1999年啟動,但其實有更遠早的淵源,最初來自Compaq,更嚴格說是來自康柏(Compaq)于1997年所收并的天騰計算機(Tandem),Tandem知名的專屬架構計算機:NonStop Himalaya(永不停頓,喜馬拉雅)是一種以大量平行容錯集群(Failover Cluster)所建立的系統,1994年Tandem為此系統添入了新的設備聯機技術:ServerNet,ServerNet能讓主機核心(處理器、內存)與主機I/O(硬盤、適配卡)間以長纜線方式連接,并以高速、低延遲的特性進行傳輸,如此核心與I/O在運作上依舊保持一體性,但實體配置卻可分離,在無此技術之前,主機核心與I/O多是實行單一完整實體的設計,今日絕大多數的服務器依然是此種設計。
此番說明各位似乎不容易了解,但若改用生活譬喻就可以輕松體會,過去的箱型冷氣、窗型冷氣都是一體性設計,而近年來出現了分離式冷氣,分離式冷氣讓空調配置更具彈性,但兩分離設備間依舊有冷媒管相連,運作上仍是完整一體,而實機配置卻可彈性分離。ServerNet所扮演的,正類似分離式冷氣中的冷媒管,都具有實體相連、運作融合的任務及效用。
InfiniBand的前身:ServerNet、FIO、NGIO
正因為ServerNet有如此絕佳妙用,過去僅供Tandem的NonStop系統所獨享獨用,但在Compaq收并Tandem后,也將ServerNet技術用于其原有的PC Server上,以此實現超快速的PC集群系統,同時Nokia、Ericsson也對此卓越技術相當鍾意,可讓網絡通訊設備也受益,因此先后于1998年向Compaq購買此一技術的運用授權,當時ServerNet就已有600Mbps的高速表現,同一時間PCI最快僅532.8MB/Sec(64-bit、66.6MHz),1GB/Sec的PCI-X于1999年才提出,且ServerNet是機外長距聯機,PCI僅限于機內連接。
CS Electronics公司專門產制各種巨量儲存(Mass Storage)所需的接口線路,如LVD SCSI、Fibre Channel、Gigabit Ethernet等,同時也包括InfiniBand,圖為該公司所制造的InfiniBand 1x聯機(Link)接頭
當然!ServerNet技術必須持續強化精進才能常保其優勢及特點,而且ServerNet技術不僅受用在主機與服務器等運算設備,就連通訊設備、電信設備、甚至儲存設備等都有需要,所以Compaq決定擴展延伸此一標準,除自身外也聯合HP、IBM等其它高階服務器業者一同制訂,并將后續的強化版本稱為FIO(Future I/O,未來I/O)。
CS Electronics公司所產制的InfiniBand 4x聯機接頭
然而,期望發展更高速、先進的I/O標準并非只有Compaq、惠普(HP)、IBM,另有一陣營也積極研擬,此即是由戴爾(Dell)、英特爾(Intel)、微軟(Microsoft)、升陽(Sun)所共同推行的NGIO(Next Generation I/O,次世代I/O),由于FIO與NGIO有相當大的重迭性,遂促使了此兩大陣營、七大業者的協議討論,期望讓FIO、NGIO融合為一,避免制訂心力的重工(重復施工,指相同目標的心力浪費),及相近用途標準的分歧。
經過密切討論,終于在1999年8月31日達成協議,確定FIO與NGIO將相互融合,并在討論過程中即已提議放棄原有的FIO、NGIO等稱呼,改用新的一致性稱呼,最初命為System I/O,然而此名稱僅使用一短暫時間,僅從1999年8月用至同年10月,10月聯合制訂小組成立后正式命為InfiniBand。
?
?
?
業者各懷鬼胎,相繼另行PCI Express、RDMA
IT界至強的七大業者空前連手,自然有著無比的號召,也因此InfiniBand的專責機構:InfiniBand Trade Association(簡稱:IBTA)吸引了70多家業者會員的加入,看來前程似錦,但實際上卻是各懷鬼胎,看似完美陣容的合作終究還是破局。
首先是Wintel的退離,2002年5月Intel、Microsoft退出IBTA,然在此之前Intel早已另行倡議Arapahoe,亦稱為3GIO(3rd Generation I/O,第三代I/O),正名后即是今日鼎鼎大名的PCI Express(簡稱:PCIe),經過一年的InfiniBand、3GIO并行,Intel終究還是選擇PCIe而背棄InfiniBand。
CS Electronics公司所產制的InfiniBand 12x聯機接頭
在Wintel求去后,所有IBTA會員將主導業者寄望在IBM、HP身上,沒想到IBM、HP也在不久后退出,并在來年提出RDMA(Remote Direct Memory Access;遠程直接內存存取),期望用10Gbps Ethernet,搭配TOE(TCP/IP Offload Engine,TCP/IP負荷卸除引擎)的硬件加速設計,以更標準、低廉的方式達成與InfiniBand相同的功能用途。
為了成就RDMA,業界成立了RDMA Consortium的組織,且RDMA的創始會員也不陌生,即是之前相繼退出IBTA的Intel、Microsoft、IBM、HP、及Dell,再加上儲存網絡化所興起的EMC、Network Appliance(簡稱:NetApp),還有Adaptec、Broadcom、Cisco等業者。
RDMA Consortium的目標遠大,在RDMA之前iSCSI已獲得Internet標準制訂機構:IETF(Internet Engineering Task Force)的正式認可,RDMA Consortium不僅比照iSCSI的路線模式交付IETF審核,期望RMDA讓成為Internet標準,同時也延伸訂立iSCSI Extensions for RDMA(簡稱:iSER)及相關協議,讓RDMA能兼具iSCSI功效。
雖然大廠相繼棄舍InfiniBand,但Sun依然擁抱支持,現在是InfiniBand陣營最具份量的業者。而且,似乎只要被Wintel看淡的事物就會有開放原碼接手并大力發揚的空間,在SourceForge.Net(簡稱:sf.net)的自由軟件項目網站上就有Linux InfiniBand項目,讓Linux 2.4、2.6操作系統能支持使用InfiniBand,另外,也有所謂的Open InfiniBand Stack(簡稱:OpenIB)項目,將完整開發實現InfiniBand各種功效的軟件堆棧,包括驅動程序、軟件管理工具、應用協議等。
附帶一提的是,市場研究調查機構IDC,曾經在2001年發表InfiniBand的市場預估,認為InfiniBand將在往后數年逐漸成長,2002年新出貨的服務器中約有5%的比例會預裝、預配屬InfiniBand,2003年將達20%,2004年為60%,2005年至80%。如今我們處在2005年回頭看4年前的報告,再與現實發展對應比較,實在是天差地別。即便之后修正為2005年將有過半的新出貨服務器會配裝InfiniBand,與事實比對仍是遠偏。
?
InfiniBand的版本演進、基礎觀念、傳量傳速
接著讓我們來看看InfiniBand(有時可簡稱為:IB或IBA,即InfiniBand Architecture)的規格發展歷程,InfiniBand的版本發布主要有4次:
老實說IBA也是筆者見過最厚的規格書,且分成卷1及卷2,以1.2版為準,卷1部分就達1,677頁、20個章節、10個附錄、324張圖、526個表,卷2部分也有830頁、15個章節、3個附錄、218張圖、188個表,而在此之前最讓筆者稱奇的USB 2.0規格書也不過600多頁,如今實是小巫見大巫。
至于卷1、卷2的區別何在?卷1部分完全在于IBA的理論層面,包括基礎架構、運作原理、機制特性等,卷2則是IBA的實做層面,包括機械構型的定義、電氣的規范、實際運行時的組態管理等。換句話說卷1只夠了解IBA,要研發設計出IBA產品還需讀透卷2。此外13個附錄美其名稱為附錄,但筆者簡單審視后發現幾乎是必讀,否則仍是難以完成真正的應用設計。
InfiniBand的端末節點(End Node)與IBA Switch連接,各IBA Switch相互連接,以及與IBA Router連接,且聯機(Link)數目不拘,可再并行擴增,此外還有Subnet Manager負責InfiniBand子網的管控
進一步,我們要了解InfiniBand在其整體架構中的角色安排,InfiniBand是以通道(Channel)為基礎的雙向、串行式傳輸,在連接拓樸中是采交換、切換式結構(Switched Fabric),所以會有所謂的IBA交換器(Switch),此外在線路不夠長時可用IBA中繼器(Repeater)進行延伸。而每一個IBA網絡稱為子網(Subnet),每個子網內最高可有65,536個節點(Node),IBA Switch、IBA Repeater僅適用于Subnet范疇,若要通跨多個IBA Subnet就需要用到IBA路由器(Router)或IBA網關器(Gateway)。
至于節點部分,Node想與IBA Subnet接軌必須透過配接器(Adapter),若是CPU、內存部分要透過HCA(Host Channel Adapter),若為硬盤、I/O部分則要透過TCA(Target Channel Adapter),之后各部分的銜接稱為聯機(Link)。上述種種構成了一個完整的IBA。
IBA Router負責連接各InfiniBand子網(IBA Subnet),每個IBA子網最大能有65,536個IBA節點,InfiniBand也支持與IPv4、IPv6的尋址對應,稱為IPoIB(IP over InfiniBand),并且已通過IETF組織的審核,成為Internet正式標準
除完善、嚴謹的架構設計外,IBA的重要價值就在于高速的傳量、極低延遲的傳輸,先說明傳量部分,IBA Link的接頭設計可有3種組態選擇,即1x、4x、12x(也可有8x),更具體說即是并行傳輸線路的增減,之后再搭配傳輸速率的倍速調整,共有單倍速SDR(Single Data Rate)、雙倍速DDR(Double Data Rate)、四倍速QDR(Quad Data Rate)可用,3種并列寬度與3種傳輸倍速構成了9種傳量組態。
要提醒的是,這只是原生總傳量(Raw Rate),由于IBA實行8B10B編碼法(筆者傾向寫成8b10b,畢竟是以串行方式傳輸bit數據),每10-bit中有2-bit為頻率同步位,頻率同步位純粹表示頻率,無法用于傳攜數據,真正可用僅8-bit(命令控制+實質數據),所以上述的傳量組態還必須打8折計算,即2.5Gbps中有0.5Gbps為頻率,控制與數據的實傳僅為2Gbps。
附注:今日愈來愈多的高速傳輸實行8b10b編碼法,最早是IBM大型主機所用的ESCON及之后的FICON,還有InfiniBand的前身:ServerNet,而今機房內常見的Fibre Channel、Gigabit Ethernet(多半簡稱GbE,IEEE 802.3z)也都是,就連PC上的PCI Express(PCIe)、Serial ATA(SATA)、DVI,消費性電子的HDMI、IEEE 1394b等亦是。
光是理論上的規劃與設計,IBA就可至單一接頭120Gbps的傳速,而目前的實際技術進展為4x、SDR(即10Gbps),并往單一接頭12x及DDR邁進,然而IBA并非只能用單一接頭的進步來拓增傳量,也可以實行同時多組接頭的并用來加速傳輸,例如1個IBA Link為10Gbps,可同時動用3個IBA Link來達成30Gbps,類似的技術作法其實也被其它接口所抄仿,例如串行式SCSI:SAS(Serial Attached Scsi)也具有相同機制。
了解傳量傳速后接著是“低延遲的傳輸”,所謂延遲(Latency)就連今日的小孩、學生都知曉,當他們在玩在線游戲(Online Game)時產生不順暢的慢動作就會直呼“Lag”,在此Latency與Lag用意相近。標準Ethernet的傳輸多半大于50mS(毫秒),而InfiniBand卻可控制在1mS~3mS內,這必須從頻寬管理(QoS)、傳輸協議機制等層面的設計時就有所考慮,才能實現低延遲、快速反應的傳輸傳遞。
更令人激賞的是,InfiniBand的傳輸方式相當活化彈性,若在設備機內可用印刷電路板的銅質線箔傳遞(特別是用在工控、電信設備的Backplane背板上),若在機外可用銅質纜線傳遞,或需要更遠的傳遞也可改用光纖,若用銅箔、銅纜最遠可至17m,而光纖則可至10km,同時IBA也支持熱插拔,及具有自動偵測、自我調適的Active Cable活化智能性連接機制。
此圖為InfiniBand傳輸協議的結構分析圖,很明顯PCI Express的協議結構與其“高度相似”,且兩者都采用8B10B編碼法
若再進一步了解與比較,各位將逐漸發現:PCI Express有非常高程度的IBA技術身影,不僅是現有已經定案的PCI Express是實行與IBA相同的8b10b編碼法,就連技術用詞與比喻描述也相近,兩者都使用Lane/Lanes(傳道)的稱呼,甚至PCI Express的后續提升方向也積極向IBA“學習”,包括可形成設備間的纜線連接,如PCIe External Cabling,以及傳輸上的虛擬化機制,如Virtual Lane(簡稱:VL)、Virtual Interface(簡稱:VI)就列入PCIe v2.0的基礎規格提案中,這些對PCIe而言都還處在提案、研擬的草版摸索階段,但在InfiniBand上都早已成熟發布。
?
?
InfiniBand急劇泡沫化,專精業者紛紛走避、轉型
從IT七大廠聯合到紛紛棄退也不過3年時間,當初因看好InfiniBand前景而成立、投入的其它業者卻也因此必須走避、改行,部分業者也就因此被購并或歇業。
2002年,IBA芯片業者兼IBA Switch業者:OmegaBand,2001年秋放棄自行研發IBA芯片,但仍持續IBA Switch,之后也于2002年正式歇業。
2002年,IBA軟件業者:Vieo重新定位成數據管理軟件方案業者,雖仍持續支持InfiniBand,但改專注開發能讓信息基礎建設自適性管理的軟件。
2002年,發展IBA Switch、IBA HCA的RedSwitch公司由Agilent所收并,之后Agilent也推行一陣IBA產品,但大體也在2003、2004年期間喊停。
2003年,IBA芯片設計業者:JNI由AMCC收并,且不再發展IBA方案。
2003年,推展IBA Switch的業者:Paceline Systems賣給Motorola Computer Group,并放棄發展InfiniBand。
2003年,IBA Switch業者:InfiniSwitch,與IBA管理軟件業者:Lane15合并,之后仍稱InfiniSwitch,隨后也被InfiniCon收并。
2004年,IBA芯片的設計業者:Banderacom改名成NetEffect,并放棄IBA芯片的后續研發,全力轉向10Gbps Ethernet、RDMA的方案芯片。
2005年,IBA Switch、IBA HCA業者:Topspin被Cisco所收并,眼前將持續IBA產品業務,但主要也是提供IBA與GbE、FC網關轉接的方案,而非主推純IBA方案。
2005年,從事IBA HCA、IBA Switch的InfiniCon Systems公司改名為SilverStorm Technologies(銀色風暴),但依然有從事IBA產品及業務,更名的動機官方說法是為了更專注于高效商務運算方案,然也承認不希望被刻板定位成純IBA方案業者。
從“超新星”迅速變“黑洞”,專精于IB業者營運相當慘烈,在此還不論QLogic、Alacritech、Troika Networks等業者撤收IB產品線,并多數轉向SAN產品、GbE產品、或iSCSI產品,以及幾乎無訊消失的Libra Networks。如今再回頭看當年的稱呼:Future I/O、Next Generation I/O,未來、新世代、次世代等用詞對應至今日InfiniBand的發展際遇,似乎反成為一種諷刺。
不過,有劣敗也必然有優勝,IB領域的碩果僅存者大致只有Mellanox Technologies、Voltaire、SBS Technologies、Cisco Systems/Topspin Communications、SilverStorm Technologies、PathScale等。
Mellanox的24端口Infiniband交換機(上)與惠普的48端口Gigabit Switch交換機協同組網集群
在這些業者中,IBA芯片主要的研發設計業者為Mellanox,Mellanox除銷售自研的IBA芯片外也銷售IBA HCA適配卡,但IBA Switch方面僅銷售芯片以及提供IBA交換器的參考設計范例,不親自涉入IBA Switch的產品,這或許是為了與IBA Switch業者間保持良善關系的必要立場。
至于Cisco/Topspin則專注在IBA HCA、IBA Switch及其整體方案,Topspin雖有自行研發IBA芯片(另也向Mellanox購買),但策略上僅供自用而不外售。SBS則是因自身長年專注在國防、工控等嵌入式電子應用方案,IBA技術也多用在此應用領域。PathScale主要是提供集群布建方案,但只提供IBA HCA,且有用上自行研發的IBA專用芯片(ASIC),正好與只專注研發IBA Switch/Router的Voltaire相輔相成。而SilverStorm則同時提供IBA HCA與IBA Switch。
嚴格而論,只有Mellanox、SilverStorm、Voltaire稱的上是在IBA領域獲得成功,Cisco/Topspin則因合并不久還有待后續觀察,其余業者在IBA方面其實依舊是可進可退,甚至可說是可有可無。附帶一提的是,高階主機板業者亦有涉入IBA,如美國SuperMicro,以及Iwill艾崴、Tyan泰安、Arima華宇等。
附注:從業者所取的公司名稱可知,在InfiniBand大為看好時“Infini,無窮、無限”字根被頻繁使用,包括IBM自有的InfiniBand技術亦另稱InfiniBlue,InfiniBlue為IBM的注冊商標。
?
?
IBA在HPC、Cluster領域找到一片天,但好景恐難長
IBA原希望成為運算、通訊、儲存等設備的機內、機外標準接口,不過IBA一起頭就先喪失通訊設備的機內運用可能,因為通訊設備業者多半已屬意實行Rapid I/O,使IBA只能先將目標訂于運算及儲存設備,但也適逢網絡型儲存、儲域網絡(Storage Area Network;SAN)的快速興起,使光纖信道(Fibre Channel;FC)獲得成長普及,之后IBA轉向運算設備,原可望取代PCI,然而PCI-X已先行卡位,且PCI-X提出后的不到兩年時間Intel再提出接替PCI-X的PCIe,使得IBA用于設備機內的可能微乎其微,就連Intel的主要競爭業者:Sun、AMD等也傾向在運算設備機內使用HyperTransport/HTX,而非IBA。
所以IBA只能朝機外高速連接的領域發展,雖然PCI、PCIe、Rapid I/O等都尚無機外連接方案,但不幸的是FC亦在外接方面開展迅速,IBA必須與FC爭搶地盤,FC傳輸表現雖輸IBA,但價格卻相對低廉,加上相近時間內Ethernet從1Gbps進展至10Gbps,且其光纖傳輸(IEEE 802.3ae)、銅線傳輸(IEEE 802.3an)標準也先后于2002年、2005年正式定案,這也讓IBA的持續發展多所推擠、阻礙。
所幸的是,近年來整柜、整箱式設計的頂級硬設備發展逐漸走緩,過去業者可以說服用戶購買初始成本較高的硬件系統,以備未來隨業務需求成長而直接原機追加擴充,而今用戶連較高的初始成本也不愿預先支出,只希望硬件價格、空間、用電都能呈簡單線性成長、擴增,此需求迫使硬件業者改發展磚塊化、模塊式的設備型態,并讓各模化設備以高速機外連接達到互連溝通、延展擴充,以及一體性運作,這使得IBA有些機會。
InfiniBand具有傳輸通道的虛擬化能力,此稱為Virtual Lane(簡稱:VL),可將實體傳輸進行更細膩的頻寬資源分拆與隔離獨立運用,目前PCI Express 2.0正積極“學習”此一技術機制
此一模塊化迭組風氣遍行整個IT硬件界,包括IBM的eServer EXA服務器、HP的Alpha服務器、Overland的Neo磁帶柜、EMC的Symmetrix DMX800網絡型儲存設備、CLARiiON網絡型儲存設備、HDS的WMS/AMS網絡型儲存設備、乃至于UNISYS的ClearPath Libra大型主機、Cray的XD1超級計算機等,都因應要求而實行模塊化的延展架構。事實上許多高速網絡交換器早就實行此種設計。
可惜的是,上述這些模塊化發展的硬設備,各業者都傾向實行自有獨家設計的機外高速聯機,而非開放標準的IBA,很明顯是受各業者門戶之見所阻礙。不過,同樣的模塊設計也吹向高效運算(High Performance Computing;HPC)領域,HPC領域的超級計算機日益在意造價成本,目前滿足此需求的最佳作法即是實行集群(Cluster)組態,即是用一致且大量的獨立運算計算機,并透過機外聯機使之融合為一,聯機也必須盡可能高速。
所以,IBA終于在集群式超級計算機上找到發揮,由于FC只至2Gbps、4Gbps,10Gbps Ethernet尚不夠成熟,延遲控制也尚待精進,放眼望去最合適的便是IBA,IBA低延遲、能以10Gbps為基準單位進行倍增傳輸,使得全球前五百大效能的超級計算機中(參見Top500.org網站)有相當多套系統都使用上IBA,或至少是IBA與其它高速聯機的搭配混用。
然而,金字塔至頂的五百大超級計算機畢竟是少數,其用量規模難以長期支撐IBA產業及其生態永續發展,必須往更普遍的集群運算應用開拓,然而從頂級往中下層面推行,依然遭遇到與FC、GbE沖突的課題,同時也要面對一些業者的專屬特用技術,如Quadrics的QsNet,或Myricom的Myrinet。
?
結尾:IBA的六大隱顯競爭者!
前面曾提過,即便InfiniBand專心致力于機外高速聯機接口的發展,也都要面臨諸多的相近威脅,這包括10GbE、FC/10GFC、PCIe External Cabling、QsNet、Myrinet等,然而實際的威脅程度又是如何呢?
純就筆者的觀點看,首要威脅依然是10GbE,除了速度達10Gbps外,也可彈性選擇光纖或銅纜聯機,這些過去都是InfiniBand獨享專擁的特色,如今10GbE雖無法超越,但已可追平。不過,10GbE依然有諸多環節不如InfiniBand,不光是傳輸延遲的反應問題,也包括實質數據傳量偏少、傳輸過程中對CPU運算的倚賴度過高、數據復制搬移程序過繁復等。
要補足這些缺失,所以才提出TOE與RDMA,在Ethernet傳輸過程中,需要CPU參與運算的部分包括TCP/IP封包的編解運算(約占40%)、傳輸過程中的數據緩沖復制運算(約占20%)、操作系統參與傳輸的軟件執行運算(包括內存數據搬移,中斷服務因應等,約占40%),TOE即在解決編解運算的負荷占用,RDMA則在解決操作系統參與的負荷占用,但即便如此依然有20%左右的占用不易去省。
相對的IBA對CPU的參與倚賴僅在3%、4%,兩者差距甚遠,嚴格說TOE與RDMA即是要拉近10GbE與IBA的差距,少去TOE與RDMA的協助,10GbE依然難以與IBA相提并論,然而IBA亦有RDMA機制,這些都使得10GbE只能接近IBA而無法超越。倘若無法超越,那么就必須在價格上取得優勢,不過10GbE的硬件亦相當昂貴,不見得比IBA低廉,何況IBA已在超級計算機領域獲得嚴苛驗證。
除了具體技術表現10GbE最逼近IBA外,還有另一項“精神”層面的影響迫使IBA不得不將10GbE視為首要大敵,這即是“Ethernet自出道以來從未敗過的無敵戰績!”,Ethernet發展歷程中擊敗過無數對手,包括IBM的Token Ring、DEC的DECnet、Apple的AppleTalk等,甚至無線轉化成的WiFi也擊退五大廠聯合的Bluetooth,如今不僅用iSCSI與FC競爭,也用RDMA與IBA抗衡,戰果確實有逐漸擴大的可能,尤其IT產業講究的是用量規模與規格生態的整體良性循環提升,此方面Ethernet擁有最高優勢。
現有企業機房是在SAN領域使用FC,在Internet/LAN領域使用Ethernet/GbE,在Cluster領域使用IBA,此外Oracle近年來力推的商務用集群系統:RAC(Real Application Cluster),在效能上也推薦使用IBA
其次是FC,現有FC為4Gbps,積極從1Gbps/2Gbps進展至4Gbps也是為了擺脫1GbE的價格競爭所不得不為,而FC陣營的下一個目標訂在10Gbps,很明顯有推擠IBA的意味。不過,從4Gbps提升到10Gbps必然是一大挑戰,且FC不似IBA在傳輸介質上可彈性選擇銅纜或光纖,一律只能實行光纖。
然而FC也有其優勢,其用量、價格、業者生態都較IBA強健,傳輸延遲甚至可低于1mS,勝過IBA的1mS~3mS,所以IBA在面對10GbE外,也須將現有的4GFC與未來的10GFC視為威脅。至于PCIe External Cabling,目前仍處在草版階段,即便正式底定,其Repeater、Switch、Router、Gateway等配套都還有待發展,所以威脅又低于FC,但由于PCIe有機內主流的優勢地位,因此也不能小覷。
IBA整體方案業者:SilverStorm(前InfiniCon)公司力倡用IBA Switch作為企業機房與數據中心的骨干網絡,而非只為集群需求而用,用IBA統合FC與GbE。近年來IBA正積極擺脫僅在HPC/Cluster領域使用,期望進入商務主流運算領域,以刺激其用量規模
另外Myrinet、QsNet,此兩者面對IBA的最大優勢只在于低廉,且不如IBA的開放標準立場,Myrinet與QsNet都是業者的獨門特規,所以IBA只須加緊調降價格即可因應威脅,然而正因為價格因素使Myrinet、QsNet在HPC市場也頗受歡迎,IBA也一樣必須留意。
最后,筆者認為可能還有一個“隱藏”對手,那就是Cray的RapidArray,RapidArray是針對Cray自有的XD1超級計算機所研發的大連接量、高傳量、低延遲的光纖聯機,RapidArray每一個Link能有2GB/Sec傳輸,此已超越IBA現有單一Link的10Gbps表現,且每部XD1(亦視為一個節點)可有2或4個Link。
專精于超級計算機領域的業者:Cray,針對其XD1的模塊化超級計算機而開發了RapidArray的高速光纖聯機系統,RapidArray的各項技術表現皆超越InfiniBand,只可惜是業者專屬技術,而非開放標準
更重要的是,RapidArray的延遲超低,當其它規格都在計較mS層次的延遲時間,RapidArray的延遲已快到僅1.7uS(微秒),不過這是指兩節點間的延遲時間,RapidArray在連接拓樸上允許直接連接(Direct Connect)或層樹狀(Fat Tree)連接,直接連接其實也多采立方矩陣方式相連,所以隨著樹狀層次的增多,或傳輸所經節點數的增多,其延遲時間也會拉長,然總體而言RapidArray依然比IBA先進、優異,只可惜RapidArray也是單一業者的獨門秘方,隨XD1超級計算機一并提供,倘若Cray政策轉變,允許單獨輸出RapidArray技術,則IBA將大受威脅。
?
?
?
?
前言:網絡底層技術進步讓iSCSI迅猛發展
談及“iSCSI”,相信在今日的IT界已是無人不知、無人不曉,但各位可曾知道iSCSI也有一段醞釀沈潛的乏問期?事實上,早在2001年6月IBM就發表了IP Storage 200i的iSCSI存儲設備,同時Cisco也呼應推出SN5420的iSCSI路由器(用于異地備援),但市場及用戶反應卻極有限。
雖然IBM在發表iSCSI方案產品后,也將iSCSI的技術規格提案交付給IETF審議,期望讓iSCSI成為Internet的標準,但在2001年~2002年間的審議作業階段,iSCSI仍被人視為是IBM自行提出的特規專屬方案,直到2003年2月IETF敲定通過iSCSI,并頒布為RFC 3720。iSCSI才正式成為中立超然的網絡化存儲標準。
不過,2003年初的標準通過,也未立即反應至市場,原本IDC推估2003年的iSCSI市場規模為2億1,600萬美元,結果同為IDC之后的實際調查卻只有1,800萬美元,相對的Fibre Channel SAN卻高達100億美元,iSCSI雖開始受注視而擺脫乏問,但商機依舊清淡。
然而iSCSI的發展可說是愈來愈走俏,在成為IETF標準后,隔月Microsoft也隨即表明支持iSCSI,并在同年年中釋出支持的驅動程序(Microsoft iSCSI Initiator 1.0),這對國內硬件業者可說是一大鼓舞,因為國內硬件業者一向等Microsoft表態后才有跟進意愿。接著2004年iSCSI的支持產品數明顯增加,今后數年更是不可限量,甚至在中程發展上已威脅Fibre Channel(以下簡稱:FC),遠程更可能波及InfiniBand(以下簡稱:IB)。
所以,國內的存儲系統設計者,必須積極評估及研究iSCSI技術及其設計方式,以因應即將到來的高成長需求,對此本文以下將列舉與討論數種iSCSI應用的實現法,望能對各位在參考評估時提供些許幫助。
iSCSI是以Ethernet/Internet為實體基礎環境,以TCP/IP為運作協定,再往上加搭的SCSI數據傳輸及SCSI控制指令,使硬盤資源及運用達到通透于LAN/WAN分享的目的
附注:?iSCSI具有Internet SCSI、IP Storage、IP SAN、SCSI over IP、SCSI protocol over the Internet等含意。
附注:?iSCSI正式商品化是在2001年,但先期研究可回推至1996年,當時由IBM研究以Ethernet為基礎的SAN技術,包括SCSI/TCP、SCSI/IP、SCSI/Ethernet等,1998年IBM完成SCSI/TCP技術的雛形品(Prototype),之后于1998~99年間將SCSI/TCP技術與NFS技術進行比較測試,發現SCSI/TCP在CPU的運算占用上比NFS少上3、4倍,且這個階段已用上TOE技術(將于后述),1999~2000年IBM與Cisco共同研擬日后將交付IETF審議的iSCSI草版規格。同時2000年開始IETF也成立ips(IP Storage)工作小組,進行iSCSI核心協議的研擬。以及由SNIA組織制訂iSCSI所需的相關API。
?
iSCSI相關規格標準
在開始之初,筆者要先向各位提醒,除了RFC 3720的iSCSI基礎主體規格外,也有許多與其關連的標準規范必須多所了解,包括:
-
RFC 3721-iSCSI Naming and Discovery(iSCSI命名與探搜)
-
RFC 3722-String Profile for iSCSI Names(iSCSI命名的字符串型態)
-
RFC 3723-Securing Block Storage Protocols over IP(IP環境中進行區塊層級的存儲傳輸所實施的安全防護)
-
RFC 3783-SCSI Command Ordering Considerations with iSCSI(iSCSI的SCSI指令順序考慮)
-
RFC 3347-iSCSI Requirements and Design Considerations(iSCSI需求與設計考慮)
-
RFC 4018-Finding iSCSI Targets and Name Servers using Service Location Protocol version 2(SLPv2)(使用SLPv2協議來探搜iSCSI目標及名稱服務器,關于iSCSI目標將于后述)
-
RFC 4171-Internet Storage Name Service(iSNS)(將SNS的存儲名稱服務協議運用于TCP/IP環境,SNS、iSNS皆用于探搜網絡上的存儲裝置)
-
RFC 4173-Bootstrapping Clients using the iSCSI Protocol(客戶端裝置運用iSCSI協議進行開機,即客戶端裝置的機內并無硬盤,透過iSCSI實現遠程遙控式開機)
|
|
IBM早在1996年即進行iSCSI的技術研究,并于2001年推出iSCSI商業化產品:IP Storage 200i存儲設備,外觀與IBM的NAS產品無異,且有塔型(Tower)、機架型(Rack)兩款,圖為塔型機種,200i于2003年停產,2004年由IBM TotalStorage DS300接替
上述主要是主體規格的補充、在TCP/IP環境下能用何種方式進行iSCSI裝置的探搜、辨識、登入,以及傳輸編密、遠程開機等,除此之外,iSCSI也必須支持現有Internet上常用的權限驗證機制及標準,包括:
-
RFC 1510-Kerberos v5
-
RFC 1994-Challenge Handshake Authentication Protocol(CHAP)
-
RFC 2025-Simple Public Key Mechanism(SPKM1/SPKM2)
-
RFC 2945-Secure Remote Password(SRP)
附注:?要達到IP型態的SAN,不一定要用iSCSI(以TCP/IP為基礎來傳遞SCSI指令),也有兩種以FC基礎環境為出發的作法,即FCIP(RFC 3821,Fibre Channel over TCP/IP)與iFCP(RFC 4172,A Protocol for Internet Fibre Channel Storage Networking),前者以建議傳輸隧道(tunnel)的方式實現,后者則以各裝置皆IP化尋址實現,不過各有缺點,前者效能與穩定不佳,后者支持業者過少,且要同時傳輸FCP協議與IP協議,過度耗占頻寬,因此兩種作法都僅被小量使用,如用在異地備援(Disaster Recovery,DR)的遠程數據傳輸上(在超出長波光纖的10km以上距離時)。
?
iSCSI架構中的角色及專詞用語
接著我們要了解iSCSI架構中的角色與專詞,iSCSI的存儲設備稱為iSCSI Target(或稱iSCSI Target Device),例如iSCSI磁盤陣列柜、iSCSI磁帶柜等,而iSCSI卡稱為iSCSI HBA(Host Bus Adapter),與FC卡稱呼相同,但與Ethernet卡稱呼不同,一般稱網絡卡為NIC(Network Interface Card),也與IB卡稱呼不同,IB卡稱為HCA(Host Channel Adapter)。
當然,iSCSI允許使用一般Ethernet NIC卡(網絡卡,為了效率多半是GbE以上等級)與Ethernet Switch(交換器),若使用一般GbE卡,則還需要搭配軟件才能讓GbE卡收發iSCSI協議,此軟件稱為iSCSI Initiator,事實上iSCSI HBA的角色也等同于iSCSI Initiator。
此外還有iSCSI Router(路由器),不過,目前似乎只有Cisco一家提供,這是在需要以iSCSI進行異地備援傳輸時才會使用。至于iSCSI Gateway(網關器)則在接口轉換時才需要,例如讓iSCSI網絡與FC網絡接軌,就需要iSCSI-to-FC Gateway,或將網絡型的iSCSI轉換成本地端的傳統SCSI,這時則用iSCSI-to-SCSI Gateway,iSCSI Gateway也不見得用硬件方式實現,用CPU執行特定的轉換程序,效用與角色等同于iSCSI Gateway。
很明顯的,一般的設計需求會集中在iSCSI Initiator(iSCSI Initiator Software、iSCSI HBA)及iSCSI Target(iSCSI Disk Array、iSCSI Tape Library)兩者,至于iSCSI Switch即Ethernet Switch,無須更動,而iSCSI Router則較少運用。
iSCSI運作架構中的各種角色連接與配置
附注:?Intel推出的iSCSI HBA卡稱為PRO/1000 T IP Storage Adapter。
附注:?除了iSCSI Initiator能以軟件方式實現外,iSCSI Target也能以軟件方式實現。且iSCSI Bridge/Gateway/Router也被視為一種iSCSI Target,Bridge與Gateway等皆屬轉換功效,只是負責的層級不同,一般而言Bridge為低層次轉換,Gateway為高層次,然有時也經常混稱合用,無太大差別。
?
如何實現一個iSCSI Initiator?(軟件法)
要想實現一個iSCSI Initiator,最簡單也最省錢的作法即是在服務器上安裝iSCSI Initiator軟件,并運用服務器原有的GbE卡來收發iSCSI協議。
不過,使用iSCSI Initiator軟件必須多加權衡,由于它運用服務器的CPU來進行iSCSI協議的編解運算,會折損服務器的本務運算效能(即伺服應用服務的運算),一般而言會折損1、2顆CPU的效能,所以不建議在2 CPU的服務器上使用此法,建議在4 CPU以上的服務器才使用,且也要多斟酌效能沖擊性,也不建議直接以服務器內唯一的GbE網埠來傳發iSCSI協議,因為這將阻礙服務器原有對前端服務的能力(即Internet/LAN與SAN的傳輸交迭影響),所以多會額外加裝第二張GbE網卡,以另一專屬區網(SAN)的作法來傳輸iSCSI。
使用軟件式的iSCSI Initiator不單要考慮CPU、NIC的效能折損,也要考慮操作系統支持性及取得成本,操作系統也還要注意硬件架構的差別,同樣是Windows,在IA-32(即俗稱的i386)硬件上與在x64(即x86-64、AMD64、EM64T)硬件上的驅動程序并不相同,甚至IA-64硬件上的也不同,Solaris也類似,Solaris支持SPARC、IA-32、x64,三者的驅動程序也不相同。
目前iSCSI Initiator多采免費下載或免費隨附的策略,Microsoft已針對IA-32、IA-64、x64等不同硬件架構的Windows都提供了iSCSI Initiator軟件,新版為2.0,支持更高層次的iSCSI傳輸錯誤修正功能(從ERL0提升至ERL1、ERL2,ERL為Error Recovery Level),以及多徑傳輸(Multi-Pathing I/O;MPIO)功能,2.0于2005年6月12日釋出,之前的版本為1.0/1.05/1.06,另也可搭配下載iSNS Server 3.0(TCP/IP環境下探搜iSCSI裝置之用的伺服應用程序)。
Sun方面也相同,其Solaris Express(快捷版)及Solaris 10 Update 1(類似Service Pack 1)也免費提供iSCSI Initiator軟件,包括SPARC(64-bit)、IA-32、x64都支持,且能支持10GbE NIC,并計劃將軟件的原始程序代碼公布于OpenSolaris.org網站。
自由軟件陣營也不落后,名為“Linux-iSCSI”的原碼開發項目即是撰寫Linux 2.4版以上所用的iSCSI Driver(驅動程序,即iSCSI Initiator)及iSCSI Daemon(同于Demon,原意是魔鬼,但在此是指泛UNIX操作系統的背景常駐執行程序),開發過程中也與Open-iSCSI項目合并,目前為4.0.x版。此外還有UNH所釋出的“UNH-iSCSI”的開放項目,一樣是Linux上的iSCSI Initiator軟件,目前為1.6.0版。
附注:?UNH是新漢普郡大學(University of New Hampshire)的縮寫,該校的研究運算中心(Research Computing Center)附屬一個互通實驗室(InterOperability Laboratory;IOL),負責各類信息連接標準的測試。
其它如HP HP-UX 11i v1、IBM AIX 5.2、Novell NetWare 6.5等也都支援iSCSI Initiator。至于Mac OS X也有SBE公司能提供Xtend SAN iSCSI Initiator for Mac OS X(收并自PyX公司),但此要付費取得,或隨SBE的硬件套件方式一并購買。
至于軟件表現的強弱如何?此可透過實際的CPU運算占用(占用百分比愈低愈好)、I/O傳輸表現(每秒完成多少個I/O處理,即IOPS)來評斷,另外要重視支持的GbE層級、錯誤修正層級,如10GbE優于1GbE,以及ERL2優于ERL1優于ERL0。以及是否支持MPIO,MPIO指的是一部服務器內有一張以上的GbE NIC時,可同時運用多張NIC卡進行傳輸,以負載平衡(Load Balance)方式盡快完成傳遞,或在某一NIC卡故障失效時,其工作也可轉由其它仍正常運作的NIC卡來接手。
?
?
如何實現一個iSCSI Initiator?(硬件法)
軟件法的缺點就是耗占原有硬件資源及效能,所以也有眾多業者提出硬件實現法,有的是推出iSCSI控制芯片(如SilverBack Systems),然后由硬件設計者購回芯片以做成iSCSI HBA卡,或嵌于主機板上,讓主機板直接具備iSCSI硬件支持,或者有的業者雖有自研的iSCSI控制芯片,但視為獨門秘方,不對外單售芯片,只售使用上自有芯片實現成的iSCSI板卡(如Adaptec、iStor Networks),或芯片與卡都提供(如Alacritech、QLogic、iVivity)。
與前述的軟件實現法相比,硬件法可就相當復雜多樣,為避免混淆難懂,須在正式說明前建立好先前概念才行。
Alacritech自研的因特網協議處理芯片(Internet Protocol Processor,IPP):1000x1,此芯片運用該公司特有SLIC(Session-Layer Interface Control)技術,由IPP芯片來加速TCP/IP、iSCSI等執行,使用此芯片所形成的適配卡Alacritech稱為TNIC,其實即是TOE GbE NIC+iSOE iSCSI HBA
首先我們先要了解Ethernet卡的過往,早在1982年Sun的第一部工作站出貨時就已具Ethernet功能,在Ethernet卡發展的初期,由于計算機CPU效能(此處的計算機指的是工作站、個人計算機)仍不足,所以當時的Ethernet卡都有專責處理TCP/IP程序的芯片及電路,不需耗用CPU效能,然之后計算機CPU效能躍增,使Ethernet芯片/網卡開始被設計成只負責部分工作,而非過去的全部工作,舍去處理的部分改由CPU與執行搭配軟件來負責。
然而今日iSCSI的出現,倘若是使用iSCSI Initiator軟件,服務器CPU除了要執行iSCSI的傳送、接收等程序外,就連GbE NIC的TCP/IP編解工作也是由CPU來負擔,倘若CPU效能不足,或軟件反應不夠快(程序撰寫不佳,或操作系統架構特性使然),過重的負擔就會影響iSCSI的傳輸表現。
因此,要加速iSCSI傳輸,第一種作法即是使用iSCSI HBA卡,iSCSI HBA卡主要是擔負iSCSI程序的處理執行,如此CPU可以卸下此方面的工作,但仍要執行TCP/IP方面的工作,不過已有加速效用,此稱為iSOE(iSCSI Offload Engine)。第二種作法,是使用“較盡責”的GbE NIC卡(或控制芯片),能完整包辦TCP/IP層面的運算,不需CPU操煩,CPU可以專心處理iSCSI程序,此稱為TOE(TCP/IP Offload Engine),由于仍是個NIC卡/芯片,所以依然需要iSCSI Initiator軟件的輔助,但一樣有加速效果。
第三種作法則是讓iSCSI HBA卡(芯片)既負責TCP/IP工作也負責iSCSI工作,那么CPU就更加輕松,也可如第一種作法般地舍去iSCSI Initiator軟件,加速效果也勝過前兩者。
再者,如果是重視iSCSI傳輸安全性者,則希望在TCP/IP環境中再添入IPSec的加密,然而IPSec一樣要耗用CPU來編解運算,若能用特有芯片來承擔此一運算,卸除CPU的負擔,自然又可以更快,此稱為SOE(Security Offload Engine)。當然!若不使用IPSec則與第三法無所差別。
有了上述概念后,在此就以QLogic的iSCSI芯片為例作說明,QLogic的ISP3010芯片只是顆具TOE效果的Ethernet加速芯片,依舊是GbE NIC卡/芯片,搭配iSCSI Initiator軟件即可加速iSCSI的傳輸執行,此即是第二法。
接著,QLogic的ISP4010芯片是個TOE的GbE NIC芯片,也是個iSCSI芯片,等于將TCP/IP、iSCSI等執行工作都一手包辦,不需倚賴CPU參與運算,但若用上IPSec傳輸加密則還是要倚賴CPU來運算,此為第三法。
然后,QLogic也提供一顆ISPSEC1000的輔助芯片,專責處理IPSec運算,可搭配前述的ISP3010或ISP4010使用,若搭配ISP4010則屬于我們前述的第四法,若搭配ISP3010雖沒有前述的對應法,但也只剩iSCSI收發程序要交由CPU負責,一樣要搭配iSCSI Initiator軟件。
Adaptec的iSCSI HBA卡:7211F,F即Fiber之意,使用1Gbps以太光纖連接,控制芯片則是由Adaptec自行研發,能卸載CPU的TCP/IP、iSCSI等運算負荷,另有7211C,C即Copper,使用1Gbps以太銅線
上述的四、五法是較常見的幾種,但不代表全部,例如Intel的iSCSI HBA卡:PRO/1000 T IP Storage Adapter(2003年7月提出,2005年1月停供)則又是另一種作法,該卡使用一套IOP310的I/O處理芯片組(由一顆80200處理控制芯片與一顆80312輔助芯片所組成)及一顆82544EI的GbE MAC控制芯片,這些都是較中性、泛用取向的芯片,并未針對任何應用調整過功能規格,但以此再搭配軟件(驅動程序)執行,一樣可以實現iSCSI效用,不過CPU負荷的卸載性在此不得而知。
關于此法,就筆者的觀點看,雖然以泛用芯片的搭配組合來實現,較無設計變更與制造供貨的顧慮,但中性的結果卻是介于純軟件法與上述其它特有硬件芯片實現法間,軟件法屬成本取向,特有硬件芯片法則屬效能取向,中性芯片組合在成本與效能上都不易討好,筆者認為此法日后被實行的機會將相對減少。
另外還有一種更“高深”的實現法,即是運用10GbE標準及RDMA規范中的iSER協議,此方式是最新銳高階作法,速度最佳但也最昂貴,關于此我們將在后頭更深入說明。
QLogic的ISP4010芯片(點擊放大),以64bit PCI/PCI-X與系統主存儲器相連,ROM方面使用8-bit寬、2MB~16MB的閃存,RAM方面使用72-bit寬(含查核位)、16MB~256MB的SDRAM,另有36-bit寬(含查核位)、2MB的額外程序/數據存儲器(使用SRAM,很明顯是扮演快取加速功效),ISP4010芯片具備TCP/IP卸載及GbE接口
上述我們只是將“基本”實現法說完,尚未談到細部與進階,在細部方面,目前最容易猶豫的就是接口問題,眼前正處于64-bit PCI 2.2/2.3(已有3.0版)、PCI-X 1.0/2.0、PCI Express 1.1并存的時刻,雖然往未來看以PCI Express最具發展,不過業者現在提供的iSCSI芯片多以PCI-X 1.0/2.0為主,并向下兼容64-bit PCI,PCI Express仍屬少數,所以主要多實行PCI-X,64-bit PCI則是因應較過往的服務器需求才需啟用。
其次,iSCSI既可使用光纖(Fiber,IEEE 802.3z的1000Base-LX、1000Base-SX)也可使用銅線(Copper,IEEE 802.3z的1000Base-CX及IEEE 802.3ab的1000Base-T),設計時必須先選定,或者在一張卡上兩種并存,提供購買用戶選用的彈性,或者在同一張iSCSI HBA上提供雙埠(Dual Port),好實現前述的MPIO功能,此法與兩張單埠iSCSI HBA卡相較更能省成本與插槽數,如QLogic ISP4022芯片即以單顆芯片同時提供兩個iSCSI埠的平行處理功效。
?
如何實現一個iSCSI Target(軟件法)
iSCSI Initiator可用軟件方式實現,同樣的iSCSI Target也行,不過優劣特點也相近,即是偏成本取向且不易達到專屬硬件的效能。且要更注意的是,iSCSI Initiator軟件確實多半采隨附的放送策略,而iSCSI Target軟件則不同,多數的iSCSI Target都要收費,僅少數免費,如UNH-iSCSI項目中除了iSCSI Initiator軟件開發也有iSCSI Target軟件開發,雖免費但也多半用于測試驗證之用,少用于實際的商務運作。此外,有一個iSCSI Enterprise Target開放項目能提供iSCSI Target軟件,但目前僅在0.4.x版,連1.0正式版都還有段距離。
現階段真正成熟運用的iSCSI Target多半由商業軟件業者提供,如DataCore Software的SANmelody/SANmelody Lite,或FalconStor Software的iSCSI Server for Windows,或String Bean Software的WinTarget等,頗為玩味的,三者都是只能安裝在Windows伺服操作系統上,這似乎與節費有些違背(純就操作系統的軟件授權費,Windows向來高于Linux、UNIX)。
或許在意效能,或許在意花費(反正軟法、硬法都要錢),多數用戶仍傾向使用硬件方式來實現iSCSI Target,事實上過去也有業者推出能讓泛用服務器轉變成SAN或NAS存儲設備的軟件,但與實際的SAN、NAS存儲硬件出貨數相較實不成比例,同樣的情形也反應在iSCSI Target軟件上,軟件式RAID也類似,RAID軟件的真實運用量遠低于RAID硬件。簡而言之用戶對iSCSI Initiator軟件的接受度大于iSCSI Target軟件。
另外,iSCSI Target有許多種類型,撇開iSCSI Router/Gateway/Bridge等非存儲角色不談,存儲上常見的有iSCSI Disk Array與iSCSI Tape Library,對國內設計者而言只有iSCSI Disk Array具有意義,因為國內幾乎沒有業者在發展以磁帶機為主的相關應用。信息硬件產品中只要牽涉到高度機械性的部分國內業者就會全面束手,小至軟盤機、中至光驅、大至磁帶機皆是。
QLogic的ISP3010芯片僅為TOE而不具iSOE,可當一般GbE NIC之用,亦可加速存取NAS,而ISP4010芯片則為iSOE,可加速對iSCSI Target的存取
上述的軟件實現法,都屬于資管、網管人員自身就可完成的方式,只要找一部泛用型服務器并對應安裝軟件即可。然而也有些軟件方案并非供信息人員所用,而是供網儲系統設計者所用,此即是嵌入式的伺服軟件方案,過去Microsoft就有WSS(Windows Storage Server),WSS包含嵌入式的Windows操作系統以及NAS伺服應用程序,設計者運用此套軟件便可快速實現一臺NAS,不過!硬件業者若要量產使用WSS的NAS存儲硬設備,Microsoft將逐臺收取授權費。而依據Microsoft的展望規劃,日后將比照現有NAS作法,推出專供實現iSCSI存儲設備的新版WSS。
當然!除Microsoft外,其它iSCSI Target軟件業者也多半歡迎存儲硬件業者的接觸以促成嵌入式合作,例如2005年10月三星電子(Samsung Electronics)推出的ZSS-100 iSCSI存儲設備,即是以DataCore的SANmelody內嵌而實現,且ZSS-100的硬件組件相當平凡常見,如3.6GHz的Pentium 4、SATA硬盤(多顆合計的原生總容量達1TB)等,并無特別過人之處。
相同的類例,HP的ProLiant DL100 Storage Server與DL100 G2(第二代)是使用WSS所形成的NAS,然也提供選用功能,可追加iSCSI功能于其上,等于一部存儲設備兼具NAS與iSCSI功效,其中iSCSI功效是將FalconStor iSCSI Server for Windows進行內嵌而達成。
附注:還有兩種特別的商業版iSCSI Target軟件,如Wasabi Systems的Storage Builder 1500i,此是將iSCSI Target軟件搭配嵌入式操作系統(推測為BSD),一并存于IDE接口的Compact Flash記憶卡內,只要將此卡插置于一般x86硬件,即可讓該硬件轉變成iSCSI Target。另一則是RocketDivision的StarWind與StarPort,前者為iSCSI Target軟件,后者為iSCSI Initiator軟件,使用于Windows操作系統上,但作用不在仿真硬盤,而在仿真光盤。
?
如何實現一個iSCSI Target(硬件法)
接著是硬件實現法,我們完全鎖定在如何實現一個iSCSI Disk Array上,但即便如此,實現方式也依然是形形色色、百家爭鳴。
首先是從頭設計到尾,前述用于iSCSI HBA中的芯片在iSCSI Target中也都適用,也統統要用,包括GbE NIC(TCP/IP)芯片、iSCSI芯片、IPSec芯片等,而且用量也比iSCSI HBA多,iSCSI HBA可能用1~2顆GbE芯片或iSCSI芯片,但iSCSI Target會用到2~4顆,理由是一部iSCSI Target/Disk Array要服務多個iSCSI Initiator/iSCSI HBA,傳輸量較大,所以要多個相同并行組態以增進效能,另外也可充當備援組件,增加運作的堅穩可用性。
當然!上述這些芯片也可以部分舍棄不用,但道理一樣:請改采軟件方式來彌補,且代價是消耗部分的CPU運算力。在這些之外,iSCSI Disk Array的重點當然是RAID控制芯片(RAID Controller),透過RAID芯片及其支持接口以連接各式硬盤。
要提醒的是,雖然設計目標為iSCSI,但不表示我們只能用SCSI硬盤或SAS硬盤,其實也可使用ATA硬盤、SATA硬盤,或FC硬盤等,這并不相抵觸,重點只在于RAID芯片支持何種硬盤接口,RAID芯片與CPU連接,CPU與iSCSI芯片連接,過程中CPU會進行運作中所需的各種數據轉換,這也是iSCSI Target的設計實現不必限定非使用SCSI/SAS硬盤的緣故。
如果認為各環節都自主設計太久太累,那可以考慮以半成品為基礎再行往上發展,例如iStor Networks所提供的GigaStorATX系統板,該板用上iStor所自研的特用芯片:iSNP8008(iSNP=IP Storage Network Access Processor)、8個1GbE網埠(iSCSI傳輸,另有支持10GbE的系統板)、16個SATA埠(可接16顆SATA硬盤)、4GB高速緩存,并已具備RAID 0,1,10,5等數組組態,只要再搭配硬盤與些許設計,便可快速實現一部iSCSI Disk Array。
iStor的GigaATX系統板是專為加速iSCSI Target設計所提出,該系統板上使用iStor自研的iSNP8008處理器
另一種半成品作法是用LSI Logic的iMegaRAID iSCSI套件,這套件包含軟硬兩部分,硬件方面是一張LSI Logic的MegaRAID SATA 300-8X或300-8XLP的磁盤陣列控制卡,用來形成SATA磁盤陣列,軟件部分則是LSI Logic的iMegaRAID RAS Software,將控制卡裝入一部使用Linux操作系統的計算機,且該計算機已具備GbE NIC功能,再安裝上iMeagaRAID軟件,即可完成一部iSCSI Disk Array。
嚴格來說,LSI Logic提供的方式不太能算是硬件作法,應是軟件作法,只是該軟件相依于該公司自有的磁盤陣列控制卡上,非配裝該卡才能發揮,其余部分都是以純軟件方式實現,例如iSCSI運算、TCP/IP運算等,只要iMegaRAID軟件舍棄與自家控制卡的相依性,而能適用于任何數組控制卡,就是一個地道的軟件iSCSI方案。說穿了,此法只是讓LSI Logic用來增加既有RAID控制卡的價值與運用范疇。
不過,使用現成的iSCSI HBA卡、現成的RAID卡,甚至使用泛用的主機板等,確實是較快便的實現法,進而將研發心力更專注在韌體、驅動程序、嵌入式操作系統等層面,但相對的也必須犧牲硬件層面的最佳化設計。
用一部x86計算機,安裝Linux操作系統及一張GbE NIC,再安裝上LSI Logic的磁盤陣列控制卡:MegaRAID SATA 300-8x,以及LSI Logic的iSCSI Target軟件:iMegaRAID RAS,即可讓x86計算機搖身變成iSCSI Disk Array
如果認為以半成品來進行設計還是過于麻煩,也還有更輕松行事的方式,甚至完全只要手工就能完成,無須任何電子工程設計,如ATTO Technology的iPBridge系列的iSCSI橋接器,提供iSCSI-to-SCSI與iSCSI-to-FC的橋接,可讓過去采直接附連(Direct Attached,如SCSI、FC接口)的磁盤陣列柜(Disk Array,JBOS、DAS)或磁帶設備(Autoloader、Tape Library)轉變成iSCSI Target。
又如SANRAD的V-Switch系列(iSCSI Gateway,也稱iSCSI Bridge)也是直接取用既有DAS、JBOD等直接附連式存儲設備,重新轉化成iSCSI,以保障企業用戶在既有存儲設備上的投資。也因為只要手動轉接與相關調設,所以資管、網管者可自行完成轉化程序。
?
iSCSI外的更精省路線:AoE(ATA over Ethernet)
以上大體是iSCSI設計的各種實現要則,以下我們將給各位在FC、iSCSI之外的更綜觀網儲(網絡化存儲)技術趨勢介紹,包括AoE、iWARP等。
先說明AoE,企業用戶選擇iSCSI的動機,可能是希望簡化管理(全面導入IP化,以Ethernet管理方式統管一切,不需額外學習Fibre Channel領域的管理法),也可能是希望降低基礎建設成本(將昂貴的光纖卡、光纖線、光纖交換器替換成低廉的以太卡、以太銅線、以太交換器),而且以后者因素較高,既然如此,實際上還有比iSCSI更節費的技術方案,此即是AoE(ATA over Ethernet,而非Age of Empires世紀帝國)。
AoE的概念與iSCSI相近,但協議堆棧更簡化,iSCSI需要四、五層以上的協議,而AoE卻只有三層,協議簡易自然使傳輸更具效率,不過也因為協議過于精簡使其運用有所限制,例如AoE已去除TCP層與IP層,只倚賴與運用Ethernet的基礎布建,因而失去了路由繞徑能力,完全只能在LAN環境內使用,此點與FC相同。另外AoE也去舍IPSec,使安全性較受顧慮。不過,以AoE技術來實現存儲資源共享,確實可比iSCSI方式更低廉。
目前Solaris、Linux、FreeBSD等操作系統都已支持AoE,也有Coraid公司推出AoE的Disk Array,算小有推展,但響應與知名仍遠不及iSCSI或FC。筆者認為未來Thin Client很適合使用AoE作法,如此可保持數據集中于后端的一致化維護管理優點,同時可大幅強化前端程序執行的流暢性(長久以來用戶一直很在意Thin Client的執行流暢性),但此仍需要LAN傳輸的配套拓寬,以及傳輸安全性的強化,尤其是安全,近年來積極導入Thin Client的用戶不再是重視TCO的大型企業(大體都已實行或評估過),而是重視信息安全的傳統企業或中小企業。
AoE強調堆棧協議的簡潔,圖為AoE堆棧協議與iSCSI堆棧協議的比較,嚴格來說IPSec與IP應屬同層,但因IPSec的加解密程序會增加演算負荷,在此被視為多一層,且Data Sync也有類似含意,舍去TCP與IP的AoE只能在LAN環境內運用,不具有對外路由能力
?
?
iSCSI外的更精進路線:10GbE、iWARP
要不是GbE的技術及價格成熟,否則iSCSI也不會到臨,因為以100Mbps的Ethernet來執行iSCSI在效率上可說是完全不可行。
有了GbE后,雖然1Gbps的iSCSI依舊遜于1Gbps FC(理由是TCP/IP協定的頻寬占量多過FC的FCP協議,且Ethernet協議有較大的傳輸延遲),但也逐漸逼近,迫使FC將入門級從1Gbps調升為2Gbps,好與1Gbps iSCSI有所區隔,并往上追加4Gbps FC,以維持其效能領先地位。
不過,Ethernet并非只及1Gbps,10Gbps也已經實現,40Gbps也已經列入規劃進程,所以也有業者提出讓iSCSI使用10Gbps而非拘限在1Gbps,一舉超越現有2Gbps、4Gbps的FC,例如iVivity的iDiSX 2000芯片(iDiSX 2000是I-Disks 2000的諧音),即是以單純的10GbE芯片,并搭配iSCSI軟件來實現iSCSI,屬于高階高效性iSCSI方案。
另外,只將高速Ethernet用于“存儲網絡化”也過于可惜,所以也有眾多業者發起iWARP,不僅可實現存儲的網絡化,也能實現I/O的網絡化,這在過去多半要倚賴IB(InfiniBand)才能達成,但iWARP就是希望用更共通的Ethernet標準來實現,進而取代。從許多跡象可看出iWARP取代IB的意圖,例如兩者都具有RDMA(Remote Direct Memory Access)機制,簡化網絡兩端的內存數據交換程序,從而加速。
同時,RDMA也可搭配iSER(iSCSI Extension to RDMA)協議,達到與iSCSI一模一樣的存儲網化功效,等于是iSCSI的超集,既能將“存儲資源及運作”網絡化,也能將“I/O資源及運作”網絡化。目前NetEffect的NE01系列芯片即是針對iWARP運用所開發,并提出所謂的ECA(Ethernet Channel Adapter),從名稱上即可知有與IB較量的意味,因為IB卡稱為HCA(Host Channel Adapter)或TCA(Target Channel Adapter),嚴格而論具iWARP硬件加速及分擔卸載功效的10GbE網卡,當稱為RNIC(RDMA NIC)。
Voltaire為InfiniBand的交換、路由設備大廠,但也支持RDMA及iSER協議,此也等于支持iWARP/iSCSI,圖為iSCSI與iSER的協議架構
此外Broadcom提出所謂的C-NIC(Converged NIC)聚合型網卡理念,即是在一顆NetXtreme II系列的GbE控制芯片內同時具備以太網絡、存儲網化、I/O網化等功效,傳統以太網部分具有TOE運算,存儲網化則具備iSCSI運算、I/O網化則具備RDMA運算,大幅卸除CPU的輔助運算,使CPU占用率降至20%以下。
關于C-NIC理念,Broadcom目前的代表性芯片為BCM5706(PCI/PCI-X接口)與BCM5708S(PCIe接口),其中BCM5706為第一代,BCM5708S為第二代,第二代還將傳輸率從1Gbps提升至2.5Gbps,雖是專屬超規作法,但卻更貼近與符合C-NIC的需要,畢竟一個網埠具備三種功效,若沒有更高的頻寬作為支持,反會造成三種網化功效互遷就或互干擾的影響。而且Broadcom也于2005年7月收并Siliquent Technologies,該公司專注于10GbE芯片的技術,預計此一收并將有助于Broadcom的C-NIC方案從2.5Gbps提升至10Gbps。
|
|
IBM繼2001~2003年的IP Storage 200i(iSCSI Disk Array)后,2004年再推出TotalStorage DS300
不過,現在10GbE的相關芯片仍偏貴,也必須使用光纖,銅線規格僅初步定案,仍待更完整,且據知銅線無法如過往GbE般保持在100m,距離可能會縮短。所以,前言10GbE幾乎必用光纖,如此將與FC愈來愈像,且目前FC芯片比10GbE芯片低廉,加上FC未來也計劃邁向10Gbps,所以10Gbps的Ethernet與FC還有番價格效能比的爭斗,甚至也要與10Gbps的IB爭斗。
?
?
總結
以上是生活随笔為你收集整理的InfiniBand的版本演进、基础观念、传量传速的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于Python的药店|药房管理系统的设
- 下一篇: UML介绍(2)—— 用例图(use c