开源InfiniBand网络组件-OpenSM

龅牙兔谈科技 2024-05-13 00:12:06

OpenSM 是一个由IBTA(InfiniBand Trade Association)提供的开源子网管理器(Subnet Manager,SM),它主要用于管理基于 InfiniBand 网络的子网。InfiniBand 是一种高速、低延迟的网络通信标准,广泛应用于高性能计算(HPC)、AI智算中心和DCB数据中心。

OpenSM 是 InfiniBand 网络的核心组件,提供基本的子网管理功能,如路径选择、拓扑管理、分区(PKey)管理等,支持 InfiniBand 标准的管理功能。负责确保子网内的通信正常运行并优化流量。

OpenSM 通常运行在支持 InfiniBand 网络的 Linux 系统或 InfiniBand 交换机上,由于是开源软件,OpenSM 允许用户自定义配置并进行扩展,通过配置文件可以调整拓扑发现、路径选择和分区配置等功能。

官网链接:https://www.infinibandta.org

主要特点拓扑发现与管理:自动发现整个 InfiniBand 网络的拓扑结构,包括所有交换机、端口和节点,确保网络设备的连接和配置准确无误。路由:OpenSM 负责为网络中的每个节点配置路由表,确保数据能够以最优路径传输到目标节点。带宽管理:提供带宽和 QoS(服务质量)策略来确保重要的通信流量得到优先处理,并防止网络资源被滥用。安全性:支持子网中的安全策略,如隔离不可信的节点或端口,确保网络的安全性和稳定性。容错:提供冗余的 SM 功能以确保高可用性。可以配置一个主 SM 和一个备份 SM,当主 SM 失效时,备份 SM 能够迅速接管任务。监控与日志:提供详细的网络监控和日志记录,以帮助管理员发现并解决网络问题。配置文件:允许通过配置文件自定义 OpenSM 的行为和网络策略,以适应不同的环境需求。

opensm --help参数索引

应用场景高性能计算集群:在 HPC 集群中,OpenSM 确保节点之间高速、稳定地通信,支持科学计算和大数据处理。数据中心网络:在数据中心中,OpenSM 确保存储、数据库和计算节点之间的通信快速而可靠。企业网络:大型企业的内部网络可以利用 OpenSM 来优化 InfiniBand 网络的性能和安全性。部署与使用系统要求:通常需要基于 Linux 的系统,支持 InfiniBand 硬件。安装方式:可以通过软件包管理器(如 yum、apt)或从源代码编译安装 OpenSM。配置与运行:通过配置文件调整 OpenSM 的行为,启动服务后它将自动发现并管理子网。//通过yum方式安装[root@frr ~]# yum install -y opensm.aarch64Installed: libibumad-46.0-1.el9.aarch64 opensm-3.3.24-2.el9.aarch64 opensm-libs-3.3.24-2.el9.aarch64 pciutils-3.7.0-5.el9.aarch64 rdma-core-46.0-1.el9.aarch64Complete![root@frr ~]# systemctl start opensm  //启动opensm服务[root@frr ~]# systemctl enable opensm  //设置opensm服务开机自启动[root@frr ~]# opensm -B  //查看opensm版本及配置文件路径-------------------------------------------------OpenSM 3.3.24Reading Cached Option File: /etc/rdma/opensm.confCommand Line Arguments:Daemon modeLog File: /var/log/opensm.log-------------------------------------------------[root@frr ~]# systemctl status opensm //查看opensm服务状态● opensm.service - Starts the OpenSM InfiniBand fabric Subnet Manager Loaded: loaded (/usr/lib/systemd/system/opensm.service; enabled; preset: disabled) Active: active (running) since Tue 2024-05-07 08:33:21 CST; 1min 40s ago Docs: man:opensm Main PID: 19418 (opensm-launch) Tasks: 2 (limit: 10676) Memory: 648.0K CPU: 58ms CGroup: /system.slice/opensm.service ├─19418 /usr/bin/bash /usr/libexec/opensm-launch └─19478 sleep 30May 07 08:34:51 frr opensm-launch[19473]: -------------------------------------------------May 07 08:34:51 frr opensm-launch[19473]: OpenSM 3.3.24May 07 08:34:51 frr opensm-launch[19473]: Reading Cached Option File: /etc/rdma/opensm.confMay 07 08:34:51 frr opensm-launch[19473]: Command Line Arguments:May 07 08:34:51 frr opensm-launch[19473]: Log File: /var/log/opensm.logMay 07 08:34:51 frr opensm-launch[19473]: -------------------------------------------------May 07 08:34:51 frr opensm-launch[19473]: OpenSM 3.3.24May 07 08:34:51 frr OpenSM[19473]: /var/log/opensm.log log file openedMay 07 08:34:51 frr OpenSM[19473]: OpenSM 3.3.24May 07 08:34:51 frr opensm-launch[19473]: No local ports detected![root@frr ~]# [root@frr ~]# vim /etc/rdma/opensm.conf //opensm.conf 配置文件示例log_file = /var/log/opensm.log //日志文件的路径log_level = 0xff //日志级别,0xff 表示最高详细级别sm_priority = 10 //SM 的优先级,值越大优先级越高max_op_vls = 8 //操作虚拟通道的数量,默认设置为 8subnet_prefix = 0xfe80000000000000 //InfiniBand 子网前缀,用于网络划分guid_routing_order_file = /etc/opensm/guid_order.txt //用于指定 GUID 排序的文件routing_engine = updn //路由算法,例如 updn 表示使用 UPDN 路由附

InfiniBand 测试工具:

sudo yum install rdma-core //在CentOS 或 RHEL上安装sudo yum install infiniband-diags perftestibstat //显示 InfiniBand 设备的状态,包括 HCA 和端口的相关信息ibping -G <target-GUID> //类似于 ICMP ping,验证网络设备之间的连接性和路径选择ibping -L <target-GID>ibnetdiscover //发现 InfiniBand 网络的拓扑结构,并输出节点的连通性信息ibtracert <source-GID> <destination-GID> //用于跟踪数据包在网络中通过的路径ibdiagnet //全面的诊断工具,用于检查和验证 InfiniBand 网络的完整性和性能ibportstate <HCA-GUID> <port-number> query //检查和更改 InfiniBand 端口的状态

!!!【点赞】、【关注】不走丢^_^

!!!【点赞】、【关注】不走丢^_^



0 阅读:0

龅牙兔谈科技

简介:感谢大家的关注