![无法创建 NVMe 共享命名空间并将其附加到主控制器和辅助控制器](https://linux22.com/image/221609/%E6%97%A0%E6%B3%95%E5%88%9B%E5%BB%BA%20NVMe%20%E5%85%B1%E4%BA%AB%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4%E5%B9%B6%E5%B0%86%E5%85%B6%E9%99%84%E5%8A%A0%E5%88%B0%E4%B8%BB%E6%8E%A7%E5%88%B6%E5%99%A8%E5%92%8C%E8%BE%85%E5%8A%A9%E6%8E%A7%E5%88%B6%E5%99%A8.png)
我尝试在 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'
有谁知道我应该向此选项传递什么参数才能创建共享名称空间,以便我可以将其附加到两个控制器?
答案1
我搜索了 libnvme 源码代码并发现参数只有一个有效值--nmic
,即1
共享命名空间。
我使用 创建了命名空间,-m 1
并且能够将其附加到主控制器和辅助控制器。