nova/api-guide/source/accelerator-support.rst
zhangbailin c19de075e1 Add nested resource providers limit for multi create
In 21.0.0 Ussuri we were completed the nova-cyborg interaction feature,
but there are some issue when multiple create instances.

Creating servers with accelerators provisioned with the Cyborg service,
if a flavor asks for resources that are provided by nested Resource
Provider inventories (eg. VGPU) and the user wants multi-create (ie. say
--max 2) then the scheduler could be returning a NoValidHosts exception
even if each nested Resource Provider can support at least one specific
instance, if the total wanted capacity is not supported by only one
nested RP.

For example,creating servers with accelerators provisioned with the
Cyborg service, if two children RP have 4 VGPU inventories each:
 - you can ask for a flavor with 2 VGPU with --max 2
 - but you can't ask for a flavor with 4 VGPU and --max 2

Related-Bug: #1874664
Change-Id: I64647a6ba79c47c891134cedb49f03d3c61e8824
2020-05-02 01:10:06 +00:00

2.6 KiB

Using accelerators with Cyborg

Starting from microversion 2.82, nova supports creating servers with accelerators provisioned with the Cyborg service, which provides lifecycle management for accelerators.

To launch servers with accelerators, the administrator (or an user with appropriate privileges) must do the following:

  • Create a device profile in Cyborg, which specifies what accelerator resources need to be provisioned. (See Cyborg device profiles API.)

  • Set the device profile name as an extra spec in a chosen flavor, with this syntax:

    accel:device_profile=$device_profile_name

    The chosen flavor may be a newly created one or an existing one.

  • Use that flavor to create a server:

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

As of 21.0.0 (Ussuri), nova supports only specific operations for instances with accelerators. The lists of supported and unsupported operations are as below:

  • Supported operations.
    • Creation and deletion.
    • Reboots (soft and hard).
    • Pause and unpause.
    • Stop and start.
    • Take a snapshot.
    • Backup.
    • Rescue and unrescue.
  • Unsupported operations
    • Rebuild.
    • Resize.
    • Evacuate.
    • Suspend and resume.
    • Shelve and unshelve.
    • Cold migration.
    • Live migration.

Some operations, such as lock and unlock, work as they are effectively no-ops for accelerators.

Caveats

Note

This information is correct as of the 21.0.0 Ussuri release. Where improvements have been made or issues fixed, they are noted per item.

For nested resource providers:

  • Creating servers with accelerators provisioned with the Cyborg service, if a flavor asks for resources that are provided by nested Resource Provider inventories (e.g. vGPU) and the user wants multi-create (i.e. say --max 2) then the scheduler could be returning a NoValidHosts exception even if each nested Resource Provider can support at least one specific instance, if the total wanted capacity is not supported by only one nested Resource Provider. (See bug 1874664.)

    For example, creating servers with accelerators provisioned with the Cyborg service, if two children RPs have 4 vGPU inventories each:

    • You can ask for a device profile in the flavor with 2 vGPU with --max 2.
    • But you can't ask for a device profile in the flavor with 4 vGPU and --max 2.