01-正文
本章节下载: 01-正文 (602.81 KB)
目 录
5.1 在寒武纪GPU环境中,如果在运行Agent时出现UnsatisfiedLinkError错误,并提示找不到“libcndev.so”库,如何处理?
5.2 在寒武纪GPU环境中,如果在运行Agent时出现错误,提示找不到cn相关库或者找不到cn相关命令,如何处理?
AIDC Agent用于安装在数据中心网络中的GPU/存储服务器上,安装完成后,对数据中心的控制组件(SeerEngine-DC)和分析组件提供服务。
· 与控制组件的交互
AIDC Agent能够自动推送服务器上的GPU和网卡信息至控制组件。基于这些信息,控制组件可以生成服务器接入详情,展示网卡和GPU的连接关系,并自动化配置网络参数,包括路由(route)、规则(rule)和RoCE网卡设置。
· 与分析组件的交互
AIDC Agent支持将GPU、网卡、光模块、文件系统等关键信息发送到分析组件。它还能执行多项检查,包括GPU状态、网卡状态、网络流量、网络配置和性能分析等。
|
服务器型号 |
硬件要求 |
|
H3C R5500G6 H3C R5500G5 H3C R5300G6 H3C R5300G5 |
CPU架构:x86_64 GPU卡类型:Nvidia A100、Nvidia H800、昆仑芯R300/昆仑三代P800、天数MR-V100、天数BI-V150、沐曦MXC500、寒武纪MLU370-M8 RDMA网卡类型:Mellanox CX6、云脉网卡metaScale-200 |
表2-1 组件所需硬件资源
|
CPU内核 |
内存 |
磁盘 |
|
1核及以上 |
2GB及以上 |
5GB及以上 |
|
操作系统 |
依赖软件 |
|
Ubuntu 22.04 |
openjdk-8-jdk、LLDPD、NetworkManager |
AIDC Agent容器化部署支持Kubernetes v1.21.14。
部署AIDC Agent前,请先完成以下工作:
(1) 完成SeerEngine-DC的安装工作。
(2) 完成服务器的安装和上线工作。
在部署AIDC Agent和SeerEngine-DC之间的网络环境时,要求不允许存在NAT(Network Address Translation)的中间设备或网络。请确保AIDC Agent和SeerEngine-DC的通信能够直接通过IP地址进行,而不是依赖于NAT网关的转换。
(3) 获取AIDC Agent插件安装包。安装包名称格式中version为版本号。解压安装包后会得到裸金属部署和容器化部署的两个安装包,请根据实际部署环境选择相应的安装包。
表2-2 AIDC Agent插件安装包说明
|
AIDC Agent插件安装 |
解压后包名 |
说明 |
|
SeerEngine_DC-version-AIDCAgent.zip |
SeerEngine_DC-version-AIDCAgent.zip |
裸金属部署 |
|
SeerEngine_DC-version-AIDCAgent-K8S.zip |
容器化部署 |
(1) 不同服务器的系统名称不能相同,请排查是否满足要求,如存在相同的情况,请修改系统名称,修改完成后需要重启服务器。
root@server1:~# vi /etc/hostname
root@server1:~# reboot
(2) 安装Java。
root@server1:~# apt install openjdk-8-jdk -y
(3) 安装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服务状态
(4) 安装NetworkManager。
root@server1:~# apt install network-manager -y
root@server1:~# systemctl enable NetworkManager.service
root@server1:~# systemctl start NetworkManager.service
root@server1:~# systemctl status NetworkManager.service——查看NetworkManager服务状态
安装Agent后,请勿修改操作系统的hostname。
(1) 将AIDC Agent安装包上传到所有服务器的任意目录下,安装包名称格式为SeerEngine_DC-version_AIDCAgent.zip,其中version为版本号。
(2) 解压AIDC Agent安装包,进入解压后的目录。
root@server1:~# unzip SeerEngine_DC-E7105P01_AIDCAgent.zip
root@server1:~# cd SeerEngine_DC-E7105P01_AIDCAgent
root@server1:~/SeerEngine_DC-E7105P01_AIDCAgent# ll
总用量 28720
drwxr-xr-x 2 root root 4096 12月 10 2024 config
-rw-r--r-- 1 root root 25420337 12月 10 2024 dc-agent-1.0.0.jar
-rwxr-xr-x 1 root root 3953824 12月 10 2024 jq
drwxr-xr-x 2 root root 4096 12月 10 2024 lib
drwxr-xr-x 2 root root 4096 12月 10 2024 scripts
-rwxr-xr-x 1 root root 9815 12月 10 2024 start_agent.sh
-rwxr-xr-x 1 root root 579 12月 10 2024 stop_agent.sh
(3) 启动Agent,以root权限执行start_agent.sh脚本启动服务。如果agent_master_ip是本服务器网卡上的IP就以master角色启动,否则以worker角色启动。以master角色启动时,Agent会将收集到的信息上送至SeerEngine-DC;以worker角色启动时,Agent会将收集到的信息优先上送至master,master异常时,Agent会将收集到的信息上送至SeerEngine-DC。
a. 添加防火墙规则,允许流量通过指定的Agent监听端口。
以防火墙为firewalld为例,执行如下命令:
root@server1:~/SeerEngine_DC-E7105P01_AIDCAgent# sudo firewall-cmd --zone=public --add-port=7008/tcp --permanent——7008为缺省端口号,请按实际配置替换为Master agent所在服务器的端口
root@server1:~/SeerEngine_DC-E7105P01_AIDCAgent# sudo firewall-cmd -–reload
这个命令的作用是将TCP流量通过指定端口的访问权限添加到防火墙配置中,并保持该规则在防火墙重启后仍然有效。
b. Agent服务需要在每一台服务器上手动执行脚本启动。
root@server1:~/SeerEngine_DC-E7105P01_AIDCAgent# sudo ./start_agent.sh
--saIp 192.168.118.50 --seIp 192.168.118.51 --seUser admin –-sePassword Pwd@12345
其中,seIp、saIp、seUser和sePassword为必选参数。
如果在手动执行脚本启动时未配置可选参数,则可选参数的取值将依据config/agent.config.json中的配置。以下是未配置可选参数时手动执行脚本启动的命令示例:
root@server1:~/UNIS_SeerEngine_DC-E7103_AIDCAgent# sudo ./start_agent.sh --seIp 192.168.118.50 --saIp 192.168.118.50
表3-1 参数说明
|
长参数(推荐) |
短参数 |
说明 |
|
seProtocol |
l |
控制组件的北向请求协议(http或https)。默认是http。可选参数 |
|
seIp |
e |
控制组件的北向业务虚IP。必填参数,若配置此项,则必须同时配置seUser和sePassword |
|
sePort |
o |
控制组件的北向业务请求端口(1-65535)。默认是30000。可选参数 |
|
seUser |
u |
控制组件的北向登录用户名。必填参数,需与sePassword同时配置 |
|
sePassword |
p |
控制组件的北向登录密码。必填参数,需与seUser同时配置 |
|
seConfig |
c |
若为d,则控制组件代理将重启,删除agent.network.config.yml文件并重新拉取 |
|
route |
r |
路由及规则自动下发开关,取值范围为enable或disable;缺省值为enable,即自动下发路由及规则。可选参数 |
|
roce |
n |
参数网卡RoCE配置自动下发开关,取值范围为enable或disable;缺省值为enable,即自动下发参数网卡RoCE配置。可选参数 |
|
saIp |
a |
分析组件的北向业务虚IP。必填参数 |
|
saPort |
t |
分析组件的北向WebSocket端口(1-65535)。默认是20851。可选参数 |
|
allIp |
i |
控制组件和分析组件合一场景下,共用的北向IP地址。可选参数 |
|
hwj |
w |
寒武纪的安装路径,用于设置Agent依赖的环境变量,以确保Agent能够正确访问寒武纪提供的资源和功能。默认是/usr/local/neuware,请根据实际安装环境进行修改。可选参数 |
|
nv |
v |
NVIDIA依赖项(NCCL、MPI、CUDA)的路径,用于设置Agent依赖的环境变量,以确保Agent能够正确访问NVIDIA提供的资源和功能。默认是/usr/local/cuda/bin:/usr/mpi/gcc/openmpi-4.1.7a1/bin:/usr/nccl-tests/build,请根据实际安装环境进行修改。可选参数 |
|
help |
h |
帮助信息 |
· 服务器接入VLAN网络时,支持使用AIDC Agent对宿主机进行同轨网络路由配置。
· 参数网卡的地址由DHCP分配,路由及规则由agent指定,请勿随意修改,以避免出现路由及规则配置冲突,导致流量异常。
· 在Agent服务启动后,请勿删除对应的安装包解压的目录。
(4) Agent启动时,会检查本地是否存在config/agent.network.config.yml文件(RoCE配置下发参数的配置文件)。
¡ 如果存在该文件,则以该配置文件加载运行,并下发参数网卡的RoCE配置。
¡ 如果不存在该文件,则会向SeerEngine-DC获取已配置的服务器网卡参数模板(可在SeerEngine-DC的RoCE策略详情页面中查看),并在本地生成agent.network.config.yml文件,以该配置文件加载运行,并下发参数网卡的RoCE配置。
¡ 如果想重新获取服务器网卡参数模板中的配置参数,可以通过sudo ./start_agent.sh –c d命令,自动删除agent.network.config.yml文件并重启Agent。运行后,Agent会重新向SeerEngine-DC获取服务器网卡参数模板配置文件。
¡ 如果在SeerEngine-DC上对RoCE策略中的CNP或RoCE队列进行了修改,请通过sudo ./start_agent.sh –c d命令,删除已有的agent.network.config.yml文件并重启Agent。运行后,Agent会重新向SeerEngine-DC获取服务器网卡参数模板配置文件。或者手动修改本地agent.network.config.yml文件后,重启Agent使修改生效。
· 正常Agent运行后,agent.network.config.yml文件就会在本地生成,如果一直未生成,请检查日志进行排错。
· 请勿随意删除agent.network.config.yml文件中的注释内容,必要时,可将注释打开以便修改配置参数。
· 根据现场实际需求修改配置文件中的配置参数后,需要重启Agent才能使修改生效。
· 无论Agent是否在运行,一旦下发了RoCE配置,这些配置将会在开机时自动执行。
(5) 查看Agent运行状态:
¡ 查看服务进程:在服务器上输入命令ps -ef | grep dc-agent | grep java,如显示进程信息则表示进程启动成功。
¡ 查看Agent角色:进程信息中的agent.role表示角色名称。
root@server1:~/SeerEngine_DC-E7105P01_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
服务重启后,Agent会自动启动。
(1) 在SeerEngine-DC的[监控>拓扑管理>数据中心拓扑>基础网络拓扑]页面,右键单击Leaf设备,选择“服务器接入信息”,即可查看服务器的接入信息。
(2) 如果出现网络异常等情况,造成SeerEngine-DC未获取到准确的GPU信息,可尝试通过执行sudo ./start_agent.sh脚本重启Agent服务。
(1) 备份当前版本,以便在版本回退时使用。
(2) 解压新版本,以root权限执行start_agent.sh脚本启动服务。
root@server1:~/SeerEngine_DC-E7105P01_AIDCAgent# sudo ./start_agent.sh
检查agent.config.json的配置参数与升级前一致,具体参数说明请参见“在服务器上部署AIDC Agent”。
执行如下命令卸载AIDC Agent:
root@server1:~/SeerEngine_DC-E7105P01_AIDCAgent# sudo ./stop_agent.sh
在宿主机上安装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服务状态
安装Agent后,请勿修改操作系统的hostname。
(1) 将AIDC Agent安装包上传到K8s集群所有服务器的任意目录下,安装包名称格式为SeerEngine_DC-version_AIDCAgent-K8S.zip,其中version为版本号。
(2) 解压AIDC Agent安装包,进入解压后的目录。
root@server1:~# unzip SeerEngine_DC-E7105P01_AIDCAgent-K8S.zip
root@server1:~# cd SeerEngine_DC-E7105P01_AIDCAgent-K8S
root@server1:~/ SeerEngine_DC-E7105P01_AIDCAgent-K8S# ll
total 258516
-rw------- 1 root root 264706560 Feb 11 19:51 dc-agent-R7106.tar
-rwxr-xr-x 1 root root 3453 Feb 11 01:04 se-agent-deployment.yaml*
(3) 使用vi命令编辑se-agent-deployment.yaml文件,修改seIp和saIp。
…略…
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 30000 --seUser admin --sePassword Pwd@12345 --saIp 192.168.100.101
…略…
表4-1 参数说明
|
长参数(推荐) |
短参数 |
说明 |
|
seProtocol |
l |
控制组件的北向请求协议(http或https)。默认是http。可选参数 |
|
seIp |
e |
控制组件的北向业务虚IP。必填参数,若配置此项,则必须同时配置seUser和sePassword |
|
sePort |
o |
控制组件的北向业务请求端口(1-65535)。默认是30000。可选参数 |
|
seUser |
u |
控制组件的北向登录用户名。必填参数,需与sePassword同时配置 |
|
sePassword |
p |
控制组件的北向登录密码。必填参数,需与seUser同时配置 |
|
seConfig |
c |
若为d,则控制组件代理将重启,删除agent.network.config.yml文件并重新拉取 |
|
route |
r |
路由及规则自动下发开关,取值范围为enable或disable;缺省值为enable,即自动下发路由及规则。可选参数 |
|
roce |
n |
参数网卡RoCE配置自动下发开关,取值范围为enable或disable;缺省值为enable,即自动下发参数网卡RoCE配置。可选参数 |
|
saIp |
a |
分析组件的北向业务虚IP。必填参数 |
|
saPort |
t |
分析组件的北向WebSocket端口(1-65535)。默认是20851。可选参数 |
|
allIp |
i |
控制组件和分析组件合一场景下,共用的北向IP地址。可选参数 |
|
hwj |
w |
寒武纪的安装路径,用于设置Agent依赖的环境变量,以确保Agent能够正确访问寒武纪提供的资源和功能。默认是/usr/local/neuware,请根据实际安装环境进行修改。可选参数 |
|
nv |
v |
NVIDIA依赖项(NCCL、MPI、CUDA)的路径,用于设置Agent依赖的环境变量,以确保Agent能够正确访问NVIDIA提供的资源和功能。默认是/usr/local/cuda/bin:/usr/mpi/gcc/openmpi-4.1.7a1/bin:/usr/nccl-tests/build,请根据实际安装环境进行修改。可选参数 |
如果环境中未安装Hubor镜像仓库,则使用如下命令导入镜像:
root@server1:~/ SeerEngine_DC-E7105P01_AIDCAgent-K8S# docker load -i dc-agent-*.tar
如果环境中已安装Hubor镜像仓库,执行如下操作:
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的修改,需要修改se-agent-deployment.yaml文件中image字段的定义,将其修改为Hubor仓库镜像标签。
(5) K8s拉起AIDC Agent容器,待集群中所有节点都执行完上述操作后,执行如下命令拉起容器。
root@server1:~/ SeerEngine_DC-E7105P01_AIDCAgent-K8S# kubectl apply -f se-agent-deployment.yaml
(6) 如果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对宿主机进行同轨网络路由配置。
· 参数网卡的地址由DHCP分配,路由及规则由Agent指定,请勿随意修改,以避免出现路由及规则配置冲突,导致流量异常。
(7) Agent启动时,会检查宿主机是否存在/usr/data/se-agent/config/agent.network.config.yml文件(RoCE配置下发参数的配置文件)。
¡ 如果存在该文件,则以该配置文件加载运行,并下发参数网卡的RoCE配置。
¡ 如果不存在该文件,则会向SeerEngine-DC获取已配置的服务器网卡参数模板(可在SeerEngine-DC的RoCE策略详情页面中查看),并在本地生成agent.network.config.yml文件,以该配置文件加载运行,并下发参数网卡的RoCE配置。
¡ 如果想重新获取服务器网卡参数模板中的配置参数,可以在容器内通过sudo ./start_agent.sh –c d命令,自动删除agent.network.config.yml文件并重启Agent。运行后,Agent会重新向SeerEngine-DC获取服务器网卡参数模板配置文件。
¡ 如果在SeerEngine-DC上对RoCE策略中的CNP或RoCE队列进行了修改,请在容器内通过sudo ./start_agent.sh –c d命令,删除已有的agent.network.config.yml文件并重启Agent。运行后,Agent会重新向SeerEngine-DC获取服务器网卡参数模板配置文件。或者手动修改本地agent.network.config.yml文件后,重启Agent使修改生效。
· 正常Agent运行后,agent.network.config.yml文件就会在宿主机生成,如果一直未生成,请检查日志进行排错。
· 请勿随意删除agent.network.config.yml文件中的注释内容。如果需要修改配置参数,可将注释取消后进行修改。
· 请根据实际需求修改配置文件中的参数。修改后,需要重启Agent才能生效。
· 无论Agent是否在运行,一旦下发了RoCE配置,这些配置将会在容器启动时自动执行。
(8) 查看Agent运行状态:
(9) 通过如下命令,查询Agent运行状态:
root@server1:~/ SeerEngine_DC-E7105P01_AIDCAgent-K8S# kubectl get pod -n addc-roce
(1) 在SeerEngine-DC的[监控>拓扑管理>数据中心拓扑>基础网络拓扑]页面,右键单击Leaf设备,选择“服务器接入信息”,即可查看服务器的接入信息。
(2) 如果出现网络异常等情况,造成SeerEngine-DC未获取到准确的GPU信息,可尝试通过执行start_agent.sh脚本重启Agent服务。
(1) 可使用cp -r命令备份当前版本(例如:cp -r SeerEngine_DC-E7201_AIDCAgent-K8S SeerEngine_DC-E7201_AIDCAgent-K8S_BAK),以便在版本回退时使用。
(2) 解压新版本的AIDC Agent安装包,进入解压后的目录,修改 se-agent-deployment.yaml中start_agent的参数。具体操作说明请参见(2)~(3)。
(3) 重新导入镜像文件,具体操作说明请参见“4.2 (4)加载镜像。”。
(4) 执行kubectl apply -f se-agent-deployment.yaml,观察容器运行状态。
(1) 确保已安装CNTookit,并知道其安装路径。
libcndev.so是CNTookit的一个重要库文件,专门用于提供与寒武纪设备交互的接口。
(2) 在终端中执行如下命令,创建libcndev.so源文件路径的超链接至/usr/lib。
sudo ln -s /安装cntoolkit后的库路径/libcndev.so /usr/lib/libcndev.so
(3) 重新启动Agent服务。
sudo ./start_agent.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) 确保已安装寒武纪驱动程序和CNTookit,并知道其安装路径,例如/usr/local/neuware/。
(2) 重新启动Agent服务,并指定正确的工作路径。
sudo ./start_agent.sh -w /usr/local/neuware/
或者
sudo ./start_agent.sh --hwj /usr/local/neuware
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
