---RDMA是一種網(wǎng)卡技術(shù),采用該技術(shù)可以使一臺計算機直接將信息放入另一臺計算機的內(nèi)存中。通過最小化處理過程的開銷和帶寬的需求,RDMA減少了延遲時間。RDMA通過在網(wǎng)卡上將可靠傳輸協(xié)議固化于硬件,以及支持繞過內(nèi)核的零拷貝網(wǎng)絡這兩種途徑來達到這一目標。繞過內(nèi)核使應用程序不必執(zhí)行內(nèi)核調(diào)用就可以向網(wǎng)卡發(fā)出命令。當一個應用程序執(zhí)行RDMA讀/寫請求時,系統(tǒng)并不執(zhí)行數(shù)據(jù)拷貝動作。這就減少了處理網(wǎng)絡通信時在內(nèi)核空間和用戶空間上下文切換的次數(shù)。RDMA請求的完成,或者完全在用戶空間中進行,或者在應用程序希望進入睡眠直到完成信號出現(xiàn)的情況下通過內(nèi)核進行。RDMA操作用于讀寫操作的遠程虛擬內(nèi)存地址含在RDMA消息中傳送,遠程應用程序要做的只是在其本地網(wǎng)卡中注冊相應的內(nèi)存緩沖區(qū)。遠程節(jié)點的CPU在整個RDMA操作中并不提供服務,因此沒有帶來任何負載。通過類型值(鍵值)的使用,一個應用程序能夠在遠程應用程序?qū)λM行隨機訪問的情況下保護它的內(nèi)存。發(fā)布RDMA操作的應用程序必須為它試圖訪問的遠程內(nèi)存指定正確的類型值,遠程應用程序在本地網(wǎng)卡中注冊內(nèi)存時獲得這個類型值。發(fā)布RDMA的應用程序也必須確定遠程內(nèi)存地址和該內(nèi)存區(qū)域的類型值。遠程應用程序會將相關(guān)信息通知給發(fā)布RDMA的應用程序,這些信息包括起始虛擬地址、內(nèi)存大小和該內(nèi)存區(qū)域的類型值。在發(fā)布RDMA的應用程序能夠?qū)υ搩?nèi)存區(qū)域進行RDMA操作之前,遠程應用程序應將這些信息通過發(fā)送操作傳送給發(fā)布RDMA的應用程序。
---如圖 3 所示, 服務模型分為三層,依次為網(wǎng)絡互連層、 SCSI 協(xié)議層、 SCSI應用層。
---SCSI RDMA有兩種RDMA操作:RDMA寫和RDMA讀。讀和寫都是相對于SCSI啟動方來說的。
---零復制網(wǎng)絡技術(shù)及其功能實現(xiàn)
---零復制網(wǎng)絡技術(shù)是通過在NIC的硬件中部署一項可靠的傳輸協(xié)議以及支持零復制網(wǎng)絡技術(shù)和內(nèi)核內(nèi)存旁路實現(xiàn)的。請求完成既可以完全在用戶空間中處理(通過輪詢用戶級完成排列),或者在應用希望一直睡眠到請求完成時的情況下通過內(nèi)核內(nèi)存處理。軟件部分負責協(xié)議功能實現(xiàn)。
---API(應用程序接口)包括用于低時延消息處理、成就高性能計算的MPI(消息通過接口),以及DAPL(直接接入供應庫)。后者包括兩部分:KDAPL和UDAPL,分別用于內(nèi)核和用戶(應用程序)。Linux支持KDAPL,其他操作系統(tǒng)將來也有可能支持。
3 RDMA在數(shù)據(jù)傳輸中的應用
3.1 RDMA的應用
---RDMA的優(yōu)勢在于可利用傳統(tǒng)的網(wǎng)絡硬件,以TCP/IP及以太網(wǎng)絡標準來建立因特網(wǎng)。RDMA將被用來把小型服務器連接為一個群集,可以處理現(xiàn)今一些十幾顆處理器的高端服務器才能夠處理的大型數(shù)據(jù)庫。如果把RDMA及TOE,以及10GB以太網(wǎng)絡放在一起,這是個相當吸引人的技術(shù)。RDMA正在迅速成為高速集群和服務器區(qū)域網(wǎng)的一種基本特性。
---InfiniBand網(wǎng)絡和實現(xiàn)虛擬接口架構(gòu)的網(wǎng)絡支持RDMA,應用于帶傳輸卸載引擎網(wǎng)卡的RDMA over TCP/IP正在開發(fā)之中。采用RDMA來獲取高性能的協(xié)議包括Sockets Direct Protocol、SCSI RDMA Protocol(SRP)和Direct Access File System(DAFS)。采用RDMA的通信庫包括Direct Access Provider Library(DAPL)、Message Passing Interface(MPI)和Virtual Interface Provider Library(VIPL)。運行分布式應用程序的集群是RDMA能夠大顯身手的領域之一。通過DAPL 或VIPL以及集群上運行的數(shù)據(jù)庫軟件來使用RDMA,可在相同的節(jié)點數(shù)目下獲得更高的性能和更好的延展性。使用MPI的集群科技運算應用程序,通過支持互連RDMA實現(xiàn)了低延遲時間、低開銷和高吞吐量,這一結(jié)果也使它獲得了巨大的性能提升。其他初期的RDMA應用還有通過DAFS的遠程文件服務器訪問,通過SRP的存儲設備訪問。RDMA技術(shù)正在迅速成為高速集群系統(tǒng)和存儲域網(wǎng)絡的基本特征技術(shù)。其中iWARP/RDMA是一類基本構(gòu)造塊;此外還有iSER,它是用于RDMA的iSCSI擴展,充分利用了RDMA的功能。
---RDMA的其他早期應用包括通過DAFS的遠程文件服務器訪問和通過SRP的刀片服務器存儲訪問。RDMA正在迅速成為高速集群和服務器區(qū)域網(wǎng)的一種基本特性。
3.2 NAS和SAN中的應用
---傳統(tǒng)的直接連接存儲DAS(Direct Access Storage)是以服務器為中心的存儲結(jié)構(gòu)。這一存儲體系結(jié)構(gòu)存在容量限制、連接距離有限、不易于共享和管理等不可克服的缺點,已經(jīng)不能夠滿足網(wǎng)絡時代的應用需求。
---網(wǎng)絡時代的到來使存儲技術(shù)發(fā)生了巨大變化,網(wǎng)絡附加存儲NAS(Network Attatched Storage )、存儲區(qū)域網(wǎng)絡SAN(Storage Area Network)既能為網(wǎng)絡上的應用系統(tǒng)提供豐富、快速、簡便的存儲資源;又能共享存儲資源并對其實施集中管理,成為當今理想的存儲管理和應用模式。NAS結(jié)構(gòu)存在一些難以解決的問題。如傳輸能力有限、可擴展性有限、數(shù)據(jù)備份能力有限并且不能對數(shù)據(jù)庫服務提供有效的支持。DAFS把RDMA的優(yōu)點和NAS的存儲能力集成在一起,全部讀寫操作都直接通過RDMA驅(qū)動器執(zhí)行,從而降低了網(wǎng)絡文件協(xié)議所帶來的系統(tǒng)負載。今后的NAS存儲系統(tǒng)將采用DAFS技術(shù)提高系統(tǒng)性能,并且在性能和價格上與SAN存儲系統(tǒng)進行有力的競爭。
3.3 Infiniband
---Infiniband的四大優(yōu)點:基于標準的協(xié)議,10 GB/s性能,RDMA和傳輸卸載。優(yōu)勢在于:RDMA,傳輸卸載,高速度。InfiniBand網(wǎng)絡和采用虛擬接口架構(gòu)的網(wǎng)絡支持RDMA,使用具有傳輸卸載引擎的NIC的RDMA over TCP/IP。支持Infiniband的服務器使用主機通道適配器(HCA),把協(xié)議轉(zhuǎn)換到服務器內(nèi)部的PCI-X或者PCI-Xpress總線。HCA具有RDMA功能,有時也稱之為內(nèi)核旁路(Kernel Bypass)。
4 其他
---網(wǎng)絡存儲技術(shù)的發(fā)展日新月異,虛擬存儲技術(shù)、網(wǎng)格存儲技術(shù)等等最新的技術(shù)將會給我們帶來更多的方便,虛擬存儲技術(shù)將底層存儲設備進行抽象化統(tǒng)一管理,向服務器層屏蔽存儲設備硬件的特殊性,而只保留其統(tǒng)一的邏輯特性,從而實現(xiàn)了存儲系統(tǒng)集中、統(tǒng)一而又方便的管理。統(tǒng)一的虛擬存儲將不同廠商的FC-SAN、NAS、IP-SAN、DAS等各類存儲資源整合起來,形成一個統(tǒng)一管理、監(jiān)控和使用的公用存儲池。虛擬存儲的實質(zhì)是資源共享,因此,統(tǒng)一虛擬存儲的任務有兩點:其一是如何進一步增加可共享的存儲資源的數(shù)量;其二是如何通過有效的機制在現(xiàn)有存儲資源基礎上提供更好的服務。從系統(tǒng)的觀點看,存儲虛擬化有三種途徑:基于主機的虛擬化存儲、基于存儲設備的虛擬化存儲以及基于網(wǎng)絡的虛擬化存儲。統(tǒng)一虛擬存儲的實現(xiàn)只能從虛擬存儲的實質(zhì)出發(fā),單一存儲映像的方法可能是虛擬存儲的發(fā)展方向。
---由于RDMA是近期新的存儲技術(shù),盡管有各個廠商發(fā)布信息或報道,但是都沒有詳細或完整的資料。本人在參照標準的基礎上,參考了這些報道和一些專家的文章的內(nèi)容,形成了此文,供大家參考。同時也請大家批評指正。





