我最近开始支持安装在具有内置 nvme ssds 的设备上的 Linux。我注意到设备文件有一个额外的数字,除了标识驱动器号和分区号的数字。IDE/SATA/SCSI 驱动器通常只有驱动器号和分区号。
例如:/dev/nvme0n1p2
我想知道 n1 部分是什么,经过一番搜索,它看起来像是标识了一个 nvme“命名空间”。它的定义有点模糊:“NVMe 命名空间是一定量的非易失性内存 (NVM),可以格式化为逻辑块。”
那么,这是否类似于在硬件控制器级别定义的分区,而不是在 MBR 或 GPT 分区表中?命名空间可以跨越多个物理 nvme ssd 吗?例如,您能否创建一个命名空间,将来自多个 ssd 的存储汇集到一个逻辑命名空间中,类似于 RAID 0?
如果使用分区表或 LVM 或可以管理多个卷的文件系统(如 ZFS、Btrfs 等)无法实现 NVME 命名空间,您会怎么做?
另外,为什么命名空间编号似乎从 1 而不是 0 开始?这是否与 NVME 如何在低级别跟踪命名空间编号有关(例如,分区也从 1 开始,而不是 0,因为这是设置分区号标准的方式,所以 Linux 内核只使用任何分区号存储在磁盘上的是 - 我猜 nvme 的工作方式相同?)