2022/07/03 00:00
概要前回、NVMe over RDMA 環境を構築し、簡単な動作確認を行いました。今回は、前回の概要でも触れたとおりNVMe over TCP を試してみます。NVMe over TCP はその名の通り、NVMe プロトコルを TCP プロトコル上に流すことでリモートでの利用を可能にしたものです。NVMe over RDMA (RoCEv2) と異なり、一般的な TCP プロトコルを使用しているため専用のスイッチなどを必要としないメリットがあります。しかしながら、メモリ上のデータを直接扱う RDMA の恩恵を受けられないため、プロトコルスタックの処理によるCPU負荷の上昇やIOに対する遅延の増大、スループットの低下などのデメリットも存在します。今回はそんな NVME over TCP 環境を構築し、動作確認を行ってみます。環境今回の検証に使用した環境です。マシンは2台用意し、それぞれをターゲット(Server)側、Initiator(Client)側としています。ターゲット側詳細MachineHPE ProLiant DL380 Gen10CPUIntel Xeon Silver 4208 x2MemoryDDR4 ECC RDIMM 128GB (16GB x8 2400MHz)NICMellanox ConnectX-4 100Gb(Ethernet) MCX415A-CCATNVMeIntel DC P4600 1.6TB U.2 x2OSUbuntu Server 22.04 LTSInitiator側詳細MachineFujitsu Primergy RX2540 M4CPUIntel Xeon Gold 6148 x1MemoryDDR4 ECC RDIMM 128GB (32GB x4 2666MHz)NICMellanox ConnectX-4 100Gb(Ethernet) MCX415A-CCATOSUbuntu Server 22.04 LTS準備今回も、前回と同様に SPDK を用いて環境構築を行います。SPDK をビルドし nvmf_tgt が実行可能な状態までは前回と同様の手順です。ネットワーク設定この段階でネットワーク設定を行っておきます。手順については省略します。なお、今回は次のような構成にしています。なお、リンクスピードは100Gb