---
title: KAE MD5摘要算法调优
description: "- 目的"
url: https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengsdss_ceph-storage_0022.html
sourcePath: /source/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengsdss_ceph-storage_0022.html
indexId: 233d496890a36f52eea1f994fb6019d52c8b42bc306469bf12c7285863dbe92a78
---
# KAE MD5摘要算法调优

- 目的
  优化RGW在写对象时的MD5计算过程，最大化CPU处理RGW进程的能力，发挥硬件最大性能。

- 方法
  MD5计算过程交由KAE硬件加速引擎处理。


#### 环境准备

安装加速引擎前需申请安装license。

申请指导(https://support.huawei.com/enterprise/zh/doc/EDOC1100068122/b9878159)

安装指导(https://support.huawei.com/enterprise/zh/doc/EDOC1100048792/ba20dd15)


下载加速引擎安装包与开发者指南(https://gitee.com/mirrors_kunpengcompute/KAE/tree/v1.3.6-bata)。


#### 加速引擎安装

- 开发者指南为加速引擎所有模块的安装指导流程与使用说明，依据开发者指南选择合适的安装方式进行安装。
- 针对操作系统为CentOS 7.6，OpenSSL为1.0.2k开源版本的场景，需下载相应版本的libkae引擎软件包，安装方式同开发者指南。


请按照开发者指南安装加速引擎。


#### 修改加速器默认队列数

硬件加速器默认队列数为256，当业务运行中加速器剩余队列为0或较低时（采用“步骤4”观测），为了保证加速器完全发挥性能，可修改队列数为512或1024。


1. 卸载hisi_sec2。
  1 rmmod hisi_sec2

2. 修改默认加速器队列参数“pf_q_num=512”。
  1 vi /etc/modprobe.d/hisi_sec2.conf

  1 options hisi_sec2 uacce_mode=2 enable_sm4_ctr=1 pf_q_num=512

3. 加载hisi_sec2。
  1 modprobe hisi_sec2

4. 检查硬件加速器队列。
  1 cat /sys/class/uacce/hisi_sec2-*/attrs/available_instances

  显示如下则代表修改成功：


#### Ceph适配加速器

当前，Ceph主线版本已支持通过配置文件对OpenSSL外部引擎进行配置。但对于目前已发布的Ceph ralease版本（统计至v15.2.3），均暂无此特性，故若想在这些版本使用MD5硬件加速，需要对Ceph源码进行修改。修改方式参考已合入主线的最新补丁：Github(https://github.com/ceph/ceph/pull/33964/files)

下文以Ceph 14.2.8为例，介绍Ceph适配MD5硬件加速的方法。


1. 获取源码(https://download.ceph.com/tarballs/)。
  下载完成后将源码包放入服务器“/home”目录下。

2. 获取适配补丁(https://mirrors.huaweicloud.com/kunpeng/archive/kunpeng_solution/storage/Patch/)。针对Ceph 14.2.8的OpenSSL外部引擎使能补丁可从如下地址获取，下载完成后将补丁放入“/home”目录下。
3. 进入“/home”目录，解压源码包并进入解压后的目录。
  1 cd /home && tar -zxvf ceph-14.2.8.tar.gz && cd ceph-14.2.8/

4. 在源码的根目录，应用补丁。
  1 patch -p1 < ../ceph-14.2.8-common-rgw-add-openssl-engine-support.patch

5. 修改完源码后需要编译Ceph。
  编译步骤请参考《Ceph 14.2.8 编译指南（CentOS 7.6&openEuler 20.03&openEuler 22.03）(https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengcephoe_02_0001.html)》。

6. 完成Ceph的软件安装。
7. 修改systemd权限。Ceph中，RGW进程服务由systemd管理，为使其具有硬件加速设备的访问权限， 需在每台RGW部署节点修改配置如下：

  a. 打开配置文件。
    1 vi /usr/lib/systemd/system/ceph-radosgw@.service

    并修改“PrivateDevices=yes”为“PrivateDevices=no”

  b. 使修改生效。
    1 systemctl daemon-reload

8. 使用KAE加速RGW摘要计算。在RGW部署节点的ceph.conf配置文件的“global”域增加OpenSSL引擎选项如下：
  1 openssl_engine_opts = "engine_id=kae,dynamic_path=/usr/local/lib/engines-1.1/libkae.so,KAE_CMD_ENABLE_ASYNC=0,default_algorithms=DIGESTS,init=1"

  其中"dynamic_path"为libkae引擎软件包中libkae.so的默认安装路径；"default_algorithms=DIGESTS"指对包括MD5在内的摘要算法使用此引擎。配置完成后，需要同步到所有RGW部署节点。

9. 重启RGW，使配置生效。在所有RGW部署节点执行：
  1 systemctl restart ceph-radosgw.target
