12.3. Soft-RoCE の設定

RoCE は、ハードウェアおよびソフトウェアに実装できます。Soft-RoCE は、RDMA トランスポートのソフトウェア実装です。

前提条件

Red Hat Enterprise Linux 7.4 以降、Soft-RoCE ドライバーはカーネルに統合されました。ユーザー領域のドライバーも rdma-core パッケージに統合されました。Soft-RoCE は RXE としても知られています。RXE を起動、停止、および設定するには、rxe_cfg スクリプトを使用します。rxe_cfg のオプションを表示するには、rxe_cfg help を実行します。

手順12.2 Soft-RoCE の設定

  1. root で以下のコマンドを実行して、RXE の現在の設定ステータスを表示します。
    ~]# rxe_cfg
      rdma_rxe module not loaded
      Name        Link  Driver   Speed   NMTU  IPv4_addr  RDEV  RMTU
      igb_1       yes   igb
      mlx4_1      no    mlx4_en
      mlx4_2      no    mlx4_en
  2. RXE カーネルモジュールを読み込み、RXE を起動するには、root で次のコマンドを実行します。
    ~]# rxe_cfg start
      Name        Link  Driver   Speed   NMTU  IPv4_addr  RDEV  RMTU
      igb_1       yes   igb
      mlx4_1      no    mlx4_en
      mlx4_2      no    mlx4_en
    必要に応じて、RXE カーネルモジュールが読み込まれていることを確認するには、以下を実行します。
    ~]# lsmod |grep rdma_rxe
      rdma_rxe              111129  0
      ip6_udp_tunnel         12755  1 rdma_rxe
      udp_tunnel             14423  1 rdma_rxe
      ib_core               236827  15 rdma_cm,ib_cm,iw_cm,rpcrdma,mlx4_ib,ib_srp,ib_ucm,ib_iser,ib_srpt,ib_umad,ib_uverbs,rdma_rxe,rdma_ucm,ib_ipoib,ib_isert
  3. イーサーネットインターフェースに新しい RXE デバイスを追加する前に、対応するインターフェースを開いて、有効な IP アドレスを割り当てます。新しい RXE デバイス (たとえば igb_1) を追加するには、以下のコマンドを実行します。
    ~]# rxe_cfg add igb_1
    ~]# rxe_cfg status
      Name        Link  Driver   Speed   NMTU  IPv4_addr  RDEV  RMTU
      igb_1       yes   igb                               rxe0  1024  (3)
      mlx4_1      no    mlx4_en
      mlx4_2      no    mlx4_en
    RDEV 列の rxe0 は、igb_1 デバイスで rxe が有効であることを示しています。
  4. RXE デバイスのステータスを確認するには、ibv_devices コマンドを使用します。
    ~]# ibv_devices
      device                 node GUID
      ------              ----------------
      mlx4_0              0002c90300b3cff0
      rxe0                a2369ffffe018294
    もしくは、詳細なステータスを表示するには、ibstat を実行します。
    ~]# ibstat rxe0
    CA 'rxe0'
        CA type:
        Number of ports: 1
        Firmware version:
        Hardware version:
        Node GUID: 0xa2369ffffe018294
        System image GUID: 0x0000000000000000
        Port 1:
            State: Active
            Physical state: LinkUp
            Rate: 2.5
            Base lid: 0
            LMC: 0
            SM lid: 0
            Capability mask: 0x00890000
            Port GUID: 0xa2369ffffe018294
            Link layer: Ethernet

RXE デバイスの削除

RXE デバイスを削除する場合は、以下のコマンドを実行します。
~]# rxe_cfg remove igb_1

RXE デバイスの接続性の確認

以下の例は、サーバーおよびクライアントで、RXE デバイスの接続を確認する方法を説明します。

例12.1 サーバーで RXE デバイスの接続性の確認

~]$ ibv_rc_pingpong -d rxe0 -g 0
  local address:  LID 0x0000, QPN 0x000012, PSN 0xe2965f, GID fe80::290:faff:fe29:486a
  remote address: LID 0x0000, QPN 0x000011, PSN 0x4bf206, GID fe80::290:faff:fe29:470a
8192000 bytes in 0.05 seconds = 1244.06 Mbit/sec
1000 iters in 0.05 seconds = 52.68 usec/iter

例12.2 クライアントで RXE デバイスの接続性の確認

~]$ ibv_rc_pingpong -d rxe0 -g 0 172.31.40.4
  local address:  LID 0x0000, QPN 0x000011, PSN 0x4bf206, GID fe80::290:faff:fe29:470a
  remote address: LID 0x0000, QPN 0x000012, PSN 0xe2965f, GID fe80::290:faff:fe29:486a
 8192000 bytes in 0.05 seconds = 1245.72 Mbit/sec
 1000 iters in 0.05 seconds = 52.61 usec/iter