文章来源: 首期NVIDIA DOCA 中国开发者社区有奖征文活动
作者: 极客天成Scaleflash 驱动下载:
dpu os 自带ib驱动,在安装ib驱动时候会更新卡固件,dpu的固件版本需要和驱动固件为一个版本,在实际使用中发现dpu os驱动版本和主机驱动版本无法对上,尽量采用相近版本
如果无法过dou os固件版本只能先安装一个ib驱动,刷想要的系统进去看驱动版本,然后主机下载对应版本驱动更新固件即可。
ib卡驱动
DPU os下载
developer.nvidia.com/zh-cn/netwo…
初始化配置
常用系统初始化配置
vim 格式
猫 >> /root/.vimrc << 'EOF'
设置数字
集选项卡停止=4
设置移位宽度=4
设置忽略大小
集 hlsearch
nnoremap :设置非枚举!:设置折叠柱=0
设置粘贴切换=
EOF
yum 本地仓库
[root@bms-03 ~]# 猫 /etc/yum.repos.d/iso.repo
[红帽-7.8-iso] 名称=红帽-7.8-iso]
名称=红帽-7.8-iso
基本网址=文件:///sf/iso/
启用=1
优先级=1
gpgcheck=0
[root@bms-03 ~]#
安装驱动
驱动安装
./mlnxofedinstall --with-nvmf --force-fw-update --力
根据安装提示做完剩余操作
如法完成可以先设定dpu卡参数后重启生效
启动 rshim ,用于主机 访问 dou os
systemctl start rshim
编译安装驱动
非标准系统 编译方式安装驱动
redhat7.8 系统采用最小安装
yum install vim
yum install perl
yum install kernel-devel
yum install createrepo
yum install python-devel pciutils lsof redhat-rpm-config rpm-build gcc
yum install automake autoconf
yum install libtool
yum install libusbx tcl gcc-gfortran fuse-libs tcsh tk
yum install vim perl kernel-devel createrepo python-devel pciutils lsof redhat-rpm-config rpm-build gcc automake autoconftool libusbx tcl gcc-gfortran fuse-libs tcsh tk
./mlnxofedinstall --with-nvmf --add-kernel-support --fw-update-only --force
/tmp/MLNX_OFED_LINUX-5.2-2.2.3.0-3.10.0-1127.el7.x86_64/MLNX_OFED_LINUX-5.2-2.2.3.0-rhel7.8-ext/mlnxofedinstal --fw-update-only --force
dracut -f
systemctl start rshim
DPU刷入系统
host 启动 rshim 服务
systemctl start rshim
主机 连接 dpu console
screen /dev/rshim0/console
host 上为 DPU 刷系统
cat Ubuntu20.04-MLNX_OFED-5.2-2.2.0.0-3.5.1.11601-1-aarch64.bfb > /dev/rshim0/boot
看 dpu console 等待系统安装完成
设置DPU
首先启动 mst,然后执行如下命令:
开启参数不对会无法启动 开启 NVME_EMULATION 支持
mst start
mlxconfig -d /dev/mst/mt41686_pciconf0 s INTERNAL_CPU_MODEL=1 NVME_EMULATION_ENABLE=1
host 重新上电 (此处可以先不重启等待 配置完dpu 后一次重启即可)
echo 3 > /proc/sys/vm/drop_caches
ipmitool power cycle
重启说明(该处为掉电重启,否则上述步骤中NVMEEMULATIONENABLE=1等参数不生效):
主机掉电重启
主机不掉电重启
配置DPU OS
hoat 连接 DPU console
systemctl restart rshim
screen /dev/rshim0/console
dpu 切换 root 用户
sudo passwd root
su -
hostnamectl set-hostname roce-dpu-100
dpu 配置 root ssh
vim /etc/ssh/sshd_config
PermitRootLogin yes
StrictModes yes
echo -e “\nPermitRootLogin yes\n” >> /etc/ssh/sshd_config
dpu 修正啪
啪mv /etc/mlnx_snap/*.conf /root/bak/
systemctl 重新启动mlnx_snap;systemctl 状态 mlnx_snap
dpu 关闭部分不需要的服务
systemctl stop docker;systemctl disable docker
systemctl disable cloud-init-local cloud-init cloud-config cloud-final
systemctl stop cloud-init-local cloud-init cloud-config cloud-final
systemctl stop x11-common.service;系统ctl 禁用 x11-common.service
systemctl 停止打开-iscsi ;systemctl 禁用打开-iscsi
系统ctl 停止 nfs-client.目标
系统停止 nfs-common.service
systemctl 停止 nfs-config.service
systemctl 停止 nfs-idmapd.service
systemctl 停止 nfs-utils.service
systemctl 禁用 nfs-client.target
systemctl 禁用 nfs-common.service
系统禁用 nfs-config.service
systemctl 禁用 nfs-idmapd.service
systemctl 禁用 nfs-utils.service
systemctl 停止多路径;systemctl disable multipathd
配置ip地址
mv /etc/netplan/50-cloud-init.yaml bak/
cat > /etc/netplan/99-ib.yaml << “EOF”
网络:
版本: 2
渲染器: 网络
以太网:
ibp3s0f0:
dhcp4: 无
地址:
- 192.168.6.214/24
ibp3s0f1:
dhcp4: 无
地址: - 192.168.8.214/24
EOF
猫 > /etc/netplan/60-mlnx.yaml << “EOF”
网络:
版本: 2
渲染器: 网络
以太网:
ibp3s0f0:
dhcp4: 否
地址:
- 192.168.6.213/23
ibp3s0f1:
dhcp4: 无
地址: - 192.168.8.213/23
EOF
猫 > /etc/netplan/60-mlnx.yaml << “EOF”
网络:
版本: 2
渲染器: 网络
以太网:
ibp3s0f0:
dhcp4: 无
地址:
- 192.168.1.14/23
ibp3s0f1:
dhcp4: no
addresses: - 192.168.3.14/23
EOF
使上述修改生效
netplan apply
所有配置已经完成主机 重新上电
做重启测试 以及验证 参数是否全部持久化
echo 3 > /proc/sys/vm/drop_caches
ipmitool power cycle
额外内容 无特殊情况无需配置
内核 锁定内核防止更新
apt-mark hold linux-image-4.15.0-20-generic
apt-mark hold linux-image-generic
配置记录及注意事项
ib dpu
开启参数不对会无法启动 根据所需功能开启参数 此处开启 NVME_EMULATION 和 VIRTIO_BLK_EMULATION 支持
mlxconfig -d /dev/mst/mt41686_pciconf0 s INTERNAL_CPU_MODEL=1 NVME_EMULATION_ENABLE=1 VIRTIO_BLK_EMULATION_NUM_PF=1
root@dpu-213:~# mlxconfig -d /dev/mst/mt41686_pciconf0 s INTERNAL_CPU_MODEL=1 NVME_EMULATION_ENABLE=1 VIRTIO_NET_EMULATION_ENABLE=1 VIRTIO_BLK_EMULATION_NUM_PF=1
设备 #1:
设备类型: 蓝场2
名称: MBF2H516A-EEEO_Ax_Bx
描述: 蓝场-2 DPU 100GbE/EDR/HDR100 VPI 双端口 QSFP56;聚类电脑 Gen4 x16;启用加密;16GB 板载 DDR;1GbE 网络商店管理;FHHL
设备: /dev/mst/mt41686_pciconf0
配置: 下次启动 新
INTERNAL_CPU_MODEL EMBEDDED_CPU(1) EMBEDDED_CPU(1)
NVME_EMULATION_ENABLE False(0) 真(1)
VIRTIO_NET_EMULATION_ENABLE假(0) 真(1)
VIRTIO_BLK_EMULATION_NUM_PF 0 1
应用新配置?(年/无)[n] : y
正在申请做!
-I- 请重新启动计算机以加载新配置。
root@dpu213日:#
下面参数 hygon服务器无法开机 一直处于黑屏状态
PCI_SWITCH_EMULATION_ENABLE=1 PCI_SWITCH_EMULATION_NUM_PORT=32
罗思
roce dpu 与 ib dpu配置几乎一直就是网络初始化存在差异
驱动下载地址同上
网络初始化需要 dpu 启动后根据具体查询信息配置
配置记录
root@roce-dpu-100:~# 系统停止打开vs开关-switch.service;系统禁用打开vs交换机-交换机.service
系统ctl启动开放vs交换机-service.service;systemctl enable openvswitch-switch.service
systemctl stop ufw;系统禁用 ufw
猫 > /etc/netplan/60-mlnx.yaml << “EOF”
网络:
以太网:
enp3s0f0s0:
dhcp4: 无
地址:
-
192.168.6.100/24
enp3s0f1s0:
dhcp4: 无
地址: -
192.168.8.100/24
渲染器: 网络
版本: 2
EOF
DPU存储挂载
root@roce-dpu-100:~# nvme 发现 -t rdma -a 10.10.0.44 -s 4444
发现日志记录数 1,生成计数器 2
=====发现日志条目 0======
trtype: rdma
adrfam: ipv4
子类型: nvme 子系统
treq: 未指定, sq 流控制禁用支持的
端口 id: 0
trsvcid: 4444
子模块: t1-nvme5n1
traddr: 10.10.0.44
rdma_prtype: 未指定
rdma_qptype: 连接
rdma_cms:
rdma_pkey
0x0000
root@roce-dpu-100:~# spdk_rpc.py bdev_nvme_attach_controller -b nvme0 -t rdma -f ipv4 -a 10.10.0.44 -s 4444 -n t1-nvme5n1
root@roce-dpu-100
:~# snap_rpc.py subsystem_nvme_create --nqn nqn.bluefield.sf.0001 SNAPNVME0001 “梅拉诺克斯 NVMe Snap Controller”
{
“nqn”: ”nqn.bluefield.sf.0001“,
”subsys_id“: 0
}
root@roce-dpu-100:~# ibdev2netdev |grep enp3s0f0s0
mlx5_2端口 1 ==> enp3s0f0s0 (上)
root@roce-dpu-100:~# snap_rpc.py emulation_functions_list
[
{
“emulation_manager”: “mlx5_0”,
“hotplugged”: 假,
“emulation_type” : “nvme”,
“pf_index”: 0,
“VUID”: “”,
“pci_bdf”: “84:00.2”,
“controller”: {},
“num_vfs”: 0
}
]
root@roce-dpu-100:~# snap_rpc.py controller_nvme_create --pf_id=0 -c /etc/mlnx_snap/mlnx_snap.json --nqn nqn.bluefield.sf.0001 mlx5_0
{
“name”: “NvmeEmu0pf0”,
“cntlid”: 0,
“version”1.3.0“,
”卸载“: 假,
”内存池“: 假,
”max_nsid“: 1024,
”max_namespaces“: 1024
}
root@roce-dpu-100:~# snap_rpc.py controller_nvme_namespace_attach -c 内华达州
主机:
[root@node26 ~]# 修改 nvme
[root@node26 ~]# modprobe nvme
[root@node26 ~]#
[root@node26 ~]# nvme 列表
节点 SN 模型 命名空间使用格式 固件修订版
/dev/nvme0n1 A065E7B6 WUS4BA118DSP3X1 1 1.80 TB / 1.80 TB 512 B + 0 B R2109003
/dev/nvme1n1 SNAPNVME0001 梅拉诺克斯 NVMe SNAP Controller 1 3.84 TB / 3.84 TB 512 B + 0 B 1.0
/dev/nvme2n1 A065DECE WUS4BA118DSP3X1 1 1.80 TB / 1.80 TB 512 B + 0 B R2109003
NVIDIA DOCA 现已开放接受申请,扫描下方海报二维码,立刻注册抢先体验!