Introduction to InfiniBand technology and its usage on Debian platform. Includes various examples of NAS/SAN over IB configuration (NFSoRDMA, SRP, and other standard IP and IPoIB based setups).
LIO for SRP(ターゲット側)
事前準備
// ターゲット側の IPoIB I/F の Port GUID を確認
target# ibstat
....
Port 2:
....
Port GUID: 0x0008f1040399d832
// イニシエータ側の IPoIB I/F の Port GUID を確認
initiator# ibstat
....
Port 2:
....
Port GUID: 0x0008f1040399d85a
以降でアクセス先や認証対象の
ID として利用するポート固有 ID
40.
LIO for SRP(ターゲット側)
設定と利用 ターゲット側 Port GUID
# targetcli
/> cd /backstores/iblock
/backstores/iblock> create zero /dev/mapper/zero
/> cd /ib_srpt
/ib_srpt> create 0xfe800000000000000008f1040399d832
/ib_srpt/0xfe...8f1040399d832> cd luns
/ib_srpt/0xfe...0399d832/luns>
create /backstores/iblock/zero 0
/ib_srpt/0xfe...832/luns/lun0> cd ../../acls
/ib_srpt/0xfe...0399d832/acls>
create 0x00000000000000000008f1040399d85a
/ib_srpt/0xfe...8f1040399d85a> cd /
/> saveconfig
/> exit
イニシエータ側 Port GUID
高速性の源泉: R(emote)DMA
APP APP
OS OS
HCA HCA
アプリケーション内の(仮想)メモリ領域を
ダイレクトに HCA にアクセスさせ、メモリ間コピーが
宛先側のメモリ領域に書くまで発生しない
■ 用語: OS バイパス
データ転送部分で完全にバイパス、制御部分( HW
アクセスや、 HCA が仮想アドレスを実アドレスに
変換できるよう両アドレスペアを登録する部分など)は
OS がそれでも関与する
59.
データ転送ではなく指令の転送
MEM M
R
connection
HCA
CPU
CPU は HCA にデータを送らず、行って欲しい
処理を指令する= IB Verbs
IB と Verbs はリモートノード間での RDMA 転送に
必要なリソースセット(コネクションとは具体的には?、
リージョンとは?セキュアな利用に必要なものは?)や
利用モデルに適した命令セットを規定している。
※DMA って元々そういうものだよね、ではあるけど…
60.
チャネル vs メモリセマンティクス
SEND
SEND RECV
RECV
SEND RECV
HCA HCA
→RECV 命令が入らないと、 SEND を受信しない
② 一方的に命令発行
RDMA WRWR
RDMA WR MEM
RDMA
RDMA WR
① リージョン予約
HCA key HCA
→ アクセス権を握ったら、相手のメモリは俺のもの
61.
まとめると
1.そもそもコピーが発生せず、 CPU バスの
ボトルネックが発生しにくい
2.Verb/Work Request を送り込む形式を生かし、
非同期かつパイプライン化された処理になり、
アイドル状態が発生しにくい
3.いずれのセマンティスクもゼロコピーだが、
メモリセマンティスクではアプリレベルの調停が
不要かつ更に処理を削減できる
従来 IP に親しんでいた人には興味深い&
面白い機能で一杯。安くて旨い IB オススメ