spdk压缩特性通过设置dpdk的zlib驱动,再在初始化创建压缩盘进行使用
请根据实际需求进行分配,此处以分配40000个2MB的大页为例。
1 2 3 |
echo 0 >/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages echo 20000 >/sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages echo 20000 >/sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages |
1
|
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/kaezip/lib:/usr/local/lib64:$LD_LIBRARY_PATH |
1 2 |
export PCI_ALLOWED="0000:84:00.0" ./scripts/setup.sh |
"0000:84:00.0" 是该nvme盘的pci号,请根据实际环境进行修改,可以通过下述命令查看。
1
|
./scripts/setup.sh status
|
示例如下,BDF列即为nvme的pci号。
1 2 3 4 |
[root@ceph1 spdk_ksal]# ./scripts/setup.sh status Type BDF Vendor Device NUMA Driver Device Block devices NVMe 0000:84:00.0 19e5 3714 1 vfio-pci - - NVMe 0000:86:00.0 19e5 3714 1 nvme nvme1 nvme1n1 |
1
|
./build/bin/nvmf_tgt --wait-for-rpc
|
1 2 |
./scripts/rpc.py bdev_compress_set_pmd -p 3 ./scripts/rpc.py compressdev_zlib_module_set_wbits --wbits 31 |
1
|
./scripts/rpc.py framework_start_init
|
1
|
./scripts/rpc.py bdev_nvme_attach_controller -b NVMe1 -t PCIe -a 0000:84:00.0 |
1
|
./scripts/rpc.py bdev_compress_create -b NVMe1n1 -p /dev/pmem0n1 -l 512 |
1 2 3 4 5 6 |
./scripts/rpc.py nvmf_create_transport -t TCP -u 16384 -m 8 -c 8192 ./scripts/rpc.py nvmf_create_subsystem nqn.2017-06.io.spdk:cnode2 -a -s SPDK00000000000001 -d SPDK_Controller1 ./scripts/rpc.py nvmf_subsystem_add_ns nqn.2017-06.io.spdk:cnode2 COMP_NVMe1n1 ./scripts/rpc.py nvmf_subsystem_add_listener nqn.2017-06.io.spdk:cnode2 -t TCP -a 96.10.57.104 -s 4521 nvme discover -t tcp -a 96.10.57.104 -s 4521 nvme connect -t tcp -n "nqn.2017-06.io.spdk:cnode2" -a 96.10.57.104 -s 4521 -g -G |
执行nvme 命令会依赖nvme-cli,使用yum安装该依赖:
1
|
yum install nvme-cli |
nvme discover 命令和 nvme connect 命令会把spdk的压缩bdev设备挂载成本地的nvme盘,-t tcp 参数表示使用tcp协议,-a 96.10.57.104 表示spdk所在主机的ip地址,这里使用本机ip 96.10.57.104,-s 4521 则是表示使用端口号4521,可以使用其它端口号,需要保证该端口号没有被占用。
nvme connect 命令中-n "nqn.2017-06.io.spdk:cnode2" 则是前面创建的NVMe-oF子系统名称。
1 2 |
fio -filename=/dev/nvme0n1 -direct=1 -iodepth=64 -thread -rw=randwrite -ioengine=libaio -bs=4k -size=10G -numjobs=1 -group_reporting -name=mytest --verify_pattern=0x12345678 -verify=pattern -do_verify=1 fio -filename=/dev/nvme0n1 -direct=1 -iodepth=64 -thread -rw=randread -ioengine=libaio -bs=4k -size=10G -numjobs=1 -group_reporting -name=mytest --verify_pattern=0x12345678 -verify=pattern -do_verify=1 |