在非托管 Mellanox 交换机上设置 Ca 名称

在非托管 Mellanox 交换机上设置 Ca 名称

如何设置 Mellanox/Infiniband 非管理型交换机的主机名/描述?

我想要一种方法来在执行“ibswitches”或“ibnetdiscover”时快速抽象地区分哪些交换机是哪些。

对于服务器中的 HCA,主机名已设置,这很好。只需要一个交换机解决方案。

示例:(所有交换机都显示为以下“SwitchX - Mellanox Technologies”)

[26]    "S-e41d2de300756550"[25]                # "SwitchX -  Mellanox Technologies" lid 6 4xFDR
[27]    "S-e41d2de30074bc40"[21]                # "SwitchX -  Mellanox Technologies" lid 5 4xFDR

在寻找 ibnetdiscover 并能够快速找到哪个 HCA 卡进入哪个交换机时,这将是有益的......

vendid=0x2c9
devid=0x1011
sysimgguid=0xf45214d300514560
caguid=0xf452140300514560
Ca      1 "H-f45214d300514560"          # "mgmt2 HCA-2"
[1](f45214d300514560)   "S-e41d2dd3007551f0"[15]                # lid 11 lmc 0 "SwitchX -  Mellanox Technologies" lid 10 4xFDR

答案1

您可以为 ibnetdiscover 指定“--node-name-map FILE”并配置 GUID 和所需名称之间的映射,以便在运行 ibswitches/ibnetdiscover 时显示该名称。

--node-name-map <node-name-map>
    Specify a node name map. The node name map file maps GUIDs to more
    user friendly names. See file format below. 

答案2

在对我们的一个 IB 结构进行故障排除时,我遇到了类似的需求,因为当我需要数据中心的人员重新启动交换机等时,需要进行大量搜索才能确定哪个交换机是哪个交换机。我通过电子邮件向 Mellanox 支持部门询问如何为非托管交换机添加描述性名称,他们向我发送了一个名为“Unmanaged_Switches_Set_NodeDescription_3.4.py”的 Python 脚本,该脚本可用于设置显示在 ibswitches 或 ibnetdiscover 输出中的描述。此描述将保留到交换机重新启动,之后它将恢复为默认描述。我创建了一个文本文件,该脚本可以使用它将 GUID 映射到描述性名称,现在我可以使用单个命令重新标记结构中的每个交换机。

答案3

虽然@alnet 的回答是正确的,我们可以进一步在文件中设置 GUID 到交换机名称的映射,这样就可以始终查找交换机名称,而无需指定命令行标志。在使用发行版提供的实用程序的 EL(CentOS/RHEL)系统上,默认映射文件是/etc/rdma/ib 节点名称映射语法如下(取自手册页):

# Spines
0x0008f10400400e2d "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
# GUID   Node Name
0x0008f10400411a08 "SW1  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a28 "SW2  (Rack  3) ISR9024 Voltaire 9024D"

我可能更喜欢使用更简单的开关名称ib-spine01,这可以使解析输出更容易,并允许在托管 IB 交换机的情况下映射到主机名。

请注意,实际的地图文件名由 opensm 管理,因此如果/etc/rdma/opensm.conf节点名称_映射名称已定义。

答案4

简短的回答是——你不能。

如果您的交换机是非托管的,那么唯一可以访问它的方法是通过 SMP MAD(子网管理协议管理数据报)。

读取这个字符串的MAD被称为“NodeDescription”。根据IB Spec,NodeDescription是只读的。

相关内容