长期支持版本

    社区创新版本

      qtfs

      介绍

      qtfs是一个共享文件系统项目,可部署在host-dpu的硬件架构上,也可以部署在2台服务器之间。以客户端服务器的模式工作,使客户端能通过qtfs访问服务端的指定文件系统,得到本地文件访问一致的体验。

      qtfs的特性:

      • 支持挂载点传播;

      • 支持proc、sys、cgroup等特殊文件系统的共享;

      • 支持远程文件读写的共享;

      • 支持在客户端对服务端的文件系统进行远程挂载;

      • 支持特殊文件的定制化处理;

      • 支持远端fifo、unix-socket等,并且支持epoll,使客户端和服务端像本地通信一样使用这些文件;

      • 支持基于host-dpu架构通过PCIe协议底层通信,性能大大优于网络;

      • 支持内核模块形式开发,无需对内核进行侵入式修改。

      软件架构

      软件大体框架图:

      qtfs-arch

      安装教程

      目录说明:

      • qtfs: 客户端内核模块相关代码,直接在该目录下编译客户端ko。

      • qtfs_server: 服务端内核模块相关代码,直接在该目录下编译服务端ko和相关程序。

      • qtinfo:诊断工具,支持查询文件系统的工作状态以及修改log级别等。

      • demotestdoc:测试程序、演示程序以及项目资料等。

      • 根目录: 客户端与服务端通用的公共模块代码。

      首先找两台服务器(或虚拟机)配置内核编译环境:

      1. 要求内核版本在5.10或更高版本。
      2. 安装内核开发包:yum install kernel-devel。
      3. 假设host服务器ip为192.168.10.10,dpu为192.168.10.11。

      服务端安装:

          1. cd qtfs_server
          2. make clean && make
          3. insmod qtfs_server.ko qtfs_server_ip=192.168.10.10 qtfs_server_port=12345 qtfs_log_level=WARN
          4. nohup ./engine 16 1 192.168.10.10 12121 192.168.10.11 12121 2>&1 &
      

      客户端安装:

          1. cd qtfs
          2. make clean && make
          3. insmod qtfs.ko qtfs_server_ip=192.168.10.10 qtfs_server_port=12345 qtfs_log_level=WARN
          4. cd ../ipc/
          5. make clean && make && make install
          6. nohup udsproxyd 1 192.168.10.11 12121 192.168.10.10 12121 2>&1 &
      

      使用说明

      安装完成后,客户端通过挂载把服务端的文件系统让客户端可见,例如:

          mount -t qtfs / /root/mnt/
      

      客户端进入"/root/mnt"后便可查看到服务端的所有文件,以及对其进行相关操作。

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份