我尝试在 Samsung PM1735 NVMe SSD 上创建一个命名空间,然后将其附加到主控制器 (0x41) 和辅助控制器 (0x1),但它仅附加到主控制器(我在 Ubuntu 20.04 上运行):
sudo nvme create-ns /dev/nvme0 -s 26214400 -c 26214400 -b 4096
sudo nvme attach-ns /dev/nvme0 --namespace-id=1 --controllers=0x41,0x1
NVMe status: NS_IS_PRIVATE: The namespace is private and is already attached to one controller(0x2119)
看起来命名空间是私有的,我需要创建一个共享命名空间。然后我在 nvme ns-create 命令帮助中找到了这个共享选项:
-m, --nmic
Namespace multipath and sharing capabilities.
问题是它不起作用:
sudo nvme create-ns /dev/nvme0 -s 26214400 -c 26214400 -b 4096 -m
create-ns: option requires an argument -- 'm'
有谁知道我应该向此选项传递什么参数才能创建共享名称空间,以便我可以将其附加到两个控制器?
我搜索了 libnvme 源代码,发现
--nmic
参数有一个有效值,该值1
用于共享命名空间。我使用 创建了命名空间,
-m 1
并且能够将其附加到主控制器和辅助控制器。