我正在尝试了解 nvme 的配置。
但是我不明白为什么会有两个设备:nvme block 和 nvme character device:
crw------- 1 root root 243, 0 Dec 12 16:09 /dev/nvme0
brw-rw---- 1 root disk 259, 0 Jan 14 01:30 /dev/nvme0n1
每种方法的用途是什么或何时使用它们?
答案1
字符设备/dev/nvme0
是 NVME 设备控制器,而块设备则/dev/nvme0n1
是 NVME 存储命名空间:用于实际存储的设备,其本质上的行为类似于磁盘。
在企业级硬件中,可能支持多个命名空间、命名空间内的精简配置和其他功能。目前,您可以将命名空间视为具有企业使用的额外功能的元分区。
答案2
将命名空间视为安全擦除 SSD 时不会消失的分区。控制器和命名空间是分开的。命名空间可以共享,并允许远程控制器访问它们。我相信 Excelero 或 Lightbits 等公司在其产品中利用了这项技术。
在大型设备中,例如 15TB NVME,您可能希望将 SSD 划分为 3 个单独的部分以用于不同目的(缓存在 /dev/nvme0n1 上,数据库在 /dev/nvme0n2 上,VM 存储在 /dev/nvme0n3 上)。您可以创建 3 个大小相等或不相等的名称空间,并在每个 /dev/nvme0n_ 设备上使用这些名称空间。任何剩余空间都将用于超额配置容量,这有其自身的好处。