Merge "docs: final cleanup pass on networking"

This commit is contained in:
Zuul 2024-11-27 20:44:03 +00:00 committed by Gerrit Code Review
commit 9a2c8084c2
2 changed files with 47 additions and 20 deletions

View File

@ -28,8 +28,18 @@ Concepts
Terminology
-----------
- ``physical network`` - A physical network in the context of this document
is a logical network fabric which works together. This *can* be represented
for the purposes of modeling the infrastructure, and this terminology is
somewhat over-used due to the similar filed name ``physical_network``
which refers to the named and configured representation of the network
fabric.
- ``vif`` or ``VIF`` - Virtual Interface which is best described as a Neutron
port. VIFs are always referred to utilizing the port ID value.
port. For Ironic, VIFs are always referred to utilizing the Neutron port ID
value, which is a UUID value. A VIF may be available across a limited number
of physical networks, dependent upon the cloud's operating configuration
and operating constraints.
- ``ML2`` - ML2 is a plugin model for Neutron, the Networking service.
Advanced networking interactions including 3rd party plugins are utilized
@ -50,6 +60,12 @@ Terminology
baremetal port is attached, enabling network switch fabric configuration
be appropriately updated.
- ``port`` - A port is the context of this document represents a physical
or logical connection. For example, in the context of Ironic, a port is
a possible physical connection which is connected for use to the underlying
``physical network``. Whereas in the context of Neutron, a port is a
virtual network interface, or in Ironic terminology, a ``VIF``.
- ``port group`` - A composite set of ports, created utilizing Ironic's API
to represent LACP or otherwise bonded network interfaces which exist between
a network fabric and the physical bare metal node.
@ -61,7 +77,7 @@ Network interfaces
Network interface is one of the driver interfaces that manages network
switching for nodes. There are 3 network interfaces available in
the Bare Metal service:
the Ironic service:
- ``noop`` interface is used for standalone deployments, and does not perform
any network switching;
@ -83,13 +99,13 @@ the Bare Metal service:
the network fabric.
To use these interfaces, they need to be enabled in *ironic.conf* utilizing
the ``[DEFAULT]/enabled_network_interfaces`` setting.
the :oslo.config:option:`enabled_network_interfaces` setting.
VIF Attachment flow
-------------------
When creating a VIF, the action occurs against the Neutron Networking Service,
such as by using the ``openstack port create`` command, and then the port UUID
such as by using the ``openstack port create`` command, and then the port ID
is submitted to Ironic to facilitate a VIF attachment.
.. NOTE::
@ -100,14 +116,17 @@ is submitted to Ironic to facilitate a VIF attachment.
all VIFs the user requested to be attached into Ironic, and then generate
user friendly metadata as a result.
When virtual interface (VIF) is requested to be attached to a node via the
When a virtual interface (VIF) is requested to be attached to a node via the
Ironic API, the following ordered criteria are used to select a suitable
unattached port or port group:
* Require ports or port groups to not have a physical network or to have a
physical network that matches one of the VIF's allowed physical networks.
* Prefer ports and port groups that have a physical network to ports and
port groups that do not have a physical network.
physical network that matches one of the VIF's available physical networks
which it may be configured across.
* Prefer ports and port groups which have a physical network to ports and
port groups which do not have a physical network.
* Prefer port groups to ports, prefer ports with PXE enabled.
.. NOTE::
@ -141,7 +160,9 @@ Basic Provisioning flow
When provisioning, Ironic will attempt to attach all PXE enabled
ports to the *provisioning network*. A modifier for this behavior is the
``[neutron]add_all_ports`` option.
:oslo.config:option:`neutron.add_all_ports` option, where ironic will
attempt to bind all ports to the required service network beyond the
ironic ports with ``pxe_enabled`` set to ``True``.
After provisioning work has been completed, and prior to the node being
moved to the ``ACTIVE`` ``provision_state``, the previously attached ports
@ -177,15 +198,15 @@ it is needed.
Physical networks
-----------------
A Bare Metal port may be associated with a physical network using its
An Ironic port may be associated with a physical network using its
``physical_network`` field. Ironic uses this information when
mapping between virtual ports in Neutron and physical ports and
port groups. A port's physical network field is optional, and if not
set then any VIF may be mapped to that port, provided that no free
Bare Metal port with a suitable physical network assignment exists.
Ironic port with a suitable physical network assignment exists.
The physical network of a port group is defined by the physical network of its
constituent ports. The Bare Metal service ensures that all ports in a port
constituent ports. The Ironic service ensures that all ports in a port
group have the same value in their physical network field.
The ``physical_network`` setting is used to have divided network fabrics which
@ -195,8 +216,8 @@ multiple network fabrics into the overall operation with Neutron.
Local link connection
---------------------
Use of the ``neutron`` network-interfaces_ requires the Bare Metal port
``local_link_connection`` information to be populated for each bare metal port
Use of the ``neutron`` network-interfaces_ requires the Ironic port
``local_link_connection`` information to be populated for each Ironic port
on a node in ironic. This information is provided to the Networking service's
ML2 driver when a Virtual Interface (VIF) is attached. The ML2 driver uses the
information to plug the specified port to the tenant network.
@ -231,7 +252,9 @@ Example setting of local link connection information
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Below is an example command you can use as a basis to set the
required information into Ironic.::
required information into Ironic.
.. code-block:: shell
baremetal port create <physical_mac_address> --node <node_uuid> \
--local-link-connection switch_id=<switch_mac_address> \
@ -261,7 +284,9 @@ ff:00:00:00:00:00:02:00:00:02:c9:00:f4:52:14:03:00:38:39:81.
Mellanox ConnectX Family Device's HW_MAC_ADDRESS consists of 6 bytes;
the port GUID's lower 3 and higher 3 bytes. In this example it would be f4:52:14:38:39:81.
Putting it all together, create an Infiniband port as follows::
Putting it all together, create an Infiniband port as follows.
.. code-block:: shell
baremetal port create <physical_mac_address> --node <node_uuid> \
--pxe-enabled true \
@ -284,7 +309,9 @@ can be programmed remotely.
To signal to Ironic the device and connection is supplied via a
Smart NIC, use the following command. This requires the ``hostname``
of the operating system inside the Smart NIC to asserted along with
the ``port_id`` value to match the internal port represetntation name::
the ``port_id`` value to match the internal port representation name.
.. code-block:: shell
baremetal port create <physical_mac_address> --node <node_uuid> \
--local-link-connection hostname=<smartnic_hostname> \
@ -297,7 +324,7 @@ Configuring and using Network Multi-tenancy
===========================================
See the :ref:`configure-tenant-networks` section in the installation guide for
the Bare Metal service.
the Bare Metal (Ironic) service.
Configuring the Networking service
@ -328,7 +355,7 @@ at in the networking-baremetal installation documentation for the
``flat`` network interface
--------------------------
In order for Networking service ports to correctly operate with the Bare Metal
In order for Networking service ports to correctly operate with the Ironic
service ``flat`` network interface the ``baremetal`` ML2 mechanism driver from
`networking-baremetal
<https://opendev.org/openstack/networking-baremetal>`_ needs to be

View File

@ -157,4 +157,4 @@ provisioning will happen in a multi-tenant environment (which means using the
where FILENAME is the file located at the TFTP server.
See :ref:`multitenancy` for required node configuration.
See :ref:`admin-networking` for required node configuration.