---
title: FUSE调优
description: "- 目的"
url: https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengcephfile_05_0012.html
sourcePath: /source/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengcephfile_05_0012.html
indexId: 0c232242433b5a7d69c8f7ba72c0a63c038680c3aaa5f6940b09773b6086cdc272
---
# FUSE调优

- 目的
  优化Libfuse模块，减少线程切核以及元数据拷贝带来的性能损耗。

- 方法
  具体请参考FUSE fastpath特性说明和使用指南(https://docs.openeuler.openatom.cn/zh/docs/22.03_LTS_SP4/docs/Administration/FUSE加速特性指南.html)。


#### 环境准备

以下步骤可在任意一台服务端机器或者客户端机器进行编译。

1. 安装Libfuse3模块。
  1 yum install fuse3 fuse3-devel

2. 进入“/home”目录下载Ceph 16.2.7源码。
  1 cd /home && wget https://download.ceph.com/tarballs/ceph-16.2.7.tar.gz --no-check-certificate

3. 解压源码包。
  1 tar -zxvf ceph-16.2.7.tar.gz

4. 安装编译相关依赖。
  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

5. 进入ceph-16.2.7目录并执行编译构建脚本。
  1 cd ceph-16.2.7 && ./do_cmake.sh -DCMAKE_BUILD_TYPE=Release

6. 进入“build”目录，并编译ceph-fuse。
  1 cd build && make -j ceph-fuse

7. 编译成功后，ceph-fuse位于“build/bin”目录。
  1 cd bin


#### Fuse相关依赖安装

以下步骤都在客户端节点进行。

1. 安装Libfuse3模块。
  1 yum install fuse3 fuse3-devel

2. 将“环境准备”中的步骤7的ceph-fuse移动到“/usr/bin”目录下，并对ceph-fuse进行提权。
  1 chmod 755 /usr/bin/ceph-fuse

3. 安装优化后的内核。
  1 yum install kernel-5.10.0-263.0.0.166.oe2203sp4.aarch64

  Libfuse库优化需要内核Fuse模块进行改造支持，内核Fuse部分的改动从kernel-5.10.0-263.0.0.166版本开始支持。

4. 将内核切换到步骤3安装的版本。
  1 grub2-set-default 'openEuler (5.10.0-263.0.0.166.oe2203sp4.aarch64) 22.03 (LTS-SP4)'

5. 重启服务器，使得切换后的内核生效。
  1 reboot


#### 挂载CephFuse文件系统

以下步骤都在客户端节点进行。

1. 创建文件系统挂载点。
  1 mkdir /mnt/cephfs

2. 执行挂载命令。
  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模块。

3. 查看是否挂载成功。
  1 df -h

  通过df -h命令查看文件系统是否挂载成功，若成功挂载可看到下图红色框的文件目录。
