我在 Linux 服务器上运行 nvmet-tcp。我正在尝试将 nvme 设备从服务器传递到客户端。它实际上工作正常。首先,我会在服务器上加载 nvmet 和 nvmet-tcp
modprobe nvmet
modprobe nvmet-tcp
然后我会创建一个子系统
cd /sys/kernel/config/nvmet/subsystems
mkdir test
并设置所有参数。之后,我会转到 /sys/kernel/config/nvmet/subsystems/test/nvmet 中的命名空间文件夹
cd test/namespaces
mkdir 1
mkdir 2
mkdir 3
随后,标准配置
echo -n /dev/sda1 > 1/device_path
echo -n /dev/sda2 > 2/device_path
echo -n /dev/sda3 > 3/device_path
并启用所有这些:
echo -n 1 > 1/enabled
echo -n 1 > 2/enabled
echo -n 1 > 3/enabled
After—激活端口(正确配置后)
cd /sys/kernel/config/nvmet/ports/1/subsystems/
ln -s ../../../subsystems/test .
那会启动端口,它会工作得很好。在主机上,我将连接:
nvme connect -t tcp -n test -a 10.10.1.42 -s 4420
唯一的问题是,当我列出命名空间时,我得到了一个额外的“-1”命名空间。
nvme list
Node SN Model Namespace Usage Format FW Rev
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1 76b9b4aeef600ece Linux -1 0.00 B / 0.00 B 1 B + 0 B 5.13.0-2
/dev/nvme0n2 76b9b4aeef600ece Linux 1 2.00 GB / 2.00 GB 512 B + 0 B 5.13.0-2
/dev/nvme0n3 76b9b4aeef600ece Linux 2 2.00 GB / 2.00 GB 512 B + 0 B 5.13.0-2
/dev/nvme0n4 76b9b4aeef600ece Linux 3 2.00 GB / 2.00 GB 512 B + 0 B 5.13.0-2
事实上,一切都很好,以至于我能够即时创建一个新的命名空间,主机会看到它并自动将它安装为一个单独的磁盘。但我不知道如何调试/处理首先安装在那里的 -1 磁盘。
有人可以建议吗?