9.9. 使用命令行配置 IPoIB

首先确定是否需要重新命名默认的 IPoIB 设备,如果是,则请按照 第 9.3.3 节 “70-persistent-ipoib.rules 用法” 一节中的说明,使用 udev 重命名规则重新命名这些设备。用户可强制重命名 IPoIB 设备而无需重启,方法是删除 ib_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 字段为用户显示这个连接的名称。TYPE 字段必须为 InfiniBand,以便正确处理 InfiniBand 选项。CONNECTED_MODE 可以是 yes,也可以是 no,其中 yes 代表在通讯中使用连接模式,而 no 代表使用数据报模式(详情请查看 第 9.6.2 节 “了解 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 的四位十六进制数字代表附加使用逻辑或运算符的 0x8000 成员字节,如下:
NAME=${PHYSDEV}.$((0x8000 | $PKEY_ID))
默认情况下,会将该文件中的 PKEY_ID 视为十进制数字,并转换为示例禁止数字,然后使用逻辑或运算符与 0x8000 合并得到该设备的正确名称,但用户需在该数字前添加标注 0x 前缀,以便使用十六进制指定 PKEY_ID