csi-driver-nvmf/doc/setup_kernel_nvmf_target.md
Meinhard Zhou 996d83f3b3 chore: fix some error in setup
1. add SPDK target setup in README.
2. fix setup_kernel_nvmf_target command error.
3. fix pv.yaml's storageclass name.

Signed-off-by: Meinhard Zhou <zhouenhua@bytedance.com>
2022-09-28 15:24:01 +08:00

61 lines
1.9 KiB
Markdown

This a simple guide to setup a nvmf target
### 1. Modprobe nvmet-tcp
``` bash
modprobe nvmet-tcp
```
### 2. Prepare a storage backend device (file or block)
```bash
#file
truncate --size=20G /tmp/nvmet_test.img
#block is like /dev/nvme1n1
```
### 3.1 Create nvmf subsystem
example subsystem name: nqn.2022-08.org.test-nvmf.example
``` bash
mkdir /sys/kernel/config/nvmet/subsystems/nqn.2022-08.org.test-nvmf.example
echo 1 > /sys/kernel/config/nvmet/subsystems/nqn.2022-08.org.test-nvmf.example/attr_allow_any_host
echo 0123456789abcdef > /sys/kernel/config/nvmet/subsystems/nqn.2022-08.org.test-nvmf.example/attr_serial
```
### 3.2 Create nvmf namespace
``` bash
mkdir /sys/kernel/config/nvmet/subsystems/nqn.2022-08.org.test-nvmf.example/namespaces/1
# file storage backend
echo "/tmp/nvmet_test.img" > /sys/kernel/config/nvmet/subsystems/nqn.2022-08.org.test-nvmf.example/namespaces/1/device_path
# block storage backend
echo "/dev/nvme1n1" > /sys/kernel/config/nvmet/subsystems/nqn.2022-08.org.test-nvmf.example/namespaces/1/device_path
echo 1 > /sys/kernel/config/nvmet/subsystems/nqn.2022-08.org.test-nvmf.example/namespaces/1/enable
```
### 3.3 Create nvmf port
``` bash
mkdir /sys/kernel/config/nvmet/ports/1
echo ipv4 > /sys/kernel/config/nvmet/ports/1/addr_adrfam
echo tcp > /sys/kernel/config/nvmet/ports/1/addr_trtype #target transport type is tcp
echo "192.168.122.18" > /sys/kernel/config/nvmet/ports/1/addr_traddr # target addr is 192.168.122.18
echo 49153 > /sys/kernel/config/nvmet/ports/1/addr_trsvcid # target port is 49153 (rdms should be 4420)
```
### 3.4 Link port and namespace
``` bash
ln -s /sys/kernel/config/nvmet/subsystems/nqn.2022-08.org.test-nvmf.example/ /sys/kernel/config/nvmet/ports/1/subsystems/nqn.2022-08.org.test-nvmf.example
```
### 3.5 Record the DeviceUUID
``` bash
cat /sys/kernel/config/nvmet/subsystems/nqn.2022-08.org.test-nvmf.example/namespaces/1/device_uuid
```