01-正文
本章节下载: 01-正文 (2.32 MB)
目 录
5.1 在寒武纪GPU环境中,如果在运行Agent时出现UnsatisfiedLinkError错误,并提示找不到“libcndev.so”库,如何处理?
5.2 在寒武纪GPU环境中,如果在运行Agent时出现错误,提示找不到cn相关库或者找不到cn相关命令,如何处理?
5.3 英伟达GPU测试提示“Persistence Mode Disabled”,如何处理?
5.4 ethtool查询光模块信息时仅显示16进制,如何处理?
6.1.1 安装Data Center GPU Manager(DCGM)
6.1.2 安装深度学习加速库(NVIDIA CUTLASS)
6.2.2 安装基础压力工具HyQual(v2.2.6示例)
6.3.1 安装Ascend DMI(Ascend Device Management Interface)工具
6.5.4 通过Docker部署DCXM(Data Center XPU Manager)
AIDC Agent用于安装在数据中心网络中的GPU/存储服务器上,安装完成后,为数据中心控制组件(SeerEngine-DC)、分析组件和U-Center提供服务。
· 与控制组件的交互
AIDC Agent能够自动推送服务器上的GPU和网卡信息至控制组件。基于这些信息,控制组件可以生成服务器接入详情,展示网卡和GPU的连接关系,并自动化配置网络参数,包括路由(route)、规则(rule)和RoCE网卡设置。
· 与分析组件的交互
AIDC Agent支持将GPU、网卡、光模块、文件系统等关键信息发送到分析组件。它还能执行多项检查,包括GPU状态、网卡状态、网络流量、网络配置和性能分析等。
· 与U-Center的交互
AIDC Agent中的U-Center-Agent支持将CPU、网卡、文件系统等关键信息发送到U-Center的IOM组件。该组件负责监控这些资源,收集相应类型的监控指标,并在监控指标超出设定的告警阈值时,通过平台的告警模块及时发出通知。
AIDC Agent支持裸金属部署和容器化部署,两种场景的部署说明如下。
表2-1 软件安装包及场景说明
|
场景 |
部署说明 |
软件包 |
|
裸金属部署 |
AIDC Agent功能已包含在控制组件软件包(SeerEngine_DC-version-MATRIX.zip)中。部署控制组件后,在控制组件界面配置相关参数即可使用,无需手动上传软件包单独部署。 |
SeerEngine_DC-version-AIDCAgent.zip (仅用于升级或者在服务器上手动部署) 该压缩包包含如下功能: · SeerEngine_DC-version-AIDCAgent:控制组件和分析组件的Agent · U-Center-Agent-version:U-Center的Agent |
|
容器化部署 |
手动上传软件包至服务器部署。 |
SeerEngine_DC-version-AIDCAgent-K8S.zip |
|
服务器型号 |
硬件要求 |
|
H3C UniServer R5500 G6 H3C UniServer R5500 G5 H3C UniServer R5300 G6 H3C UniServer R5300 G5 H3C UniServer R5300 G3 |
CPU架构:x86_64 |
表2-2 组件所需硬件资源
|
CPU内核 |
内存 |
磁盘 |
|
1核及以上 |
2GB及以上 |
5GB及以上 |
表2-3 支持的操作系统清单
|
操作系统 |
版本要求 |
|
Ubuntu |
22.04 |
|
银河麒麟 |
V10 SP3 |
|
openEuler |
22.03 LTS SP3 |
|
Rocky Linux |
8.8 |
|
CentOS |
8 |
· Ubuntu系统限制
支持通过官方ISO安装的服务器版及云平台定制镜像(如AWS/Azure的Ubuntu云镜像)。服务器版默认的网络配置文件通常为00-installer-config.yaml,云平台版默认为50-cloud-init.yaml。
· 适用于所有支持SELinux的操作系统(银河麒麟、openEuler、Rocky Linux和CentOS)
在部署或运行系统前,需要关闭SELinux,请按以下通用步骤操作(不同操作系统可能路径或命令略有差异,请根据实际环境调整):
a. 编辑SELinux配置文件,将参数SELINUX的值修改为disabled。
vim /etc/sysconfig/selinux
SELINUX=disabled
b. 重启后,运行sestatus命令查询服务状态。
[root@CX_Series network-scripts]# sestatus
SELinux status: disabled
以下为操作系统需安装的通用依赖。
表2-4 基础依赖软件列表
|
依赖软件 |
功能描述 |
|
openjdk-8-jdk |
Java开发工具包,用于运行和开发Java应用程序。 |
|
LLDPD |
链路层发现协议守护进程,用于网络拓扑发现和管理。 |
|
NetworkManager |
网络管理工具,提供网络连接的自动检测和配置。 |
|
unzip |
解压缩工具,用于解压缩.zip格式的文件。 |
|
tar |
归档打包工具,用于创建和解压缩.tar格式的文件。 |
|
lshw |
硬件信息检测工具,用于生成详细的系统硬件信息。 |
|
ethtool工具 |
查询和配置网络接口卡(NIC,网卡)参数的命令行工具。 |
操作系统差异性说明如下。
· NetworkManager
所有系统需安装,但Ubuntu操作系统不需要安装。
· ethtool工具
在Ubuntu操作系统中,建议优先使用网卡驱动自带的ethtool工具进行操作,否则在查询光模块信息时,可能仅能显示16进制内容。有关具体的更新操作,请参见“ethtool查询光模块信息时仅显示16进制,如何处理?”。
表2-5 深度性能测试依赖
|
计算加速卡厂商 |
依赖软件 |
说明 |
|
英伟达 |
如需使用分析组件训前准备页面的下列功能,请预先安装右侧列出的依赖软件。 性能测试功能 · 算力性能检测 · 功耗性能检测 · HBM性能检测 健康检查功能 · 芯片健康检测 · 软硬件兼容性检查 |
DCGM 4.1.1:英伟达开发的针对数据中心GPU的综合性管理工具,主要用于实时监控、配置管理以及健康状态诊断。 安装说明请参见“安装Data Center GPU Manager(DCGM)” |
|
CUTLASS:英伟达开发的开源库。 编译CUTLASS的测试或示例,需预先安装GoogleTest,并在CMake中正确配置路径。
CUTLASS、GoogleTest、CMake的安装说明请参见“安装深度学习加速库(NVIDIA CUTLASS)” |
||
|
海光 |
如需使用分析组件训前准备页面的下列功能,请预先安装右侧列出的依赖软件。 性能测试功能 · 算力性能检测 · 功耗性能检测 健康检查功能 · 芯片健康检测 · 驱动健康检测 |
HyQual:海光公司开发的用于针对DCU标卡系列产品的压力、带宽以及算力测试标准工具。 安装说明请参见“海光GPU深度性能测试依赖软件的安装流程” |
|
昇腾 |
如需使用分析组件训前准备页面的下列功能,请预先安装右侧列出的依赖软件。 性能测试功能 · 算力性能检测 · 功耗性能检测 · HBM性能检测 健康检查功能 · 芯片健康检测 · 软硬件兼容性检查 |
Ascend DMI(Device Management Interface)是一款用于昇腾(Ascend)系列硬件检测与诊断的工具。 该工具通过调用底层 DCMI(Device Control Management Interface,设备控制管理接口)以及 AscendCL(Ascend Computing Language,昇腾计算语言)相关接口实现硬件检测功能。 对于系统级信息查询,Ascend DMI 使用系统提供的通用库进行数据获取和分析。 Ascend DMI提供以下主要功能:硬件兼容性检查、带宽测试、算力测试、功耗测试、诊断压测等。 安装说明请参见“昇腾GPU深度性能测试依赖软件的安装流程”。 |
|
昆仑芯 |
如需使用分析组件训前准备页面的下列功能,请预先安装右侧列出的依赖软件。 性能测试功能 · 功耗性能检测 · HBM性能检测 · XCCL Test 健康检查功能 · 软件兼容性检查 · 硬件兼容性检查 · HBM内存健康检测 |
数据中心XPU管理器(Data Center XPU Manager,DCXM)用于简化对XPU设备的管理、监控过程,提供了对XPU设备的群组管理、拓扑结构、健康诊断以及状态检测等能力,支持无缝对接到其他基于DCGM的工具。 DCXM提供以下主要功能:硬件兼容性检查、带宽一致性测试、功耗测试、HBM性能测试等。 安装说明请参见“昆仑芯XPU深度性能测试依赖软件的安装流程”。 |
|
沐曦 |
如需使用分析组件训前准备页面的下列功能,请预先安装右侧列出的依赖软件。 性能测试功能 · 算力性能检测 · 功耗性能检测 · HBM性能检测 |
工具说明: · 标准版服务器:请安装mxvs。 · 白牌版服务器:请安装htvs。 Mars验收测试套件(HPC Tool Validation Suite,htvs)是Mars面向服务器合作伙伴以及开发者提供的测试软件集合,便于用户方便快捷地了解X系列GPU的硬件能力,它支持PCIe带宽测试和眼图报告获取、显存带宽测试、算力测试、压力测试等功能。 安装说明请参见“沐曦GPU深度性能测试依赖软件的安装流程”。 |
|
厂商 |
硬件款型 |
|
|
计算加速卡硬件型号 |
英伟达 |
A100,H800,H20 |
|
昆仑 |
R300,P800 |
|
|
天数 |
MR-V100,BI-V150 |
|
|
沐曦 |
MXC500 |
|
|
寒武纪 |
MLU370-M8 |
|
|
摩尔线程 |
MTT S4000 |
|
|
海光 |
K100-AI |
|
|
昇腾 |
910B3 |
|
厂商 |
硬件款型 |
|
|
RDMA网卡型号 |
云脉 |
metaScale-200 |
|
Mellanox |
Mellanox CX6 CX7 |
|
|
Broadcom |
BCM57608 |
AIDC Agent容器化部署支持Kubernetes v1.21.14。
部署AIDC Agent前,请先完成以下工作:
(1) 完成SeerEngine-DC的安装工作。
(2) 完成服务器的安装和上线工作。
(3) 请检查服务器的系统时区是否与实际地理位置一致。
a. 使用命令timedatectl查看当前系统时区。请重点确认输出中的“Time zone”字段是否为实际所在地区的时区(如中国大陆应为Asia/Shanghai)。
[root@vm203 /]# timedatectl
Local time: Tue 2025-08-05 16:26:13 CST
Universal time: Tue 2025-08-05 08:26:13 UTC
RTC time: Tue 2025-08-05 08:25:12
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
b. 如需修改时区,请执行以下命令,将系统时区设置为实际地理时区(如中国标准时间)
[root@vm203 /]# timedatectl set-timezone Asia/Shanghai
(4) 请确认服务器时间与控制组件、分析组件的时间保持一致。
不同服务器的系统名称不能相同,请排查是否满足要求,如存在相同的情况,请修改系统名称,修改完成后需要重启服务器。
root@server1:~# vi /etc/hostname
root@server1:~# reboot
· 包管理器安装Java
root@server1:~# apt install openjdk-8-jdk -y
· 非包管理器安装Java
非包管理器安装Java是指直接下载Java压缩包,解压后进行手动配置。以下是详细步骤:
a. 下载Java二进制包
访问相关官网下载所需版本的.tar.gz或.zip压缩包。
b. 解压到目标目录
c. 配置环境变量
编辑/etc/profile,配置环境变量,举例如下:
PATH=/usr/openjdk8/bin:$PATH
d. 使环境变量生效
source /etc/profile
e. 创建软链接到标准路径
sudo ln -s /usr/openjdk8/bin/java /usr/bin/java
· 包管理器方式安装LLDPD
root@server1:~# apt install lldpd -y
root@server1:~# systemctl enable lldpd.service
root@server1:~# systemctl start lldpd.service
root@server1:~# systemctl status lldpd.service #查看LLDPD服务状态
请确保LLDP学习到的系统名称与服务器的系统名称一致。
· 非包管理器方式安装LLDPD
a. 下载官方源码(建议确认链接有效性):https://github.com/lldpd/lldpd
b. 解压源码压缩包,进入源码文件夹,逐步执行:
./autogen.sh
./configure
make
sudo make install
c. 验证安装
完成安装后,运行以下命令以确保lldpd已正确安装。
lldpd -v
d. 增加配置文件/etc/systemd/system/lldpd.service
[Unit]
Description=LLDP Daemon
After=network.target
[Service]
ExecStart=/usr/local/sbin/lldpd
Restart=on-failure
PIDFile=/usr/local/var/run/lldpd.pid
[Install]
WantedBy=multi-user.target
e. 检查路径和权限
确保/usr/local/sbin/lldpd存在并可执行。
ls -l /usr/local/sbin/lldpd
确保目录/usr/local/var/run存在,如果没有,请创建:
sudo mkdir -p /usr/local/var/run
f. 创建_lldpd用户
创建一个系统用户_lldpd,不需要shell和home目录。
sudo useradd --system --no-create-home --shell /sbin/nologin _lldpd
g. 设置文件权限,确保相关目录和文件被_lldpd用户访问和使用:
sudo chown -R _lldpd:_lldpd /usr/local/var/run/
sudo chown _lldpd:_lldpd /usr/local/sbin/lldpd
h. 启动lldpd,可以通过以下命令启动服务:
sudo systemctl daemon-reload
sudo systemctl start lldpd
sudo systemctl enable lldpd
root@server1:~# apt install unzip -y
建议先通过tar –version命令检查是否已安装,避免冗余操作。
root@server1:~# apt install tar -y
建议先使用sudo lshw命令检查lshw是否安装。如果已安装,会显示硬件信息;如果未安装,会提示命令未找到。
(1) 通过如下命令安装lshw。
root@server1:~# sudo apt install lshw -y
(2) 安装完成后,可以通过以下命令查看硬件信息。
sudo lshw
不同服务器的系统名称不能相同,请排查是否满足要求,如存在相同的情况,请修改系统名称,修改完成后需要重启服务器。
[root@server1 ~]# vi /etc/hostname
[root@server1 ~]# reboot
· 包管理器安装Java
[root@server1 ~]# yum install java-1.8.0-openjdk-devel -y
· 非包管理器安装Java
非包管理器安装Java是指直接下载Java压缩包,解压后进行手动配置。以下是详细步骤:
a. 下载Java二进制包
访问相关官网下载所需版本的.tar.gz或.zip压缩包。
b. 解压到目标目录
c. 配置环境变量
编辑/etc/profile,配置环境变量,举例如下:
PATH=/usr/openjdk8/bin:$PATH
d. 使环境变量生效
source /etc/profile
e. 创建软链接到标准路径
sudo ln -s /usr/lib/jdk-17/bin/java /usr/bin/java
· 包管理器方式安装LLDPD
[root@server1 ~]# yum install lldpd -y
[root@server1 ~]# systemctl enable lldpd.service
[root@server1 ~]# systemctl start lldpd.service
[root@server1 ~]# systemctl status lldpd.service #查看LLDPD服务状态
请确保LLDP学习到的系统名称与服务器的系统名称一致。
· 非包管理器方式安装LLDPD
a. 下载官方源码(建议确认链接有效性):https://github.com/lldpd/lldpd
b. 解压源码压缩包,进入源码文件夹,逐步执行:
./autogen.sh
./configure
make
sudo make install
c. 验证安装
完成安装后,运行以下命令以确保lldpd已正确安装。
lldpd -v
d. 增加配置文件/etc/systemd/system/lldpd.service
[Unit]
Description=LLDP Daemon
After=network.target
[Service]
ExecStart=/usr/local/sbin/lldpd
Restart=on-failure
PIDFile=/usr/local/var/run/lldpd.pid
[Install]
WantedBy=multi-user.target
e. 检查路径和权限
确保/usr/local/sbin/lldpd存在并可执行。
ls -l /usr/local/sbin/lldpd
确保目录/usr/local/var/run存在,如果没有,请创建:
sudo mkdir -p /usr/local/var/run
f. 创建_lldpd用户
创建一个系统用户_lldpd,不需要shell和home目录。
sudo useradd --system --no-create-home --shell /sbin/nologin _lldpd
g. 设置文件权限,确保相关目录和文件被_lldpd用户访问和使用:
sudo chown -R _lldpd:_lldpd /usr/local/var/run/
sudo chown _lldpd:_lldpd /usr/local/sbin/lldpd
h. 启动lldpd,可以通过以下命令启动服务:
sudo systemctl daemon-reload
sudo systemctl start lldpd
sudo systemctl enable lldpd
[root@server1 ~]# yum install NetworkManager -y
[root@server1 ~]# systemctl enable NetworkManager.service
[root@server1 ~]# systemctl start NetworkManager.service
[root@server1 ~]# systemctl status NetworkManager.service #查看NetworkManager服务状态
[root@server1 ~]# yum install unzip -y
建议先通过tar –version命令检查是否已安装,避免冗余操作。
[root@server1 ~]# yum install tar -y
建议先使用sudo lshw命令检查lshw是否安装。如果已安装,会显示硬件信息;如果未安装,会提示命令未找到。
(1) 通过如下命令安装lshw。
[root@server1 ~]# yum install lshw -y
(2) 安装完成后,可以通过以下命令查看硬件信息。
sudo lshw
当服务器的SSH认证模式选择“密码”时,需要指定服务器的SSH密码;当服务器的SSH认证模式选择“公钥”时,需用户手动在服务器后台导入公钥信息。待服务器手工导入公钥后,控制组件可以使用公钥方式免密登录Agent服务器。
图3-1 控制组件自动生成的公钥
用户手工导入公钥的方式如下:
(2) 进入[管理>端网管理>端侧管理>服务器管理]页面,单击<SSH配置>按钮,在弹出的对话框中单击<下载公钥>按钮,获取控制组件自动生成的公钥文件id_ecdsa.pub。
(3) 在公钥场景下,非root用户执行Agent安装脚本时,需要 sudo 权限,请为该用户配置sudo 免密权限,确保文件及目录权限配置正确。详细步骤如下;
a. 创建普通用户并指定shell为bash,用户以testuser为例。
sudo useradd -m -s /bin/bash testuser
b. 创建/home/testuser/.ssh目录,并修改权限。
sudo mkdir -p /home/testuser/.ssh
sudo chown testuser:testuser /home/testuser/.ssh
sudo chmod 700 /home/testuser/.ssh
c. 创建authorized_keys文件,并修改权限。
sudo touch /home/testuser/.ssh/authorized_keys
sudo chown testuser:testuser /home/testuser/.ssh/authorized_keys
sudo chmod 600 /home/testuser/.ssh/authorized_keys
d. testuser用户配置sudo权限。
sudo visudo -f /etc/sudoers.d/testuser
testuser ALL=(ALL) NOPASSWD: ALL # 添加一行
sudo chmod 440 /etc/sudoers.d/testuser # 增加权限
(4) 将id_ecdsa.pub文件上传至对应用户的/.ssh目录,并将公钥信息写入对应用户的authorized_keys 文件。
cd /home/testuser/.ssh # 普通用户执行
cd /root/.ssh # root用户执行
echo "" >> authorized_keys && cat id_ecdsa.pub >> authorized_keys
由于不同操作系统对 SSH 认证算法的支持存在差异,部分操作系统版本在默认配置下可能不支持所需的公钥认证算法(例如:欧拉22.03、麒麟V10),需手动在目标服务器的/etc/ssh/sshd_config配置文件中,检查是否存在PubkeyAcceptedKeyTypes或PubkeyAcceptedAlgorithms,若存在任一参数,请在其后追加 ecdsa-sha2-nistp256,若两个参数均不存在,请在配置文件中直接添加:PubkeyAcceptedKeyTypes +ecdsa-sha2-nistp256。配置完成后,执行sudo systemctl restart sshd命令重启sshd服务。
配置示例:
配置文件中存在任一参数:PubkeyAcceptedKeyTypes ssh-ed25519,[email protected],rsa-sha2-256,rsa-sha2-512,ecdsa-sha2-nistp256
配置文件中不存在任一参数: PubkeyAcceptedKeyTypes +ecdsa-sha2-nistp256
安装Agent后,请勿修改操作系统的hostname。
在裸金属环境下,AIDC Agent功能已包含在控制组件软件包(SeerEngine_DC-version-MATRIX.zip)中。部署控制组件后,请在控制组件界面完成相关配置。
在浏览器中输入控制组件的登录地址“http://ip_address:30000”,其中“ip_address”为北向业务虚IP,进入登录页面。
图3-2 登录控制组件
登录控制组件后进入端侧管理页面。
表3-1 端侧管理页面路径说明
|
视图名称 |
页面路径 |
|
AD-DC |
自动化>数据中心网络>RoCE网络>端侧管理>服务器管理 |
|
AD-AIDC |
管理>端网管理>端侧管理>服务器管理 |
(1) 单击<服务器纳管>按钮,在下拉框中选择服务器的纳管方式。
¡ 自动发现:系统从链路模块导入服务器数据。
¡ 导入服务器IP:根据“AIDC智算中心服务器样例”模板配置服务器名称及管理IP后,将模板文件手动上传至页面。
(2) 服务器纳管完成后,服务器信息将展示在页面中,若Agent未安装,显示为--。
图3-3 服务器纳管成功且Agent未安装
(1) 勾选需要安装 Agent 的一台或多台服务器,单击<Agent管理>按钮,在下拉菜单中选择“安装”选项。在弹出的对话框中,根据实际环境填写相关参数,如 SSH 用户名、认证模式等信息。
若服务器为手工导入,且在对应模板中已配置 SSH 认证信息,则在页面上安装 Agent 时,将不再支持手动输入认证参数。
图3-4 安装Agent
(2) 当服务器的SSH认证模式选择“密码”时,需要指定服务器的SSH密码;当服务器的SSH认证模式选择“公钥”时,需用户手动在服务器后台导入公钥信息,导入方式请参见(可选)SSH免密配置。服务器手工导入公钥后,控制组件可以使用公钥方式免密登录Agent服务器。
(3) 在高级参数配置中,可以设置安装路径,并支持通过单击<获取SSH用户环境变量>按钮,自动获取SSH用户的PATH和LD_LIBRARY_PATH。这些环境变量将用于Agent进程的启动,且支持手动修改。
|
参数名称 |
参数说明 |
|
安装路径 |
Agent的安装路径 |
|
PATH |
路径环境变量。对应安装路径下的config文件夹中的export.dependence.path.json文件的PATH参数 |
|
LD_LIBRARY_PATH |
动态链接库搜索路径的环境变量。对应安装路径下的config文件夹中的export.dependence.path.json文件的LD_LIBRARY_PATH参数 |
图3-5 高级参数配置
(4) 配置完成后单击<确定>按钮。
若控制组件和分析组件在不同集群分开部署,Agent安装完成后,需进入Agent所在服务器后台,使用vi命令编辑config/agent.config.json文件,使dc service_ip和sa service_ip取值不同。输入控制组件的北向业务虚IP,用于向控制组件上传GPU信息。
{
"agent": {
"roce_nic_config": "enable",
"route_config": "enable",
"gfs_port": "1191"
},
"dc": {
"service_ip": "192.168.10.100",
"server_port": 20851,
},
"sa": {
"service_ip": "192.168.12.23",
"server_port": 10051
}
}
表3-3 参数说明
|
参数 |
说明 |
|
agent_master_ip |
Master Agent所在服务器的IP。可选参数,未配置时,Agent将收集到的信息上送至SeerEngine-DC |
|
agent_master_port |
Master Agent所在服务器的端口,缺省值为7008。可选参数 |
|
roce_nic_config |
参数网卡RoCE配置自动下发开关,取值范围为enable或disable;缺省值为enable,即自动下发参数网卡RoCE配置 |
|
route_config |
路由及规则自动下发开关,取值范围为enable或disable;缺省值为enable,即自动下发路由及规则 |
|
gfs_port |
Agent与存储服务器建立心跳的目标端口,目前与存储服务器的协商值为1191。除非特殊情况请勿修改和删除 |
|
dc service_ip |
SeerEngine-DC的北向业务虚IP |
|
dc server_port |
SeerEngine-DC的北向业务请求端口,取值范围为1~65536的整数;缺省值为20851。可选参数 |
|
sa service_ip |
分析组件的北向业务虚IP |
|
sa server_port |
分析组件的WebSocket通信端口,缺省值为10051。可选参数 |
除页面安装Agent之外的场景下(如自定义目录安装),需要以root权限执行start_agent.sh脚本启动Agent服务。
如果agent_master_ip是本服务器网卡上的IP就以master角色启动,否则以worker角色启动。
· 以master角色启动时,Agent会将收集到的信息上送至SeerEngine-DC。
· 以worker角色启动时,Agent会将收集到的信息优先上送至master,master异常时,Agent会将收集到的信息上送至SeerEngine-DC。
配置步骤如下。
(1) 添加防火墙规则(以firewalld为例),允许流量通过指定的Agent监听端口。
此命令作用是将TCP流量通过指定端口的访问权限添加到防火墙配置中,并保持该规则在防火墙重启后仍然有效。
¡ Ubuntu操作系统
root@server1:~/SeerEngine_DC-E7301_AIDCAgent# sudo firewall-cmd --zone=public --add-port=7008/tcp --permanent #7008为缺省端口号,请按实际配置替换为Master agent所在服务器的端口
root@server1:~/SeerEngine_DC-E7301_AIDCAgent# sudo firewall-cmd --reload
¡ CentOS操作系统
[root@server1 SeerEngine_DC-E7301_AIDCAgent]# sudo firewall-cmd --zone=public --add-port=7008/tcp --permanent #7008为缺省端口号,请按实际配置替换为Master agent所在服务器的端口
[root@server1 SeerEngine_DC-E7301_AIDCAgent]# sudo firewall-cmd –reload
(2) 启动Agent服务。
Agent服务需要在每一台服务器上手动执行脚本启动。
¡ Ubuntu操作系统
root@server1:~/SeerEngine_DC-E7301_AIDCAgent# sudo ./install.sh --saIp 192.168.118.50 --seIp 192.168.118.51
¡ CentOS操作系统
[root@server1 SeerEngine_DC-E7301_AIDCAgent]# sudo ./install.sh --saIp 192.168.118.50 --seIp 192.168.118.51
其中,seIp和saIp为必选参数,其他均为可选参数。如果未指定可选参数,取值将依据config/agent.config.json中的配置。
表3-4 参数说明
|
长参数(推荐) |
短参数 |
说明 |
|
help |
h |
帮助信息 |
|
roce |
n |
参数网卡RoCE配置自动下发开关,取值范围为enable或disable;缺省值为enable,即自动下发参数网卡RoCE配置。可选参数 |
|
route |
r |
路由及规则自动下发开关,取值范围为enable或disable;缺省值为enable,即自动下发路由及规则。可选参数 |
|
saPort |
t |
分析组件的北向业务请求端口,取值范围为1~65535的整数;缺省值为10051。可选参数 |
|
saIp |
a |
分析组件的北向业务虚IP。必选参数 |
|
seIp |
e |
控制组件的北向业务虚IP。必选参数 |
|
sePort |
o |
控制组件的北向业务请求端口,取值范围为1~65535的整数;缺省值为20851。可选参数 |
|
allIp |
i |
控制组件和分析组件合一场景下,共用的北向IP地址 |
|
hwj |
w |
寒武纪安装路径,默认是/usr/local/neuware。 |
|
nv |
v |
NVIDIA依赖路径,用于导出NCCL、MPI、CUDA的路径。 |
|
seConfig |
c |
· 若为d,则控制组件代理将重启,删除agent.network.config.yml文件以及/run/se-agent/agent_persistence_config_processed文件。此后,agent.network.config.yml文件将会被重新拉取 · 若为r,则控制组件代理将重启,并删除/run/se-agent/agent_persistence_config_processed文件 agent_persistence_config_processed文件将在以下两种场景下生成: · Agent首次安装完成,并成功下发RoCE配置和路由配置后,将生成该文件 · 服务器重启后,Agent进程启动前会恢复最近一次下发的RoCE配置和路由配置,恢复完成后将生成该文件 |
· 服务器接入VLAN网络时,支持使用AIDC Agent对宿主机进行同轨网络路由配置。
· 参数网卡的地址由系统分配,路由及规则由Agent指定,请勿随意修改,以避免出现路由及规则配置冲突,导致流量异常。
· 可使用如下命令快速配置和启动Agent:sudo ./install.sh --seIp 192.168.118.50 --saIp 192.168.118.50。
Agent启动时,会检查本地是否存在config/agent.network.config.yml文件(RoCE配置下发参数的配置文件)。
· 如果存在该文件,则以该配置文件加载运行,并下发参数网卡的RoCE配置。
· 如果不存在该文件,则会向SeerEngine-DC获取已配置的服务器网卡参数模板(可在SeerEngine-DC的RoCE策略详情页面中查看),并在本地生成agent.network.config.yml文件,以该配置文件加载运行,并下发参数网卡的RoCE配置。
正常Agent运行后,agent.network.config.yml文件就会在本地生成,如果一直未生成,请检查日志进行排错。
在控制组件页面上查看Agent运行状态。
图3-6 控制组件页面
· 服务器重启后,Agent会自动启动。
· 在Agent服务启动后,请勿删除对应的安装包解压的目录。
· 请勿随意删除agent.network.config.yml文件中的注释内容,必要时,可将注释打开以便修改配置参数。
· 根据现场实际需求修改配置文件中的配置参数后,需要在控制组件页面执行“重启Agent服务”操作才能使修改生效。
· 无论Agent是否在运行,一旦下发了RoCE配置,这些配置将会在开机时自动执行。
安装Agent后,请勿修改操作系统的hostname。
将AIDC Agent安装包SeerEngine_DC-version_AIDCAgent.zip,其中version为版本号,例如E7202,上传到所有服务器的指定目录,建议采用以下规范路径结构:
/<custom_directory>/SeerEngine_DC-${version}_AIDCAgent/
root@server1:~/SeerEngine_DC-E7202_AIDCAgent# unzip SeerEngine_DC-E7202_AIDCAgent.zip
root@server1:~/SeerEngine_DC-E7202_AIDCAgent# ll
总用量 227876
-rwxr-xr-x 1 root root 1033 7月 23 22:01 install.sh
-rwxr-xr-x 1 root root 1033 7月 23 20:48 SeerEngine_DC-E7202_AIDCAgent
-rw-r--r-- 1 root root 233317125 7月 23 16:58 SeerEngine_DC-E7202-AIDCAgent.zip
drwxr-xr-x 6 root root 4096 7月 23 22:01 U-Center-Agent-E7202
-rwxr-xr-x 1 root root 297 7月 23 22:01 uninstall.sh
若手动执行脚本启动时配置了可选参数,可跳过此步骤。
使用vi命令编辑config/agent.config.json文件。如果控制组件(dc)和分析组件(sa)分布在不同集群,请分别设置不同的dc service_ip和sa service_ip。请在dc service_ip字段中填写控制组件的北向业务虚IP,该IP将用于向控制组件上传GPU信息。
{
"agent": {
"roce_nic_config": "enable",
"route_config": "enable",
"gfs_port": "1191"
},
"dc": {
"service_ip": "192.168.10.100",
"server_port": 20851,
},
"sa": {
"service_ip": "192.168.12.23",
"server_port": 10051
}
}
表3-5 参数说明
|
参数 |
说明 |
|
agent_master_ip |
Master Agent所在服务器的IP。可选参数,未配置时,Agent将收集到的信息上送至控制组件 |
|
agent_master_port |
Master Agent所在服务器的端口,缺省值为7008。可选参数 |
|
roce_nic_config |
参数网卡RoCE配置自动下发开关,取值范围为enable或disable;缺省值为enable,即自动下发参数网卡RoCE配置 |
|
route_config |
路由及规则自动下发开关,取值范围为enable或disable;缺省值为enable,即自动下发路由及规则 |
|
gfs_port |
Agent与存储服务器建立心跳的目标端口,目前与存储服务器的协商值为1191。除非特殊情况请勿修改和删除 |
|
dc service_ip |
控制组件的北向业务虚IP |
|
dc server_port |
控制组件的北向业务请求端口,取值范围为1~65536的整数;缺省值为20851。可选参数 |
|
sa service_ip |
分析组件的北向业务虚IP |
|
sa server_port |
分析组件的WebSocket通信端口,缺省值为10051。可选参数 |
以root权限执行start_agent.sh脚本启动服务。根据agent_master_ip判断角色:
· 若agent_master_ip为本机IP,则以Master角色启动,Agent信息上报到控制组件。
· 若为其他IP,则以Worker角色启动,Agent信息先上报至Master,Master异常时上报至控制组件。
步骤如下:
(1) 开放防火墙端口
以firewalld为例,开放Master Agent所在服务器的端口(如7008):
root@server1:~/SeerEngine_DC-E7202_AIDCAgent# sudo firewall-cmd --zone=public --add-port=7008/tcp --permanent #7008为缺省端口号,请按实际配置替换为Master agent所在服务器的端口
root@server1:~/SeerEngine_DC-E7202_AIDCAgent# sudo firewall-cmd --reload
这个命令的作用是将TCP流量通过指定端口的访问权限添加到防火墙配置中,并保持该规则在防火墙重启后仍然有效。
(2) 启动Agent服务
在每台服务器上手动执行启动脚本。
root@server1:~/SeerEngine_DC-E7202_AIDCAgent# sudo ./install.sh --saIp 192.168.118.50 --seIp 192.168.118.51
· 服务器接入VLAN网络时,支持使用AIDC Agent对宿主机进行同轨网络路由配置。
· 参数网卡的地址由系统分配,路由及规则由agent指定,请勿随意修改,以避免出现路由及规则配置冲突,导致流量异常。
· 在Agent服务启动后,请勿删除对应的安装包解压的目录。
Agent启动时会检测本地是否存在RoCE配置文件:config/agent.network.config.yml。
· 如果存在该文件,则以该配置文件加载运行,并下发参数网卡的RoCE配置。
· 如果不存在该文件,则会向控制组件获取已配置的服务器网卡参数模板(可在控制组件的RoCE策略详情页面中查看),并在本地生成agent.network.config.yml文件,以该配置文件加载运行,并下发参数网卡的RoCE配置。
· 正常Agent运行后,agent.network.config.yml文件就会在本地生成,如果一直未生成,请检查日志进行排错。
· 请勿随意删除agent.network.config.yml文件中的注释内容,必要时,可将注释打开以便修改配置参数。
· 根据现场实际需求修改配置文件中的配置参数后,需要重启Agent才能使修改生效。
· 无论Agent是否在运行,一旦下发了RoCE配置,这些配置将会在开机时自动执行。
· 查看服务进程:在服务器上输入命令ps -ef | grep dc-agent | grep java,如显示进程信息则表示进程启动成功。
· 查看Agent角色:进程信息中的agent.role表示角色名称。
root@server1:~/SeerEngine_DC-E7202_AIDCAgent# ps -ef | grep dc-agent | grep java
root 18076 1 0 15:38 pts/0 00:00:20 java -jar -Xmx512m -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 dc-agent-1.0.0.jar --agent.role=master --dc.serviceIp=192.168.232.89
图3-7 控制组件页面
服务重启后,Agent会自动启动。
(1) 在控制组件AD-AIDC视图中,进入[监控>拓扑管理>智算中心拓扑>基础网络拓扑]页面,右键单击服务器图标,选择“服务器详情”,即可查看服务器的接入信息。
(2) 如果出现网络异常等情况,造成控制组件未获取到准确的GPU信息,可尝试在控制组件页面执行“重启Agent服务”操作。
此功能依赖于U-Center的IOM组件,请确保该组件已成功部署。
(1) 在[管理>基础资源管理>Agent管理]页面,单击列表中“Agent主机IP”链接,弹出Agent详情信息窗口,查看Agent主机IP、主机类型、安装路径和日志路径信息。
图3-8 Agent详情
(2) 单击列表中的“管理的资源”区段的图标,可进入该资源详情页面,查看服务器的监控概览、告警信息等。
图3-9 查看监控概览
升级主要涉及以下两个Agent组件:
· SeerEngine_DC AIDC Agent:用于控制组件和分析组件的Agent,支持通过控制组件页面升级或在服务器上手动升级。
· U-Center Agent:用于U-Center的Agent,随IOM组件包自动升级。
请根据具体Agent类型和实际运维需求,选择合适的升级方式,确保各组件平稳升级,配置和数据不丢失。
· Agent升级完成后,agent.config.json的配置参数需与升级前一致。
· 若在服务器后台通过命令行安装的Agent,升级时需先手动卸载,再进入控制组件页面安装新版本。
(1) 获取新的Agent软件安装包,软件包的名称格式为SeerEngine_DC-version-AIDCAgent.zip,其中version为软件包版本号。
(2) 登录控制组件后进入端侧管理页面。
(3) 选择需要升级Agent的服务器,单击<Agent管理>按钮,在下拉框中选择“升级”选项,并在弹出的对话框中配置相关参数。配置完成后单击<确定>按钮。
图3-10 为服务器升级Agent
若服务器为手工导入,且在对应模板中已配置 SSH 认证信息,则在页面上升级 Agent 时,将不再支持手动输入认证参数。
(4) Agent升级完成后,Agent状态将显示为正常。
图3-11 Agent状态
root@server1:~/SeerEngine_DC-E7202_AIDCAgent/SeerEngine_DC-E7202_AIDCAgent# sudo systemctl stop se-agent
root@server1:~/SeerEngine_DC-E7202_AIDCAgent/SeerEngine_DC-E7202_AIDCAgent# sudo ./stop_agent.sh
(2) 备份旧版本Agent。
回到上两级目录,使用cp -r命令完整备份旧版本安装目录。
root@server1:~/SeerEngine_DC-E7202_AIDCAgent/SeerEngine_DC-E7202_AIDCAgent# cd ../..
root@server1:~# cp -r SeerEngine_DC-E7202_AIDCAgent SeerEngine_DC-E7202_AIDCAgent_BAK
(3) 将新版本安装包上传至服务器目标目录下,例如新版本包名为SeerEngine_DC-E7202P02_AIDCAgent.zip,上传到新创建的SeerEngine_DC-E7202P02_AIDCAgent目录下。解压新版本安装包。
#在目标服务器创建版本化目录(建议路径):
root@server1:~# mkdir SeerEngine_DC-E7202P02_AIDCAgent
图3-12 #进入目标目录并解压安装包
root@server1:~# cd SeerEngine_DC-E7202P02_AIDCAgent
root@server1:~/SeerEngine_DC-E7202P02_AIDCAgent# unzip SeerEngine_DC-E7202P02_AIDCAgent.zip
#验证解压结果
root@server1:~/SeerEngine_DC-E7202P02_AIDCAgent# ll
总用量 227876
-rwxr-xr-x 1 root root 1033 7月 23 22:01 install.sh
-rwxr-xr-x 1 root root 1033 7月 23 20:48 SeerEngine_DC-E7202P02_AIDCAgent
-rw-r--r-- 1 root root 233317125 7月 23 16:58 SeerEngine_DC-E7202P02-AIDCAgent.zip
drwxr-xr-x 6 root root 4096 7月 23 22:01 U-Center-Agent-E7202
-rwxr-xr-x 1 root root 297 7月 23 22:01 uninstall.sh
解压后得到如下四个文件:
¡ SeerEngine_DC-E7202P02-AIDCAgent
¡ U-Center-Agent-E7202
¡ install.sh
¡ uninstall.sh
(4) 使用新版本文件覆盖旧版本,但保留旧版本config文件夹。
#覆盖主程序文件,排除config目录
root@server1:~/SeerEngine_DC-E7202P02_AIDCAgent# cd SeerEngine_DC-E7202P02_AIDCAgent
root@server1:~/SeerEngine_DC-E7202P02_AIDCAgent/SeerEngine_DC-E7202P02_AIDCAgent# rsync -av --exclude='config' ./ ../../SeerEngine_DC-E7202_AIDCAgent/SeerEngine_DC-E7202_AIDCAgent/
#返回上两级目录,覆盖安装脚本
root@server1:~/SeerEngine_DC-E7202P02_AIDCAgent/SeerEngine_DC-E7202P02_AIDCAgent# cd ../..
root@server1:~# cp -f SeerEngine_DC-E7202P02_AIDCAgent/install.sh SeerEngine_DC-E7202P02_AIDCAgent/uninstall.sh SeerEngine_DC-E7202_AIDCAgent/
(5) 启动Agent服务。
返回旧版本安装包父目录,执行安装脚本启动服务。
root@server1:~/SeerEngine_DC-E7202_AIDCAgent# sudo ./install.sh
(6) 查看当前运行的SeerEngine_DC AIDC Agent版本。
root@server1:~# ps -ef | grep java | grep dc-agent
root 2645 1 1 23:20 ? 00:00:20 java -jar -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./log/ -Dserver.port=7008 -Djava.library.path=lib dc-agent-1.0.0.jar --agent.role=worker --agent.masterIp=null --agent.masterPort=7008 --agent.version=E7202P02 --agent.deployPath=/opt/AIDCAgent/SeerEngine_DC-E7202-AIDCAgent --agent.multi=false
IOM组件包中的Agent组件(U-Center_UCP_Agent_version_platform.zip)升级后会自动升级U-Center-Agent。
(1) 登录控制组件后进入服务器管理页面。
(2) 选择需要卸载Agent的服务器,单击<Agent管理>按钮,在下拉框中选择“卸载”选项即可。
推荐在控制组件页面进行Agent卸载操作。这样,控制组件能够自动同步并清理对应的Agent数据,避免数据残留。如需在服务器后台卸载Agent,请按以下步骤操作。
(1) 登录服务器,执行如下命令卸载AIDC Agent:
root@server1:~# uninstall.sh
(2) 卸载完成后,需手动登录控制组件页面,删除相应的Agent数据,防止页面遗留无效信息。
图3-13 控制组件页面
(1) 不同服务器的系统名称不能相同,请排查是否满足要求,如存在相同的情况,请修改系统名称,修改完成后需要重启服务器。
root@server1:~# vi /etc/hostname
root@server1:~# reboot
(2) 在宿主机上安装LLDPD。
root@server1:~# apt install lldpd -y
root@server1:~# systemctl enable lldpd.service
root@server1:~# systemctl start lldpd.service
root@server1:~# systemctl status lldpd.service #查看LLDPD服务状态
请确保LLDP学习到的系统名称与服务器的系统名称一致。
(3) 安装unzip。
root@server1:~# apt install unzip -y
(4) 安装tar。
root@server1:~# apt install tar -y
建议先通过tar –version命令检查是否已安装,避免冗余操作。
(5) 在宿主机上安装lshw。
建议先使用sudo lshw命令检查lshw是否安装。如果已安装,会显示硬件信息;如果未安装,会提示命令未找到。
a. 通过如下命令安装lshw:
root@server1:~# sudo apt install lshw -y
b. 安装完成后,可以通过以下命令查看硬件信息:
sudo lshw
(1) 不同服务器的系统名称不能相同,请排查是否满足要求,如存在相同的情况,请修改系统名称,修改完成后需要重启服务器。
[root@server1 ~]# vi /etc/hostname
[root@server1 ~]# reboot
(2) 在宿主机上安装LLDPD。
[root@server1 ~]# yum install lldpd -y
[root@server1 ~]# systemctl enable lldpd.service
[root@server1 ~]# systemctl start lldpd.service
[root@server1 ~]# systemctl status lldpd.service #查看LLDPD服务状态
请确保LLDP学习到的系统名称与服务器的系统名称一致。
(3) 在宿主机上安装NetworkManager。
[root@server1 ~]# yum install NetworkManager -y
[root@server1 ~]# systemctl enable NetworkManager.service
[root@server1 ~]# systemctl start NetworkManager.service
[root@server1 ~]# systemctl status NetworkManager.service #查看NetworkManager服务状态
(4) 安装unzip。
[root@server1 ~]# yum install unzip -y
(5) 安装tar。
[root@server1 ~]# yum install tar -y
建议先通过tar –version命令检查是否已安装,避免冗余操作。
(6) 在宿主机上安装lshw。
建议先使用sudo lshw命令检查lshw是否安装。如果已安装,会显示硬件信息;如果未安装,会提示命令未找到。
a. 通过如下命令安装lshw。
[root@server1 ~]# yum install lshw -y
b. 安装完成后,可以通过以下命令查看硬件信息:
sudo lshw
安装Agent后,请勿修改操作系统的hostname。
(1) 将AIDC Agent安装包上传到K8s集群所有服务器的任意目录下,安装包名称格式为SeerEngine_DC-version_AIDCAgent-K8S.zip,其中version为版本号。
(2) 解压AIDC Agent安装包,进入解压后的目录。
¡ Ubuntu操作系统
root@server1:~# unzip SeerEngine_DC-E7301_AIDCAgent-K8S.zip
root@server1:~# cd SeerEngine_DC-E7301_AIDCAgent-K8S
root@server1:~/ SeerEngine_DC-E7301_AIDCAgent-K8S# ll
总用量 258708
-rw------- 1 root root 264911872 12月 25 2024 dc-agent-E7301.tar
-rwxr-xr-x 1 root root 3374 12月 25 2024 aidc-agent-deployment.yaml
¡ CentOS操作系统
[root@server1 ~]# unzip SeerEngine_DC-E7301_AIDCAgent-K8S.zip
[root@server1 ~]# cd SeerEngine_DC-E7301_AIDCAgent-K8S
[root@server1 SeerEngine_DC-E7301_AIDCAgent-K8S]# ll
总用量 258708
-rw------- 1 root root 264911872 12月 25 2024 dc-agent-E7301.tar
-rwxr-xr-x 1 root root 3374 12月 25 2024 aidc-agent-deployment.yaml
使用vi命令编辑aidc-agent-deployment.yaml文件,修改seIp和saIp。
…略…
chmod 777 -R /root/SE_Agent/ /root/UC_Agent/
/root/se-agent/data/persistence/agent-config-rc.sh
/root/SE_Agent/start_agent.sh --seIp 192.168.100.100 --sePort 20851 --saIp 192.168.100.101 --saPort 10051
cd /root/UC_Agent/Agent && ./install-tool -s_ip="192.168.100.100" -t_id="MQ==" -log="log/"
…略…
图4-1 编辑文件
表4-1 参数说明
|
长参数(推荐) |
短参数 |
说明 |
|
roce |
n |
参数网卡RoCE配置自动下发开关,取值范围为enable或disable;缺省值为enable,即自动下发参数网卡RoCE配置。可选参数 |
|
route |
r |
路由及规则自动下发开关,取值范围为enable或disable;缺省值为enable,即自动下发路由及规则。可选参数 |
|
saPort |
t |
分析组件的北向业务请求端口,取值范围为1~65535的整数;缺省值为10051。可选参数 |
|
saIp |
a |
分析组件的北向业务虚IP。必选参数 |
|
seIp |
e |
控制组件的北向业务虚IP。必选参数 |
|
s_ip |
|
IOM组件的北向业务虚IP。必选参数 |
|
sePort |
o |
控制组件的北向业务请求端口,取值范围为1~65535的整数;缺省值为20851。可选参数 |
|
allIp |
i |
控制组件和分析组件合一场景下,共用的北向IP地址 |
|
hwj |
w |
hwj安装路径,默认是/usr/local/neuware |
|
nv |
v |
NVIDIA依赖路径,用于导出NCCL、MPI、CUDA的路径 |
|
seConfig |
c |
· 若为d,则控制组件代理将重启,删除agent.network.config.yml文件以及/run/se-agent/agent_persistence_config_processed文件。此后,agent.network.config.yml文件将会被重新拉取 · 若为r,则控制组件代理将重启,并删除/run/se-agent/agent_persistence_config_processed文件 agent_persistence_config_processed文件将在以下两种场景下生成: · Agent首次安装完成,并成功下发RoCE配置和路由配置后,将生成该文件 · 服务器重启后,Agent进程启动前会恢复最近一次下发的RoCE配置和路由配置,恢复完成后将生成该文件 |
在将Agent从E71xx版本升级到E72xx及更高版本时,需要注意sePort端口号配置的问题。之前版本中,宿主机的/usr/data/se-agent/文件夹中sePort的默认端口号是30000。升级后,该端口号仍然保持为30000。如果不在升级过程中确认sePort和saPort的配置,可能会导致WebSocket连接建立失败。因此,建议在升级时手动将sePort和saPort设置为缺省值或相应的其他值。可以使用vi命令编辑yaml文件,将端口号设置为缺省值。
chmod 777 -R /root/se-agent/
/root/se-agent/data/persistence/agent-config-rc.sh
/root/se-agent/start_agent.sh --seIp 192.168.100.100 --sePort 20851 --saIp 192.168.100.101 --saPort 10051
…略…
根据宿主机环境选择Docker或Containerd导入镜像。
· 如果环境中未安装Harbor镜像仓库,则使用如下命令导入镜像。
¡ Ubuntu操作系统
root@server1:~/ SeerEngine_DC-E7301_AIDCAgent-K8S# docker load -i dc-agent-*.tar
¡ CentOS操作系统
[root@server1 SeerEngine_DC-E7301_AIDCAgent-K8S]# docker load -i dc-agent-*.tar
· 如果环境中已安装Harbor镜像仓库,执行如下操作:
a. 登录Docker Hub或目标仓库。
docker login
按照提示输入用户名和密码进行登录。
b. 加载Docker镜像的tar包。
docker load -i dc-agent-*.tar
使用docker load命令将以tar压缩格式打包的Docker镜像文件加载到本地Docker引擎。其中,-i选项用于指定要加载的tar包文件名。加载后,镜像将会在本地Docker引擎的镜像存储中可用,可以通过docker images命令来验证加载结果。
c. 为镜像添加标签,以便将其推送到目标仓库。
docker tag local-image:tag username/repository:tag
其中,local-image:tag是本地镜像的标签,username/repository:tag是目标仓库中镜像的标签。
d. 推送镜像到目标仓库。
docker push username/repository:tag
e. 因为镜像tag的修改,需修改aidc-agent-deployment.yaml文件中image字段为Harbor仓库镜像标签。
· Ubuntu操作系统
root@server1:~/ ctr -n k8s.io images import dc-agent-E7301.tar
· CentOS操作系统
[root@server1 ~]# ctr -n k8s.io images import dc-agent-E7301.tar
(1) 待集群中所有节点都执行完上述操作后,执行如下命令拉起容器。
¡ Ubuntu操作系统
root@server1:~/ SeerEngine_DC-E7301_AIDCAgent-K8S# kubectl apply -f aidc-agent-deployment.yaml
¡ CentOS操作系统
[root@server1 SeerEngine_DC-E7301_AIDCAgent-K8S]# kubectl apply -f aidc-agent-deployment.yaml
(2) 如果agent_master_ip是本服务器网卡上的IP就以master角色启动,否则以worker角色启动。
¡ 以master角色启动时,Agent会将收集到的信息上送至SeerEngine-DC。
¡ 以worker角色启动时,Agent会将收集到的信息优先上送至master。master异常时,agent会将收集到的信息上送至SeerEngine-DC。
· 如果不想在某个节点上部署AIDC Agent,可通过设置污点,执行如下命令kubectl label nodes <node-name> se-agent-switch=off。
· 服务器接入VLAN网络时,支持使用AIDC Agent对宿主机进行同轨网络路由配置。
· 参数网卡地址由系统分配,路由及规则由Agent指定,请勿随意修改以避免出现路由及规则配置冲突导致流量异常。
Agent启动时,会检查宿主机是否存在/usr/data/se-agent/config/agent.network.config.yml文件(RoCE配置下发参数的配置文件)。
· 如果存在该文件,则以该配置文件加载运行,并下发参数网卡的RoCE配置。
· 如果不存在该文件,则会向SeerEngine-DC获取已配置的服务器网卡参数模板(可在SeerEngine-DC的RoCE策略详情页面中查看),并在本地生成agent.network.config.yml文件,以该配置文件加载运行,并下发参数网卡的RoCE配置。
正常Agent运行后,agent.network.config.yml文件就会在宿主机生成,如果一直未生成,请检查日志进行排错。
(1) 通过如下命令,查询Agent运行状态。
¡ Ubuntu操作系统
root@server1:~/ SeerEngine_DC-E7301_AIDCAgent-K8S# kubectl get pod -n addc-roce
NAME READY STATUS RESTARTS AGE
aidc-agent 1/1 Running 0 10s
¡ CentOS操作系统
[root@server1 SeerEngine_DC-E7301_AIDCAgent-K8S]# kubectl get pod -n addc-roce
NAME READY STATUS RESTARTS AGE
aidc-agent 1/1 Running 0 10s
(2) 在控制组件页面上查看Agent运行状态。
图4-2 控制组件页面
· 请勿随意删除agent.network.config.yml文件中的注释内容。如果需要修改配置参数,可将注释取消后进行修改。
· 请根据实际需求修改配置文件中的参数。修改后,需要在控制组件页面执行“重启Agent服务”操作才能生效。
· 无论Agent是否在运行,一旦下发了RoCE配置,这些配置将会在容器启动时自动执行。
(1) 在控制组件AD-AIDC视图中,进入[监控>拓扑管理>智算中心拓扑>基础网络拓扑]页面,右键单击服务器图标,选择“服务器详情”,即可查看服务器的接入信息。
(2) 如果出现网络异常等情况,造成控制组件未获取到准确的GPU信息,可尝试在控制组件页面执行“重启Agent服务”操作。
严禁进入容器环境执行sudo ./start_agent.sh命令重启,该操作会绕过配置加载机制,导致预置环境变量丢失、动态注入的配置失效等严重后果。
(1) 可使用cp -r命令备份当前版本(例如:cp -r SeerEngine_DC-E7301_AIDCAgent-K8S SeerEngine_DC-E7301_AIDCAgent-K8S_BAK),以便版本回退时使用。
(2) 删除旧版本Pod。
kubectl delete -f se-agent-deployment.yaml
(3) 解压新版本的AIDC Agent安装包,进入解压后的目录,修改aidc-agent-deployment.yaml中start_agent的参数。具体操作说明请参见“2. 配置Agent参数”。
(4) 重新导入镜像文件,具体操作说明请参见“3. 加载镜像”。
(5) 执行kubectl apply -f aidc-agent-deployment.yaml,观察容器运行状态。
(1) 执行kubectl delete -f aidc-agent-deployment.yaml卸载容器。
(2) 若还需要删除镜像,执行如下步骤:
Docker环境:
a. 查询镜像
docker images | grep agent
dc-agent E7301 08eba7e1138d Less than a second ago 262MB
matrix-registry.h3c.com:8088/dc-agent E7301 08eba7e1138d Less than a second ago 262MB
b. 使用 docker rmi -f 命令删除镜像
docker rmi -f 08eba7e1138d
Containerd环境:
a. 查询镜像
ctr images list | grep agent
REF TYPE DIGEST SIZE PLATFORM LABELS
docker.io/library/dc-agent:E7301 application/vnd.docker.distribution.manifest.v2+json sha256:23f8522ac93435357d1d0c0b2b196fcc773d8b3ef197c3f18c503132adc15677 252.7 MiB linux/amd64 -
b. 删除指定镜像
ctr images remove docker.io/library/dc-agent:E7301
(3) 若还需要删除本地数据,执行如下命令:
sudo rm -rf /usr/data/se-agent
(4) 若还需要删除环境变量,执行如下步骤:
a. 编辑环境变量文件
使用vi编辑器打开/etc/profile文件:
sudo vi /etc/profile
b. 查找并删除agent_id变量
在文件中查找agent_id相关的行,例如:
export agent_id=xxxx
找到后,按dd删除该行。
c. 保存并退出
按Esc键退出编辑模式。
输入:wq保存并退出。
(5) 若还需要删除agent服务,执行如下步骤:
a. 停止服务
停止正在运行的se-agent服务:
sudo systemctl stop se-agent.service
b. 禁用服务
禁用服务,防止系统重启后自动启动:
sudo systemctl disable se-agent.service
c. 删除服务文件
删除/etc/systemd/system/路径下的se-agent.service文件:
sudo rm /etc/systemd/system/se-agent.service
d. 重新加载systemd配置
删除服务文件后,重新加载 systemd 配置以确保更改生效:
sudo systemctl daemon-reload
(1) 确保已安装CNToolkit,并知道其安装路径。
libcndev.so是CNToolkit的一个重要库文件,专门用于提供与寒武纪设备交互的接口。
(2) 在终端中执行如下命令,创建libcndev.so源文件路径的超链接至/usr/lib。
sudo ln -s /安装cntoolkit后的库路径/libcndev.so /usr/lib/libcndev.so
(3) 重新启动Agent服务。
sudo ./restart.sh
请将“/安装cntoolkit后的库路径”替换为实际的CNToolkit安装路径。例如,如果实际路径是/opt/cambricon,那么命令应该是:
sudo ln -s /opt/cambricon/libcndev.so /usr/lib/libcndev.so
“/安装cntoolkit后的库路径/libcndev.so”代表源文件路径,即libcndev.so库文件的实际位置,“/usr/lib/libcndev.so”则是目标路径,将在这里创建符号链接,指向源文件。
(1) 确保已安装寒武纪驱动程序和CNToolkit,并知道其安装路径,例如/usr/local/neuware/。
(2) 重新启动Agent服务,并指定正确的工作路径。
sudo ./restart.sh -w /usr/local/neuware/bin:/usr/local/cuda/bin:/usr/mpi/gcc/openmpi-4.1.7a1/bin:/usr/nccl-tests/build -v /usr/local/neuware/lib64:/usr/local/neuware/lib:/usr/mpi/gcc/openmpi-4.1.7rc1/lib
在执行英伟达SOFTWARE测试时,若出现以下报错:
Persistence mode for GPU 7 is disabled. Enable persistence mode by running "nvidia-smi -i <gpuId> -pm 1" as root.
此错误表示当前GPU未启用持久化模式(Persistence Mode),可能导致测试中断或性能不稳定。可通过如下方式处理:
以root权限或使用sudo执行以下命令,立即启用指定GPU的持久模式:
sudo nvidia-smi -i 1 -pm 1 # 启用GPU 1的持久模式
表5-1 参数说明
|
参数 |
说明 |
|
-i <gpuId> |
指定目标GPU的物理索引(0,1,2…),例如-i 1(操作第2块GPU) |
|
-pm 1 |
开启持久模式(-pm 0为关闭) |
表5-2 持久化模式的作用与影响
|
优点 |
缺点 |
|
减少GPU初始化延迟,提升任务响应速度 |
GPU空闲时仍维持较高功耗(约5-10W) |
|
避免因电源状态切换导致的任务中断(如CUDA程序卡死) |
长期启用可能略微增加散热压力(但通常可忽略) |
Ubuntu 22.04默认提供的ethtool版本为5.16。在使用命令ethtool -m eth0查询光模块信息时,只会显示16进制的原始数据,内容难以阅读。这是由于系统自带的ethtool版本较旧或与网卡驱动不适配,导致无法以友好的格式呈现光模块详细信息。
root@css-g86-032:~# ethtool -m eth0
Offset Values
------ ------
0x0000: 19 50 00 07 0c 00 00 00 00 00 00 00 00 00 00 00
0x0010: 00 00 39 e3 7e a9 00 00 38 a6 00 00 00 00 00 00
0x0020: 00 00 00 ff ff ff ff 00 00 01 00 00 06 00 00 00
0x0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0050: 00 00 00 00 00 01 50 1f 44 01 4e 1e 22 05 4c 1d
0x0060: 11 0f ff 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
驱动自带的ethtool与网卡驱动版本兼容性更好,能够正确解析和输出光模块的详细信息。可以通过以下步骤进行修复:
(1) 确认网卡驱动已正常安装。
(2) 找到正确的ethtool工具。
¡ 对于迈络思网卡,ethtool工具通常位于网卡驱动的安装目录:/opt/mellanox/ethtool/sbin/ethtool
¡ 对于云脉网卡,ethtool工具通常位于驱动安装包中的scripts文件夹。
root@test:~/mcr_ubuntu_20.04_x86_rel_2412_rc13.1/scripts# pwd
/root/mcr_ubuntu_20.04_x86_rel_2412_rc13.1/scripts
root@test:~/mcr_ubuntu_20.04_x86_rel_2412_rc13.1/scripts# ll
total 38372
drwxr-xr-x 2 root root 4096 Apr 17 14:53 ./
drwxr-xr-x 6 root root 4096 Apr 25 10:45 ../
-rwxr-xr-x 1 root root 313 Apr 17 14:33 cpufreq.sh*
-rwxr-xr-x 1 root root 1684112 Apr 17 14:53 ethtool*
-rwxr-xr-x 1 root root 7832 Apr 17 14:53 ibdev2netdev*
-rwxr-xr-x 1 root root 5044784 Apr 17 14:53 nic_check*
-rwxr-xr-x 1 root root 15 Apr 17 14:53 README.md*
-rwxr-xr-x 1 root root 2939 Apr 17 14:53 show_gids*
-rwxr-xr-x 1 root root 3416 Apr 17 14:53 show_nic_topo*
-rwxr-xr-x 1 root root 252 Apr 17 14:53 xsc_dump_regs*
-rwxr-xr-x 1 root root 3111424 Apr 17 14:53 xsc_monitor*
-rwxr-xr-x 1 root root 8523442 Apr 17 14:53 xsc_reg_dump_andes*
-rwxr-xr-x 1 root root 8892418 Apr 17 14:53 xsc_reg_dump_diamond*
-rwxr-xr-x 1 root root 5051951 Apr 17 14:33 yundump-aarch64*
-rwxr-xr-x 1 root root 6931381 Apr 17 14:33 yundump-x86_64*
(3) 将该目录下的ethtool文件拷贝覆盖到系统目录。
cp /opt/mellanox/ethtool/sbin/ethtool /usr/sbin/
(4) 再次执行ethtool -m eth0,即可获得可读性更好的光模块详细信息。
DCGM的版本必须为4.1.1。如果已部署了其他版本,例如3.9.3,请先卸载再安装。
Data Center GPU Manager(DCGM)4.1.1是英伟达开发的针对数据中心GPU的管理工具,用于实时监控、配置管理和健康诊断。其功能包括收集GPU遥测数据(如温度、功耗、显存使用率及计算利用率)、调整GPU运行参数,并支持NVSwitch等硬件组件。
以Ubuntu操作系统为例,安装步骤如下:
(1) 获取如下文件,并放在同一目录(例如 :~/dcgm_install):
¡ 核心包(core):datacenter-gpu-manager-4-core_4.1.1_amd64.deb
¡ 专有功能包(proprietary):datacenter-gpu-manager-4-proprietary_4.1.1_amd64.deb
¡ CUDA支持包(以cuda12为例):datacenter-gpu-manager-4-cuda12_4.1.1_amd64.deb
(2) 安装核心包(core)。
cd ~/dcgm_install
sudo dpkg -i datacenter-gpu-manager-4-core_4.1.1_amd64.deb
(3) 安装专有功能包(proprietary)。
提供NVML高级监控等闭源功能。
sudo dpkg -i datacenter-gpu-manager-4-proprietary_4.1.1_amd64.deb
(4) 安装 CUDA支持包(以cuda12为例)。
sudo dpkg -i datacenter-gpu-manager-4-cuda12_4.1.1_amd64.deb
(5) 安装完成后,查看版本信息。
dcgmi --version
dcgmi version: 4.1.1
若Agent已部署完成,需要重启Agent才能生效。
CUTLASS(CUDA Templates for Linear Algebra Subroutines)是英伟达开发的开源库,专为GPU加速的高效矩阵计算设计。
核心功能:
· 优化矩阵乘法(GEMM)和卷积(CONV)运算,是神经网络训练/推理的关键操作。
· 支持多种数值精度(FP32、FP16、TF32、FP8等)。
· 提供模块化、可定制化的模板,允许开发者针对特定GPU架构优化性能。
安装步骤如下:
(1) 获取CUTLASS和googletest开源库,并下载zip包到服务器的同一目录下。
¡ CUTLASS 开源地址:GitHub(NVIDIA/CUTLASS)
¡ googletest开源地址:GitHub(google/googletest)
图6-1 CUTLASS 开源地址
图6-2 googletest开源地址
(2) 解压缩ZIP文件。
unzip cutlass-main.zip
图6-3 解压cutlass-main
unzip googletest-main.zip
图6-4 解压googletest-main
(3) 配置编译选项,安装CMake软件。
a. 配置编译选项。
root@ubuntu62:~# cd /root/zcf/cutlass-main/cmake
root@ubuntu62:/home/cutlass-main/cmake# vi googletest.cmake
图6-5 指定googletest路径
b. 安装CMake软件。
root@ubuntu62:~# sudo apt install cmake
root@ubuntu62:~# cmake --version #查看CMake版本号
(4) 查询CUDA版本号。
图6-6 CUDA版本号为12.4
(5) 根据GPU型号确定计算能力,例如英伟达A100的计算能力为8.0。或者通过如下命令查询GPU卡的计算能力。
nvidia-smi --query-gpu=name,compute_cap --format=csv
表6-1 典型GPU型号、SM版本与计算能力的关系
|
计算能力 |
SM版本 |
架构 |
典型GPU型号 |
|
7.0 |
sm_70 |
Volta |
V100 |
|
8.0 |
sm_80 |
Ampere |
A100, A30 |
|
8.6 |
sm_86 |
Ampere |
RTX 3090, RTX A6000 |
|
8.9 |
sm_89 |
Ada Lovelace |
RTX 4090, L40 |
|
9.0 |
sm_90 |
Hopper |
H100, H200 |
(6) 进行软件编译。
a. 创建构建目录和配置CMake项目。其中需要指定CUDA编译器(nvcc)的目标架构和CUDA Toolkit的安装路径。
root@ubuntu62:~# cd /root/zcf/cutlass-main
root@ubuntu62:~/root/zcf/cutlass-main# mkdir build
root@ubuntu62:~/root/zcf/cutlass-main# cd build/
root@worker12:/zcf/cutlass-main/build# cmake -DCUTLASS_NVCC_ARCHS=’80’ -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.4 --debug-output
CMake参数“DCUTLASS_NVCC_ARCHS”的指定方法:
当服务器GPU混装(例如部分GPU为Ampere架构(sm_80),部分为Hopper架构(sm_90)),使用逗号分隔不同架构的SM版本(例如80,90)。
命令示例:cmake .. -DCUTLASS_NVCC_ARCHS=’80,90’
图6-7 创建构建目录和配置CMake项目
b. 使用make命令进行编译。
root@worker12:/zcf/cutlass-main/build# make -j 12
图6-8 编译
(7) 编译完成后,检查目标程序。
root@ubuntu62:~# cd /root/zcf/cutlass-main/build/tools/profiler
root@worker12:/zcf/cutlass-main/build/tools/profiler# ll
cutlass_profiler即为目标文件,用于CUTLASS的性能分析。
图6-9 cutlass_profiler目标文件
(8) 请将cutlass_profiler文件的所在路径,添加到se-agent安装路径下的config文件夹中的export.dependence.path.json文件中。或在Agent服务页面的高级参数配置中进行修改,具体参数说明请参见表3-2。完成配置后,重启Agent使设置生效。
export.dependence.path.json
{
"PATH": "/usr/local/neuware/bin:/usr/local/cuda/bin:/usr/mpi/gcc/openmpi-4.1.7a1/bin:/usr/nccl-tests/build:/root/zcf/cutlass-main/build/tools/profiler",
"LD_LIBRARY_PATH": "/usr/local/neuware/lib64:/usr/local/neuware/lib:/usr/mpi/gcc/openmpi-4.1.7rc1/lib"
}
在部署基础压力工具前,需预先安装配套驱动程序。请参见光合开发者社区发布的版本兼容性说明,安装指定版本的驱动组件。
图6-10 hyqual_readme.md
本章节以安装HyQual 2.2.6为例,请根据实际DCU型号选择对应的HyQual版本。
(1) 下载安装包
访问光合开发者社区,根据实际DCU型号选择匹配的HyQual版本(本示例为hyqual-v2.2.6.tar.bz2)。
图6-11 基础压力工具下载
(2) 解压安装包
将安装包上传至目标服务器(如/opt目录)。执行解压命令:
cd /opt # 切换到安装目录
tar -xvf hyqual-v2.2.6.tar.bz2 # 解压后生成目录 hyqual-v2.2.6
图6-12 解压安装包
(3) 将驱动文件和hyqual所在路径添加至se-agent安装路径下config文件夹中的export.dependence.path.json文件,或在Agent服务页面的高级参数配置中进行修改,具体参数说明请参见表3-2。完成配置后,重启Agent使设置生效。
export.dependence.path.json
{
"PATH": "/usr/local/neuware/bin:/usr/local/cuda/bin:/usr/mpi/gcc/openmpi-4.1.7a1/bin:/usr/nccl-tests/build:/opt/dtk-24.04.3/bin/hy-smi:/opt/hygon/hyqual/hyqual-v2.2.6",
"LD_LIBRARY_PATH": "/usr/local/neuware/lib64:/usr/local/neuware/lib:/usr/mpi/gcc/openmpi-4.1.7rc1/lib"
}
(1) 安装MindCluster ToolBox
访问昇腾社区,按照社区提供的安装指南下载并安装MindCluster ToolBox工具。
该工具为Ascend DMI提供必要的运行环境与管理功能。
(2) 配置依赖路径
方法一:手动编辑配置文件
将驱动文件及算子库的根目录路径添加到export.dependence.path.json配置文件中,使Ascend DMI能够正确加载相关依赖。
a. 进入se-agent安装路径下的config文件夹。
b. 使用文本编辑器打开export.dependence.path.json文件:
bash
vim export.dependence.path.json
c. 在文件中添加或更新以下内容(请根据实际安装路径调整)。
export.dependence.path.json
{
"PATH": "/usr/local/Ascend/ascend-toolkit/latest/bin:/usr/local/Ascend/ascend-toolkit/latest/compiler/ccec_compiler/bin:/usr/local/Ascend/ascend-toolkit/latest/tools/ccec_compiler/bin:/opt/jdk8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/Ascend/toolbox/latest/Ascend-DMI/bin",
"LD_LIBRARY_PATH": "/usr/local/Ascend/ascend-toolkit/latest/tools/aml/lib64:/usr/local/Ascend/ascend-toolkit/latest/tools/aml/lib64/plugin:/usr/local/Ascend/ascend-toolkit/latest/lib64:/usr/local/Ascend/ascend-toolkit/latest/lib64/plugin/opskernel:/usr/local/Ascend/ascend-toolkit/latest/lib64/plugin/nnengine:/usr/local/Ascend/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe/op_tiling/lib/linux/aarch64:/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver::/usr/local/dcmi:/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/driver",
"ASCEND_OPP_PATH": "/usr/local/Ascend/ascend-toolkit/latest/opp"
}
方法二:通过控制组件的Agent服务页面配置
d. 登录控制组件后进入端侧管理页面。
表6-2 端侧管理页面路径说明
|
视图名称 |
页面路径 |
|
AD-DC |
自动化>数据中心网络>RoCE网络>端侧管理>服务器管理 |
|
AD-AIDC |
管理>端网管理>端侧管理>服务器管理 |
e. 勾选一个或多个服务器后,单击<Agent管理>按钮,打开Agent服务管理页面。
f. 在高级参数配置中,请参见表3-2的参数说明,添加或修改PATH、LD_LIBRARY_PATH、ASCEND_OPP_PATH等依赖路径,并保存配置。
(3) 重启Agent服务以使设置生效。
如果使用博通网卡,需要安装Broadcom BCMCD网卡固件升级软件包。
部署步骤如下:
(1) 获取Broadcom BCMCD网卡的固件升级程序(如nvmUpgrade_xxx_H3C_Vxx_xx.tar.gz)。
(2) 解压源码包。
tar -zxvf nvmUpgrade_234.1.124.0b_H3C_V2_20250911.tar.gz
(3) 进入源码目录。
root@ubuntu58-164:/home/nvmUpgrade_234.1.124.0b_H3C_V2_20250911/utils/roce_tools# ll
total 384
drwxr-xr-x 2 root root 4096 Dec 12 17:50 ./
drwxr-xr-x 5 root root 4096 Sep 8 08:08 ../
-rwxr-xr-x 1 root root 88344 Jan 10 2025 bnxtlist.aarch64*
-rwxr-xr-x 1 root root 53024 Jan 10 2025 bnxtlist.x86_64*
-rw-r--r-- 1 root root 36579 Jan 10 2025 brcm_list_dev.c
-rwxr-xr-x 1 root root 5244 Oct 21 2024 ibdev2netdev*
-rwxr-xr-x 1 root root 494 Oct 21 2024 Makefile*
-rwxr-xr-x 1 root root 81904 Jan 10 2025 rdma_monitor.aarch64*
-rwxr-xr-x 1 root root 39777 Jan 10 2025 rdma_monitor.c*
-rwxr-xr-x 1 root root 54976 Jan 10 2025 rdma_monitor.x86_64*
-rw-r--r-- 1 root root 209 Oct 21 2024 README.txt
-rwxr-xr-x 1 root root 6195 Oct 21 2024 show_gids.c*
(4) 根据README文件中的说明,执行make clean && make install命令。
root@ubuntu58-163:/home/nvmUpgrade_234.1.124.0b_H3C_V2_20250911/utils/roce_tools# cat README.txt
Please install bnxtqos to /usr/local/bin first.
make clean
make && make install
(5) 验证安装结果。
root@ubuntu58-163:~# bnxtlist -o
============================================================================================================================
IB INDEX GID MSIX IPv4 Ver NET Status
------------------------------------------------------------------------------------------------------------------
rocep157s0 3 0000:0000:0000:0000:0000:ffff:6e01:0181 63 110.001.001.129 RoCEv2 ens15np0 ACTIVE
------------------------------------------------------------------------------------------------------------------
rocep159s0 3 0000:0000:0000:0000:0000:ffff:6e01:01a1 63 110.001.001.161 RoCEv2 ens16np0 ACTIVE
------------------------------------------------------------------------------------------------------------------
rocep175s0 3 0000:0000:0000:0000:0000:ffff:6e01:01c1 63 110.001.001.193 RoCEv2 ens17np0 ACTIVE
------------------------------------------------------------------------------------------------------------------
rocep177s0 3 0000:0000:0000:0000:0000:ffff:6e01:01e1 63 110.001.001.225 RoCEv2 ens18np0 ACTIVE
------------------------------------------------------------------------------------------------------------------
rocep26s0 3 0000:0000:0000:0000:0000:ffff:6e01:0141 63 110.001.001.065 RoCEv2 ens13np0 ACTIVE
------------------------------------------------------------------------------------------------------------------
rocep28s0 3 0000:0000:0000:0000:0000:ffff:6e01:0161 63 110.001.001.097 RoCEv2 ens14np0 ACTIVE
------------------------------------------------------------------------------------------------------------------
rocep45s0 3 0000:0000:0000:0000:0000:ffff:6e01:0101 63 110.001.001.001 RoCEv2 ens11np0 ACTIVE
------------------------------------------------------------------------------------------------------------------
rocep47s0 3 0000:0000:0000:0000:0000:ffff:6e01:0121 63 110.001.001.033 RoCEv2 ens12np0 ACTIVE
------------------------------------------------------------------------------------------------------------------
rocep61s0f0 1 0000:0000:0000:0000:0000:ffff:d400:3aa3 128 212.000.058.163 RoCEv2 ens23f0 ACTIVE
------------------------------------------------------------------------------------------------------------------
在对昆仑芯XPU进行深度性能测试前,需要完成一系列基础软件与运行环境的部署。整体思路是:
(1) 安装XPU容器套件(libxpu-container与xpu-container-toolkit),为Docker容器访问XPU设备提供运行时支持。
(2) 通过配置Docker Runtime,使容器默认使用XPU Runtime。
(3) 以容器方式部署DCXM(Data Center XPU Manager),实现对XPU设备的监控和性能数据采集,为后续深度性能测试提供基础支撑。
XPU容器套件主要包含两部分:
· libxpu-container:提供XPU容器运行所需的基础库和工具。
· xpu-container-toolkit:提供与Docker集成的XPU Runtime工具链。
从官方地址下载对应版本的安装包(示例版本如下):
· libxpu-container:
· xpu-container-toolkit:
下载完成后,将压缩包上传或放置到目标服务器,并解压到指定目录。
(1) 进入解压后的libxpu-container安装目录,例如:
root@node5:~/dcxm/lib_xpu_container_1.0.2-1/ubuntu22.04/amd64# ll
total 1216
drwxr-xr-x 2 1001 1002 4096 Dec 9 2024 ./
drwxr-xr-x 4 1001 1002 4096 Dec 9 2024 ../
-rw-r--r-- 1 1001 1002 992406 Dec 9 2024 libxpu-container1_1.0.2-1_amd64.deb
-rw-r--r-- 1 1001 1002 161250 Dec 9 2024 libxpu-container1-dbg_1.0.2-1_amd64.deb
-rw-r--r-- 1 1001 1002 50290 Dec 9 2024 libxpu-container-dev_1.0.2-1_amd64.deb
-rw-r--r-- 1 1001 1002 21104 Dec 9 2024 libxpu-container-tools_1.0.2-1_amd64.deb
(2) 执行命令进行安装。
$ sudo apt-get install ./libxpu-container-tools_1.0.2-1_amd64.deb
$ sudo apt-get install ./libxpu-container1_1.0.2-1_amd64.deb
(1) 进入xpu-container-toolkit对应目录,例如:
root@node5:~/dcxm/xpu_container_1.0.4-1/ubuntu22.04/amd64# ll
total 4736
drwxr-xr-x 2 460722 100000 4096 Apr 8 2025 ./
drwxr-xr-x 3 460722 100000 4096 Apr 8 2025 ../
-rw-r--r-- 1 460722 100000 4839086 Apr 8 2025 xpu-container-toolkit_1.0.4-1_amd64.deb
(2) 执行命令进行安装。
$ sudo apt-get install ./ xpu-container-toolkit_1.0.4-1_amd64.deb
完成XPU容器套件安装后,需要将Docker的默认Runtime切换为XPU Runtime,使后续运行的容器能够自动识别并使用XPU设备。
执行以下命令,将XPU Runtime 配置为Docker 默认运行时。
sudo xpu-ctk runtime configure --set-as-default
配置完成后,重启Docker服务使配置生效。
sudo systemctl restart docker
DCXM(Data Center XPU Manager)是昆仑芯数据中心XPU管理器,用于对XPU设备进行统一管理与监控。通过容器方式部署DCXM Exporter,可以采集XPU设备的状态、性能数据,并与监控系统对接。
Docker镜像压缩包示例地址:
https://klx-sdk-release-public.su.bcebos.com/xre/component/dcxm-exporter/1.0.0.1/dcxm-exporter-ubuntu20.04_1.0.0.1.tar.gz
该压缩包解压后目录结构示例:
├── dcxm-exporter-ubuntu20.04.tar.gz # dcxm-exporter 镜像文件
├── KUNLUN-DCXM-Exporter-Dashboard-1_0.json # Grafana Dashboard 模板
├── run_dcxm_exporter.sh # 状态监控运行脚本
└── version.txt # 版本说明
(1) 在宿主机上执行如下命令,解压下载的tar包
tar -zxvf dcxm-exporter-ubuntu20.04_*.tar.gz
(2) 进入解压后的目录
cd dcxm-exporter-ubuntu20.04_*
(3) 加载dcxm-exporter镜像
docker load -i dcxm-exporter-ubuntu20.04.tar.gz
可以通过docker images获取镜像版本号image_version。具体查看命令行如:
docker images | grep dcxm-exporter-ubuntu20.04
(4) 运行docx-exporter服务
docker run -d -e CXPU_VISIBLE_DEVICES=all --cap-add SYS_ADMIN -p 0.0.0.0::9400 --name "${USER}-dcxm-exporter" dcxm-exporter-ubuntu20.04:${image_version}
参数说明如下:
¡ CXPU_VISIBLE_DEVICES:用于指定容器内可见的XPU设备编号。
- 设置为特定编号(如0,1)表示只挂载部分XPU
- 设置为all表示挂载所有XPU到容器内
¡ cap-add SYS_ADMIN:为容器增加必要的系统管理能力,以便采集底层硬件信息。
¡ p 0.0.0.0::9400:将容器内9400端口映射到宿主机随机端口,用于导出监控指标。
¡ ${image_version}:替换成查询到的镜像版本号。
使用以下命令检查容器状态:
docker ps |grep dcxm
df203c161d72 dcxm-exporter-ubuntu20.04:1.0.0.1 "/usr/local/dcxm/dcx…" 11 days ago Up 11 days root-dcxm-exporter
容器处于Up状态,说明DCXM Exporter已正常运行,可以对接监控系统进行数据采集和可视化。
· 在使用htvs工具前,需要确认X系列GPU驱动已正确加载。例如,在Ubuntu系统中,可检查以下目录下是否存在mars.ko文件:/lib/modules/5.4.0-xxx-generic/extra/。
· 执行htvs工具命令需要root权限,请使用具有root权限的账号或通过sudo执行。
安装htvs工具(以白牌版为例,标准版mxvs同理)。
(1) 安装FUSE依赖。
htvs基于AppImage封装运行,需要系统已正确安装FUSE。
以Ubuntu为例,可通过以下命令检查是否已安装 FUSE 用户空间工具:
dpkg -l | grep fuse
如未安装,可执行以下命令进行安装:
sudo apt-get install fuse
(2) 将htvs文件放置到系统可执行路径中,确保具有执行权限,并将其所在目录添加到系统的 PATH 环境变量中,即可直接运行。
|
术语/缩略语 |
全称 |
说明 |
|
AppImage |
- |
一种将应用及其依赖打包为单一可执行文件的应用分发格式 |
|
FUSE |
Filesystem in Userspace |
一种面向类 Unix 操作系统的用户态文件系统接口,允许在用户空间实现文件系统功能 |
|
htvs |
HPC Tool Validation Suite |
Mars 验收测试套件,用于对 X 系列 GPU 进行性能与稳定性相关测试 |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
