diff --git a/api-guide/source/accelerator-support.rst b/api-guide/source/accelerator-support.rst new file mode 100644 index 000000000000..6d66a22e12af --- /dev/null +++ b/api-guide/source/accelerator-support.rst @@ -0,0 +1,56 @@ +============================== +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: + + .. code:: + + 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: + + .. code:: + + 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. diff --git a/api-guide/source/index.rst b/api-guide/source/index.rst index 6763b73c0849..2e6ac8042b7b 100644 --- a/api-guide/source/index.rst +++ b/api-guide/source/index.rst @@ -88,3 +88,4 @@ Contents request_and_response_formats down_cells port_with_resource_request + accelerator-support diff --git a/releasenotes/notes/accelerator-requests-6c9a6fef77ab776a.yaml b/releasenotes/notes/accelerator-requests-6c9a6fef77ab776a.yaml index 6c8598ff0386..648852b403f3 100644 --- a/releasenotes/notes/accelerator-requests-6c9a6fef77ab776a.yaml +++ b/releasenotes/notes/accelerator-requests-6c9a6fef77ab776a.yaml @@ -4,7 +4,11 @@ features: Handling accelerator requests for an instance is now supported (where supported by the underlying virt driver) as of microversion 2.82. The Cyborg service generates an event for the binding - completion for each accelerator request for an instance. - Adds a new event ``accelerator_request_bound`` for this to the API: + completion for each accelerator request (ARQ) for an instance. + Adds a new event ``accelerator_request_bound`` for this to the API + ``POST /os-server-external-events`` - * ``POST /os-server-external-events`` + The lists of operations that are supported or unsupported for + instances with accelerators are listed in + `accelerator operation guide + `_