FUSE调优
环境准备

- Libfuse用户态优化基于openEuler 22.03(LTS-SP4)版本进行开发,使用该特性时,Ceph客户端操作系统需要升级到openEuler 22.03(LTS-SP4)。
- openEuler 22.03自带的Libfuse版本为3.10.5,Ceph 16及以上版本上Fuse模块才开始支持使用Libfuse 3.x版本,因此Ceph需要安装16以上的版本,建议直接安装openEuler 22.03(LTS-SP4)自带的16.2.7版本。安装方法可参见Ceph 16.2.7 安装指南(openEuler 22.03)。
- 优化后的Libfuse不支持splice读写模式,需要在ceph.conf配置中关闭该读写模式,具体可参见Ceph文件存储 部署指南(CentOS 7.6&openEuler 20.03&openEuler 22.03)中的“配置MON节点”章节,将global作用域下的参数配置为如下内容。
fuse_splice_read = false
fuse_splice_write = false
fuse_splice_move = false
由于openEuler 22.03 (LTS-SP4)自带的ceph-fuse依赖的Libfuse库版本为2.x版本,需要在openEuler 22.03 (LTS-SP4)上安装Libfuse3重新编译ceph-fuse,具体步骤如下。
以下步骤任选一台服务端机器或者客户端机器进行编译。
- 安装Libfuse3模块。
1
yum install fuse3 fuse3-devel
- 进入“/home”目录下载Ceph 16.2.7源码。
1
cd /home && wget https://download.ceph.com/tarballs/ceph-16.2.7.tar.gz --no-check-certificate
- 解压源码包。
1
tar -zxvf ceph-16.2.7.tar.gz
- 安装编译相关依赖。
1
yum install java-devel sharutils checkpolicy selinux-policy-devel gperf cryptsetup fuse-devel gperftools-devel libaio-devel libblkid-devel libcurl-devel libudev-devel libxml2-devel libuuid-devel ncurses-devel valgrind-devel xfsprogs-devel xmlstarlet yasm nss-devel libibverbs-devel openldap-devel CUnit-devel python3-Cython python3-setuptools python-prettytable lttng-ust-devel expat-devel junit boost-random keyutils-libs-devel openssl-devel libcap-ng-devel python3-sphinx leveldb leveldb-devel snappy snappy-devel lz4 lz4-devel liboath liboath-devel libbabeltrace-devel librabbitmq librabbitmq-devel librdkafka librdkafka-devel libnl3 libnl3-devel rdma-core-devel numactl numactl-devel numactl-libs createrepo openldap-devel rdma-core-devel lz4-devel expat-devel lttng-ust-devel libbabeltrace-devel python3-Cython gperftools-devel bc dnf-plugins-core librabbitmq-devel rpm-build java-1.8.0-openjdk-devel python3-devel openeuler-lsb rpmdevtools cmake gcc-c++ libtool cryptsetup-devel sqlite-devel lua-devel libicu-devel -y
- 进入ceph-16.2.7目录并执行编译构建脚本。
1
cd ceph-16.2.7 && ./do_cmake.sh -DCMAKE_BUILD_TYPE=Release
- 进入“build”目录,并编译ceph-fuse。
1
cd build && make -j ceph-fuse
- 编译成功后,ceph-fuse位于“build/bin”目录。
1
cd bin
Fuse相关依赖安装
以下步骤都在客户端节点进行。
- 安装Libfuse3模块。
1
yum install fuse3 fuse3-devel
- 将“环境准备”中的步骤7的ceph-fuse移动到“/usr/bin”目录下,并对ceph-fuse进行提权。
1
chmod 755 /usr/bin/ceph-fuse
- 安装优化后的内核。
1
yum install kernel-5.10.0-263.0.0.166.oe2203sp4.aarch64
Libfuse库优化需要内核Fuse模块进行改造支持,内核Fuse部分的改动从kernel-5.10.0-263.0.0.166版本开始支持。
- 将内核切换到步骤3安装的版本。
1
grub2-set-default 'openEuler (5.10.0-263.0.0.166.oe2203sp4.aarch64) 22.03 (LTS-SP4)'
- 重启服务器,使得切换后的内核生效。
1
reboot
挂载CephFuse文件系统
以下步骤都在客户端节点进行。
- 创建文件系统挂载点。
1
mkdir /mnt/cephfs
- 执行挂载命令。
1
ceph-fuse -m 192.168.3.166:6789,192.168.3.167:6789,192.168.3.168:6789 /mnt/cephfs -o use_fastpath
- “192.168.3.166”“192.168.3.167”“192.168.3.168”,对应的是Ceph存储节点的Public IP地址。
- MON默认端口号为6789,-o后带上“use_fastpath”参数表示使能libfuse优化模块,若不指定将使用原始libfuse模块。
- 查看是否挂载成功。
1
df -h
通过df -h命令查看文件系统是否挂载成功,若成功挂载可看到下图红色框的文件目录。
父主题: 均衡型配置调优