InfiniBand架構是一種支持多併發連接的「轉換線纜」技術,在這種技術中,每種連接均可以達到2.5 Gbps的運行速度。這種架構在一個連接的時候速度是500 MB/秒,四個連接的時候速度是2 GB/秒,12個連接的時候速度能夠達到6 GB /秒。IBTA成立於1999年8月31日,由Compaq、惠普、IBM、戴爾、英特爾、微軟和Sun七家公司牽頭,共同研究發展的高速先進的I/O標準。最初的命名爲System I/O,1999年10月,正式更名爲InfiniBand。InfiniBand是一種長纜線的鏈接方式,具備高速、低延遲的傳輸特性。 服務器
InfiniBand用於服務器系統內部並無發展起來,緣由在於英特爾和微軟在2002年就退出了IBTA。在此以前,英特爾早已另行倡議Arapahoe,亦稱爲3GIO(3rd Generation I/O,第三代I/O),即今日鼎鼎大名的PCI Express(PCI-E),InfiniBand、3GIO通過一年的並行,英特爾終究仍是選擇了PCI-E。所以,如今應用InfiniBand,主要是用於在服務器集羣,系統之間的互聯。 網絡
隨着CPU性能的飛速發展,I/O系統的性能成爲制約服務器性能的瓶頸。因而人們開始從新審視使用了十幾年的PCI總線架構。雖然PCI總線結構把數據的傳輸從8位/16位一舉提高到32位,甚至當前的64位,可是它的一些先天劣勢限制了其繼續發展的勢頭。PCI總線有以下缺陷: 架構
(1)因爲採用了基於總線的共享傳輸模式,在PCI總線上不可能同時傳送兩組以上的數據,當一個PCI設備佔用總線時,其餘設備只能等待; 併發
(2)隨着總線頻率從33MHz提升到66MHz,甚至133MHz(PCI-X),信號線之間的相互干擾變得愈來愈嚴重,在一塊主板上佈設多條總線的難度也就愈來愈大; 性能
(3)因爲PCI設備採用了內存映射I/O地址的方式創建與內存的聯繫,熱添加PCI設備變成了一件很是困難的工做。目前的作法是在內存中爲每個PCI設備劃出一塊50M到100M的區域,這段空間用戶是不能使用的,所以若是一塊主板上支持的熱插拔PCI接口越多,用戶損失的內存就越多; spa
(4)PCI的總線上雖然有buffer做爲數據的緩衝區,可是它不具有糾錯的功能,若是在傳輸的過程當中發生了數據丟失或損壞的狀況,控制器只能觸發一個NMI中斷通知操做系統在PCI總線上發生了錯誤。 操作系統
InfiniBand 採 用雙隊列程序提取技術,使應用程序直接將數據從適配器 送入到應用內存(稱爲遠程直接存儲器存取或RDMA), 反之依然。在TCP/IP協議中,來自網卡的數據先拷貝到 核心內存,而後再拷貝到應用存儲空間,或從應用空間 將數據拷貝到核心內存,再經由網卡發送到Internet。這 種I/O操做方式,始終須要通過核心內存的轉換,它不 僅增長了數據流傳輸路徑的長度,並且大大下降了I/O 的訪問速度,增長了CPU的負擔。而SDP則是未來自網 卡的數據直接拷貝到用戶的應用空間,從而避免了核心內存參入。這種方式就稱爲零拷貝,它能夠在進行大量 數據處理時,達到該協議所能達到的最大的吞吐量 代理
每一個端口具備一個GUID(Globally Unique Identifier),GUID是全局惟一的,相似於以太網MAC地址。運行過程當中,子網管理代理(SMA)會給端口分配一個本地標識(LID),LID僅在子網內部有用。 接口
QP是infiniband的一個重要概念,它是指發送隊列和接收隊列的組合,用戶調用API發送接收數據的時候,其實是將數據放入QP當中,而後以輪詢的方式將QP中的請求一條條的處理,其模式相似於生產者-消費者模式。 隊列
Infiniband的網絡拓撲結構如圖,其組成單元主要分爲四類:
(1)HCA(Host Channel Adapter),它是鏈接內存控制器和TCA的橋樑;
(2)TCA(Target Channel Adapter),它將I/O設備(例如網卡、SCSI控制器)的數字信號打包發送給HCA;
(3)Infiniband link,它是鏈接HCA和TCA的光纖,InfiniBand架構容許硬件廠家以1條、4條、12條光纖3種方式連結TCA和HCA;
(4)交換機和路由器;
屬 性
|
HCA
|
TCA
|
---|---|---|
多端口支持 | 支持 | 支持 |
用LRH發 送/接收數據包 |
全部的QP均要求 | |
用GRH發送/接收數據包 | 除QP0外,全部的QP均要求 | |
支持的傳輸業務 | 支持任何QP上的 不可靠傳送數據包、可靠的和不可靠的鏈接傳輸業務 |
不可靠傳送的數據包 |
原子操做 | 支持 | 支持 |
其它操做 | 支持傳輸業務定義的所有操做 | 不支持所有,但可定製支持 |
通道MTU | 支持 25六、5十二、1024字節 25六、5十二、102四、2048字節 25六、5十二、102四、204八、4096字節 |
|
組播 | 生成和接收組播,可選 | |
請求事件 | 必需,生成和接收 | 可選 |
內存保護 | 必需,按Verbs層規範處理 | 可選 |
環回 | 支持 | 可選 |
Internet Protocol over InfiniBand 簡稱IPoIB 。傳統的TCP/IP棧的影響實在太大了,幾乎全部的網絡應用都是基於此開發的,IPoIB實際是infiniband爲了兼容以太網不得不作的一種折中,畢竟誰也不肯意使用不兼容大規模已有設備的產品。IPoIB基於TCP/IP協議,對於用戶應用程序是透明的,而且能夠提供更大的帶寬, 也就是原先使用TCP/IP協議棧的應用不須要任何修改就能使用IPoIB。