优化zlib压缩,最大化CPU处理OSD进程的能力,发挥硬件最大性能。
zlib压缩过程交由硬件加速引擎处理。
1 2 | unzip KAE-kae1.zip cd KAE-kae1/kae_driver |
1 2 | tar -czvf libwd-1.0.0.tar.gz warpdrive cp libwd-1.0.0.tar.gz KAEzip-master/open_source |
1 2 | cd KAEzip-master sh setup.sh install |
zlib加速库安装在“/usr/local/kaezip”。
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进程使其生效,在所有存储节点上执行:
1 | systemctl restart ceph-osd.target |
硬件加速器队列是硬件驱动虚拟出来的“资源”, 如hisi_zip驱动安装后, 默认虚拟出来的这种资源数默认是256,每一个要发给加速硬件的压缩任务必须提前申请到这么一个资源。如果客户并发数量超过256,则需要增大加速器队列数量以适配业务场景。如调整为512或1024。
1 | rmmod hisi_zip
|
1 | vim /etc/modprobe.d/hisi_zip.conf
|
1 | options hisi_zip uacce_mode=2 pf_q_num=512 |
1 | modprobe hisi_zip
|
1 | cat /sys/class/uacce/hisi_zip-*/attrs/available_instances
|
显示如下则代表修改成功:
1 | ldd /lib64/libz.so.1
|
当前,Ceph主线版本已支持通过配置文件对zlib压缩模式进行配置,已发布的Ceph release版本(统计至v15.2.3),采用的zlib压缩是不带数据头尾的方式,而当前硬件加速库版本仅支持带数据头尾的方式。因此,需要修改Ceph源码以适配Kunpeng硬件加速库。修改方式参考已合入主线的最新补丁:
下文以Ceph 14.2.8为例,介绍Ceph适配zlib压缩引擎的方法。
下载完成后将源码包放入服务器“/home”目录下。
1 | cd /home && tar -zxvf ceph-14.2.8.tar.gz && cd ceph-14.2.8/ |
1 | patch -p1 < ../ceph-14.2.8-zlib-compress.patch |
编译步骤请参考《Ceph 14.2.8 编译指南(CentOS 7.6&openEuler 20.03&openEuler 22.03)》。
1 | vi /etc/ceph/ceph.conf
|
compressor_zlib_winsize=15
1 | vi /usr/lib/systemd/system/ceph-radosgw@.service
|
并修改“PrivateDevices=yes”为“PrivateDevices=no”
1 | systemctl daemon-reload
|
1 | ceph daemon osd.0 config show|grep compressor_zlib_winsize |