9.9. コマンドラインを使用した IPoIB の設定

まず、デフォルトの IPoIB デバイスの名前変更が必要かどうかを判断します。必要な場合は、「70-persistent-ipoib.rules の使用」に記載の指示に従って、udev の名前変更ルールを使用してデバイスの名前を変更します。以下のように ib_ipoib カーネルモジュールを一旦削除してリロードすると、再起動せずに IPoIB インターフェースの名前変更ができます。
~]$ rmmod ib_ipoib
~]$ modprobe ib_ipoib
デバイスに必要な名前が付けられたら、管理者は好みのエディターで ifcfg ファイルを作成し、デバイスを制御することができます。静的 IPv4 アドレス指定の通常の IPoIB 設定ファイルは、以下のようになります。
~]$ more ifcfg-mlx4_ib0
DEVICE=mlx4_ib0
TYPE=InfiniBand
ONBOOT=yes
HWADDR=80:00:00:4c:fe:80:00:00:00:00:00:00:f4:52:14:03:00:7b:cb:a1
BOOTPROTO=none
IPADDR=172.31.0.254
PREFIX=24
NETWORK=172.31.0.0
BROADCAST=172.31.0.255
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
MTU=65520
CONNECTED_MODE=yes
NAME=mlx4_ib0
DEVICE フィールドは、udev の名前変更ルールで作成されたカスタム名に合致する必要があります。NAME エントリーはデバイス名に合致する必要はありません。GUI 接続エディターが起動していれば、NAME フィールドは現在使用している接続に使用されている名前になります。InfiniBand オプションが正常に処理されるには、TYPE フィールドは InfiniBand である必要があります。CONNECTED_MODE は yesno で、yes の場合は connected モードが使用され、no の場合は datagram モードが使用されます (「IPoIB 通信モードについて」を参照)。
P_Key インターフェースの場合、以下のような設定ファイルになります。
~]$ more ifcfg-mlx4_ib0.8002
DEVICE=mlx4_ib0.8002
PHYSDEV=mlx4_ib0
PKEY=yes
PKEY_ID=2
TYPE=InfiniBand
ONBOOT=yes
HWADDR=80:00:00:4c:fe:80:00:00:00:00:00:00:f4:52:14:03:00:7b:cb:a1
BOOTPROTO=none
IPADDR=172.31.2.254
PREFIX=24
NETWORK=172.31.2.0
BROADCAST=172.31.2.255
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
MTU=65520
CONNECTED_MODE=yes
NAME=mlx4_ib0.8002
すべての P_Key インターフェースファイルでは、PHYSDEV はディレクティブは必須となり、親デバイス名にする必要があります。PKEY ディレクティブは yes に、PKEY_ID はインターフェースの数 (0x8000 メンバーシップビットを追加したもの有りまたはなし) に設定する必要があります。ただし、デバイス名は、PKEY_ID を 4 桁の 16 進数で表したものに論理和を使用して 0x8000 メンバーシップビットを合わせたものにします。以下のようになります。
NAME=${PHYSDEV}.$((0x8000 | $PKEY_ID))
デフォルトでは、ファイル内の PKEY_ID は 10 進数として扱われ、16 進数に変換された後、論理和を用いて 0x8000 と合わされてデバイス用の適切な名前にします。ただしユーザーは、数字に標準 0x 接頭辞を追加して PKEY_ID を 16 進数で指定することもできます。