---
title: KAE zlib压缩调优
description: "以下操作在所有Ceph 服务端 进行。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengcephblock_05_0009.html
sourcePath: /source/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengcephblock_05_0009.html
indexId: f2c4f3b911fbb30b2a925eff71600bd88c9ee5481aef5f6901a4068e5a3597a973
---
# KAE zlib压缩调优

以下操作在所有Ceph 服务端 进行。

- 目的
  优化zlib压缩，最大化CPU处理OSD进程的能力，发挥硬件最大性能。

- 方法
  zlib压缩过程交由KAE硬件加速引擎处理。


#### 环境准备

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

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

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


下载加速引擎安装包与开发者指南(https://gitee.com/kunpengcompute/KAEzip/tags)。


#### 加速引擎安装

开发指南为加速引擎所有模块的安装指导流程与使用说明，依据开发指南选择合适的安装方式进行安装。

详情请参考《通过源码方式安装加速引擎软件(https://gitcode.com/boostkit/KAE/blob/kae1/README.md#242-源码安装)》。


1. 按照开发指南安装加速引擎。
2. 安装zlib库。

  a. 下载    KAEzip(https://gitee.com/kunpengcompute/KAEzip/repository/archive/master.zip)
，下载后解压目录为KAEzip-master。
  b. 从zlib官网下载    zlib-1.2.11.tar.gz(https://www.zlib.net/fossils/zlib-1.2.11.tar.gz)
，并拷贝到“KAEzip-master/open_source”。
  c. 下载    KAE-kae1.zip(https://gitee.com/kunpengcompute/KAE/repository/archive/kae1.zip)
到“/home”目录下，执行解压操作并进入kae_driver目录。
    1 2 unzip KAE-kae1.zip cd KAE-kae1/kae_driver

  d. 制作libwd压缩包，并拷贝到“KAEzip-master/open_source”。
    1 2 tar -czvf libwd-1.0.0.tar.gz warpdrive cp libwd-1.0.0.tar.gz KAEzip-master/open_source

  e. 编译安装。
    1 2 cd KAEzip-master sh setup.sh install

    zlib加速库安装在“/usr/local/kaezip”。

3. 替换zlib软算动态库。
  1 2 3 4 cd /usr/local/kaezip/lib cp libz.so.1.2.11 /lib64/ mv /lib64/libz.so.1 /lib64/libz.so.1-bak ln -s /lib64/libz.so.1.2.11 /lib64/libz.so.1

  命令cd /usr/local/kaezip/lib中“/usr/local/kaezip/lib”指zlib安装路径，请根据实际情况进行替换。


若替换动态库之前Ceph集群已经在运行，需要在完成动态库替换后重启OSD进程使其生效，在所有存储节点上执行：

```
systemctl restart ceph-osd.target
```


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

硬件加速器队列是硬件驱动虚拟出来的“资源”， 如hisi_zip驱动安装后， 默认虚拟出来的这种资源数默认是256，每一个要发给加速硬件的压缩任务必须提前申请到这么一个资源。如果客户并发数量超过256，则需要增大加速器队列数量以适配业务场景。如调整为512或1024。


1. 卸载hisi_zip。
  1 rmmod hisi_zip

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

  1 options hisi_zip uacce_mode=2 pf_q_num=512

3. 加载hisi_zip。
  1 modprobe hisi_zip

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

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

5. 检查动态库链接，包含libwd.so.1字样代表成功。
  1 ldd /lib64/libz.so.1


#### Ceph适配加速器

当前，Ceph主线版本已支持通过配置文件对zlib压缩模式进行配置，已发布的Ceph release版本（统计至v15.2.3），采用的zlib压缩是不带数据头尾的方式，而当前硬件加速库版本仅支持带数据头尾的方式。因此，需要修改Ceph源码以适配Kunpeng硬件加速库。修改方式参考已合入主线的最新补丁：

Github(https://github.com/ceph/ceph/pull/34852)

下文以Ceph 14.2.11为例，介绍Ceph适配zlib压缩引擎的方法。


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

2. 获取补丁(https://gitee.com/kunpengcompute/ceph/releases/download/v14.2.11/ceph-14.2.11-glz.patch)，放入“/home”目录下。
3. 进入“/home”目录，解压源码包并进入解压后的目录。
  1 cd /home && tar -zxvf ceph-14.2.11.tar.gz && cd ceph-14.2.11/

4. 在源码目录下，应用补丁。
  1 2 cd /home/ceph-14.2.11 patch -p1 < ceph-14.2.11-glz.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. 修改ceph.conf，配置zlib压缩模式。
  1 vim /etc/ceph/ceph.conf

```
compressor_zlib_winsize=15
```


8. 重启Ceph集群，确认配置生效。
  1 ceph daemon osd.0 config show|grep compressor_zlib_winsize
