开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

FUSE调优

环境准备

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

  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命令查看文件系统是否挂载成功,若成功挂载可看到下图红色框的文件目录。