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

70 lines
2.1 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# qtfs
## 介绍
qtfs是一个共享文件系统项目可部署在host-dpu的硬件架构上也可以部署在2台服务器之间。以客户端服务器的模式工作使客户端能通过qtfs访问服务端的指定文件系统得到本地文件访问一致的体验。
qtfs的特性
+ 支持挂载点传播;
+ 支持proc、sys、cgroup等特殊文件系统的共享
+ 支持远程文件读写的共享;
+ 支持在客户端对服务端的文件系统进行远程挂载;
+ 支持特殊文件的定制化处理;
+ 支持远端fifo、unix-socket等并且支持epoll使客户端和服务端像本地通信一样使用这些文件
+ 支持基于host-dpu架构通过PCIe协议底层通信性能大大优于网络
+ 支持内核模块形式开发,无需对内核进行侵入式修改。
## 软件架构
软件大体框架图:
![qtfs-arch](./figures/qtfs-arch.png)
## 安装教程
目录说明:
+ **qtfs**: 客户端内核模块相关代码直接在该目录下编译客户端ko。
+ **qtfs_server**: 服务端内核模块相关代码直接在该目录下编译服务端ko和相关程序。
+ **qtinfo**: 诊断工具支持查询文件系统的工作状态以及修改log级别等。
+ **demo**、**test**、**doc**: 测试程序、演示程序以及项目资料等。
+ 根目录: 客户端与服务端通用的公共模块代码。
首先找两台服务器(或虚拟机)配置内核编译环境:
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端的所有文件以及对其进行相关操作。