# fuyao **Repository Path**: ictstorage/fuyao ## Basic Information - **Project Name**: fuyao - **Description**: FuYao (扶摇) is a high-performance distribute file system towards modern data-center workloads, including AI, data lake, and Cloud services. - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-10-01 - **Last Updated**: 2026-02-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 扶摇 #### 介绍 分布式存储系统demo #### 软件架构 软件架构说明 #### 注意事项 1. 在启动ChunkServer时依赖于SPDK的大页内存,在设置ChunkServer的MemorySize时需要保证SPDK大页内存的大小大于MemorySize,否则会出现执行失败的情况 #### 安装教程 1. chunkServer依赖与第三方依赖库SPDK,在third_party中以submodule的方式进行集成,需要在chunkServer目录下执行`git submodule update --init --recursive`命令进行初始化,并且在配置时使用动态库配置 2. mrpc需要在makefile中指定所使用的rdma网卡的GID,在MiRPC中rdma.res执行时使用的网卡,当前默认指定mlx5_0 3. 首先执行configure.sh脚本配置相关依赖 4. 然后执行ldconfig_all.sh脚本配置动态库的路径 5. 最后执行build_all.sh脚本编译整个项目 6. FIO版本为fio-3.27-33-g7a9cc-dirty. 使用其他版本也可,需要注意的是需要更改os-linux.h中将IDLE注释掉 #### 使用说明 1. master: 配置master目录下的dss.conf,涉及到master和chunkServer的ip:port以及心跳的间隔。启动./master -i 0 -c dss.conf 2. chunkServer: 配置chunkServer目录下的chunkServer.conf,涉及到master和chunkServer的id等。启动./chunkServer -i 0 -c dss.conf
如果有多个chunkServer,需要配置多个chunkServer.conf,启动多个chunkServer,他们的id需要变换。 3. mds:配置mds目录下的mds.conf,涉及到master、chunkServer和mds的ip:port等相关配置。启动./mds -i 0 -c dss.conf 4. TestCli:配置client_library目录下的fyfs.conf,涉及到chunkServer和mds的ip:port等相关配置。启动./TestCli。 这里面的所有配置都是写死在代码FuyaoClient.cc里面的,需要自己修改。 5. 配置文件中的heartbeat应该一致,否则可能出现一直超时 6. FIO测试执行方式为LD_PRELOAD=./fio_dss_client.so ../third_party/fio/fio test.fio. 7. 关于LeaseCache是否使用Lease的开关在MiRPC.h 和mirpc.h中,网络客户端服务器端引用了对应文件的都会收到限制,如果想关闭lease,可以将对应的宏定义注释掉 8. 如果希望关闭SPDK的某个日志级别,使用spdk_log_set_print_level。 9. 如果希望关闭SPDLOG的日志级别,使用spdlog::set_level(spdlog::level::info);在memroymanager.cc中有示范 9. core文件可能在 /tmp 10. 在通过宏控制各个功能分支的时候,如果ReadStage2Cas这一类,在mrpc中定义,那么客户端和服务器端都会生效 10. test.fio 示范其中bs是读写粒度 [global] ioengine=mstore rw=write nr_files=10 size=48MB runtime=60 time_based=1 group_reporting=1 thread= 1 [Copy Write APP] numjobs= 1 bs=16KB iodepth=8