鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

获取源码及编译

本章节主要描述如何在Meta节点上对3FS进行编译。

  1. 设置库路径。
    export LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib:/usr/local:/usr/lib:/usr/lib64:$LD_LIBRARY_PATH
  2. 下载并编译3FS。
    yum install git -y 
    cd /home 
    git clone https://github.com/deepseek-ai/3fs
    cd 3fs
    git submodule update --init --recursive
    ./patches/apply.sh 
  3. 参见软件要求下载补丁到3FS的根目录,合入适配补丁到3FS。
    patch -p1 < openeuler_3fs.patch
    cd third_party/folly
    patch -p1 < ../../openeuler_3fs_folly.patch

    正确合入补丁如下所示。

  4. 编译3FS。
    cd /home/3fs
    cmake -S . -B build -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_EXPORT_COMPILE_COMMANDS=ON 
    cmake --build build -j
  5. 检查编译结果。
    cd build/bin 
    ls

  6. 编译USRBIO工具,用于后续原生客户端的fio测试。
    1. 拉取fio的代码,进行编译。
      cd /home
      git clone https://github.com/axboe/fio.git
      cd fio
      ./configure
      make
      make install
    1. 进入“3fs/benchmarks/fio_usrbio”目录下,进行编译。
      cd /home/3fs/benchmarks/fio_usrbio
      make HF3FS_LIB_DIR=${HF3FS_LIB_DIR} HF3FS_INCLUDE_DIR=${HF3FS_INCLUDE_DIR} FIO_SRC_DIR=${FIO_SRC_DIR}

      其中,涉及路径参数如下:

      • 命令中的${ }里的路径需要根据实际情况替换为具体的路径,例如HF3FS_LIB_DIR=/home/3fs/build/src/lib/api HF3FS_INCLUDE_DIR=/home/3fs/src/lib/api FIO_SRC_DIR=/home/fio
      • HF3FS_LIB_DIR默认路径在“/home/3fs/build/src/lib/api”
      • HF3FS_INCLUDE_DIR默认路径在“/home/3fs/src/lib/api”
      • FIO_SRC_DIR默认路径在“fio”主目录(包含config-host.h文件),如"/home/fio"。

    编译完成后,最终在“/home/3fs/benchmarks/fio_usrbio”目录下出现hf3fs_usrbio.so文件。