computing-offload/qtfs/doc/qtfs共享文件系统架构及使用手册.md
Yikun Jiang a68570b5d9 Add computing offloading code
1. Add computing offloading code
2. Add script.md
3. Add virsh_demo.xml

Change-Id: Id9ef883e2f0eb727eb5448b9d1c47767f46b1021
Signed-off-by: Yikun Jiang <yikunkero@gmail.com>
2023-10-23 19:29:57 +08:00

2.1 KiB
Raw Blame History

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"后便可查看到server端的所有文件以及对其进行相关操作。