NVMe 2.0定义了3种命令类型:Admin命令、I/O命令和Fabrics命令。跟之前版本一样,Admin命令用于控制器的管理,有专用的Admin SQ/CQ来实现命令传递。I/O命令使用I/O SQ/CQ,如我们熟悉的读和写,都由I/O命令完成,在NVMe 2.0协议族中,I/O命令集又分为NVM命令集、Zoned Namespace命令集和Key Value命令集三种。Fab...
NVMe 2.0 协议族(引自 NVM Express) NVMe 2.0定义了3种命令类型:Admin命令、I/O命令和Fabrics命令。跟之前版本一样,Admin命令用于控制器的管理,有专用的Admin SQ/CQ来实现命令传递。I/O命令使用I/O SQ/CQ,如我们熟悉的读和写,都由I/O命令完成,在NVMe 2.0协议族中,I/O命令集又分为NVM命令集、Zoned Name...
这一步完成后,主机和盘之间可以通过Admin Queue进行管理消息通信。 4)初始化NVMe字符设备 参见图16-1&2,盘硬件NVMe初始化完成后,盘能执行Admin命令,主机给盘发送一些管理命令从而获取到盘的信息,包括set-feature和identify这些命令。主机通过盘返回的信息,创建字符设备,完成NVMe字符设备初始化。下面是一个Admin命令(se...
typedefenum{ NVME_ADMIN_COMMAND_DELETE_IO_SQ, NVME_ADMIN_COMMAND_CREATE_IO_SQ, NVME_ADMIN_COMMAND_GET_LOG_PAGE, NVME_ADMIN_COMMAND_DELETE_IO_CQ, NVME_ADMIN_COMMAND_CREATE_IO_CQ, NVME_ADMIN_COMMAND_IDENTIFY, NVME_ADMIN_COMMAND_ABORT, NVME_ADMIN_COMMAND_SET_FEATURES, NVME_ADMIN_COMMAND_GET_...
$ nvme ns-identify /dev/nvme0 -n 1 3. 执行I/O性能测试 使用”nvme io-test”命令可以对指定的NVMe设备进行I/O性能测试,包括随机读写测试、顺序读写测试等。命令示例: $ nvme io-test /dev/nvme0 -s 4096 -n 1000 -t randwrite 4. 进行设备重置 ...
这一步完成后,主机和盘之间可以通过Admin Queue进行管理消息通信。 图15 4)初始化NVMe字符设备 参见图16-1&2,盘硬件NVMe初始化完成后,盘能执行Admin命令,主机给盘发送一些管理命令从而获取到盘的信息,包括set-feature和identify这些命令。主机通过盘返回的信息,创建字符设备,完成NVMe字符设备初始化。下面是一个Admin...
Namespace是一定数量逻辑块(LB)的集合,属性在Identify Controller中的数据结构中定义。1.1.2 Fused Operations Fused Operations可以理解为聚合操作,只能聚合两条命令,并且这两条命令在队列中应保持相邻顺序。协议中只有NVM指令才有聚合操作。还需要保证聚合操作的两条命令读写的原子性,参考Compare and Write例子。...
Namespace是一定数量逻辑块(LB)的集合,属性在Identify Controller中的数据结构中定义。 2)Fused Operations Fused Operations可以理解为聚合操作,只能聚合两条命令,并且这两条命令在队列中应保持相邻顺序。协议中只有NVM指令才有聚合操作。还需要保证聚合操作的两条命令读写的原子性,参考Compare and Write例子。
6. NVMe Admin Command是NVMe Base Spec中的admin命令,NVMe-MI支持将这些命令放在带外执行,扩充了带外的功能。一个get log和identify就可以拿到非常全面的SSD信息(如温度、上电时间、error类型以及各类ID),而format、firmware download、firmware commit等命令则可以对盘做更深。
使用NVMeDataTypeIdentify 获取标识控制器数据或标识命名空间数据。 使用NVMeDataTypeLogPage 获取日志页(包括 SMART/health 数据)。 使用NVMeDataTypeFeature 获取 NVMe 驱动器的功能。 STORAGE_TEMPERATURE_INFO:此结构用于保存特定的温度数据。 此结构在 STORAGE_TEMERATURE_DATA_DESCRIPTOR 中用于返回温度查询的结果。