InfinibandによるiSCSIの書込み速度 (iSER転送)

Infiniband DDR HCA■テスト環境
NFSサーバおよびNFSクライアント
MB: Supermicro X8DTi
Chipset: INTEL 5520
CPU: Xeon E5520 x1
MEM: 24GB (8GB DDR3-1333 Reg x 3)

インターコネクト
Infiniband DDR (20GBase): Mellanox MHGS18-XTC
(IPoIBにてHCAポートにIPアドレスを設定)

OS: CentOS 5.4 x86_64
ホストスタック: OFED 1.5.2

■環境設定
iSCSI Target
kernelパラメータ ramdisk_size=20971520 で起動し、20GBのramdiskをTargetとする。

iSCSI Initiator
kernelパラメータ mem=1024m で起動し、OS上のメモリ容量を1GBとする。 (クライアント側のpagecache効果を少なくするため)
iSCSI Targetデバイスのファイルシステムをext3にし/mntにマウントする。

■テスト方法
200MBファイルを連続50回書出しをするスクリプトを用意する。

#!/bin/sh
LOOP=50
DIR=/mnt

COUNT=0
while [ $COUNT -lt $LOOP ]
do
dd if=/dev/zero of=$DIR/$COUNT bs=32768 count=6400
let COUNT=COUNT+1
done

このスクリプトをtimeコマンドの引数として実行しreal値から速度を算出する。

■事前テスト
iSCSI Targetローカルでramdiskのファイルシステムをext3にして書込み速度を計測しておく。
計測方法は同じスクリプトを使う。
[TABLE=3]

ディスク側の律速がこの値まではないことを前提とする。

■結果
[TABLE=9]

■評価
速いです。すごいですね。
前回の計測結果では、OS標準のホストスタックを利用しました。
今回はOFED本家のホストスタックを利用して計測をしました。理由は最新のホストスタックに含まれる、iSER(iSCSI Extensions for RDMA)の高速なデータ転送での計測です。
環境構築の注意点としては、iSERが動作する環境はOSやカーネルバージョンの制限があることです。(OFEDドキュメントを参照)
今回はDDRにて計測をしましたが、ソフトウェア環境が同じでHCAをSDRでの計測も次回行いたいと思います。