优化zlib压缩,最大化CPU处理OSD进程的能力,发挥硬件最大性能。
zlib压缩过程交由硬件加速引擎处理。
安装加速引擎前需申请安装License。
申请指导:
https://support.huawei.com/enterprise/zh/doc/EDOC1100068122/b9878159
安装指导:
https://support.huawei.com/enterprise/zh/doc/EDOC1100048792/ba20dd15
下载加速引擎安装包与开发者指南。
开发指南为加速引擎所有模块的安装指导流程与使用说明,依据开发指南选择合适的安装方式进行安装。
详情请参考《通过源码方式安装加速引擎软件》。
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 |
硬件加速器默认队列数为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硬件加速库。修改方式参考已合入主线的最新补丁:
https://github.com/ceph/ceph/pull/34852
下文以Ceph 14.2.8为例,介绍Ceph适配zlib压缩引擎的方法。
源码下载链接:https://download.ceph.com/tarballs/
下载完成后将源码包放入服务器“/home”目录下。
https://mirrors.huaweicloud.com/kunpeng/archive/kunpeng_solution/storage/Patch/
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 |