xnvme : 通过统一的API为传统和新兴存储设备及其接口提供存储抽象层,以最小的抽象层成本实现I/O接口独立性
使用xNVMe C API的I/O引擎,用于NVMe设备。 xnvme引擎提供了通过libaio、IOCTL、io_uring、SPDK NVMe驱动程序或您自己的自定义NVMe驱动程序访问GNU/Linux内核NVMe驱动程序的灵活性。 xnvme引擎包括特定于引擎的选项
1.安装环境
os : ubuntu22.04
kernel : 6.5.0-18-generic
2.安装工具
apt install gcc
apt install make
apt install git
3.执行安装(系统当前所在目录请自行选择)
3.1.Clone the xNVMe repos into the folder 'xnvme'
git clone https://github.com/openmpdk/xnvme.git
3.2.在调用编译之前,确保拥有编译器, 需要工具和库
cd xnvme/
./toolbox/pkgs/ubuntu-focal.sh
3.3.configure xNVME and build dependencies (fio,libvfn,and SPDK/NVME)
meson setup builddir
cd builddir
# build xNVMe
meson compile
# install xNVMe
meson install
3.4.安装完成xnvme后,可以用通常的方式构建fio,然而为了检测xnvme支持,需要安装一些工具
apt install pkg-config
4.构建FIO(可参考该链接)
4.1.git clone fio
git clone https://github.com/axboe/fio
cd fio
./configure --prefix=/opt/fio3
make
make install
查看fio是否识别到xnvme engine
5.xnvme command
6.FIO Test
[test]
ioengine=xnvme
direct=1
filename=/dev/nvme0n1
iodepth=1
thread=1
time_based
runtime=1m
numjobs=1
rw=randread
bs=4k
xnvme_async=libaio
7.TODO
如何使用该引擎?
8.Reference
Note : 纯国内网络环境安装,如果有个步骤提示安装失败,可重新执行该步骤
更多内容可查看xnvme官网:https://xnvme.io
xnvme测试可查看GitHub:https://github.com/vincentkfu/fio-blog/wiki/xNVMe-ioengine-Part-1