SPDKをクローンして、ソースを準備。
root@ubuntu2:/home/takayuki/repos/spdk#
git clone https://github.com/spdk/spdk.gitroot@ubuntu2:/home/takayuki/repos/spdk# scripts/pkgdep.sh --rdma
takayuki@ubuntu2:~/repos/spdk$ git submodule update --init
./configure --with-rdma --enable-debug
make
目次
スクリプトで設定
NVMeTCPトランスポートを設定し、Subsystemを作成する。
root@ubuntu2:/home/takayuki/repos/spdk# sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 0
root@ubuntu2:/home/takayuki/repos/spdk# ./scripts/setup.sh
root@ubuntu2:/home/takayuki/repos/spdk# ./build/bin/nvmf_tgt
root@ubuntu2:/home/takayuki/repos/spdk# scripts/rpc.py nvmf_create_transport -t TCP -u 16384 -m 8 -c 8192
root@ubuntu2:/home/takayuki/repos/spdk# scripts/rpc.py bdev_malloc_create -b Malloc0 512 512
Malloc0
root@ubuntu2:/home/takayuki/repos/spdk# scripts/rpc.py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -a -s SPDK00000000000001 -d SPDK_Controller1
root@ubuntu2:/home/takayuki/repos/spdk# scripts/rpc.py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc0
root@ubuntu2:/home/takayuki/repos/spdk# scripts/rpc.py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t tcp -a 192.168.56.101 -s 4420
ホストから、NVMeTCPのDiscoveryを実行。
root@ubuntu3:/home/takayuki# modprobe nvme-tcp
root@ubuntu3:/home/takayuki# apt install nvme-cli
root@ubuntu3:/home/takayuki# nvme discover -t tcp -a 192.168.56.101 -s 4420
Discovery Log Number of Records 1, Generation counter 1
=====Discovery Log Entry 0======
trtype: tcp
adrfam: ipv4
subtype: nvme subsystem
treq: not required
portid: 0
trsvcid: 4420
subnqn: nqn.2016-06.io.spdk:cnode1
traddr: 192.168.56.101
sectype: none
root@ubuntu3:/home/takayuki#nvme connect -t tcp -n “nqn.2016-06.io.spdk:cnode1” -a 192.168.56.101 -s 4420
jsonで設定
手動で設定した構成をjsonファイルに保存すれば、設定を使いまわすことができる。
root@ubuntu:/home/takayuki/repos/spdk# ./scripts/rpc.py save_config>../nvmf.json
takayuki@ubuntu:~/repos/spdk$ sudo ./build/bin/nvmf_tgt -c ../nvmf.json
tcpdump
===
root@ubuntu3:/home/takayuki/tcpdump# tcpdump -i any -w nvme_discovery.pcap