弹性裸金属服务器 BMS
产品公告
由于Ubuntu18.04不再提供安全更新,BMS实例如果使用Ubuntu18.04将无法确保安全性,建议选择或迁移至其他更新版本如Ubuntu 20.04或Ubuntu22.04.
产品概述
弹性裸金属服务器 BMS(Bare Metal Server)是一种可弹性伸缩的物理机云服务器,计算性能与传统物理机无差别,具有安全物理隔离的特点。分钟级的交付周期将提供给您实时的业务响应能力,为企业的高性能AI计算、深度学习、图形渲染等业务提供卓越的计算性能。
产品优势
- 简单易用:实现分钟级资源交付,弹性扩容和运维全自动化,自助式资源生命周期管理;
- 安全可靠:物理级资源隔离,满足安全合规的要求,完善的监控服务;
- 性能无损:具备物理服务器特征的同时,无虚拟化开销和性能损失,100%释放算力资源。
产品功能
高性能计算实例
提供包括多种国产化芯片在内的高性能GPU计算实例;支持分钟级别的资源交付,所有实例支持宕机迁移。
并行文件存储
支持AI场景下挂载并行文件存储,满足大规模训练的数据存储、RDMA网络的传输要求。
Cloud-init
提供Linux操作系统初始化配置的开源工具Cloud-init,支持NTP、主机名等自定义配置。
WebShell
提供WebShell访问实例,维护和管理服务器,满足高度自主可控的开发和运维的场景诉求。
产品架构
应用场景
高性能AI计算
针对超算、AI大模型训练、基因测序等场景,GPU计算型裸金属服务器满足高吞吐、低时延、高稳定的业务诉求。
深度学习
针对深度学习场景,GPU计算型裸金属服务器在高精度计算领域,具有卓越的性能体验。
图形渲染
针对图形渲染场景,GPU计算型可实现图片秒级实时渲染,AR/VR的超强的图形计算和加速能力。
资源规格
GPU型:Nvidia 8卡A100-80GB(CPU:Intel Xeon Gold 6348,56核,内存:1024GB,GPU个数:8个)
GPU型:Nvidia 8卡V100-32GB(CPU:Intel 6248R,48核,内存:768GB,GPU个数:8个)
GPU型:G1sP-24GB(CPU:Intel Xeon Gold 6326,32核,内存:512GB,GPU个数:8个)
GPU型:Nvidia 8卡H800-80GB(CPU:Intel Xeon Gold 6448Y,64核,内存:2048GB,GPU个数:8个)
CPU型:Intel Xeon Gold 6348(频率:2.6GHz,核心:56核,内存:512GB)
CPU型:Intel Xeon Silver 4316(频率:2.3GHz,核心:40核,内存:128GB)
计费说明
弹性裸金属服务器采用包年包月的计费模式,产品标准价格可登录控制台查询。
快速入门
1.通过订单购买的方式创建裸金属服务器实例;
2.查看创建后的实例列表及详情信息,并对实例进行管理,例如对运行中的实例进行关机或重启、在详情页对实例更改DNAT规则的绑定、重置实例密码等操作;
3.登录到裸金属服务器实例进行使用,例如部署训练任务等。
用户指南
创建实例
1.购买信息和资源配置
在下单页面的购买信息栏,您可以选择按年或按月的计费模式,地区和可用区暂支持一个,VPC当前会自动识别其名称;资源配置栏展示资源规格 、本地磁盘、网络的信息,默认安装云助手且开通主机安全,并且可以选择实例数量进行批量创建;
2.其他配置和基本信息
在其他配置中,您可以配置镜像、设置用户名密码或密钥对作为登录凭证,也可以在高级选项中挂载AI文件存储、绑定DNAT规则、进行Cloud-init的设置。
登录凭证的用户名密码设置中,用户名的字符长度要求2-32个字符,以小写字母或下划线()开头,中间/结尾可能包含小写字母、数字、下划线()、中划线(-),结尾可以以 $符号结尾;密码的字符长度要求8~30 个字符,必须同时包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号);
密钥对的登录名为root,并选择创建好的密钥对,若没有可用密钥对,可点击【新建密钥对】进行创建,创建后进行刷新选择刚刚创建好的密钥对;
高级选项中,您可以在裸金属实例上挂载AI文件存储,下拉选择已有的可用存储卷,并填写在裸金属实例内的挂载路径,即可通过控制台实现产品化挂载AI文件存储。若您没有可用的存储卷,则可跳转到文件存储控制台创建新的存储卷再进行挂载;
高级选项中,创建实例时支持指定实例端口与公网端口协议绑定(创建后对DNAT规则的修改/解绑见实例详情),若您的账户没有可绑定的DNAT规则,可点击"弹性公网IP(EIP)"跳转到网络侧EIP控制台列表页创建EIP并添加规则,实例端口为用户可输入的合法端口[1-65535]且未被占用,IP地址通过下拉框选择,公网协议选择TCP或UDP,公网端口读取EIP控制台上已有的且未使用的公网端口,共支持最多50个DNAT规则的绑定;
高级选项中同时支持Cloud-init功能来完成裸金属服务器实例启动阶段的系统初始化设置,默认不打开,当启用该功能时,可以自定义设置NTP和主机名,主机名的字符长度要求2~64个字符,可包含小写字母、点号(.)、中划线(-),不能以点号(.)和中划线(-)开头和结尾。
基本信息栏下拉选择提前创建的订阅和资源组,便于进行资源的管理,同时您可以自定义裸金属服务器名称(支持中文字符、英文字母、数字及下划线“_",1-63个字符,中英文或数字开头),当批量创建时支持系统自动为您的实例添加有序后缀,最后核对实例数量并选择购买时长即可进行下单。
管理实例
1.实例列表
实例列表页面展示出创建的所有实例信息,包括实例的名称/资源唯一标识、运行状态、规格、镜像、IP地址,以及操作列,点击实例名称可以进入到实例详情页面(下一条实例详情中具体描述);状态共包括9种,分别是:创建中、运行中、故障、已关机、重启中、重装中、释放中、开机中、关机中,列表中会根据实例所处具体状态进行展示;规格中GPU类型实例展示CPU、内存、磁盘和网络的信息,CPU类型实例展示CPU、频率、内存、磁盘和网络的信息;镜像显示创建实例时所选的镜像名称;IP地址会展示出内网IP和外网IP(绑定EIP后会显示外网IP);操作栏也可以查看实例详情,并且关机中的实例可以一键点击开机,运行中的实例可以进行关机或重启操作,点开“更多”按钮则可对实例进行释放、查看监控和VNC登录。
VNC登录功能可以通过 Web 浏览器远程连接到裸金属服务器,并且可以查看到实例开机、关机、重启进程中实例操作系统的运行状态。
监控功能当前可以查看到实例CPU、内存、GPU、显存的使用率情况,监控数据分为实时、近1小时、近1天和近7天的不同粒度。
当列表中的实例数量较多时,可以通过列表上方的筛选栏按照实例运行状态和裸金属服务器名称的关键字快速筛选出目标实例。
通过点击实例列表前的勾选框,批量选择一些目标实例,再点击右上角的批量执行命令,则可以对选中的目标实例进行批量执行命令。
2.实例详情
如上段描述中所述,点击实例名称或通过操作中的详情查看,可以进入到实例详情页面,该页面会展示实例基本信息和云助手信息,基本信息包括实例名称、资源唯一标识、运行状态、地区/可用区、资源类型、规格、实例创建时间、到期时间、VPC、镜像、挂载的AI文件存储信息(卷名称和挂载路径)、内网IP、DNAT规则,并能重置实例密码进行密码管理,若实例关联了密钥对也会显示密钥对名称,云助手信息展示云助手是否在线和版本型号。
3.信息修改
在详情页展示的信息中,实例名称可以修改,关机和故障状态的实例可以重装操作系统;上图给出DNAT规则在详情页面修改的显示,若在创建实例没有绑定DNAT规则可以进行重新绑定,方式与创建实例时的绑定方式相同;若创建实例时绑定了DNAT规则,则在该详情页面可以对其解绑或者绑定新的公网端口协议。
4.实例云助手
通过裸金属实例云助手页面,可以查看批量执行命令的结果,可以查看到命令id、命令内容、命令创建时间、命令执行的目标实例,并且能通过操作列从目标实例的维度查看命令执行的详情结果。
点击操作列的详情,会有上述的显示页面,展示出某个命令在N个目标实例上执行的详情,包括N个目标实例的名称/资源唯一标识、命令执行状态(包括执行成功、执行失败和执行中)和对应的退出码,退出码的对应关系如下:
退出码 | 含义 |
---|---|
0 | 执行成功 |
ClientNotRunning | 云助手客户端离线 |
ClientNeedUpgrade | 云助手客户端需要更新 |
TaskTimeout | 命令执行超时 |
ExitCodeNonzero | 命令执行结束,但命令进程的退出码非0 |
5.密钥对
密钥对列表页会展示密钥对名称、创建时间、在操作列能将密钥对与实例进行绑定、解绑或删除,最上方设有模糊搜索栏可按密钥对名称进行快速筛选搜索,右上角设有创建密钥对的按钮。
绑定实例的页面如下所示,左侧列表展示运行中的实例名称和资源唯一标识,上方的搜索栏可快速定位到目标实例,从左侧选择要绑定的实例移到右侧已选择范围中,再点击确定则可将当前密钥对绑定到选择的实例上。
将密钥对与实例解绑的功能与绑定的逻辑一致,同样是利用穿梭框实现当前密钥对与实例的解绑;删除密钥对仅限于与任何实例没有绑定关系的密钥对才可删除,并且能进行删除的密钥对在删除时会有二次确认是否进行删除操作。
使用实例
您可以使用SSH密码方式登录到裸金属服务器实例,并可以在实例上部署一些训练任务等。
最佳实践
1.MIG虚拟化
前提条件
- 所用环境为BMS子产品提供的A100 BM实例
- GPU驱动未被卸载且运行正常
入门使用方法
开启MIG模式
nvidia-smi查看MIG使能情况,Disabled表示未开启
开启和关闭MIG
nvidia-smi -mig 1 # 关闭使用0
查看MIG实例
查看可用的子GPU类型
[root@rocky8 ~]# nvidia-smi mig -lgip -i 0
+-----------------------------------------------------------------------------+
| GPU instance profiles: |
| GPU Name ID Instances Memory P2P SM DEC ENC |
| Free/Total GiB CE JPEG OFA |
|=============================================================================|
| 0 MIG 1g.5gb 19 7/7 4.75 No 14 0 0 |
| 1 0 0 |
+-----------------------------------------------------------------------------+
| 0 MIG 1g.5gb+me 20 1/1 4.75 No 14 1 0 |
| 1 1 1 |
+-----------------------------------------------------------------------------+
| 0 MIG 2g.10gb 14 3/3 9.62 No 28 1 0 |
| 2 0 0 |
+-----------------------------------------------------------------------------+
| 0 MIG 3g.20gb 9 2/2 19.50 No 42 2 0 |
| 3 0 0 |
+-----------------------------------------------------------------------------+
| 0 MIG 4g.20gb 5 1/1 19.50 No 56 2 0 |
| 4 0 0 |
+-----------------------------------------------------------------------------+
| 0 MIG 7g.40gb 0 1/1 39.25 No 98 5 0 |
| 7 1 1 |
+-----------------------------------------------------------------------------+
-lgip参数说明: Lists GPU instance profiles, their availability and IDs. Profiles describe the supported types of GPU instances, including all of the GPU resources they exclusively control.
创造一个profile ID为9的实例
- 也就是MIG 3g.20gb的计算实例
nvidia-smi mig -i 0 -cgi 9 -C
[root@rocky8 ~]# nvidia-smi mig -i 0 -cgi 9 -C
Successfully created GPU instance ID 1 on GPU 0 using profile MIG 3g.20gb (ID 9)
Successfully created compute instance ID 0 on GPU 0 GPU instance ID 1 using profile MIG 3g.20gb (ID 2)
[root@rocky8 ~]# nvidia-smi
Wed Sep 14 16:31:49 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 515.65.01 Driver Version: 515.65.01 CUDA Version: 11.7 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA A100-PCI... On | 00000000:01:00.0 Off | On |
| N/A 30C P0 32W / 250W | 19MiB / 40960MiB | N/A Default |
| | | Enabled |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA A100-PCI... On | 00000000:25:00.0 Off | On |
| N/A 30C P0 33W / 250W | 0MiB / 40960MiB | N/A Default |
| | | Enabled |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| MIG devices: |
+------------------+----------------------+-----------+-----------------------+
| GPU GI CI MIG | Memory-Usage | Vol| Shared |
| ID ID Dev | BAR1-Usage | SM Unc| CE ENC DEC OFA JPG|
| | | ECC| |
|==================+======================+===========+=======================|
| 0 1 0 0 | 19MiB / 19968MiB | 42 0 | 3 0 2 0 0 |
| | 0MiB / 32767MiB | | |
+------------------+----------------------+-----------+-----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
运行cuda sample查看实例情况
- cuda sample的下载和编译参考cuda及gpu驱动手动安装 / "Cuda samples验证"
# devicequery可以看到只有一个实例
[root@rocky8 release]# ./deviceQuery
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "NVIDIA A100-PCIE-40GB MIG 3g.20gb"
CUDA Driver Version / Runtime Version 11.7 / 11.7
CUDA Capability Major/Minor version number: 8.0
Total amount of global memory: 19968 MBytes (20937965568 bytes)
(042) Multiprocessors, (064) CUDA Cores/MP: 2688 CUDA Cores
GPU Max Clock rate: 1410 MHz (1.41 GHz)
Memory Clock rate: 1215 Mhz
Memory Bus Width: 2560-bit
L2 Cache Size: 20971520 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total shared memory per multiprocessor: 167936 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 3 copy engine(s)
Run time limit on kernels: No
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Enabled
Device supports Unified Addressing (UVA): Yes
Device supports Managed Memory: Yes
Device supports Compute Preemption: Yes
Supports Cooperative Kernel Launch: Yes
Supports MultiDevice Co-op Kernel Launch: Yes
Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 11.7, CUDA Runtime Version = 11.7, NumDevs = 1
Result = PASS
销毁实例
[root@rocky8 ~]# nvidia-smi mig -dgi -gi 1 -i 0
Unable to destroy GPU instance ID 1 from GPU 0: In use by another client
Failed to destroy GPU instances: In use by another client
销毁实例重置
[root@rocky8 ~]# nvidia-smi --gpu-reset
Error encountered during reset of GPU 00000000:01:00.0: Unknown Error
GPU 00000000:25:00.0 was successfully reset.
1 device did not complete reset successfully, and may be in an unstable state. Please reboot your system.
Warning: persistence mode is disabled on device 00000000:25:00.0. See the Known Issues section of the nvidia-smi(1) man page for more information. Run with [--help | -h] switch to get more information on how to enable persistence mode.
[root@rocky8 ~]# nvidia-smi
Wed Sep 14 16:36:26 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 515.65.01 Driver Version: 515.65.01 CUDA Version: 11.7 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA A100-PCI... Off | 00000000:01:00.0 Off | On |
| N/A 31C P0 34W / 250W | 0MiB / 40960MiB | N/A Default |
| | | Enabled |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA A100-PCI... Off | 00000000:25:00.0 Off | On |
| N/A 32C P0 36W / 250W | 0MiB / 40960MiB | N/A Default |
| | | Enabled |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| MIG devices: |
+------------------+----------------------+-----------+-----------------------+
| GPU GI CI MIG | Memory-Usage | Vol| Shared |
| ID ID Dev | BAR1-Usage | SM Unc| CE ENC DEC OFA JPG|
| | | ECC| |
|==================+======================+===========+=======================|
| No MIG devices found |
+-----------------------------------------------------------------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
[root@rocky8 ~]# nvidia-smi mig -dgi -gi 1 -i 0
No GPU instances found: Not Found
关闭MIG模式
nvidia-smi -mig 0
常见问题
- 为什么SSH登录实例一段时间不操作后会自动断开?该怎么解决?
原因分析:根据社区反馈,ssh对应的tcp连接一定时间未活动后,会自动断开。
建议做法:BMS产品默认不对BM实例中的sshd行为做定制调整,当前用户可以按需自行调整相关参数以保持空闲ssh连接。
调整方法:
修改文件:/etc/ssh/sshd_config
在其中添加一行内容,意思是向客户端每60秒发一次保持连接的信号,间隔时间可按需调整
详见 ssh manual (man sshd_config)
ClientAliveInterval 60
如果超过3次未收到客户端反馈才断开连接,可另行调整,0表示不做次数限制
详见 ssh manual (man sshd_config)
ClientAliveCountMax 3
重启sshd服务
sudo systemctl restart sshd
重新ssh登录
补充说明:
服务器端的链接保活方案不一定适用于所有场景,而且ssh连接的断开另外受其他因素影响,如
- 其他因素导致客户端或者服务端主动断开连接
- 客观原因如断网导致连接断开
- 网络流量过高导致连续多次超时或者失败
- 什么是云助手?如何安装云助手客户端?
云助手作为一种自动化工具,可管理软件生命周期、批量管理实例、辅助自动化运维等;
安装步骤:
# 根据实例的所在区域、os类型,选择相应的下载包
ASSIST_PKG=""
# 云助手安装包下载
wget ${ASSIST_PKG} -O /tmp/assist_pkg
# 卸载并安装服务
systemctl is-active lepton-baremetal-assist-client && systemctl stop lepton-baremetal-assist-client
if which rpm >/dev/null 2>&1
then
rpm -qa |grep -q lepton-baremetal-assist-client && rpm -e lepton-baremetal-assist-client
rpm -ivh /tmp/assist_pkg
else
dpkg -l |grep -q lepton-baremetal-assist-client && dpkg -r lepton-baremetal-assist-client
dpkg -i /tmp/assist_pkg
fi
rm -rf /tmp/assist_pkg
# 检查服务是否启动
systemctl is-active lepton-baremetal-assist-client
# 如果是active,说明服务已启动
- 云助手离线该怎么做?
# 检查云助手服务是否存活
systemctl is-active lepton-baremetal-assist-client
# 如果是active,说明服务已启动
# 检查日志是否有异常
tail /var/log/lepton-baremetal-assist-client/lepton-baremetal-assist-client.log
- 常见错误:
错误 | 含义 | 补充 |
---|---|---|
与服务网络不通 | 检查配置文件(/etc/lepton-baremetal-assist-client/config.yaml),ASSIST_CLIENT_SERVER_ADDRESS值是否正确 | 云助手服务端地址 上海:https://10.118.0.154:51808 广州:https://10.115.0.154:51808 |
安全校验失败 | 检查配置文件(/etc/lepton-baremetal-assist-client/config.yaml),ASSIST_CLIENT_ACCESSKEY、ASSIST_CLIENT_SECRETKEY、ASSIST_CLIENT_UUID是否正确 | ASSIST_CLIENT_ACCESSKEY、ASSIST_CLIENT_SECRETKEY是租户的ak、sk ASSIST_CLIENT_UUID可以在sensecore控制台找到:“资源”->“资源管理”->(具体某个实例)“查看详情”->“资源UUID” |
- 如何安装/更新云监控客户端?
- 检查系统上签名文件是否存在:
# 是否存在
file /etc/sensecore/uuid.jwt
# 如果签名文件不存在,请联系裸金属技术支持生成
- 【ubuntu】安装并启动云监控客户端
# 卸载老版本
dpkg -l |grep -q sensecore-telemetry-bms && dpkg -r sensecore-telemetry-bms
# 安装并运行
wget https://bms-monitor.aoss.cn-sh-01.sensecoreapi-oss.cn/monitor/latest/sensecore-telemetry-bms.deb -O /tmp/sensecore-telemetry-bms.deb
dpkg -i --force-overwrite /tmp/sensecore-telemetry-bms.deb
rm -rf /tmp/sensecore-telemetry-bms.deb
# 检查服务是否正常
systemctl is-active sensecore-telemetry-bms
- 【rocky】安装并启动云监控客户端
# 卸载老版本
rpm -qa |grep -q sensecore-telemetry-bms && rpm -e --nodeps sensecore-telemetry-bms
# 安装并运行
wget https://bms-monitor.aoss.cn-sh-01.sensecoreapi-oss.cn/monitor/latest/sensecore-telemetry-bms.rpm -O /tmp/sensecore-telemetry-bms.rpm
rpm -ivh --force /tmp/sensecore-telemetry-bms.rpm
rm -rf /tmp/sensecore-telemetry-bms.rpm
# 检查服务是否正常
systemctl is-active sensecore-telemetry-bms
已交付节点启用 VNC 功能有哪些问题
ironic 多副本版本发布时,一并发布了console interface 的功能。在多副本版本之前注册的 Node 没有配置console_interfac,多副本版本之后注册的节点默认配置了ipmitool-socat。
多副本之前注册的节点
$ bm node show dfd37739-5f28-4e85-ade6-91c3014d6f8b --column console_interface
多副本之后注册的节点
$ bm node show acebeab3-a3d4-4cc3-95ac-ede785395723 --column console_interface
多副本版本之前注册,且已经交付的节点,启用 VNC 功能,需要解决如下问题:
BIOS 配置
具体BIOS具体看。
节点更新console_interface
本操作不会中断节点业务,但也建议和 BIOS 配置一起做。
- active 节点
# operator 会调协 unset maintenance
bm node maintenance set <NODD_UUID>
bm node set <NODD_UUID> --console-interface ipmitool-socat
bm node maintenance unset <NODD_UUID>
- available 节点
bm node set <NODD_UUID> --console-interface ipmitool-socat
使用Ubuntu 20.04 镜像的已交付节点,更新内核参数并重启
# 切换至 root 用户执行,需要重启
rm -rf /etc/default/grub.d
grub-mkconfig -o /boot/grub/grub.cfg
grub-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg
reboot
建议操作顺序
- 对于使用Ubuntu20.04 系统的用户,告知其更新内核参数并重启
- 配置console_interface
- 配置 BIOS
OFED驱动
OFED驱动卸载
[root@real-46 ~]# ofed_info -s
MLNX_OFED_LINUX-5.6-2.0.9.0:
文件上传:yeanhua ➜ scp -P 9004 MLNX_OFED_LINUX-5.6-2.0.9.0-rhel8.6-x86_64.tgz root@47.113.76.75:/root/
# cd /tmp && wget http://eyes.sensetime.com:9999/IB/MLNX_OFED_LINUX-5.6-2.0.9.0-rhel8.6-x86_64.tgz
cd /root/
tar -zxvf MLNX_OFED_LINUX-5.6-2.0.9.0-rhel8.6-x86_64.tgz
cd MLNX_OFED_LINUX-5.6-2.0.9.0-rhel8.6-x86_64/ && ./uninstall.sh --force -q
reboot
# 删除ofed驱动后bond1依然可以ping通
6: bond1: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 10:70:fd:6d:d7:5a brd ff:ff:ff:ff:ff:ff
inet 10.119.241.172/27 brd 10.119.241.191 scope global noprefixroute bond1
valid_lft forever preferred_lft forever
inet6 fe80::1270:fdff:fe6d:d75a/64 scope link
valid_lft forever preferred_lft forever
[root@real-46 ~]# ping -c 2 10.119.241.172
PING 10.119.241.172 (10.119.241.172) 56(84) bytes of data.
64 bytes from 10.119.241.172: icmp_seq=1 ttl=64 time=0.013 ms
64 bytes from 10.119.241.172: icmp_seq=2 ttl=64 time=0.011 ms
--- 10.119.241.172 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1024ms
rtt min/avg/max/mdev = 0.011/0.012/0.013/0.001 ms
OFED驱动重装
# 以下适用【GPU实例 CPU实例】
# cd /root && wget http://eyes.sensetime.com:9999/IB/MLNX_OFED_LINUX-5.8-1.1.2.1-rhel8.6-x86_64.tgz
# 本地上传,本地的tgz包可以下载自上面链接
scp -P 9004 ./MLNX_OFED_LINUX-5.8-1.1.2.1-rhel8.6-x86_64.tgz root@47.113.76.75:/root/
cd /root/ && tar -zxvf MLNX_OFED_LINUX-5.8-1.1.2.1-rhel8.6-x86_64.tgz
yum install tk gcc-gfortran tcsh kernel-rpm-macros python36-devel -y
yum install kernel-rpm-macros python36-devel kernel-devel-4.18.0-425.3.1.el8.x86_64 kernel-headers.x86_64 kernel-tools.x86_64 kernel-tools-libs.x86_64 -y --allowerasing
注:kernel-tools-libs-devel-4.18.0-425.3.1.el8.x86_64 这个包会被remove掉
cd /root/MLNX_OFED_LINUX-5.8-1.1.2.1-rhel8.6-x86_64 && ./mlnxofedinstall --add-kernel-support --skip-repo --force
systemctl enable openibd
# 完成后重启系统: 重启后可以看到openibd服务是active的状态
reboot
[root@real-46 ~]# systemctl is-active openibd
active
# 查看ofed驱动版本命令并确认与前面的安装包文件中的版本号一致
[root@real-46 ~]# ofed_info -s
MLNX_OFED_LINUX-5.8-1.1.2.1:
# 验证ib状态以及roce操作是否正常: 通过
roce连通性 - 网关:确保ping成功
ping -c 2 10.119.241.161
roce连通性 - 双机ib_read_lat:确保执行成功
server: [root@real-46 ~]# ib_read_lat
client: [root@real-119 ~]# ib_read_lat -d mlx5_1 -a --report_gbits 10.119.241.172
GPU驱动
GPU驱动卸载
[root@real-46 ~]# systemctl stop nvidia-fabricmanager
[root@real-46 ~]# nvidia-uninstall -q -s
WARNING: Your driver installation has been altered since it was initially installed; this may happen, for example, if you have since installed the NVIDIA driver through a mechanism other than nvidia-installer (such as your
distribution's native package management system). nvidia-installer will attempt to uninstall as best it can. Please see the file '/var/log/nvidia-uninstall.log' for details.
GPU驱动重装
# 安装GPU驱动
# cd /tmp/ && wget http://eyes.sensetime.com:9999/IB/gpu_driver_new/NVIDIA-Linux-x86_64-515.65.01.run
scp -P 9004 ./NVIDIA-Linux-x86_64-515.65.01.run root@47.113.76.75:/tmp/
cd /tmp/ && chmod +x NVIDIA-Linux-x86_64-515.65.01.run
# NVIDIA-Linux-x86_64-515.65.01.run需要执行权限
cd /tmp && ./NVIDIA-Linux-x86_64-515.65.01.run -a -s -Z
# 如以上安装方法出现报错使用以下方法安装
cd /tmp && ./NVIDIA-Linux-x86_64-515.65.01.run --kernel-source-path /usr/src/kernels/4.18.0-425.3.1.el8.x86_64
# 一次性设置pm模式正常
/usr/bin/nvidia-smi -pm 1
# 启动fm
systemctl restart nvidia-fabricmanager
# 按需调整/etc/rc.local重启查看pm效果
# pm设置有效,查看方式:
nvidia-smi
# 验证cuda功能
参考:https://sco-aiiaas.feishu.cn/wiki/wikcnvTScTIY01IJjmErSHEDT1u
git clone https://github.com/NVIDIA/cuda-samples.git
cd cuda-samples
make -j
# 对于A100,可以使用 make -j SMS="80"
# 进入到编译成功后的bin/..../release下执行以下用例
cd bin/x86_64/linux/release/
[root@localhost release]# ./vectorAdd
[Vector addition of 50000 elements]
Failed to allocate device vector A (error code system not yet initialized)!
[root@localhost release]# ./deviceQuery
# mig设置:成功
参考:https://sco-aiiaas.feishu.cn/wiki/wikcnqaNHEXrVVOucJkwAhoPXfi
# 打开执行成功
[root@real-46 release]# nvidia-smi -mig 1
# 关闭执行成功
[root@real-46 release]# nvidia-smi -mig 0