InfiniBand, RDMA, iWARP, RoCE , CNA, FCoE, TOE, RDMA, iWARP, iSCSI等概念
? ?
核心基礎概念
- 它是一個存儲網絡協議,允許在以太網上發送光纖通道幀, 且IP通信和光纖通道通信使用相同的以太網端口。
- 它是連接主機計算機到網絡/存儲設備的可插拔式卡,支持多種存儲網絡協議,HBA通常是擴展卡,如PCI Express卡,它插入主機計算機的總線傳送iSCSI或FC協議。
- 作為計算機輸入/輸出設備,其融合了HBA和網絡適配器的功能。簡言之,通過CNA可同時訪問SAN(存儲區域網絡)和傳統的計算機網絡。
- 如單一萬兆以太網適配器端口上同時運行TCP/IP,iSCSI和光纖通道以太網數據流a?
- TOE一般由軟硬件構成,將傳統的TCP/延伸,把網絡數流量的處理工作全部轉到網卡上的集成硬件中進行,服務器只承擔TCP/IP控制信息的處理決策任務?
InfiniBand:InfiniBand架構是一種支持多并發鏈接的”轉換線纜”技術,是一種長纜線的連接方式,具有高速、低延遲的傳輸特性。?
- 主要是用于在服務器集群,系統之間的互聯。
- 發展?
需要說明的是,即使在系統之間的互聯,InfiniBand也還面臨著競爭對手,這是因為自英特爾、微軟退出IBTA之后,IBM、惠普也在不久后退出,并在第二年提出RDMA(Remote Direct Memory Access,遠程直接內存存取)技術,期望用10 Gbps Ethernet搭配TOE(TCP/IP Offload Engine,TCP/IP負荷卸載引擎)的硬件加速設計,以更標準、低廉的方式與InfiniBand進行競爭。此外,由Broadcom、Chelsio、惠普、NetApp和微軟等廠商推動的iWarp,一種用于遠程直接內存訪問、遠程直接數據放置的保護協議,它淘汰了兩端的網卡,也是一種標準的協議。另外,英特爾的I/O加速技術也與InfiniBand具有一定的競爭關系。
RDMA: Remote Direct Memory Access,遠程直接內存存取
- RDMA原理
- 一種通過以太網做RDMA的解決方案,其能夠試下同Infiniband同樣的RDMA特性
- 一種用于計算機和智能設備之間(硬盤、軟驅、光驅、打印機、掃描儀等)系統級接口的獨立處理器標準。
- 是一種智能的通用接口標準。?
- iSCSI技術是一種新儲存技術,該技術是將現有SCSI接口與以太網絡(Ethernet)技術結合,使服務器可與使用IP網絡的儲存裝置互相交換數據
- 是一種基于 TCP/IP的協議,用來建立和管理 IP 存儲設備、主機和客戶機等之間的相互連接,并創建存儲區域網絡(SAN)。
- 由微軟、英特爾開發的一種軟件程序級的網絡傳輸協議,主要用來使得一個網絡上的機器共享計算機文件、打印機、串行端口和通訊等資源。它也提供認證的行程間通訊機能。
- SMB 是在會話層(session layer)和表示層(presentation layer)以及小部分應用層(application layer)的協議。SMB使用了NetBIOS的應用程序接口
- 它主要用在裝有Microsoft Windows的機器上,在這樣的機器上被稱為Microsoft Windows Network。
iSER:iSCSI Extensions for RDMA
- 對iSCSI協議進行了RDMA擴展的計算機網絡協議。
- 支持RDMA的包括:基于TCP的RDMA服務(iWARP),不基于TCP的RoCE協議,以及InfiniBand技術。
- iSER允許直接在SCSI計算機內存緩沖區中進行數據的傳輸,無需中間層的數據拷貝和過多的CPU干預。
- 讀命令的執行?
- 寫命令的執行?
?InfiniBand架構是一種支持多并發鏈接的“轉換線纜”技術,在這種技術中,每種鏈接都可以達到2.5 Gbps的運行速度。這種架構在一個鏈接的時候速度是500 MB/秒,四個鏈接的時候速度是2 GB/秒,12個鏈接的時候速度可以達到6 GB /秒。
? ? ?RDMA是Remote Direct Memory Access的縮寫,意思是技術全稱遠程直接數據存取,就是為了解決網絡傳輸中服務器端數據處理的延遲而產生的。
兩篇講述 InfiniBand 的趣文:
- 關于Infiniband的一些介紹?http://aze12.blog.163.com/blog/static/8620441220086411596665/
- InfiniBand:還會有多少人想起我?http://www.360doc.com/content/07/0904/16/494_718778.shtml
RDMA 技術有好幾種規范來達到:
- InfiniBand: 這是正統,InfiniBand 設計之初就考慮了 RDMA,InfiniBand 從硬件級別保證可靠傳輸;
- iWARP: 基于 TCP or SCTP 做 RDMA,利用 TCP or SCTP 達到可靠傳輸,對網絡設備的要求比較少;
- RoCE: 基于 Ethernet 做 RDMA,消耗的資源比 iWARP 少,支持的特性比 iWARP 多,需要FCoE做可靠傳輸。從wikipedia的評價看 RoCE 還是比正統的 InfiniBand 差點。
上面三種實現都是需要硬件支持的,IB 需要支持 IB 規范的網卡和交換機,iWARP 和 RoCE 都可以使用普通的以太網交換機,但是需要支持 iWARP 或者 RoCE 的網卡。軟件上 Solaris、Linux、Windows 都有支持,在 API 層面這篇文章有個入門的介紹:Introduction to Remote Direct Memory Access (RDMA)?,可以使用?http://www.openfabrics.org/提供的 libibverbs 庫(Debian Linux 有提供),這個庫似乎也支持 Windows 上的原聲 RDMA API "Network Direct"。另外也有一些其它 API 規范,比如?DAT?組織制定的 kDAPL(讓 kernel driver 可以訪問 RDMA 功能) 和 uDAPL(讓 user space 進程可以訪問 RDMA 功能), OpenGroup 制定的 IT-API 和 RNICPI:?
- https://software.intel.com/en-us/articles/access-to-infiniband-from-linux
- http://www.zurich.ibm.com/sys/rdma/interfaces.html
- http://rdma.sourceforge.net/
另外 IETF 制定了 iSCSI Extensions for RDMA(iSER) 和 SDP(Sockets Direct Protocol, 基于 RDMA 替換 TCP 的流式傳輸層協議, RDMA 本身提供了可靠傳輸機制) 兩個協議。Java 7 引入了對 SDP 的支持:?https://docs.oracle.com/javase/tutorial/sdp/sockets/index.html,Apache Qpid 消息隊列也支持 RDMA:https://packages.debian.org/sid/librdmawrap2?.
如果 NVMe 存儲系統與主機是分離的,顯然需要某種 fabric 把它們連接,這樣主機才能使用存儲系統。目前,支持遠程連接的 fabric 包括:
- RDMA 協議:底層可以是以太網( RoCE 或者 iWARP )或者 Infiniband
- Fibre Channel 協議:底層可以是 FC 網絡或者以太網(FCoE)
RDMA (Remote Direct Memory Access) 是一種繞過主機 (host-offload/host-bypass) 技術:一個應用(包括存儲)<--發送/接收數據-->另外一個(遠程)應用的內存空間。
- Source Application <-- (發送/接收、完成)隊列 --> 帶 RDMA 功能的網卡 <-- 可靠的網絡連接 --> 帶RDMA 功能的網卡 <-- (發送/接收、完成)隊列 --> Target Application
- Windows Server: 從 Windows HPC Server 2008 開始支持 Network Direct userspace API ;從 Windows Server 2012 開始支持 Network Direct kernel API
- Linux: 從2004年開始,由 OpenFabrics Alliance 提供 userspace/kernel API , RHEL 和 SLES 已經自帶,?Ubuntu 要自己安裝?
- FreeBSD 9.0+ 支持 OpenFabrics Alliance userspace/kernel API
二、用 RDMA 發送 NVMe 寫命令
?以一個 NVMe 寫操作為例。 NVMe 主機驅動把寫命令及數據(從 NVMe 提交隊列取出一項)封裝一個與底層傳輸無關的命令膠囊(capsule);膠囊被放到主機 RDMA 網卡的發送隊列中,由 RDMA_SEND 發送出去;目標主機的 RDMA 網卡在接收隊列中收到這個膠囊,解除封裝,把 NVMe 命令及數據放到目標主機的內存中;目標主機處理 NVMe 命令及數據;完成后,目標主機封裝一個 NVMe 命令完成項,由 RDMA 傳輸到源主機。 三、兩種基于以太網的 RDMA 協議 第一種:以太網->IP->UDP->RoCE (RDMA over Converged Ethernet) v2 第二種:以太網->IP->TCP(去掉 TCP/IP 流量控制和管理)->iWARP 不同協議的網卡之間并不兼容,也就說支持 RoCE 協議的網卡不能與支持 iWARP 協議的網卡交換數據。
兩種協議的供應商上臺系統不一樣, ?對底層網絡基礎設施的要求也不一樣:
?了解更多細節, 【1】How Ethernet RDMA Protocols iWARP and RoCE Support NVMe over Fabrics?https://www.brighttalk.com/webcast/663/185909
總結
以上是生活随笔為你收集整理的InfiniBand, RDMA, iWARP, RoCE , CNA, FCoE, TOE, RDMA, iWARP, iSCSI等概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 接单app平台的功能
- 下一篇: 图片不变形的情况下铺满整个容器,另有兼容