數據庫管理194期 2024-05-26
- 數據庫管理-第194期 網絡加速RDMA初探(20240526)
- 1 概念
- 2 發展
- 3 使用
- 總結
數據庫管理-第194期 網絡加速RDMA初探(20240526)
作者:胖頭魚的魚缸(尹海文)
Oracle ACE Associate: Database(Oracle與MySQL)
PostgreSQL ACE Partner
青學會(青年數據庫學習互助會)外部顧問
10年數據庫行業經驗,現主要從事數據庫服務工作
擁有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等認證
墨天輪MVP、認證技術專家、年度墨力之星,ITPUB認證專家、專家百人團成員,OCM講師,PolarDB開源社區技術顧問,OceanBase觀察團成員
圈內擁有“總監”、“保安”、“國產數據庫最大敵人”等稱號,非著名社恐(社交恐怖分子)
公眾號:胖頭魚的魚缸;CSDN:胖頭魚的魚缸(尹海文);墨天輪:胖頭魚的魚缸;ITPUB:yhw1809。
除授權轉載并標明出處外,均為“非法”抄襲
之前在幾場現場演講和直播過程中提到過RDMA,也有很多人在問這么一個技術。這是一個很早就用在Oracle Exadata一體機上的網絡技術,可以說一體機強大的性能一部分原因源自于此。從本期開始,將通過若干期內容分享,深入RDMA網絡,探究其在數據庫層面的應用。
1 概念
RDMA,Remote Direct Memory Access,可譯作遠程直接內存訪問,是一種不經由操作系統從一臺計算機到另一臺計算機直接訪問內存的技術。由于無需經過操作系統內核對網絡包進行封裝,可以節省大量CPU資源占用,同時也提供了高吞吐、低延遲網絡,尤其適用于大規模并行計算機集群。
RDMA支持網絡適配器直接通過網線將數據傳輸至應用內存或從應用內存直接傳輸至網線的零拷貝(Zero-copy)網絡傳輸。這種傳不再需要應用程序內存和操作系統數據緩存的數據復制拷貝操作。這種傳輸不需要CPU、緩存或上下文交換參與,并且傳輸可以與其他系統操作并行執行。使用RMDA可以有效減少消息傳輸的延遲。
但是,這種策略也會出現目標節點不會受到請求完成的通知(單向通信)等相關的一些問題。
2 發展
截止2018年,由于RDMA功能的不斷完善與增強,在網絡基礎設施上的優異性能表現,獲得了廣泛的認可。例如:
- RDMA over Converged Ethernet (RoCE)可以在有損或無損的設施上運行
- iWRAP能夠在物理層使用TCP/IP作為傳輸實現以太網RDMA
這使得RDMA將性能和延遲優勢與低成本、標準化解決方案相結合。RDMA聯盟和DAT Collaborative在RDMA協議和API的開發指定中發揮了關鍵通。
目前基于RDMA的高帶寬網絡設備,速度已達到100Gbit/s以上。IBM、紅帽、Oracle等軟件供應商已在最新產品中支持這些API。
硬件供應商已經開始開發基于RDMA的更高容量網絡適配器,據報道其速率為100 Gbit/s。IBM、Red Hat和Oracle Corporation等軟件供應商在其最新產品中支持這些API,截至2013年,工程師已開始開發通過以太網實現RDMA的網絡適配器。Red Hat Enterprise Linux和Red Hat Enterprise MRGhave都支持RDMA。Microsoft通過SMB Direct在Windows Server 2012中支持RDMA。VMware的ESXi產品自2015年起也支持RDMA。
常見RDMA包含虛擬網絡架構(Virtual Interface Architecture)、RDMA over Converged Ethernet (RoCE)、InfiniBand、Omni-Path和iWARP.
3 使用
應用程序訪問控制可以通過最初設計用于InfiniBand的協議來使用RDMA的API,這些API可以用于任何底層RDMA實現。使用發送和完成隊列,應用程序通過將工作隊列條目(work queue entries,WEQs)提交到提交隊列(submission queue,SQ)并從完成隊列(completion queue,CQ)獲取響應通知來執行RDMA操作。
RDMA可以通過可靠連接(Reliably Connected,RC)和不可靠數據包(Unreliable Datagram,UD)傳輸協議來進行數據的可靠或不可靠傳輸。前者有點事不丟失請求,而后者處理多個連接時則需要更少的隊列對。這是因為UD是無連接的,允許單個主機使用單個隊列與任何其他主機通信。
RDMA可以分別通過可靠連接(RC)和不可靠數據報(UD)傳輸協議可靠或不可靠地傳輸數據。前者的優點是保留請求(不會丟失請求),而后者在處理多個連接時需要更少的隊列對。這是因為UD是無連接的,允許單個主機使用單個隊列與任何其他主機通信。
總結
從前面的介紹可見,RDMA作為一款優秀的低延遲高吞吐量網絡技術,是可以極大提升網絡性能。后面將深入Exadata對RDMA的使用、基于RDMA技術的配置實操以及RDMA在數據庫層面的使用愿景深入了解RDMA。
老規矩,知道寫了些啥。