Cyborg 通用驱动程序提案

https://blueprints.launchpad.net/openstack-cyborg/+spec/generic-driver-cyborg

本文档提出为 Cyborg 提供初始的通用驱动程序设计。

问题描述

该蓝图建议为 openstack-cyborg 添加一个通用驱动程序。目标是为用户和操作员提供可靠的通用实现,该实现与硬件无关,并提供基本的加速器功能。

用例

  • 作为管理员用户和具有提升权限的非管理员用户,我应该能够识别和发现连接的加速器后端。

  • 作为管理员用户和具有提升权限的非管理员用户,我应该能够在代理发现每个后端上的服务后查看每个连接后端上的服务。

  • 作为管理员用户和非管理员用户,我应该能够通过查询 nova 并使用 Cyborg-API 列出和更新通过驱动程序连接的加速器。

  • 作为管理员用户和具有提升权限的非管理员用户,我应该能够安装加速器通用驱动程序。

  • 作为管理员用户和具有提升权限的非管理员用户,我应该能够卸载加速器通用驱动程序。

  • 作为管理员用户和具有提升权限的非管理员用户,我应该能够通过驱动程序向实例发出连接命令,该命令通过 Cyborg API 路由到 Nova。

  • 作为管理员用户和具有提升权限的非管理员用户,我应该能够通过驱动程序向实例发出断开命令,该命令通过 Cyborg API 路由到 Nova。

提议的变更

  • Cyborg 需要一个参考实现,该实现可以作为未来驱动程序实现的模型,并被称为通用驱动程序实现。

  • 开发通用驱动程序实现,该实现支持针对单个后端和多后端设置场景的加速器的 CRUD 操作。

备选方案

数据模型影响

  • 通用驱动程序将在任何 CRUD 或连接/断开操作发生时更新中央数据库。

REST API 影响

该蓝图建议添加以下 API

  • cyborg install-driver <driver_id>

  • cyborg uninstall-driver <driver_id>

  • cyborg attach-instance <instance_id>

  • cyborg detach-instance <instance_id>

  • cyborg service-list

  • cyborg driver-list

  • cyborg update-driver <driver_id>

  • cyborg discover-services

安全影响

通知影响

其他最终用户影响

性能影响

其他部署者影响

开发者影响

开发人员将可以访问参考通用实现,该实现可用于构建特定于供应商的驱动程序。

实现

负责人

主要负责人

Rushil Chugh <rushil.chugh@gmail.com>

工作项

此更改将涉及以下内容

  • 添加识别和发现连接的加速器后端的功能。

  • 添加列出后端上运行的服务的功能。

  • 添加将加速器连接到通用后端的功能。

  • 添加将加速器从通用后端断开的功能。

  • 添加列出连接到通用后端的加速器的功能。

  • 添加修改连接到通用后端的加速器的功能。

  • 定义一个参考实现,详细说明 cyborg-api、cyborg-conductor 和 nova-compute 服务之间的请求流程。

依赖项

依赖于 Cyborg API 和 Agent 实现。

测试

  • 将添加单元测试以测试 Cyborg 通用驱动程序。

文档影响

参考资料

历史记录

修订版

发布

描述

Pike

引入