Allow dynamic enabling/disabling of cset
Add a separate config to handle enable/disable on the system itself.
This commit is contained in:
		@@ -117,6 +117,14 @@
 | 
			
		||||
    - ceph-mon@{{ 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
 | 
			
		||||
- block:
 | 
			
		||||
    - name: install packages
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								roles/pvc/templates/ceph/ceph-osd-cpuset-enable.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								roles/pvc/templates/ceph/ceph-osd-cpuset-enable.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{{ pvc_shield_osds_enable }}
 | 
			
		||||
@@ -33,20 +33,28 @@ done
 | 
			
		||||
 | 
			
		||||
# Determine our CPU count
 | 
			
		||||
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
 | 
			
		||||
for i in $( seq 0 $(( ${CPU_COUNT} - 1)) ); do
 | 
			
		||||
for i in $( seq 0 $(( ${CPU_COUNT} - 1 )) ); do
 | 
			
		||||
    if [[ ! " ${A_OSD_CPUS[*]} " =~ " ${i} " ]]; then
 | 
			
		||||
        A_SYS_CPUS+=( $i )
 | 
			
		||||
    fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# Convert arrays into CSV
 | 
			
		||||
OSD_MEMS="$( IFS=, ; echo "${A_OSD_MEMS[*]}" )"
 | 
			
		||||
OSD_CPUS="$( IFS=, ; echo "${A_OSD_CPUS[*]}" )"
 | 
			
		||||
SYS_CPUS="$( IFS=, ; echo "${A_SYS_CPUS[*]}" )"
 | 
			
		||||
if [[ $( cat /etc/default/ceph-osd-cpuset ) == "True" ]]; then
 | 
			
		||||
    # Convert arrays into CSV
 | 
			
		||||
    OSD_MEMS="$( IFS=, ; echo "${A_OSD_MEMS[*]}" )"
 | 
			
		||||
    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 Mems: ${OSD_MEMS}"
 | 
			
		||||
echo "System/VM CPUs: ${SYS_CPUS}"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user