# NVMe-oF

# 服务端配置

# 提权
sudo -i

# 创建 nvmet-rdma 子系统:
modprobe nvme_fabrics
modprobe nvme_core
# modprobe nvme_tcp
modprobe nvmet-rdma
mkdir /sys/kernel/config/nvmet/subsystems/testnqn
cd /sys/kernel/config/nvmet/subsystems/testnqn

# 允许任何主机连接到此控制器:
echo 1 > attr_allow_any_host

# 配置命名空间:
mkdir namespaces/10
cd namespaces/10

# 设置 NVMe 设备的路径:
echo -n /dev/nvme1n1 > device_path

# 启用命名空间:
echo 1 > enable

# 创建带有 NVMe 端口的目录:
mkdir /sys/kernel/config/nvmet/ports/1
cd /sys/kernel/config/nvmet/ports/1

# 为控制器设置传输地址:
echo -n 192.168.50.111 > addr_traddr

# 将 RDMA 设置为传输类型:
echo rdma > addr_trtype

# 将 tcp 设置为传输类型:
#echo tcp > addr_trtype

echo 4420 > addr_trsvcid

# 为端口设置地址:
echo ipv4 > addr_adrfam

# 创建软链接
dmesg | tail -1
ln -s /sys/kernel/config/nvmet/subsystems/testnqn   /sys/kernel/config/nvmet/ports/1/subsystems/testnqn
dmesg | tail -1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

# 客户端配置

# 列出当前连接的 NVMe 设备:
sudo nvme list

# 在 NVMe 控制器中发现可用的子系统
sudo nvme discover -t tcp -a 192.168.50.111 -s 4420

# 连接子系统
sudo nvme connect -t tcp -a 192.168.50.111 -s 4420 -n testnqn

# 从控制器断开连接:
sudo nvme disconnect -n testnqn
1
2
3
4
5
6
7
8
9
10
11

# 参考

Configuring NVMe over fabrics using NVMe/TCP (opens new window)
什么是NVMe over Fabrics? (opens new window)

更新时间: 1/31/2024, 3:05:20 PM