サウス IDC
PRACTICAL FIELD SOP · TUTORIAL

Linux環境におけるNVMe-oF(RDMA / RoCEv2)イニシエータとターゲット構築――低遅延共有ストレージ検証実務

2026-11-05 | サウス IDC インフラ運用チーム
要旨:AIモデルのチェックポイント保存や分散学習用キャッシュ、超大規模RDBMSにおいて、従来のiSCSIやNFSではTCPスタックの処理遅延が深刻なボトルネックとなる。本稿では、RoCEv2(RDMA over Converged Ethernet)を活用し、イーサネット上でローカルNVMeと同等のレイテンシ(10マイクロ秒未満)を実現するNVMe over Fabrics(NVMe-oF)のターゲット・イニシエータ構築手順と、PFC(優先度ベースのフロー制御)設定の要点を解説する。

1. NVMe-oF(NVMe over Fabrics)の優位性とRoCEv2

NVMe-oFは、PCIeバス直結のNVMeコマンドセットをInfiniBandやRDMA対応イーサネット(RoCEv2)経由でリモートサーバ間へ延伸するプロトコルである。CPUを介在させずにネットワークカード同士がホストメモリへ直接読み書きを行う(Zero-Copy DMA)ため、数十万IOPSの負荷下でもホストCPU使用率をほぼゼロに維持しつつ、物理NVMeドライブ単体と遜色ない極低遅延アクセスを享受できる。

2. ターゲット(ストレージサーバ)側の構成手順

Linuxカーネルに組み込まれている nvmet(NVMe Target)モジュールおよび nvmet-rdma モジュールを用いてターゲットを公開する。設定の永続化には nvmetcli ツールを使用する。

# カーネルモジュールのロード
modprobe nvmet
modprobe nvmet-rdma

# nvmetcli を用いたサブシステムとポートの作成
nvmetcli
> cd /subsystems
> create sidc.nvme.storage01
> cd sidc.nvme.storage01
> set attr allow_any_host=1
> cd namespaces
> create 1
> set device path /dev/nvme0n1
> enable
> cd /ports
> create 1
> cd 1
> set addr trtype=rdma adrfam=ipv4 traddr=192.168.100.11 trsvcid=4420
> cd subsystems
> add sidc.nvme.storage01

3. イニシエータ(クライアントサーバ)側の接続とベンチマーク

クライアントマシン側では nvme-cli ツールを使用してファブリック上のターゲットをディスカバリし、ローカルブロックデバイスとしてアタッチする。

# ターゲットの探索(Discovery)
nvme discover -t rdma -a 192.168.100.11 -s 4420

# ターゲットへの接続(Connect)
nvme connect -t rdma -n sidc.nvme.storage01 -a 192.168.100.11 -s 4420

# 認識されたブロックデバイスの確認
lsblk | grep nvme
# 出力例: nvme1n1   259:1    0   3.5T  0 disk

接続後、FIO(Flexible I/O Tester)を用いて4KBランダムリード/ライト測定を実施し、レイテンシが8〜12マイクロ秒台に安定していることを確認して実務検証を完了する。

← 実践チュートリアル一覧に戻る