This is an old revision of the document!
Table of Contents
Managing packages in lab-extras
lab-extras is a repo of miscellaneous packages we want testnodes to have access to.
http://apt-mirror.front.sepia.ceph.com/lab-extras/
An example of a time we'd want to use this is when a package from CentOS 7.3 has a bugfix we want to test on CentOS 7.2. The RPM can be downloaded from the CentOS 7.2 CM (testing) repo, placed in the CentOS 7 lab-extras repo and installed. Example: http://tracker.ceph.com/issues/18094
How-To
- Obtain the RPM from a trusted source
- e.g.,
yum install $package --downloadonly --downloaddir=/root - serve it from http: accessible from the POK lab (say, on soko04, with “python3 -m http.server”)
- read https://github.com/ceph/sepia-openshift/blob/main/apt-mirror/README.rst and follow the procedure there to update the repo in question
Installing the package
Since ceph-cm-ansible makes sure the lab-extras repo is present on all testnodes, a quick way to update a single package on all testnodes would be to run an ansible playbook. Here's an example from when nfs-utils was done.
## ansible-playbook thisplaybook.yml --limit="smithi*,mira*"
- hosts:
- testnodes
become: true
tasks:
- name: Upgrade nfs-utils to lab-extras version
yum:
name: nfs-utils
state: latest
when: ansible_distribution == 'CentOS'
This updated the version to nfs-utils-1.3.0-0.35.el7.x86_64. You can make sure no hosts got left behind by running ansible -a “rpm -qa nfs-utils” mira | grep -B 1 nfs-utils-1.3.0-0.33.el7.x86_64.
# Micron NVMe Firmware Management
This page describes how the Micron NVMe firmware used by trial nodes is managed.
## Supported firmware
| Drive family | Target firmware |
| ———— | ————— |
| Micron 7450 | E2MU300 |
| Micron 7500 | E3MQ005 |
The testnode Ansible role automatically detects supported Micron drives and upgrades them when the installed firmware is older than the target version.
Firmware directory layout
Firmware images are stored in the `lab-extras` repository using the following directory structure:
micron-nvme-firmware/
├── 7450/
│ └── E2MU300/
│ └── Micron_7450_E2MU300_release.ubi
└── 7500/
└── E3MQ005/
└── Micron_7500_E3MQ005_release.ubi
When adding support for a new firmware release, create a new version directory instead of replacing the existing files. For example:
7450/
└── E2MU400/
└── Micron_7450_E2MU400_release.ubi
Updating the firmware files
Follow the existing Managing packages in lab-extras documentation for publishing new files to the lab-extras repository.
*Link:* `docker-mirror:lab-extras`
This page intentionally does not duplicate those instructions.
Updating the Ansible role
When a new firmware version is released:
1. Upload the firmware image to the appropriate directory in `lab-extras`. 2. Update the target firmware version in `roles/testnode/tasks/micron_nvme_firmware.yml`. 3. Update the firmware filename if necessary. 4. Verify on a trial node that the firmware is detected and upgraded successfully.
Verifying firmware
Check the currently installed firmware:
nvme list
or
nvme fw-log /dev/nvmeXn1
Example:
Firmware Log for device:nvme0n1 frs1 : E2MU300
or
Firmware Log for device:nvme0n1 frs1 : E3MQ005
Notes
* Slot 1 is read-only on supported Micron drives. * Firmware is committed to slot 2 using activation action 3. * The Ansible role skips non-Micron NVMe devices automatically.
