InfiniBand技术和架构
Infiniband開(kāi)放標(biāo)準(zhǔn)技術(shù)簡(jiǎn)化并加速了服務(wù)器之間的連接,同時(shí)支持服務(wù)器與遠(yuǎn)程存儲(chǔ)和網(wǎng)絡(luò)設(shè)備的連接。OpenFabrics Enterprise Distribution (OFED)是一組開(kāi)源軟件驅(qū)動(dòng)、核心內(nèi)核代碼、中間件和支持InfiniBand Fabric的用戶級(jí)接口程序。
2005年由OpenFabrics Alliance (OFA)發(fā)布第一個(gè)版本。Mellanox OFED用于Linux,Windows (WinOF),包括各種診斷和性能工具,用于監(jiān)視InfiniBand網(wǎng)絡(luò)的運(yùn)行情況,包括監(jiān)視傳輸帶寬和監(jiān)視Fabric內(nèi)部的擁塞情況。
OpenFabrics Alliance (OFA)是一個(gè)基于開(kāi)源的組織,它開(kāi)發(fā)、測(cè)試、支持OpenFabrics企業(yè)發(fā)行版。該聯(lián)盟的任務(wù)是開(kāi)發(fā)并推廣軟件,通過(guò)將高效消息、低延遲和最大帶寬技術(shù)架構(gòu)直接應(yīng)用到最小CPU開(kāi)銷的應(yīng)用程序中,從而實(shí)現(xiàn)最大應(yīng)用效率。
該聯(lián)盟成立于2004年6月,最初是OpenIB聯(lián)盟,致力于開(kāi)發(fā)獨(dú)立于供應(yīng)商、基于Linux的InfiniBand軟件棧。2005,聯(lián)盟致力于支持Windows,此舉將使軟件棧真正跨平臺(tái)。
2006年,該組織再次擴(kuò)展其章程,包括對(duì)iWARP的支持,在2010年增加了對(duì)RoCE (RDMA over Converged)支持通過(guò)以太網(wǎng)交付高性能RDMA和內(nèi)核旁路解決方案。2014年,隨著OpenFabrics Interfaces工作組的建立,聯(lián)盟再次擴(kuò)大,實(shí)現(xiàn)對(duì)其他高性能網(wǎng)絡(luò)的支持。
IB技術(shù)的發(fā)展
1999年開(kāi)始起草規(guī)格及標(biāo)準(zhǔn)規(guī)范,2000年正式發(fā)表,但發(fā)展速度不及Rapid I/O、PCI-X、PCI-E和FC,加上Ethernet從1Gbps進(jìn)展至10Gbps。所以直到2005年之后,InfiniBand Architecture(IBA)才在集群式超級(jí)計(jì)算機(jī)上廣泛應(yīng)用。全球HPC高算系統(tǒng)TOP500大效能的超級(jí)計(jì)算機(jī)中有相當(dāng)多套系統(tǒng)都使用上IBA。
除了InfiniBand Trade Association (IBTA)9個(gè)主要董事成員CRAY、Emulex、HP、IBM、intel、Mellanox、Microsoft、Oracle、Qlogic專門在應(yīng)用和推廣InfiniBand外,其他廠商正在加入或者重返到它的陣營(yíng)中來(lái),包括Cisco、Sun、NEC、LSI等。InfiniBand已經(jīng)成為目前主流的高性能計(jì)算機(jī)互連技術(shù)之一。為了滿足HPC、企業(yè)數(shù)據(jù)中心和云計(jì)算環(huán)境中的高I/O吞吐需求,新一代高速率56Gbps的FDR (Fourteen Data Rate) 和100Gpb EDR InfiniBand技術(shù)已經(jīng)廣泛應(yīng)用。
IB技術(shù)的優(yōu)勢(shì)
Infiniband大量用于FC/IP SAN、NAS和服務(wù)器之間的連接,作為iSCSI RDMA的存儲(chǔ)協(xié)議iSER已被IETF標(biāo)準(zhǔn)化。目前EMC全系產(chǎn)品已經(jīng)切換到Infiniband組網(wǎng),IBM/TMS的FlashSystem系列,IBM的存儲(chǔ)系統(tǒng)XIV Gen3,DDN的SFA系列都采用Infiniband網(wǎng)絡(luò)。
相比FC的優(yōu)勢(shì)主要體現(xiàn)在性能是FC的3.5倍,Infiniband交換機(jī)的延遲是FC交換機(jī)的1/10,支持SAN和NAS。
存儲(chǔ)系統(tǒng)已不能滿足于傳統(tǒng)的FC SAN所提供的服務(wù)器與裸存儲(chǔ)的網(wǎng)絡(luò)連接架構(gòu)。HP SFS和IBM GPFS 是在Infiniband fabric連接起來(lái)的服務(wù)器和iSER Infiniband存儲(chǔ)構(gòu)建的并行文件系統(tǒng),完全突破系統(tǒng)的性能瓶頸。
Infiniband采用PCI串行高速帶寬鏈接,從SDR、DDR、QDR、FDR到EDR HCA連接,可以做到1微妙、甚至納米級(jí)別極低的時(shí)延,基于鏈路層的流控機(jī)制實(shí)現(xiàn)先進(jìn)的擁塞控制。
InfiniBand采用虛通道(VL即Virtual Lanes)方式來(lái)實(shí)現(xiàn)QoS,虛通道是一些共享一條物理鏈接的相互分立的邏輯通信鏈路,每條物理鏈接可支持多達(dá)15條的標(biāo)準(zhǔn)虛通道和一條管理通道(VL15)。
RDMA技術(shù)實(shí)現(xiàn)內(nèi)核旁路,可以提供遠(yuǎn)程節(jié)點(diǎn)間RDMA讀寫訪問(wèn),完全卸載CPU工作負(fù)載,基于硬件傳出協(xié)議實(shí)現(xiàn)可靠傳輸和更高性能。
相比TCP/IP網(wǎng)絡(luò)協(xié)議,IB使用基于信任的、流控制的機(jī)制來(lái)確保連接的完整性,數(shù)據(jù)包極少丟失,接受方在數(shù)據(jù)傳輸完畢之后,返回信號(hào)來(lái)標(biāo)示緩存空間的可用性,所以IB協(xié)議消除了由于原數(shù)據(jù)包丟失而帶來(lái)的重發(fā)延遲,從而提升了效率和整體性能。
TCP/IP具有轉(zhuǎn)發(fā)損失的數(shù)據(jù)包的能力,但是由于要不斷地確認(rèn)與重發(fā),基于這些協(xié)議的通信也會(huì)因此變慢,極大地影響了性能。
IB基本概念
IB是以通道為基礎(chǔ)的雙向、串行式傳輸,在連接拓樸中是采用交換、切換式結(jié)構(gòu)(Switched Fabric),在線路不夠長(zhǎng)時(shí)可用IBA中繼器(Repeater)進(jìn)行延伸。每一個(gè)IBA網(wǎng)絡(luò)稱為子網(wǎng)(Subnet),每個(gè)子網(wǎng)內(nèi)最高可有65,536個(gè)節(jié)點(diǎn)(Node),IBA Switch、IBARepeater僅適用于Subnet范疇,若要通跨多個(gè)IBASubnet就需要用到IBA路由器(Router)或IBA網(wǎng)關(guān)器(Gateway)。
每個(gè)節(jié)點(diǎn)(Node) 必須透過(guò)配接器(Adapter)與IBA Subnet連接,節(jié)點(diǎn)CPU、內(nèi)存要透過(guò)HCA(Host Channel Adapter)連接到子網(wǎng);節(jié)點(diǎn)硬盤、I/O則要透過(guò)TCA(TargetChannel Adapter)連接到子網(wǎng),這樣的一個(gè)拓?fù)浣Y(jié)構(gòu)就構(gòu)成了一個(gè)完整的IBA。
IB的傳輸方式和介質(zhì)相當(dāng)靈活,在設(shè)備機(jī)內(nèi)可用印刷電路板的銅質(zhì)線箔傳遞(Backplane背板),在機(jī)外可用銅質(zhì)纜線或支持更遠(yuǎn)光纖介質(zhì)。若用銅箔、銅纜最遠(yuǎn)可至17m,而光纖則可至10km,同時(shí)IBA也支持熱插拔,及具有自動(dòng)偵測(cè)、自我調(diào)適的Active Cable活化智能性連接機(jī)制。
IB協(xié)議簡(jiǎn)介
InfiniBand也是一種分層協(xié)議(類似TCP/IP協(xié)議),每層負(fù)責(zé)不同的功能,下層為上層服務(wù),不同層次相互獨(dú)立。 IB采用IPv6的報(bào)頭格式。其數(shù)據(jù)包報(bào)頭包括本地路由標(biāo)識(shí)符LRH,全局路由標(biāo)示符GRH,基本傳輸標(biāo)識(shí)符BTH等。
Mellanox OFED是一個(gè)單一的軟件堆棧,包括驅(qū)動(dòng)、中間件、用戶接口,以及一系列的標(biāo)準(zhǔn)協(xié)議IPoIB、SDP、SRP、iSER、RDS、DAPL(Direct Access Programming Library),支持MPI、Lustre/NFS over RDMA等協(xié)議,并提供Verbs編程接口;Mellanox OFED由開(kāi)源OpenFabrics組織維護(hù)。
當(dāng)然,Mellanox OFED軟件堆棧是承載在InfiniBand硬件和協(xié)議之上的,軟件通協(xié)議和硬件進(jìn)行有效的數(shù)據(jù)傳輸。
1、物理層
物理層定義了電氣特性和機(jī)械特性,包括光纖和銅媒介的電纜和插座、底板連接器、熱交換特性等。定義了背板、電纜、光纜三種物理端口。
并定義了用于形成幀的符號(hào)(包的開(kāi)始和結(jié)束)、數(shù)據(jù)符號(hào)(DataSymbols)、和數(shù)據(jù)包直接的填充(Idles)。詳細(xì)說(shuō)明了構(gòu)建有效包的信令協(xié)議,如碼元編碼、成幀標(biāo)志排列、開(kāi)始和結(jié)束定界符間的無(wú)效或非數(shù)據(jù)符號(hào)、非奇偶性錯(cuò)誤、同步方法等。
2、 鏈路層
鏈路層描述了數(shù)據(jù)包的格式和數(shù)據(jù)包操作的協(xié)議,如流量控制和子網(wǎng)內(nèi)數(shù)據(jù)包的路由。鏈路層有鏈路管理數(shù)據(jù)包和數(shù)據(jù)包兩種類型的數(shù)據(jù)包。
3、 網(wǎng)絡(luò)層
網(wǎng)絡(luò)層是子網(wǎng)間轉(zhuǎn)發(fā)數(shù)據(jù)包的協(xié)議,類似于IP網(wǎng)絡(luò)中的網(wǎng)絡(luò)層。實(shí)現(xiàn)子網(wǎng)間的數(shù)據(jù)路由,數(shù)據(jù)在子網(wǎng)內(nèi)傳輸時(shí)不需網(wǎng)絡(luò)層的參與。
數(shù)據(jù)包中包含全局路由頭GRH,用于子網(wǎng)間數(shù)據(jù)包路由轉(zhuǎn)發(fā)。全局路由頭部指明了使用IPv6地址格式的全局標(biāo)識(shí)符(GID)的源端口和目的端口,路由器基于GRH進(jìn)行數(shù)據(jù)包轉(zhuǎn)發(fā)。GRH采用IPv6報(bào)頭格式。GID由每個(gè)子網(wǎng)唯一的子網(wǎng) 標(biāo)示符和端口GUID捆綁而成。
4、 傳輸層
傳輸層負(fù)責(zé)報(bào)文的分發(fā)、通道多路復(fù)用、基本傳輸服務(wù)和處理報(bào)文分段的發(fā)送、接收和重組。傳輸層的功能是將數(shù)據(jù)包傳送到各個(gè)指定的隊(duì)列(QP)中,并指示隊(duì)列如何處理該數(shù)據(jù)包。當(dāng)消息的數(shù)據(jù)路徑負(fù)載大于路徑的最大傳輸單元(MTU)時(shí),傳輸層負(fù)責(zé)將消息分割成多個(gè)數(shù)據(jù)包。
接收端的隊(duì)列負(fù)責(zé)將數(shù)據(jù)重組到指定的數(shù)據(jù)緩沖區(qū)中。除了原始數(shù)據(jù)報(bào)外,所有的數(shù)據(jù)包都包含BTH,BTH指定目的隊(duì)列并指明操作類型、數(shù)據(jù)包序列號(hào)和分區(qū)信息。
5、上層協(xié)議
InfiniBand為不同類型的用戶提供了不同的上層協(xié)議,并為某些管理功能定義了消息和協(xié)議。InfiniBand主要支持SDP、SRP、iSER、RDS、IPoIB和uDAPL等上層協(xié)議。
SDP(SocketsDirect Protocol)是InfiniBand Trade Association (IBTA)制定的基于infiniband的一種協(xié)議,它允許用戶已有的使用TCP/IP協(xié)議的程序運(yùn)行在高速的infiniband之上。
SRP(SCSIRDMA Protocol)是InfiniBand中的一種通信協(xié)議,在InfiniBand中將SCSI命令進(jìn)行打包,允許SCSI命令通過(guò)RDMA(遠(yuǎn)程直接內(nèi)存訪問(wèn))在不同的系統(tǒng)之間進(jìn)行通信,實(shí)現(xiàn)存儲(chǔ)設(shè)備共享和RDMA通信服務(wù)。
iSER(iSCSIRDMA Protocol)類似于SRP(SCSI RDMA protocol)協(xié)議,是IB SAN的一種協(xié)議 ,其主要作用是把iSCSI協(xié)議的命令和數(shù)據(jù)通過(guò)RDMA的方式跑到例如Infiniband這種網(wǎng)絡(luò)上,作為iSCSI RDMA的存儲(chǔ)協(xié)議iSER已被IETF所標(biāo)準(zhǔn)化。
RDS(Reliable Datagram Sockets)協(xié)議與UDP 類似,設(shè)計(jì)用于在Infiniband 上使用套接字來(lái)發(fā)送和接收數(shù)據(jù)。實(shí)際是由Oracle公司研發(fā)的運(yùn)行在infiniband之上,直接基于IPC的協(xié)議。
IPoIB(IP-over-IB)是為了實(shí)現(xiàn)INFINIBAND網(wǎng)絡(luò)與TCP/IP網(wǎng)絡(luò)兼容而制定的協(xié)議,基于TCP/IP協(xié)議,對(duì)于用戶應(yīng)用程序是透明的,并且可以提供更大的帶寬,也就是原先使用TCP/IP協(xié)議棧的應(yīng)用不需要任何修改就能使用IPoIB。
uDAPL(UserDirect Access Programming Library)用戶直接訪問(wèn)編程庫(kù)是標(biāo)準(zhǔn)的API,通過(guò)遠(yuǎn)程直接內(nèi)存訪問(wèn) RDMA功能的互連(如InfiniBand)來(lái)提高數(shù)據(jù)中心應(yīng)用程序數(shù)據(jù)消息傳送性能、伸縮性和可靠性。
IB基本應(yīng)用場(chǎng)景
Infiniband靈活支持直連及交換機(jī)多種組網(wǎng)方式,主要用于HPC高性能計(jì)算場(chǎng)景,大型數(shù)據(jù)中心高性能存儲(chǔ)等場(chǎng)景,HPC應(yīng)用的共同訴求是低時(shí)延
內(nèi)容小結(jié):一方面Infiniband在主機(jī)側(cè)采用RDMA技術(shù)釋放CPU負(fù)載,可以把主機(jī)內(nèi)數(shù)據(jù)處理的時(shí)延從幾十微秒降低到1微秒;另一方面InfiniBand網(wǎng)絡(luò)的高帶寬(40G、56G和100G)、低時(shí)延(幾百納秒)和無(wú)丟包特性吸取了FC網(wǎng)絡(luò)的可靠性和以太網(wǎng)的靈活擴(kuò)展能力。
總結(jié)
以上是生活随笔為你收集整理的InfiniBand技术和架构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android中的sdio配置备忘
- 下一篇: Areas区域