安装设备
bj-ontest5 intel
bj-ontest6 exar
基本步骤
插卡。
装环境openssl、驱动、engine。
安装qat_server代码写配置。
安装qat_client代码写配置。
测试qat_client打量,观察看是否有bug。
出测试报告。
QAT安装测试
参考”Intel QAT 卡评估手册”
https://github.com/intel/QAT_Engine
https://github.com/intel/asynch_mode_nginx
硬件要求
Intel® Xeon® with Intel® C62X Series Chipset
Intel® Communications Chipset 8925 to 8955 Series
Intel® Communications Chipset 8900 to 8920 Series
Operating system: CentOS* 7.4 64-bit version
Kernel: GNU*/Linux* 3.10.0-693
Intel® Communications Chipset C62X Series Software for Linux*, version 4.4
OpenSSL* 1.1.0h
插卡(INTEL(R) QUICK ASSIST ADAPTER 8970)
[root@bj-ontest5 ~]# lspci|grep Co-processor
85:00.0 Co-processor: Intel Corporation Device 37c8 (rev 04)
86:00.0 Co-processor: Intel Corporation Device 37c8 (rev 04)
87:00.0 Co-processor: Intel Corporation Device 37c8 (rev 04)
8a:00.0 Co-processor: Intel Corporation Device 37c8 (rev 04)
8b:00.0 Co-processor: Intel Corporation Device 37c8 (rev 04)
8c:00.0 Co-processor: Intel Corporation Device 37c8 (rev 04)
装环境
环境变量(跟后续安装路径有关)
vim /etc/profile
export ICP_ROOT=/Application/qat/qat1.7.l.4.2.0-00012
export ICP_BUILD_OUTPUT=$ICP_ROOT/build
export OPENSSL_ROOT=/Application/qat/openssl-1.1.0h
export OPENSSL_LIB=$OPENSSL_ROOT/.openssl
export LD_LIBRARY_PATH=$OPENSSL_ROOT/.openssl/lib/engines1.1:$OPENSSL_ROOT/.openssl/lib
export OPENSSL_ENGINES=$OPENSSL_LIB/lib/engines-1.1
export NGINX_INSTALL_DIR=/Application/qat/qat_server
装openssl库
目前只支持openssl 1.1.0h,openssl1.1.1系列的版本不支持
下载openssl1.1.0h 到 /Application/qat/openssl1.1.0h
mkdir .openssl
./config --prefix=/Application/qat/openssl-1.1.0h/.openssl
make
make install
vim /Application/qat/openssl-1.1.0h/.openssl/ssl/openssl.cnf
openssl_conf = openssl_def
[openssl_def]
engines = engine_section
[engine_section]
qat = qat_section
[qat_section]
engine_id = qat
dynamic_path = /Application/qat/openssl-1.1.0h/.openssl/lib/engines-1.1/qat.so
default_algorithms = ALL
装驱动
mkdir -p /Application/qat/qat1.7.l.4.2.0-00012
安装qat1.7.l.4.2.0-00012.tar.gz从https://01.org/zh/intel-quickassist-technology?langredirect=1下载Intel® QuickAssist Technology Driver for Linux* - HW version 1.7下载文件包
tar -xvf qat1.7.l.4.2.0-00012.tar.gz
./installer.sh (choose 1、2)
装QAT engine
从GitHub - intel/QAT_Engine下载放入/Application/qat/QAT_Engine
./autogen.sh
./configure --with-qat_dir=$ICP_ROOT --with-openssl_dir=$OPENSSL_ROOT --with-openssl_install_dir=$OPENSSL_LIB --enable-upstream_driver --enable-usdm --disable-qat_lenstra_protection --enable-qat_for_openssl_110
make
make install
cp /Application/qat/QAT_Engine/qat/config/c6xx/multi_thread_optimized/c6xx_dev0.conf /etc/c6xx_dev0.conf
cp /Application/qat/QAT_Engine/qat/config/c6xx/multi_thread_optimized/c6xx_dev1.conf /etc/c6xx_dev1.conf
cp /Application/qat/QAT_Engine/qat/config/c6xx/multi_thread_optimized/c6xx_dev2.conf /etc/c6xx_dev2.conf
cp /Application/qat/QAT_Engine/qat/config/c6xx/multi_thread_optimized/c6xx_dev0.conf /etc/c6xx_dev3.conf
cp /Application/qat/QAT_Engine/qat/config/c6xx/multi_thread_optimized/c6xx_dev0.conf /etc/c6xx_dev4.conf
cp /Application/qat/QAT_Engine/qat/config/c6xx/multi_thread_optimized/c6xx_dev0.conf /etc/c6xx_dev5.conf
将 /etc/c6xx_dev0.conf、 /etc/c6xx_dev1.conf、 /etc/c6xx_dev2.conf、 /etc/c6xx_dev3.conf、 /etc/c6xx_dev4.conf、 /etc/c6xx_dev5.conf
[SHIM]
NumberCyInstances = 1
NumberDcInstances = 0
NumProcesses = 16(nginx进程个数的2倍)
LimitDevAccess = 0
service qat_service restart
装qat_server
将源码qat_server.tar.gz放入/Applition/
./configure \
--prefix=/Application/qat/qat_server/qat_server \
--sbin-path=/Application/qat/qat_server/qat_server/bin/qat_server \
--conf-path=/Application/qat/qat_server/qat_server/conf/qat_server.conf \
--error-log-path=/Application/qat/qat_server/qat_server/logs/error.conf \
--with-http_ssl_module \
--with-stream \
--with-stream_ssl_module \
--with-openssl-async \
--with-zlib=libs/zlib-1.2.8 \
--with-cc-opt="-DNGX_SECURE_MEM -I$OPENSSL_LIB/include -Wno-error=deprecated-declarations" \
--with-ld-opt="-Wl,-rpath=$OPENSSL_LIB/lib -L$OPENSSL_LIB/lib"
make
make install
配置
将配置qat_server_conf.tar.gz 放入/Application/qat/qat_server/qat_server/下
tar -zvcf qat_server_conf.tar.gz
mv qat_server_conf conf
/Application/qat/qat_server/qat_server/bin/qat_server -c /Application/qat/qat_server/qat_server/conf/qat_server.conf
代表已启动
测试qat加速卡
先bj-ontest6(Client)->bj-ontest5(Server)。
后bj-ontest5(Client)->bj-ontest6(Server)。
使用 openssl speed相关命令测试,分别测试软件,同步,异步做对比测试根据openssl给出的测试结果为准。
测试nginx 打量
先bj-ontest6(Client)->bj-ontest5(Server)。
后bj-ontest5(Client)->bj-ontest6(Server)。
阶段:ab/sumoku 客户端指定并发请求数等,指定加解密算法,客户端指定不了,可用服务端配合。
效果观察:nginx日志和和设备的相关情况做生成分析报告,重点看cpu和内存情况。
nginx日志和exar自带的统计分析报表 /proc/exar/dx_pk_statistics;设备的相关情况做生成分析报告,重点看cpu和内存情况。
EXAR安装测试步骤
参考资料:EXAR_Nginx_OpenSSL_Engine_2.0.0_AppNote_u.pdf,USR-0010-A02_OpenSSL_Engine_2.0.0_GettingStarted.pdf。
内核版本:CentOS release 6.4 (Kernel 2.6.32-358.el6 for x86_64) 及以上。
装有exar加速卡的机器
lspci |grep -i hifn
03:00.0 Class 1200: Hifn Inc. Device 9240 (rev 01)
82:00.0 Class 1200: Hifn Inc. Device 9240 (rev 01)
DX_SDK_v2.3.0L_EXAR_20190329.tar.gz
DX_SDK_v2.3.0L_PUBLIC_20190329.tar.gz
openssl_engine_3.2.0_20191019.tar.gz
openssl环境以openssl-1.1.1b为例
openssl-1.1.1b
安装步骤
创建SDK工作目录(文档中路径为/home/exar_env/)
拷贝DX_SDK_v2.3.0L_PUBLIC_20190329.tar.gz文件到/home/exar_env
解压文件DX_SDK_v2.3.0L_PUBLIC_20190329.tar.gz
拷贝DX_SDK_v2.3.0L_EXAR_20190329.tar.gz文件到/home/exar_env
解压文件DX_SDK_v2.3.0L_EXAR_20190329.tar.gz
解压后/home/exar_env下子目录及文件列表如下:
drwxr-xr-x. 4 root root 26 Feb 24 2019 api
drwxr-xr-x. 5 root root 46 Feb 24 2019 app
-rw-r--r--. 1 root root 7436 Feb 24 2019 demo.cfg.xml
drwxr-xr-x. 3 root root 166 Feb 24 2019 diag
-rw-r--r--. 1 root root 9084 Feb 24 2019 driver.cfg.xml
drwxr-xr-x. 2 root root 4096 Feb 24 2019 dsd820x
drwxr-xr-x. 2 root root 4096 Feb 24 2019 dsd92xx
drwxr-xr-x. 4 root root 4096 Feb 24 2019 esf
drwxr-xr-x. 2 root root 4096 Feb 24 2019 h
-rw-r--r--. 1 root root 3069 Feb 24 2019 Load
-rw-r--r--. 1 root root 20690 Feb 24 2019 Makefile
-rw-r--r--. 1 root root 2894 Feb 24 2019 README.exar
-rw-r--r--. 1 root root 10800 Feb 24 2019 README.public
drwxr-xr-x. 5 root root 40 Feb 24 2019 sai
-rw-r--r--. 1 root root 2911 Feb 24 2019 sdemo.decode.cfg.xml
-rw-r--r--. 1 root root 3474 Feb 24 2019 sdemo.drbg.xml
-rw-r--r--. 1 root root 3167 Feb 24 2019 sdemo.encode.cfg.xml
-rw-r--r--. 1 root root 905 Feb 24 2019 sdemo.ivaad.xml
-rw-r--r--. 1 root root 3579 Feb 24 2019 sdemo.key.xml
drwxr-xr-x. 7 root root 4096 Feb 24 2019 swlib
-rw-r--r--. 1 root root 470 Feb 24 2019 UnLoad
drwxr-xr-x. 2 root root 62 Feb 24 2019 userspace
修改driver.cfg.xml配置
pk_enable根据cpu核数以及exar加速卡队列数(现阶段线上版本有17个队列,0,16队列有固定使用场景,1-15可以分配使用,我们设置12是因为有两块卡,cpu有24核,这样绑中断刚好可以绑的均匀)
执行make;make install命令
在/home/exar_env下生成dre_drv.ko, 安装该模块insmod /home/exar_env/dre_drv.ko
安装之后执行Load irq_balance绑定中断(Load做过修改,附件中md5:5984602ff8599232490bcf425a4bb507 版本适用于两块卡,pk_enable:12 , cpu 24核的中断绑定,其他情况酌情修改)
创建/home/openssl_engine,拷贝openssl_engine_3.2.0_20191019.tar.gz至该目录
解压openssl_engine_3.2.0_20191019.tar.gz后/home/openssl_engine目录下文件列表:
- 1 root root 3.4K Nov 17 2011 ech_locl.hrw-rr- 1 root root 3.8K Nov 17 2011 ecs_locl.hrw-rr- 1 root root 80K May 15 2014 eng_dx.crw-rr- 1 root root 4.0K Mar 25 2014 Makefilerw-rr- 1 root root 13K Mar 20 2014 pk_drv.crw-rr
修改Makefile相关字段:
OPENSSL_INSTALL_PATH := /path/to/openssl-1.1.1b/.openssl #openssl 安装路径
执行make;make install命令
在/home/openssl_engine下生成pk_drv.ko并安装该模块insmod /home/openssl_engine/pk_drv.ko
测试安装情况
使用 openssl speed相关命令测试、例如:分别测试软件,同步,异步做对比测试
观察效果用exar自带的统计分析报表 /proc/exar/dx_pk_statistics。
测试命令:
openssl speed rsa2048 -engine eng_dx -elapsed -multi 24
单张exar加速卡可以到4w/s即可认为安装成功。
注意
用户如果需要使用该engine,需要设置OPENSSL_ENGINES环境变量:
例如root用户的程序需要使用该engine,那么我们可以将OPENSSL_ENGINES变量写在/root/.bashrc中:
机器有重启的可能,如果机器重启,可以在rc.local中添加自动加载模块以及设置的命令,达到自动加载的目的: