使用 Cyborg 加速器

从 microversion 2.82 开始,nova 支持使用 Cyborg 服务配置加速器的服务器创建,Cyborg 服务提供加速器的生命周期管理。

要启动带有加速器的服务器,管理员(或具有适当权限的用户)必须执行以下操作

  • 在 Cyborg 中创建一个设备配置文件,指定需要配置哪些加速器资源。(请参阅 Cyborg 设备配置文件 API。)

  • 将设备配置文件名称设置为所选 flavor 中的一个 extra spec,语法如下

    accel:device_profile=$device_profile_name
    

    所选 flavor 可以是新创建的,也可以是现有的。

  • 使用该 flavor 创建服务器

    openstack server create --flavor $myflavor --image $myimage $servername
    

Nova 仅支持对带有加速器的实例执行特定的操作。支持和不支持的操作列表如下

  • 支持的操作。

    • 创建和删除。

    • 重启(软重启和硬重启)。

    • 暂停和取消暂停。

    • 停止和启动。

    • 创建快照。

    • 备份。

    • 救援和取消救援。

    • 重建。

    • 驱逐。

    • 搁置和取消搁置。

  • 不支持的操作

    • 调整大小。

    • 挂起和恢复。

    • 冷迁移。

    • 实时迁移。

在版本 22.0.0(Victoria) 中更改:添加了对重建和驱逐操作的支持。

在版本 23.0.0(Wallaby) 中更改:添加了对搁置和取消搁置操作的支持。

某些操作,例如锁定和解锁,对于加速器而言实际上是空操作,因此它们可以正常工作。

注意事项

注意

此信息基于 21.0.0 Ussuri 版本。如果进行了改进或修复了问题,将按项目记录。

对于嵌套资源提供程序

  • 如果 flavor 请求由嵌套资源提供程序库存(例如 vGPU)提供的资源,并且用户想要多创建(例如 –max 2),那么即使每个嵌套资源提供程序至少可以支持一个特定实例,调度器也可能会返回 NoValidHosts 异常,如果总请求容量不由单个嵌套资源提供程序支持。(请参阅 bug 1874664。)

    例如,如果两个子 RP 各具有 4 个 vGPU 库存

    • 您可以使用 –max 2 请求 flavor 中的 2 个 vGPU 的设备配置文件。

    • 但是,您不能使用 –max 2 请求 flavor 中的 4 个 vGPU 的设备配置文件。

使用 Cyborg 的 SRIOV

从 Xena 版本开始,nova 支持使用 Cyborg 服务配置 SRIOV 的服务器创建。

要启动带有加速器的服务器,管理员(或具有适当权限的用户)必须执行以下操作

  • 在 Cyborg 中创建一个设备配置文件,指定需要配置哪些加速器资源。(请参阅 Cyborg 设备配置文件 APICyborg SRIOV 测试报告。)

  • 创建一个 ‘accelerator-direct’ vnic 类型的端口,并将设备配置文件名称设置为 Cyborg 设备配置文件,语法如下

    openstack port create $port_name --network $network_name --vnic-type=accelerator-direct --device-profile $device_profile_name
    
  • 使用该端口创建服务器

    openstack server create --flavor $myflavor --image $myimage $servername --nic port-id=$port-ID
    

Nova 仅支持对带有加速器的实例执行特定的操作。支持和不支持的操作列表如下

  • 支持的操作。

    • 创建和删除。

    • 重启(软重启和硬重启)。

    • 暂停和取消暂停。

    • 停止和启动。

    • 重建。

    • 救援和取消救援。

    • 创建快照。

    • 备份。

  • 不支持的操作

    • 调整大小。

    • 挂起和恢复。

    • 冷迁移。

    • 实时迁移。

    • 搁置和取消搁置。

    • 驱逐。

    • 附加/分离带有设备配置文件的端口。