如何在Web场景下使用KAE
发表于 2023/09/06
0
本节的实操过程需要使用鲲鹏平台,开发者可以使用自备的鲲鹏平台进行学习和体验。
环境要求
KAE支持的软硬件环境要求如下:
项目 |
类别 |
要求 |
---|---|---|
硬件 | 服务器 | TaiShan服务器(鲲鹏920处理器) |
软件 |
iBMC |
iBMC V365及以上版本 |
BIOS |
BIOS V105及以上版本 |
|
操作系统 |
(1)CentOS 7.6 4.14.0-115.el7a.0.1.aarch64 version (2)SUSE 15.1 4.12.14-195-default.aarch64 version (3)EulerOS 2.8 4.19.36-vhulk1907.1.0.h410.eulerosv2r8.aarch64 version (4)NeoKylin 7.6 4.14.0-115.5.1.el7a.06.aarch64 version (5)BCLinux-R7-U6-Server-aarch64 version (6)Kylin 4.0.2 (juniper) 4.15.0-70-generic version (7)Kylin release 4.0.2 (SP2) 4.19.36-vhulk1907.1.0.h403.ky4.aarch64 version (8)UniKylin Linux release 3(Core) 4.18.0-80.ky3.kb21.hw.aarch64 version (9)Ubuntu 18.04.1 LTS 4.15.0-29-generic version (10)openEuler 20.03 LTS 4.19.90-2003.4.0.0036.oe1.aarch64 version (11)openEuler 20.03 LTS-SP1 4.19.90-2012.4.0.0053.oe1.aarch64 version |
为保证KAE能够正常工作,同时可以直观的体验KAE带来的性能提升,本文使用鲲鹏处理器为硬件平台,openEuler为操作系统来测试验证KAE的加速效果,请检查您的安装环境,确保测试环境达到推荐配置要求。
安装KAE
安装鲲鹏加速引擎KAE需要执行下面几个关键步骤,安装成功后,通过OpenSSL调用KAE,可以简单验证KAE的性能提升效果。
步骤 1 申请并安装KAE License。
安装鲲鹏加速引擎KAE之前需要先申请并导入相应的License,License安装成功之后,操作系统才能识别到加速器设备。License申请和安装的详细操作可参考《华为服务器iBMC许可证 使用指导》。
(1)获取License。
(2)安装License。
a. 通过浏览器登录服务器的iBMC,依次单击“iBMC管理 > 许可证管理 > 安装”。
b. 重启服务器。
c. 查看操作系统中是否有KAE加速器设备。
lspci | grep HPRE
lspci | grep RDE
lspci | grep ZIP
lspci | grep SEC
若运行以上命令后没有任何回显信息打印,说明操作系统中没有KAE加速器设备,请检查License是否安装。
步骤 2 编译安装OpenSSL 1.1.1a。
安装前请先确认是否已安装以下组件:
① 已安装与系统版本对应的kernel-devel。可以通过uname -r命令查询当前内核版本号。
② 已安装perl、bzip2。可以通过perl --version,bzip2 --version命令查询是否已安装。
③ 已安装GCC、make工具,不同GCC版本下呈现出的性能数据存在差异,推荐使用7.4.1及以上版本,make推荐使用3.82及以上版本。可以通过gcc --version,make --version命令查询是否已安装。
④ 已安装automake、autoconf、libtool相关软件。可以通过automake --version,autoconf --version,libtool --version命令查询是否已安装。
(1)获取OpenSSL源码包(OpenSSL为1.1.1a及以上版本),将源码包拷贝到自定义路径下。
获取链接:https://www.openssl.org/source/old/1.1.1/
(2)解压缩后,在OpenSSL源码目录下,编译安装OpenSSL。
本文使用OpenSSL的默认安装路径“/usr/local”,您也可以通过“./config --prefix”指定安装路径。“-Wl,-rpath”参数用来指定OpenSSL运行时依赖libcrypto、libssl库的路径。
./config -Wl,-rpath,/usr/local/lib
make
make install
(3)设置环境变量。
如果开发者指定安装路径,则下面命令中的“/usr/local/lib/engines-1.1”应根据实际安装路径进行修改。
export OPENSSL_ENGINES=/usr/local/lib/engines-1.1
(4)安装后检查。
a. 执行cd命令,进入到“/usr/local/bin”目录下。
b. 查看OpenSSL版本信息。
./openssl version
显示OpenSSL版本号内容说明安装成功。
步骤 3 安装鲲鹏加速引擎KAE。
KAE的安装方式有RPM包安装、DEB包安装和源码安装3种,本文以RPM包安装方式为例,其他安装方式请参见《鲲鹏加速引擎 开发指南(KAE加解密)》。
(1)获取RPM安装包kae_1.3.11_openEuler20.03LTS_SP1.zip,将安装包拷贝到自定义路径下。
获取路径:https://gitee.com/kunpengcompute/KAE/releases
(2)解压后安装加速驱动软件包。
rpm -ivh *.rpm
(3)手动加载加速器到内核。
a. 查询已载入内核的uacce驱动模块。
lsmod | grep uacce
b. 加载uacce、hisi_sec2、hisi_hpre、hisi_rde驱动到内核。
modprobe uacce
modprobe hisi_sec2
modprobe hisi_hpre
modprobe hisi_rde
c. 再次查询已载入内核的uacce驱动模块。
lsmod | grep uacce
有以下加载的模块显示则表示加载成功。
uacce 36864 3 hisi_sec2,hisi_qm,hisi_hpre,hisi_rde
步骤 4 查看KAE加速引擎是否已安装成功。
rpm -qa uacce hisi_sec2 hisi_hpre hisi_rde
显示如下信息,表明KAE已安装成功。
hisi_sec2-1.3.11-1.openEuler20.03LTS_SP1.aarch64
uacce-1.3.11-1.openEuler20.03LTS_SP1.aarch64
hisi_hpre-1.3.11-1.openEuler20.03LTS_SP1.aarch64
hisi_rde-1.3.11-1.openEuler20.03LTS_SP1.aarch64
步骤 5 通过OpenSSL调用KAE验证RSA2048算法性能,确认鲲鹏加速引擎KAE是否已生效。
(1)使用加速器前,执行以下命令,并查看执行结果。
cd /usr/local/bin/
./openssl speed rsa2048
回显信息如下:
sign verify sign/s verify/s
rsa 2048 bits 0.001381s 0.000035s 724.1 28601.0
(2)使用KAE后,执行以下命令,并查看执行结果。
./openssl speed -engine kae rsa2048
回显信息如下:
engine "kae" set.
sign verify sign/s verify/s
rsa 2048 bits 0.000175s 0.000021s 5730.1 46591.8
通过RSA性能命令可以看到指定KAE之后,签名性能从724.1 sign/s提升到5730.1sign/s,RSA的性能得到明显提升。
(3)在测试RSA2048算法性能的过程中,可以打开新的命令行终端,执行以下命令查看KAE资源队列值(默认值为256),数值减少则说明KAE已生效。
cat /sys/class/uacce/hisi_hpre-*/attrs/available_instances
或者
watch -d cat /sys/class/uacce/hisi_hpre-*/attrs/available_instances
回显信息中KAE资源队列值从256变为255,说明RSA算法消耗了HPRE加速器一个硬件单元队列,说明KAE已生效。
----结束
配置OpenSSL调用KAE
将鲲鹏加速引擎KAE内容写入OpenSSL配置文件openssl.cnf中,以实现KAE的调用。OpenSSL配置文件默认在“/usr/local/ssl/”路径下。
步骤 1 新建OpenSSL配置文件openssl.cnf。
vi /home/openssl.cnf
步骤 2 按“i”进入编辑模式,将KAE加速器相关内容写入OpenSSL配置文件。
openssl_conf=openssl_def
[openssl_def]
engines=engine_section
[engine_section]
kae=kae_section
[kae_section]
engine_id=kae
dynamic_path=/usr/local/lib/engines-1.1/kae.so
default_algorithms=ALL
init=1
步骤 3 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
步骤 4 在profile文件中配置OpenSSL的环境变量。
(1)打开profile文件。
vi /etc/profile
(2)按“i”进入编辑模式,添加如下内容。
export OPENSSL_CONF=/home/openssl.cnf
(3)按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
步骤 5 使环境变量生效。
source /etc/profile
----结束
测试验证KAE加速效果
通过测试Web场景下RSA2048算法同步和异步性能验证KAE加速效果。
测试RSA2048算法性能有两种方式:同步性能测试和异步性能测试。因为已配置OpenSSL的环境变量,性能测试命令中不需要指定KAE引擎即可调用KAE加速库。
(1)同步性能测试
openssl speed -elapsed rsa2048
(2)异步性能测试。
openssl speed -elapsed -async_jobs 36 rsa2048
在测试过程中,同时使用以下两个命令中的任何一个查看KAE资源队列值(默认值为256),数值减少则说明KAE加速生效。
cat /sys/class/uacce/hisi_hpre-*/attrs/available_instances
或者
watch -d cat /sys/class/uacce/hisi_hpre-*/attrs/available_instances
回显信息如下,可以看到KAE资源队列值从256变为255,说明RSA算法消耗了HPRE加速器一个硬件单元队列,说明KAE加速生效。
255
256