我最近接手了一个包含多个交换机的 Infiniband 网络,我知道其中一个交换机正在运行子网管理器。其余的交换机据称已关闭该功能,或从未启用过。问题是,我不知道是哪一个...
我想用在我的几台基础设施服务器上运行的 OpenSM 替换交换机子网管理器。除了单独登录每台交换机之外,还有什么方法可以确定哪台交换机正在运行 SM?
答案1
如果您的基础设施服务器可以运行 OpenSM,它们可能也安装了 OFED 堆栈实用程序。如果命令可用,ibstat
将告诉您 SM 的 LID。然后使用 LIDsmpquery ND -L <LID>
获取运行 SM 的节点的节点描述。
答案2
如果你的系统和包中安装了 OFED,infiniband-diags
你可以使用命令信息网列出 Infiniband 网络中正在运行的子网管理器:
~ # sminfo
sminfo: sm lid 18 sm guid 0x0000000, activity count 55554951 priority 0 state 3 SMINFO_MASTER
它将列出该节点和主子网管理器的所有已知子网管理器。
答案3
如果您通过 IP 地址联系到您的经理,您可以查看交换机的 ARP/MAC 表来查找哪个 IP 地址与您的交换机相对应。
答案4
首先获取当前 SM 管理器信息,然后通过 LID(网络上的本地 ID)或 GUID(全局唯一 ID)sminfo
查询节点描述saquery
# sminfo
sminfo: sm lid 8 sm guid 0x24be05ffff8a5f71, activity count 53314 priority 14 state 3 SMINFO_MASTER
# saquery -O 8
login2 HCA-1
-OR
# saquery -U 0x24be05ffff8a5f71
login2 HCA-1
如果节点描述没有太多说明,可以调查 InfiniBand 网络ibnetdiscover | less -S
并查找 GUID 和它所连接的交换机/端口。
要获取结构上配置的所有子网管理器的列表,请运行ibdiagnet
并检查 ibdiagnet2.sm 文件(应将完整路径报告给标准输出)。