[doc] Document dynamic network burn-in

Add documentation on how to configure and use the dynamic pair
matching for network burn-in.

Change-Id: I09fcdcae5f0ec0c9a2a6ba38028bf2b1d51ab75a
This commit is contained in:
Arne Wiebalck 2022-03-24 15:10:30 +01:00
parent 30b0c56d23
commit 4d1bced623
1 changed files with 51 additions and 2 deletions

View File

@ -113,7 +113,17 @@ Network burn-in
===============
Burning in the network needs a little more config, since we need a pair
of nodes to perform the test. Therefore, this test needs to set
of nodes to perform the test. This pairing can be done either in a static
way, i.e. pairs are defined upfront, or dynamically via a distributed
coordination backend which orchestrates the pair matching. While the
static approach is more predictable in terms of which nodes test each
other, the dynamic approach avoids nodes being blocked in case there
are issues with servers and simply pairs all available nodes.
Static network burn-in configuration
------------------------------------
To define pairs of nodes statically, each node can be assigned a
``agent_burnin_fio_network_config`` JSON which requires a ``role`` field
(values: ``reader``, ``writer``) and a ``partner`` field (value is the
hostname of the other node to test), like:
@ -125,6 +135,45 @@ hostname of the other node to test), like:
baremetal node set --driver-info agent_burnin_fio_network_config= \
'{"role": "reader", "partner": "$HOST1"}' $NODE_NAME_OR_UUID2
Dynamic network burn-in configuration
-------------------------------------
In order to use dynamic pair matching, a coordination backend is used
via `tooz <https://docs.openstack.org/tooz/latest/>`_. The corresponding
backend URL then needs to be added to the node, e.g. for a Zookeeper
backend it would look similar to:
.. code-block:: console
baremetal node set --driver-info \
agent_burnin_fio_network_pairing_backend_url= \
'zookeeper://zk1.xyz.com:2181,zk2.xyz.com:2181,zk3.xyz.com:2181' \
$NODE_NAME_OR_UUID1
baremetal node set --driver-info \
agent_burnin_fio_network_pairing_backend_url= \
'zookeeper://zk1.xyz.com:2181,zk2.xyz.com:2181,zk3.xyz.com:2181' \
$NODE_NAME_OR_UUID2
...
baremetal node set --driver-info \
agent_burnin_fio_network_pairing_backend_url= \
'zookeeper://zk1.xyz.com:2181,zk2.xyz.com:2181,zk3.xyz.com:2181' \
$NODE_NAME_OR_UUIDN
Different deliveries or network ports can be separated by creating
different rooms on the backend with:
.. code-block:: console
baremetal node set --driver-info \
agent_burnin_fio_network_pairing_group_name=$DELIVERY $NODE_NAME_OR_UUID
This allows to control which nodes (or interfaces) connect with which other
nodes (or interfaces).
Launching network burn-in
-------------------------
In addition and similar to the other tests, there is a runtime option
to be set (only on the writer):
@ -133,7 +182,7 @@ to be set (only on the writer):
baremetal node set --driver-info agent_burnin_fio_network_runtime=600 \
$NODE_NAME_OR_UUID
Then launch the test with:
The actual network burn-in can then be launched with:
.. code-block:: console