Allow dynamic enabling/disabling of cset

Add a separate config to handle enable/disable on the system itself.
This commit is contained in:
Joshua Boniface 2021-09-29 10:21:47 -04:00
parent 8ac2a5ea0c
commit 645249b57e
3 changed files with 23 additions and 6 deletions

View File

@ -117,6 +117,14 @@
- ceph-mon@{{ ansible_hostname }} - ceph-mon@{{ ansible_hostname }}
- ceph-mgr@{{ ansible_hostname }} - ceph-mgr@{{ ansible_hostname }}
# This is separate from the block to allow *disabling* of the config without removing it
- name: install ceph-osd-cpuset controller config
template:
src: ceph/ceph-osd-cpuset-enable.j2
dest: /etc/default/ceph-osd-cpuset
when:
- pvc_shield_osds_enable is defined
# System OSD CPU shielding activation # System OSD CPU shielding activation
- block: - block:
- name: install packages - name: install packages

View File

@ -0,0 +1 @@
{{ pvc_shield_osds_enable }}

View File

@ -33,20 +33,28 @@ done
# Determine our CPU count # Determine our CPU count
CPU_COUNT="$( grep '^CPU(s)' <<<"${CPU_INFO}" | awk '{ print $NF }' )" CPU_COUNT="$( grep '^CPU(s)' <<<"${CPU_INFO}" | awk '{ print $NF }' )"
echo "CPU count: ${CPU_COUNT}"
# Loop through all the CPUs in the count; if they are not in OSD_CPUS, add them to the SYS_CPUS array # Loop through all the CPUs in the count; if they are not in OSD_CPUS, add them to the SYS_CPUS array
for i in $( seq 0 $(( ${CPU_COUNT} - 1)) ); do for i in $( seq 0 $(( ${CPU_COUNT} - 1 )) ); do
if [[ ! " ${A_OSD_CPUS[*]} " =~ " ${i} " ]]; then if [[ ! " ${A_OSD_CPUS[*]} " =~ " ${i} " ]]; then
A_SYS_CPUS+=( $i ) A_SYS_CPUS+=( $i )
fi fi
done done
# Convert arrays into CSV if [[ $( cat /etc/default/ceph-osd-cpuset ) == "True" ]]; then
OSD_MEMS="$( IFS=, ; echo "${A_OSD_MEMS[*]}" )" # Convert arrays into CSV
OSD_CPUS="$( IFS=, ; echo "${A_OSD_CPUS[*]}" )" OSD_MEMS="$( IFS=, ; echo "${A_OSD_MEMS[*]}" )"
SYS_CPUS="$( IFS=, ; echo "${A_SYS_CPUS[*]}" )" OSD_CPUS="$( IFS=, ; echo "${A_OSD_CPUS[*]}" )"
SYS_CPUS="$( IFS=, ; echo "${A_SYS_CPUS[*]}" )"
else
# Configs installed but disabled, so use all CPUs for everything
OSD_MEMS="${SYS_MEMS}"
OSD_CPUS="0-$(( ${CPU_COUNT} - 1 ))"
SYS_CPUS="0-$(( ${CPU_COUNT} - 1 ))"
fi
echo "Enabled: $( cat /etc/default/ceph-osd-cpuset )"
echo "CPU count: ${CPU_COUNT}"
echo "OSD CPUs: ${OSD_CPUS}" echo "OSD CPUs: ${OSD_CPUS}"
echo "OSD Mems: ${OSD_MEMS}" echo "OSD Mems: ${OSD_MEMS}"
echo "System/VM CPUs: ${SYS_CPUS}" echo "System/VM CPUs: ${SYS_CPUS}"