SPDK FIO Bdev Plugin支持RPC,让资源管理面更容易

科技   2024-07-22 12:00   美国  
从SPDK v23.01开始,SPDK FIO Bdev Plugin使能了RPC的控制面支持[1],通过SPDK支持丰富的RPC命令[2],可以快速方便地查询各种信息,比如在配置了本地NVMe SSD的FIO测试中,可以通过不同的RPC方式来查询SSD的信息。本文以SPDK v24.01版本为例子,详细介绍相关的步骤来演示这一功能。
第一步:下载SPDK和FIO源代码

git clone https://github.com/spdk/spdk

cd spdk

git submodule update –-init

 

git checkout v24.01

git checkout -b v2401

git submodule update --init

 

git clone https://github.com/axboe/fio

cd fio

make

make install


第二步:配置和编译SPDK FIO Bdev Plugin

./scripts/pkgdep.sh --all

./configure --with-fio=/<path to fio>/fio/

make


第三步:配置本地NVMe SSD Bdev。这里可以参考RPC文档,配置其他类型Bdev[3]

lspci | grep -i volatile

./scripts/setup.sh

./scripts/setup.sh status

./scripts/gen_nvme.sh --json-with-subsystems > fio_nvme_rpc.json

cat fio_nvme_rpc.json

第四步:编写FIO配置文件,其中第三第四行,是SPDK FIO Plugin的特定命令,更多特定指令,参考SPDK FIO Plugin源代码static struct fio_option options[]数据结构[4]

vim fio_rpc.conf

cat fio_rpc.conf

第五步:执行FIO,在另一个终端执行SPDK RPC相关命令来查看设备状况

fio fio_rpc.conf  // 终端1中执行

 

a). 执行SPDK iostat.py来查看Bdev上的IO统计

./scripts/iostat.py -i 1 -t 30  // FIO运行起来后,终端2中执行

b). 执行SPDK NVMe Bdev RPC命令来查看SSD盘上的特定信息

./scripts/rpc.py bdev_get_bdevs

./scripts/rpc.py bdev_nvme_get_controller_health_info -c Nvme0

./scripts/rpc.py bdev_nvme_get_controller_health_info -c Nvme0 | grep temperature_celsius

c). 执行SPDK Cuse操作,通过内核设备来查询

./scripts/rpc.py bdev_nvme_cuse_register -n Nvme0

ll /dev/spdk/

nvme smart-log/dev/spdk/nvme0

FIO退出前,执行下面命令unregister掉设备。

./scripts/rpc.py bdev_nvme_cuse_unregister -n Nvme0

ll /dev/spdk


第六步:更多RPC命令的支持,包括在RPC Startup阶段的命令支持,来丰富FIO结合SPDK的不同操作,下面是参考的json配置。

本文详细介绍了SPDK FIO Bdev Plugin,结合SPDK不同的RPC命令的使用,目的有助于在标准化FIO结合SPDK的测试中,提供不仅数据面SPDK的加速,同时管控面的便利性。当中有任何问题的话,欢迎后台留言或者加微信进一步联系。

参考链接:

1.https://github.com/spdk/spdk/commit/0ab8393c605d617a186c66cb236109733a6e8f0c

2.https://spdk.io/doc/jsonrpc.html

3.https://spdk.io/doc/bdev.html

4.https://github.com/spdk/spdk/blob/master/app/fio/bdev/fio_plugin.c

5.https://github.com/spdk/spdk/blob/master/app/fio/bdev/README.md



转载须知

DPDK与SPDK开源社区公众号文章转载声明



推荐阅读

SPDK中常用的性能测试工具



往期阅读

RAID5f: SPDK RAID5实现介绍

基于Fork实现SPDK nvmf_tgt的热升级





DPDK与SPDK开源社区
最权威,最贴近DPDK/SPDK技术专家的社区。
 最新文章