为什么nvme既有字符设备,又有块设备?

为什么nvme既有字符设备,又有块设备?

我正在尝试了解 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_ 设备上使用这些名称空间。任何剩余空间都将用于超额配置容量,这有其自身的好处。

相关内容