Cyborg Inspur NVMe SSD 驱动器提案¶
本规范旨在提供 Cyborg 的 Inspur NVMe SSD 驱动器的初始设计。
问题描述¶
Inspur NVMe SSD 设备提供加速虚拟机 IO 速率的能力。在 OpenStack 生态系统中,我们没有工具来管理这种加速器。本规范将在 Cyborg 中添加一个 Inspur NVMe SSD 驱动器,以自动管理 Inspur NVMe SSD 设备。
驱动器范围内的管理包括
Cyborg Inspur NVMe SSD 驱动器可以自动发现 NVMe SSD 并通过调用 cyborg-conductor 将其报告到数据库。Cyborg Inspur NVMe SSD 驱动器需要执行设备绑定/解绑到虚拟机。
用例¶
作为操作员,我希望使用 Cyborg 来管理 Inspur NVMe SSD 设备。
作为开发人员,我希望使用 Cyborg agent 定期启动或执行资源检查,Cyborg Inspur NVMe SSD 驱动器应提供
discover()函数来枚举 Inspur NVMe SSD 设备的列表,并报告主机上所有可用 NVMe SSD 加速器的详细信息,例如 PID(产品 ID)、VID(供应商 ID)、设备 ID。作为用户,我希望启动一个附加了 Inspur NVMe SSD 卡的虚拟机,以加速 IO 速率。Cyborg 应该能够管理这种加速资源并将其分配给虚拟机(绑定)。
提议的变更¶
1. 通过“lspci”命令从计算节点收集 Inspur NVMe SSD 设备的原始信息,并 grep Non-Volatile memory controller 相关关键字,然后 grep Inspur 供应商 ID。
2. 解析每个记录的详细信息,包括 vendor_id、product_id 和 pci_address。
3. 生成 Cyborg 特定的驱动器对象和资源提供程序建模,用于 Inspur NVMe SSD 设备。以下是描述 Inspur NVMe SSD 设备的对象的示例,符合 Cyborg 数据库模式和 Placement 数据模型。
Hardware Driver objects Placement data model
| | |
1 SSD 1 device |
| | |
| 1 deployable ---> resource_provider
| | ---> parent resource_provider: compute node
| | |
1 SSD 1 attach_handle ---> inventories(total:1)
4. 我们将 CUSTOM_SSD 作为 resource_class,CUSTOM_SSD_INSPUR 和 CUSTOM_SSD_PRODUCT_ID_1003 作为 traits 报告给 Placement。
备选方案¶
无
数据模型影响¶
在表 devices 中添加 SSD 类型到 device_type 列。
REST API 影响¶
无。
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
用户可以通过 Cyborg Inspur NVMe SSD 驱动器管理 Inspur NVMe SSD 卡。例如,列出 Inspur NVMe SSD 设备,报告主机上所有可用 Inspur NVMe SSD 加速器的详细信息,将 Inspur NVMe SSD 绑定到虚拟机。
性能影响¶
无
其他部署者影响¶
无。
开发者影响¶
无
实现¶
负责人¶
- 主要负责人
宋文平
工作项¶
在 Cyborg 中实现 Inspur NVMe SSD 驱动器
添加相关的测试用例。
将测试报告添加到 wiki 页面。
更新文档页面和发布说明。
依赖项¶
无
测试¶
将添加单元测试来测试此驱动程序。
在 Cyborg Wiki 中添加测试结果,这是 Cyborg 社区要求的。
文档影响¶
记录 Cyborg 项目中的 Inspur NVMe SSD 驱动器。
参考资料¶
无
历史记录¶
发布 |
描述 |
|---|---|
Wallaby |
引入 |