RDS協議:

Reliable Datagram Sockets (RDS)實際是由Oracle公司研發的運行在infiniband之上,直接基于IPC的協議。之所以出現這么一種協議,根本的原因在于傳統的 TCP/IP棧本身過于低效,對于高速互聯開銷太大,導致傳輸的效率太低。RDS相比IPoIB, CPU的消耗量減少了50%, 相比傳統的UDP協議,網絡延遲減少了一半。下圖左側是使用IPoIB協議的infiniband設備的拓撲圖,右側是使用RDS協議的 infiniband設備的拓撲結構。默認情況下,RDS協議不會被使用,需要進行額外的relink。另外即使relink RDS庫以后,RAC節點間的CSS通信也是無法使用RDS協議的,節點間心跳維持以及監控總是使用IPoIB。下圖左側infiniband使用IPoIB協議的拓撲結構,右側是infiband使用RDS協議的拓撲結構。

 

 

SDP協議:

知道并且使用過RDS協議的人不少,但是可能不少人都沒有聽過sdp協議 。這個協議實際早在10g時代就存在過,只是沒有專門的文檔。這個白皮書算是比較少見的。其中只是簡要的提到了sdp,所著筆墨不多,也沒有提到如何實 現,可能在這個版本屬于試驗性的功能。文中提到依靠一個Oracle Application Server端的驅動,SDP協議可以與TCP/IP協議棧進行透明的轉換。Database端如何配置SDP連接可以點擊這里: 11.1 11.2, Exalogic端如何配置SDP的鏈接可以在這里找到。甚至還有如何在java程序中使用SDP協議的案例介紹。在實際應用中,多個Exadata機柜 的相連可以通過配置SDP協議連接,Exalogic和Exadata的連接也是通過SDP‘協議的。但是需要注意的是Oracle的Net Service目前是無法走RDS協議的。下圖左側是傳統以太網tcp/ip協議棧的拓撲結構,右側是infiniband使用SDP協議的拓撲結構。

還有可能會聽過的協議有ZDP和IDB協議,這兩個是新名詞,如果有一點了解就知道是久瓶裝新酒。iDB協議用于Exadata 數據庫節點(DB node)和存儲節點(cell node)之間的通信。i代表 intelligence, 言下之一就是智能數據庫協議,您可不要小看它,整個Exadata的精髓offloading全靠它來完成,之所以其它第三方Oracle數據庫一體機只 有Exadata的形而沒有Exadata的神,原因就在此。簡單的說它是由Oracle數據庫內核來實現的,可以智能的將表掃描的工作放到存儲一端去完 成,然后由存儲進行過濾,最后只返回查詢需要的數據。舉個簡單的例子: 比如某個表有1億行,但是滿足過濾條件的就只有1萬行,數據庫節點會發出一個指令告訴存儲節點,“我需要查詢某某表過濾條件是什么,你去處理一下,把結果 告訴我就成,我還有別的事情要忙”。這個指令就是iDB。iDB的實現是Oracle公司的最高機密,除了Exadata的核心研發團隊和技術高管沒有人 知道內部是如何實現的,只知道iDB協議是運行在ZDP協議(Zero-loss Zero-copy Datagram Protocol)之上,基于基于RDS協議的V3版本(OFED version 1.3.1))的標準進行研發的。Oracle的官方數據顯示使用ZDP協議進行數據傳輸能達到每秒3GB/s,而僅僅消耗主機CPU資源的2%。

以上僅僅講到Oracle相關的一些infiniband協議,最后上傳一張圖片講囊括infiniband的Stack作為補充。

未經允許不得轉載:存儲在線-存儲專業媒體 » InfiniBand可以運行哪些協議?
分享到

huanghui

相關推薦

精品国产午夜肉伦伦影院,双性老师灌满浓jing上课h,天天做天天爱夜夜爽,攵女乱h边做边走