NVME协议-NVME概述

NVME协议-NVME概述

NVME简述

Non-Volatile Memory Express,非易失性存储器标准,是跑在PCIE接口上的标准协议,

是一种Host与SSD之间通信的协议。

 

NVME作用

制定了Host与SSD之间的通讯命令格式以及命令的执行过程

 

NVME命令

1. NVME包含两种命令:Admin CommandIO Command

2. Admin Command作用:用于Host管理和控制SSD

    IO Command作用:用于Host和SSD之间传输数据

 

NVME1.3支持的Admin Command

 

 

 

 

 

NVME支持的IO Command

 

 

NVME命令的执行过程

 

 

Step1. Host写指令到SQ中

Step2. Host写DoorBell,通知SSD取指令

Step3. SSD收到通知,从SQ中取走指令

Step4. SSD执行指令

Step5. SSD执行指令完成,将执行结果写入CQ中

Step6. SSD生成中断,通知Host,指令执行完成

Step7. Host收到通知,开始处理CQ,查看指令完成后返回的状态和数据

Step8. Host写DoorBell,通知SSD执行结果已处理,然后释放CQ

 

参考资料1:蛋蛋读NVME之一

参考资料2:NVME协议1.3

### 关于 NVMe-MI 的概述 NVMe-MI (Management Interface) 是一种用于管理 NVMe 存储设备的技术标准,旨在提供统一的方式来管理和监控 NVMe 设备及其子系统。它通过定义标准化接口来简化存储系统的配置、状态监测以及固件更新等功能[^1]。 #### NVMe-MI 的主要功能 NVMe-MI 提供的功能可以分为以下几个方面: - **带外管理 (Out-of-Band Management)**:允许管理员在主机操作系统未运行的情况下访问和控制 NVMe 子系统。 - **带内管理 (In-Band Management)**:利用现有的 PCIe 链路,在主机正常工作时执行管理操作。 - **远程管理能力**:支持通过网络协议实现对远端 NVMe 设备的集中化管理。 这些特性使得 NVMe-MI 成为了数据中心环境中高效运维的重要工具之一[^2]。 #### 使用 NVMe-MI 进行开发或部署 要开始使用 NVMe-MI 技术,通常需要完成以下准备工作: ##### 工具准备 对于开发者来说,`nvme-cli` 是一个非常有用的命令行工具集合,它可以用来测试各种 NVMe 功能,包括 MI 接口的操作。尽管大多数 Linux 发行版已经包含了该软件包版本较旧可能缺少最新特性建议直接从官方 GitHub 仓库获取最新源码编译安装。 以下是基于 `nvme-cli` 查看当前连接的所有控制器列表的一个简单例子: ```bash $ sudo nvme list-subsys Node SN Model Namespace Usage Format FS ---------------- ------------------- ---------------------------------------- ------------ -------------------------- ---------------- -------- /dev/nvme0 S3Z7NY0J100086 Samsung SSD 970 EVO Plus 1TB 1 1000 GB / 1000 GB 512 B + 0 B ``` 如果目标环境涉及更复杂的场景比如大规模服务器集群中的自动化脚本编写,则还需要考虑集成更高层次的应用程序框架或者 SDK 来封装底层交互逻辑从而提升易用性和可维护性。 ##### 协议兼容性检查 确保所使用的硬件平台支持所需类型的 NVMe-MI 实现方式非常重要。例如某些特定型号可能会仅限于某种模式下的功能集因此采购前应仔细查阅厂商文档确认其是否满足项目需求[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值