Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

13.8.4. 了解 InfiniBand P_Key 子网

InfiniBand 结构可以通过使用不同的 P_Key 子网在逻辑上细分为虚拟子网。这与在以太网接口上使用 VLAN 非常相似。所有交换机和主机必须是默认 P_Key 子网的成员,但管理员可以创建额外的子网,并将这些子网的成员限制为 fabric 中的主机或交换机的子集。P_Key 子网必须由子网管理器定义,然后主机才能使用它。有关如何使用 opensm 子网管理器定义 P_Key 子网的信息,请参阅 第 13.6.4 节 “创建 P_Key 定义” 部分。对于 IPoIB 接口,一旦创建了 P_Key 子网,我们可以为这些 P_Key 子网创建额外的 IPoIB 配置文件。正如以太网设备上的 VLAN 接口一样,每个 IPoIB 接口的行为就像它位于与其他 IPoIB 接口完全不同的结构上一样,这些接口共享同一链路,但具有不同的 P_Key 值。
IPoIB P_Key 接口的名称有特殊要求。所有 IPoIB P_Keys 范围从 0x00000x7fff,高位 0x8000 表示 P_Key 成员资格是完全成员资格,而不是部分成员身份。Linux 内核的 IPoIB 驱动程序只支持 P_Key 子网中的完全成员资格,因此对于 Linux 可以连接的任何子网而言,会始终设置 P_Key 编号的高位。这意味着,如果 Linux 计算机加入 P_Key 0x0002,一旦加入,实际的 P_Key 编号将为 0x8002,表示我们是 P_Key 0x0002 的所有成员。因此,当在 opensm partitions.conf 文件中创建 P_Key 定义时,如 第 13.6.4 节 “创建 P_Key 定义” 部分所述,需要指定不使用 0x8000P_Key 值,但在 Linux 客户端上定义 P_Key IPoIB 接口时,将 0x8000 值添加到基本 P_Key 值。