DPU和DOCA入门学习以及安装教程(SDK安装+手动安装)
DPU是啥
DPU实现软件定义、硬件加速的数据中心基础设施(可理解为高性能处理器),极具灵活性、拓展性、可编程性、又高效
目的:释放CPU性能,使其用于计算应用执行更有意义的工作
传统:CPU(虚拟机+容器+基础设施管理)+网卡
DPU:将基础设施管理卸载到DPU上,CPU更好服务于虚拟机、容器的应用(也就是将应用层与控制平面隔离开)
CPU为什么需要卸载
**问题:**随着现代数据中心的发展,网络工作负载的增加,CPU用于网络流量引导和基础设施管理等的开销越来越大,真正提供给用户服务的内核只占其总内核的一点(可以理解为:256G的手机内存往往有几十个G的内存用于系统固件,而当系统固件占比越来越高时这手机就会显得很鸡肋,比如买的256G手机只有64G能用,CPU也是如此)
**解决:**CPU需要将一些占用内核资源多的工作负载卸载到其他的单元处理器,以将更多资源服务于应用层服务于用户
(例如:将图形图像类运算、深度学习等交给GPU、复杂类运算,基础设施管理类交给DPU)
DPU最直接的作用是作为CPU的卸载引擎,接管网络虚拟化、硬件资源池化等基础设施层服务
DPU架构
三个主要元件:
- 软件可编程的多核CPU
- 高性能网络接口:解析、处理网络数据,并在网络中有效地传输数据
- 一组丰富的灵活、可编程的加速引擎:将网络和存储功能从 CPU 卸载到 DPU
上图所示,可分为三部分:控制平面、数据平面、I/O子系统
卸载方式
- 从“以计算为中心”到“以数据为中心”:
- 以计算为中心:所有数据需先送到CPU,且应用、通信、存储等计算都需要独占CPU资源,会导致CPU处理时延较高
- 以数据为中心:数据转发通道直接通过DPU送至GPU和虚拟机CPU,无需CPU进行转发,性能上有近10倍的提升
- 基础设施任务卸载:
- DPU运行存储、网络、管理等相关的基础设施功能
- CPU运行客户的软件(应用)
- 硬件加速:
- 卸载某些应用并为其配备专用的加速硬件,使其相较于在CPU上运行能够有更快的速度、更高的性能
卸载功能
- 网络功能卸载
- 虚拟化网络硬件卸载:网络接口硬件卸载 + 虚拟交换网络硬件卸载
- RDMA卸载:网卡和应用直接直接数据读写 + 将 RDMA 协议(如 ROCEv2)卸载到硬件中
- 存储功能卸载
- 存储接口的卸载
- 存储网络协议栈加速
- 安全功能卸载
DOCA:(片上数据中心基础设施系统架构)
是一个支持DPU的抽象层,简化了API调用
- 可以使用底层的 DOCA Driver API 来进行开发
- 借助于上层的 DOCA Lib SDK 进行编程
与本项目相关的特性:
节省CPU最明显最容易的方式:将DOCA应用运行在DPU上
DOCA基于主机的网络(HBN):在DPU上实现路由
将一些交换机上的功能放到DPU上实现,更好实现Overlay
使用步骤:
- 将DPU插入系统的PCle插槽中,并连接辅助电源
- 在主机侧安装DOCA和BlueField软件(包括驱动、工具和使用程序)
- 进行DPU的安装,利用系统镜像进行安装(镜像包含了所有必要的DOCA软件和驱动)、软件升级
- 执行固件升级并按需重置
RSHIM接口用于启动和安装DPU最重要的组件之一
安装流程如下:
一、SDK管理器安装
安装文件下载至主机后,打开终端,找到安装文件,使用操作系统的手动包安装程序
从CLI(命令行)启动SDK管理器应用程序
sdkmanager
接着,
使用SDK管理器安装流程进行预设
如果下载文件夹及目标硬件镜像文件夹不存在,系统会提示创建
接下来会涉及一些权限要求,所以要输入sudo密码
安装现在首先在主机上开始,可能需要等待几分钟…
在主机安装完成后,需要输入默认Ubuntu用户的密码
安装完成后弹出对话框,其中默认IP如下,无需修改
输入默认Ubuntu用户密码后install即可
安装完成后,单击完成和退出关闭SDK管理器即可
退出后,在终端查看IP可以看到一个RSHIM的 tmfifo_net0 的接口
我们可以通过192.168.100.2(应该就是刚刚的那个默认IP)来打开SSH连接,以登录到DPU( 用Ubuntu默认用户名来登录,不是主机当前用户名 )
如下图,DPU已登录成功,可以查看其版本信息:
然后教程里莫名其妙加了以下两步操作,不知道干啥的,我再看看
二、手动安装(没有联网…等情况可以使用手动安装)
首先需要从开发者专区下载几个文件暂存与主机上(至少需要:BlueField BFB 镜像 和 DOCA综合功能安装包),可以在DOCA开发者专区文档中找到,点我直接冲!
第一步是安装DOCA综合功能安装包,以下为Ubuntu主机的安装命令,其他主机(CentOS等)可能操作方式不同,可以在文档里查找解答,安装后记得用apt update
进行更新
接着使用包管理器来安装DOCA软件开发套件、DOCA运行时和DOCA工具,以下为Ubuntu,而CentOS使用yum命令
apt install doca-sdk doca-runtime doca-tools
安装后,若你拥有的是VPI BlueField 型号,并期望运行在以太网上,可以选择将DPU转为以太网模式,如果是仅支持以太网的DPU可以跳过此步
想要检查运行状态,可以通过mst start
命令启动MST工具,然后运行mst status
命令来获取设备名称,如果有多个设备信息,则参考此处的PCI索引,并对照lspci | grep Mellanox
命令搜索Mellanox结果
现在借助 Mellanox 配置工具,可以检查是否需要更改 BlueField 为以太网模式(此命令在安装指南中),以下的示例中,系统未显示该选项,可以得知该示例主机采用的是DPU仅支持以太网模式,无需做任何更改
DOCA综合功能安装包负责将所有DOCA软件安装至正确的位置,也包括了RSHIM,所以在安装后也要查看IP找 tmfifo_net0
如果希望通过这个 tmfifo_net0 接口从主机访问DPU,则需要一个IP地址,需要将静态IP地址永久添加到 tmfifo_net0 接口,需要将京塔配置添加到 Ubuntu 的net plan 中,若是一次性使用可以使用该命令ip addr add 192.168.100.1/24 dev tmfifo net0
将IP添加到接口上
至此,主机侧配置已经完成 ------------
接下来对 BlueField DPU 进行镜像,首先建议为默认用户名ubuntu创建一个密码,因为密码检查将通过比较密码的哈希密码来进行,所以我们需要使用 openssl 生成密码的哈希密码,并将其设置安装期间的密码(OpenSSL提供交互式让我们输入密码,并输出一个对应的哈希密码)
复制该哈希密码,并创建一个文件,把该哈希密码作为一个变量进行保存,使用文本编辑器来创建文件(以下示例是 nano ,应该也可以是vim),第二张图是标准的bash变量赋值语法
接着使用 bfb-install 脚本对 BlueField DPU 进行镜像,首先要用一些参数来调整脚本:首先是--rshim
然后再利用DPU的RSHIM接口名称,在几乎所有安装单个DPU的案例中,该字符串均为 rshim0 ,下一个参数是 --bfb
,这是我们提供的下载并暂存于此服务器的BFB文件路径,最后一个是--config
,它将指向 bf.dfg 文件,该文件包括用于设置ubuntu密码的变量。(系统镜像流程需要几分钟来完成…)
等待的时候可以连接到RSHIM控制台来更仔细查看进程
等一会,变成
到此,镜像完成,简单使用RSHIM控制台连接即可登录,但是我们使用SSH主机通过 tmfifo_net0 RSHIM 网络设备来登录至 DPU(默认的用户名为ubuntu,密码是通过OpenSSL生成的存储在配置文件中的哈希密码)
ok,登录成功!
最后一步,检查固件升级:(如果你确定执行固件升级,要确保在任何固件发生更新后执行额外步骤来完成固件重置,需要的去找一个DOCA软件开发套件开发者专区文档的固件升级部分)
终于结束啦!!!
可以启动已包括的示例应用程序(如,URL过滤示例应用程序)来确定是否正确安装和配置了系统来运行DOCA应用程序
打卡!下班!!!