5.10. NFS サーバーで NFS over RDMA を有効にする
Remote Direct Memory Access (RDMA) は、クライアントシステムがストレージサーバーのメモリーから自身のメモリーにデータを直接転送できるようにするプロトコルです。これにより、ストレージのスループットが向上し、サーバーとクライアント間のデータ転送の遅延が減少し、両側の CPU 負荷が軽減されます。NFS サーバーとクライアントの両方が RDMA 経由で接続されている場合、クライアントは NFS over RDMA (NFSoRDMA) を使用してエクスポートされたディレクトリーをマウントできます。
前提条件
- NFS サービスが実行および設定されている。
- InfiniBand または RDMA over Converged Ethernet (RoCE) デバイスがサーバーにインストールされている。
- サーバーに IP over InfiniBand (IPoIB) が設定され、InfiniBand デバイスに IP アドレスが割り当てられている。
手順
rdma-coreパッケージをインストールします。# dnf install rdma-coreパッケージがすでにインストールされている場合は、
/etc/rdma/modules/rdma.confファイル内のxprtrdmaおよびsvcrdmaモジュールのコメントが解除されていることを確認します。# NFS over RDMA client support xprtrdma # NFS over RDMA server support svcrdmaオプション: デフォルトでは、NFS over RDMA はポート 20049 を使用します。別のポートを使用する場合は、
/etc/nfs.confファイルの[nfsd]セクションでrdma-port設定を指定します。rdma-port=<port>firewalldで NFSoRDMA ポートを開きます。# firewall-cmd --permanent --add-port={20049/tcp,20049/udp} # firewall-cmd --reload20049 以外のポートを設定する場合は、ポート番号を変更します。
nfs-serverサービスを再起動します。# systemctl restart nfs-server
検証
InfiniBand ハードウェアを搭載したクライアントで、次の手順を実行します。
以下のパッケージをインストールします。
# dnf install nfs-utils rdma-coreエクスポートされた NFS 共有を RDMA 経由でマウントします。
# mount -o rdma server.example.com:/nfs/projects/ /mnt/デフォルト (20049) 以外のポート番号を設定する場合は、コマンドに
port=<port_number>を渡します。# mount -o rdma,port=<port_number> server.example.com:/nfs/projects/ /mnt/rdmaオプションを使用して共有がマウントされたことを確認します。# mount | grep "/mnt" server.example.com:/nfs/projects/ on /mnt type nfs (...,proto=rdma,...)