SPDK LVOL +Blobstore +FIO 使用

SPDK LVOL +Blobstore +FIO 使用

  • 简介
  • 测试思路:
  • 测试步骤
    • 1. 使用nvmf_tgt 构建NVMe_bdev,Losgic Volume Store,lvol
      • 1.1 启动nvmf_tg
      • 1.2 创建NVMe_bdev,Losgic Volume Store,lvol
    • 2. 配置json rpc 文件
    • 3. 配置FIO 文件
    • 4 直接对NVME下发fio

简介

SPDK建立在SPDK blobstore之上,因为blobstore提供了高性能、低开销的群集分配。此外,在blobstore中,也支持精简配置、快照和写入时复制。在最新的SPDK版本中,它实现了具有以下功能的逻辑卷[3]。

  1. 卷的动态分配(bdevs)
  2. 可以独立管理卷(创建、调整大小、删除)
  3. 支持精简配置
  4. 快照和克隆(写入时复制)
  5. 实现为虚拟bdev (可以在其他所有SPDK bdevs上分层)
    使用FIO 测试 SPDK LVOL +Blobstore
    SPDK LVOL +Blobstore +FIO 使用_第1张图片

测试思路:

  1. 使用nvmf_tgt 构建NVMe_bdev,Losgic Volume Store,lvol
  2. 配置json rpc 文件加载NVMe_bdev.
  3. 使用FIO 加载json rpc文件,下发IO

测试步骤

1. 使用nvmf_tgt 构建NVMe_bdev,Losgic Volume Store,lvol

1.1 启动nvmf_tg

spdk_path='/home/kuhan/yhc/bcstore'
cd ${spdk_path}
./build/bin/nvmf_tgt >nvmf_tgt.log 2>&1 &

1.2 创建NVMe_bdev,Losgic Volume Store,lvol

traddr='0000:65:00.0'
lvol_size=1048576
./scripts/rpc.py bdev_nvme_attach_controller -b Nvme0 -t PCIe -a ${traddr}
./scripts/rpc.py bdev_lvol_create_lvstore Nvme0n1 LVS0
./scripts/rpc.py bdev_lvol_create -l LVS0 LVOL0 ${lvol_size}

2. 配置json rpc 文件

{
  "subsystems": [
    {
      "subsystem": "bdev",
      "config": [
        {
          "method": "bdev_nvme_attach_controller",
          "params": {
            "trtype": "PCIe",
            "name": "NVMe1",
            "traddr":"0000:65:00.0"
          }
        }
      ]
    }
  ]
}

3. 配置FIO 文件

[global]
ioengine=/home/kuhan/yhc/bcstore/build/fio/spdk_bdev
spdk_json_conf=/home/kuhan/yhc/bcstore/test/stability/lvol/lvol_bdev.json
thread=1
direct=1                # 排除OS的IO缓存机制的影响
#size=4000G                 # 每个fio进程/线程的最大读写
#lockmem=1G              # 锁定所使用的内存大小
runtime=300              # 根据上面的结论以后采用180值
filename=LVS0/LVOL1        # NVMe bdev
numjobs=1               # 同时进行的任务数
iodepth=1              # 队列深度
group_reporting         # 多个job合并出报告

[4k_write]
stonewall            # 隔离各测试任务
rw=write
bs=4k

[4k_read]
stonewall
rw=read
bs=4k


[4k_randwrite]
stonewall
rw=randwrite
bs=4k

[4k_randread]
stonewall
rw=randread
bs=4k

4 直接对NVME下发fio

/home/kuhan/yhc/fio/fio  /home/kuhan/yhc/test/spdk_lvol_test.fio 

你可能感兴趣的:(存储,#,SPDK,spdk)