Merge "[admin-guide] Minor refactoring of the PCI guide"
This commit is contained in:
commit
7cd6679218
@ -4,23 +4,22 @@
|
||||
Attaching physical PCI devices to guests
|
||||
========================================
|
||||
|
||||
The PCI passthrough feature in OpenStack allows full access and direct
|
||||
control of a physical PCI device in guests. This mechanism is generic for any
|
||||
kind of PCI devices (for example: Network Interface Card (NIC), Graphics
|
||||
Processing Unit (GPU) or any other devices that can be attached to a PCI bus).
|
||||
Correct driver installation is the only requirement for the guest to properly
|
||||
The PCI passthrough feature in OpenStack allows full access and direct control
|
||||
of a physical PCI device in guests. This mechanism is generic for any kind of
|
||||
PCI device, and runs with a Network Interface Card (NIC), Graphics Processing
|
||||
Unit (GPU), or any other devices that can be attached to a PCI bus. Correct
|
||||
driver installation is the only requirement for the guest to properly
|
||||
use the devices.
|
||||
|
||||
PCI devices, if supported by the hardware, can provide Single Root I/O
|
||||
Virtualization and Sharing (SR-IOV) functionality. In this case, a physical
|
||||
device is virtualized and appears as multiple PCI devices. Virtual PCI
|
||||
devices are assigned to the same or different guests. In the case of PCI
|
||||
passthrough, the full physical device is assigned to only one guest and cannot
|
||||
be shared.
|
||||
Some PCI devices provide Single Root I/O Virtualization and Sharing (SR-IOV)
|
||||
capabilities. When SR-IOV is used, a physical device is virtualized and appears
|
||||
as multiple PCI devices. Virtual PCI devices are assigned to the same or
|
||||
different guests. In the case of PCI passthrough, the full physical device is
|
||||
assigned to only one guest and cannot be shared.
|
||||
|
||||
.. note::
|
||||
|
||||
For Attaching virtual SR-IOV devices to guests, refer to the
|
||||
For information on attaching virtual SR-IOV devices to guests, refer to the
|
||||
`Networking Guide`_.
|
||||
|
||||
To enable PCI passthrough, follow the steps below:
|
||||
@ -33,8 +32,8 @@ To enable PCI passthrough, follow the steps below:
|
||||
|
||||
.. note::
|
||||
|
||||
The PCI device with address ``0000:41:00.0`` is as an example. Expect
|
||||
to change this according to your actual environment.
|
||||
The PCI device with address ``0000:41:00.0`` is used as an example. This
|
||||
will differ between environments.
|
||||
|
||||
Configure nova-scheduler (Controller)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -59,16 +58,16 @@ Configure nova-api (Controller)
|
||||
[default]
|
||||
pci_alias = { "vendor_id":"8086", "product_id":"154d", "device_type":"type-PF", "name":"a1" }
|
||||
|
||||
For more information about the syntax of ``pci_alias``, refer to
|
||||
`nova.conf configuration options`_.
|
||||
For more information about the syntax of ``pci_alias``, refer to `nova.conf
|
||||
configuration options`_.
|
||||
|
||||
#. Restart the ``nova-api`` service.
|
||||
|
||||
Configure a flavor (Controller)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Configure a flavor to request two PCI devices, each with ``vendor_id`` as
|
||||
``0x8086`` and ``product_id`` as ``0x154d``.
|
||||
Configure a flavor to request two PCI devices, each with ``vendor_id`` of
|
||||
``0x8086`` and ``product_id`` of ``0x154d``:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
@ -80,13 +79,13 @@ For more information about the syntax for ``pci_passthrough:alias``, refer to
|
||||
Enable PCI passthrough (Compute)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Enable VT-d and IOMMU. For more information, refer to steps one and two
|
||||
in `Create Virtual Functions`_.
|
||||
Enable VT-d and IOMMU. For more information, refer to steps one and two in
|
||||
`Create Virtual Functions`_.
|
||||
|
||||
Configure PCI devices ``nova-compute`` (Compute)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Configure PCI devices (Compute)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#. Configure ``nova-compute`` to allow the PCI device to be passed through to
|
||||
#. Configure ``nova-compute`` to allow the PCI device to pass through to
|
||||
VMs. Edit ``/etc/nova/nova.conf``:
|
||||
|
||||
.. code-block:: ini
|
||||
@ -109,8 +108,8 @@ Configure PCI devices ``nova-compute`` (Compute)
|
||||
|
||||
#. Specify the PCI alias for the device.
|
||||
|
||||
From the Newton release, to resize guest with PCI device, configure
|
||||
the PCI alias on the compute node as well.
|
||||
From the Newton release, to resize guest with PCI device, configure the PCI
|
||||
alias on the compute node as well.
|
||||
|
||||
Configure a PCI alias ``a1`` to request a PCI device with a ``vendor_id`` of
|
||||
``0x8086`` and a ``product_id`` of ``0x154d``. The ``vendor_id`` and
|
||||
@ -123,8 +122,8 @@ Configure PCI devices ``nova-compute`` (Compute)
|
||||
[default]
|
||||
pci_alias = { "vendor_id":"8086", "product_id":"154d", "device_type":"type-PF", "name":"a1" }
|
||||
|
||||
For more information about the syntax of ``pci_alias``, refer to
|
||||
`nova.conf configuration options`_.
|
||||
For more information about the syntax of ``pci_alias``, refer to `nova.conf
|
||||
configuration options`_.
|
||||
|
||||
#. Restart the ``nova-compute`` service.
|
||||
|
||||
@ -132,8 +131,8 @@ Create instances with PCI passthrough devices
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The ``nova-scheduler`` selects a destination host that has PCI devices
|
||||
available with the specified ``vendor_id`` and ``product_id`` that matches
|
||||
the ``pci_alias`` from the flavor.
|
||||
available with the specified ``vendor_id`` and ``product_id`` that matches the
|
||||
``pci_alias`` from the flavor.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user