StarlingX Ansible Playbooks
Go to file
Hediberto C Silva 920106ef17 Select devices to disable APM
This commit is a part of the solution to mitigate a known issue that
the Advanced Power Management (APM) disk settings impacted read
performance. These settings are dynamically set based on the enabled
StarlingX tuned service profiles.

On some specific hardware configurations  (for example, PowerEdge XR11
with an integrated storage controller), degraded read performance was
observed where the Tuned Disk Monitor didn't detect high usage,
maintaining a limited and low APM level (default 20).
For write operations, a delay of about 60 seconds was noticed to
achive the highest disk performance.

Each unlocking will ensure the APM is disabled, but it can still be set
manually at runtime using: "sudo hdparm -B <apm_level> /dev/sda".

Ensuring it's disabled for all devices, we need to provide the names,
as Tuned retrieves all devices from /sys/block and attempts to apply
the apm_level setting for each one. After failing to apply it
three times (for example, with DRBD block devices), Tuned will disable
the set_apm command for the others.

For populate this parameter, it will needed to use the disks
persistent name (by-path value) from the inventory.

For example:
 devices_udev_regex=(ID_PATH=pci-...-ata-1.0)|(ID_PATH=pci-...-ata-2.0)

Test Plan:
  PASS: All packages built successfully
  PASS: Fresh Install SX/DX/STD in virtual environments
  PASS: After unlocking, verify that APM and Tuned Disk Monitor
        are disabled
  PASS: After unlocking, verify that /etc/tuned/starlingx/tuned.conf
        is populated with the selected devices
  PASS: All previous tests using XR11 lab
  PASS: After the initial unlock, the virtual host is locked,
        powered off, a disk is added, powered on, and after a new
        unlock, the new disk is added to devices_udev_regex.

Partial-bug: 2086509

Depends-on: https://review.opendev.org/c/starlingx/config/+/933893

Change-Id: Ifc81e6236f7d5a59d22c2c824ea0e30f137e9e79
Signed-off-by: Hediberto C Silva <hediberto.cavalcantedasilva@windriver.com>
2024-11-04 17:58:56 -03:00
examples Update SX to DX migration playbook to support IPsec 2024-08-08 14:09:52 -04:00
playbookconfig Select devices to disable APM 2024-11-04 17:58:56 -03:00
.ansible-lint Fix zuul failures from new release of ansible-lint 2020-08-18 10:49:30 -05:00
.gitignore Fixing up tox -e cover for stx-config 2018-12-20 08:53:15 -06:00
.gitreview Added .gitreview 2019-06-15 14:03:07 -05:00
.yamllint Enable yamllint for ansible playbook .yml files 2019-06-24 13:27:26 -05:00
.zuul.yaml Fix github mirroring for this repo 2023-04-28 12:38:49 -04:00
CONTRIBUTORS.wrs Clean up repo import 2019-06-15 14:21:19 -05:00
debian_build_layer.cfg Add debian_build_layer.cfg file 2021-10-05 14:04:06 -04:00
debian_iso_image.inc Add debian_iso_image.inc file 2021-10-27 01:56:02 -04:00
debian_pkg_dirs Add debian package for playbookconfig 2021-09-29 18:32:15 +03:00
LICENSE Clean up repo import 2019-06-15 14:21:19 -05:00
README.rst starlingx/ansible-playbooks README improvement 2023-07-19 12:13:55 -03:00
requirements.txt Fix remote play for backup and restore 2022-08-17 14:51:35 -03:00
test-requirements.txt Fix tox ansible lint failure due to a new module 2022-01-10 11:04:20 -06:00
tox.ini Prestaging support for --for-sw-deploy/--for-install 2024-06-19 00:38:00 +00:00

stx-ansible-playbooks

StarlingX Bootstrap and Deployment Ansible1 Playbooks

Execution environment

  • Unix like OS (recent Linux based distributions, MacOS, Cygwin)
  • Python 3.8 and later

Additional Required Packages

In addition to the pakages listed in requirements.txt and test-requirements.txt, the following packages are required to run the playbooks remotely:

  • python3-pexpect
  • python3-ptyprocess
  • sshpass

Supported StarlingX Releases

The playbooks are compatible with StarlingX R8.0 and later.

Executing StarlingX Playbooks

Bootstrap Playbook

For instructions on how to set up and execute the bootstrap playbook from another host, please refer to the StarlingX Documentation2, at Installation Guides, section Configure controller-0 of the respective system deployment type.

Developer Notes

This repository is not intended to be developed standalone, but rather as part of the StarlingX Source System, which is defined by the StarlingX manifest3.

References


  1. https://docs.ansible.com/ansible/latest/installation_guide↩︎

  2. https://docs.starlingx.io↩︎

  3. https://opendev.org/starlingx/manifest.git↩︎