获取源码及编译
本章节主要描述如何在Meta节点上对3FS进行编译。
- 设置库路径。
export LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib:/usr/local:/usr/lib:/usr/lib64:$LD_LIBRARY_PATH
- 下载并编译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
- 参见软件要求下载补丁到3FS的根目录,合入适配补丁到3FS。
patch -p1 < openeuler_3fs.patch cd third_party/folly patch -p1 < ../../openeuler_3fs_folly.patch
正确合入补丁如下所示。
- 编译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
- 检查编译结果。
cd build/bin ls
- 编译USRBIO工具,用于后续原生客户端的fio测试。
- 拉取fio的代码,进行编译。
cd /home git clone https://github.com/axboe/fio.git cd fio ./configure make make install
- 进入“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文件。
- 拉取fio的代码,进行编译。
父主题: 编译3FS