1.5. 在 IBM Z 平台上确定可预测的 RoCE 设备名称
在 Red Hat Enterprise Linux (RHEL) 8.7 及更新版本上,udev 设备管理器为 IBM Z 上的 RoCE 接口设置名称,如下所示:
-
如果主机对设备强制唯一标识符(UID),则
udev会分配一个基于 UID 的一致的设备名称,如eno<UID_in_decimal>。 如果主机没有为设备强制 UID,则行为取决于您的设置:
-
默认情况下,
udev为设备使用无法预料的名称。 -
如果您设置了
net.naming-scheme=rhel-8.7内核命令行选项,则udev会分配一个基于设备功能标识符(FID)的一致的设备名称,例如ens<FID_in_decimal>。
-
默认情况下,
在以下情况下,为 IBM Z 上的 RoCE 接口手动配置可预测的设备名称:
您的主机运行 RHEL 8.6 或更早版本,并对设备强制 UID,并计划更新到 RHEL 8.7 或更高版本。
升级到 RHEL 8.7 或更高版本后,
udev使用一致的接口名称。但是,如果您在更新前使用了无法预料的设备名称,NetworkManager 连接配置文件仍然使用这些名称,且不能激活,直到您更新了受影响的配置文件。- 您的主机运行 RHEL 8.7 或更高版本,且不强制 UID,您计划升级到 RHEL 9。
在使用 udev 规则或 systemd 链接文件手动重命名接口前,您必须确定可预测的设备名称。
先决条件
- RoCE 控制器已安装在系统上。
-
sysfsutils软件包已安装。
流程
显示可用的网络设备,并记录 RoCE 设备的名称:
ip link show
# ip link show ... 2: enP5165p0s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示
/sys/文件系统中的设备路径:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在下一步中使用
Device path字段中显示的路径。显示
<device_path>/uid_id_unique文件的值,例如:cat /sys/devices/pci142d:00/142d:00:00.0/uid_id_unique
# cat /sys/devices/pci142d:00/142d:00:00.0/uid_id_uniqueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 显示的值指示 UID 唯一性是否是强制的,并且您在以后的步骤中需要这个值。
确定唯一标识符:
如果 UID 唯一性是强制的 (
1),显示存储在<device_path>/uid文件中的 UID,例如:cat /sys/devices/pci142d:00/142d:00:00.0/uid
# cat /sys/devices/pci142d:00/142d:00:00.0/uidCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 UID 唯一性不是强制的(
0),显示存储在<device_path>/function_id文件中的 FID,例如:cat /sys/devices/pci142d:00/142d:00:00.0/function_id
# cat /sys/devices/pci142d:00/142d:00:00.0/function_idCopy to Clipboard Copied! Toggle word wrap Toggle overflow
命令的输出显示十六进制的 UID 和 FID 值。
将十六进制标识符转换为十进制,例如:
printf "%d\n" 0x00001402
# printf "%d\n" 0x00001402 5122Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要确定可预测的设备名称,根据 UID 唯一性是否是强制的,将十进制格式的标识符附加到相应的前缀:
-
如果 UID 唯一性是强制的,请将标识符附加到
eno前缀,例如eno5122。 -
如果没有强制 UID 唯一性,请将标识符附加到
ens前缀,如ens5122。
-
如果 UID 唯一性是强制的,请将标识符附加到