第2章 rdma サービスの設定
Remote Direct Memory Access (RDMA) プロトコルを使用すると、メインメモリーを使用して、ネットワーク経由で RDMA 対応システム間でデータを転送できます。RDMA プロトコルは、低レイテンシーと高スループットを実現します。サポートされているネットワークプロトコルと通信標準を管理するには、rdma サービスを設定する必要があります。この設定には、RoCE や iWARP などの高速ネットワークプロトコル、および Soft-RoCE や Soft-iWARP などの通信標準が含まれます。Red Hat Enterprise Linux が、InfiniBand、iWARP、または RoCE デバイスおよびそれらの設定ファイルが /etc/rdma/modules/* ディレクトリーに存在することを検出すると、udev デバイスマネージャーが systemd に rdma サービスを起動するように指示します。/etc/rdma/modules/rdma.conf ファイル内のモジュールの設定は、再起動後も保持されます。変更を適用するには、rdma-load-modules@rdma.service 設定サービスを再起動する必要があります。
手順
rdma-coreおよびopensmパッケージをインストールします。# dnf install rdma-core opensmopensmサービスを有効にします。# systemctl enable opensmopensmサービスを開始します。# systemctl start opensm/etc/rdma/modules/rdma.confファイルを編集し、有効にするモジュールのコメントを解除します。# These modules are loaded by the system if any RDMA devices is installed # iSCSI over RDMA client support ib_iser # iSCSI over RDMA target support ib_isert # SCSI RDMA Protocol target driver ib_srpt # User access to RDMA verbs (supports libibverbs) ib_uverbs # User access to RDMA connection management (supports librdmacm) rdma_ucm # RDS over RDMA support # rds_rdma # NFS over RDMA client support xprtrdma # NFS over RDMA server support svcrdmaサービスを再起動して変更を有効にします。
# systemctl restart <rdma-load-modules@rdma.service>
検証
libibverbs-utilsおよびinfiniband-diagsパッケージをインストールします。# dnf install libibverbs-utils infiniband-diags利用可能な InfiniBand デバイスのリストを表示します。
# ibv_devices device node GUID ------ ---------------- mlx4_0 0002c903003178f0 mlx4_1 f4521403007bcba0mlx4_1デバイスの情報を表示します。# ibv_devinfo -d mlx4_1 hca_id: mlx4_1 transport: InfiniBand (0) fw_ver: 2.30.8000 node_guid: f452:1403:007b:cba0 sys_image_guid: f452:1403:007b:cba3 vendor_id: 0x02c9 vendor_part_id: 4099 hw_ver: 0x0 board_id: MT_1090120019 phys_port_cnt: 2 port: 1 state: PORT_ACTIVE (4) max_mtu: 4096 (5) active_mtu: 2048 (4) sm_lid: 2 port_lid: 2 port_lmc: 0x01 link_layer: InfiniBand port: 2 state: PORT_ACTIVE (4) max_mtu: 4096 (5) active_mtu: 4096 (5) sm_lid: 0 port_lid: 0 port_lmc: 0x00 link_layer: Ethernetmlx4_1デバイスのステータスを表示します。# ibstat mlx4_1 CA 'mlx4_1' CA type: MT4099 Number of ports: 2 Firmware version: 2.30.8000 Hardware version: 0 Node GUID: 0xf4521403007bcba0 System image GUID: 0xf4521403007bcba3 Port 1: State: Active Physical state: LinkUp Rate: 56 Base lid: 2 LMC: 1 SM lid: 2 Capability mask: 0x0251486a Port GUID: 0xf4521403007bcba1 Link layer: InfiniBand Port 2: State: Active Physical state: LinkUp Rate: 40 Base lid: 0 LMC: 0 SM lid: 0 Capability mask: 0x04010000 Port GUID: 0xf65214fffe7bcba2 Link layer: Ethernetibpingユーティリティーは、パラメーターを設定することで InfiniBand アドレスに ping を実行し、クライアント/サーバーとして動作します。ホスト上で InfiniBand チャネルアダプター (CA) 名
-Cを指定し、ポート番号-Pでサーバーモード-Sを開始します。# ibping -S -C mlx4_1 -P 1ホスト上でローカル識別子 (LID)
-Lおよび InfiniBand チャネルアダプター (CA) 名-Cを指定し、ポート番号-Pでクライアントモードを開始して、パケット-cをいくつか送信します。# ibping -c 50 -C mlx4_0 -P 1 -L 2