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。

服务端安装:

1. cd qtfs_server
2. make clean && make
3. insmod qtfs_server.ko qtfs_server_ip=x.x.x.x qtfs_server_port=12345 qtfs_log_level=WARN
4. ./engine 4096 16

客户端安装:

1. cd qtfs
2. make clean && make
3. insmod qtfs.ko qtfs_server_ip=x.x.x.x qtfs_server_port=12345 qtfs_log_level=WARN

使用说明

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

mount -t qtfs / /root/mnt/

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

文档捉虫

“有虫”文档片段

问题描述

提交类型 issue
有点复杂...
找人问问吧。
PR
小问题,全程线上修改...
一键搞定!
问题类型
规范和低错类

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

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

● 英文中包含中文字符;

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

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

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

易用性

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

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

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

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

正确性

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

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

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

● 代码片段错误;

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

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

风险提示

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

内容合规

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

● 内容侵权;

您对文档的总体满意度

非常不满意
非常满意
提交
根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。