From 0f679e7b208830280053be4d228d98156b073192 Mon Sep 17 00:00:00 2001 From: Gaudenz Steinlin Date: Mon, 28 Oct 2019 10:41:26 +0100 Subject: [PATCH] config: Always use osd_memory_target if set The osd_memory_target variable was only used if it was higher than the calculated value based on the number of OSDs. This is changed to always use the value if it is set in the configuration. This allows this value to be intentionally set lower so that it does not have to be changed when more OSDs are added later. Signed-off-by: Gaudenz Steinlin (cherry picked from commit 4d1fdd2b05d55f8028fb5593d41fa61dbddd7095) --- group_vars/all.yml.sample | 4 +++- group_vars/rhcs.yml.sample | 4 +++- roles/ceph-config/templates/ceph.conf.j2 | 10 ++++------ roles/ceph-defaults/defaults/main.yml | 4 +++- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/group_vars/all.yml.sample b/group_vars/all.yml.sample index efe56d9fc..b5f9765b1 100644 --- a/group_vars/all.yml.sample +++ b/group_vars/all.yml.sample @@ -372,10 +372,12 @@ dummy: ## OSD options # +# Variables to calculate a suitable osd_memory_target based on the number of OSDs #is_hci: false #hci_safety_factor: 0.2 #non_hci_safety_factor: 0.7 -#osd_memory_target: 4294967296 +# You can also set an explicit value which will override the calculation if set. +# osd_memory_target: 4294967296 #journal_size: 5120 # OSD journal size in MB #block_db_size: -1 # block db size in bytes for the ceph-volume lvm batch. -1 means use the default of 'as big as possible'. #public_network: 0.0.0.0/0 diff --git a/group_vars/rhcs.yml.sample b/group_vars/rhcs.yml.sample index 6c2f03b9c..47abf5680 100644 --- a/group_vars/rhcs.yml.sample +++ b/group_vars/rhcs.yml.sample @@ -372,10 +372,12 @@ ceph_iscsi_config_dev: false ## OSD options # +# Variables to calculate a suitable osd_memory_target based on the number of OSDs #is_hci: false #hci_safety_factor: 0.2 #non_hci_safety_factor: 0.7 -#osd_memory_target: 4294967296 +# You can also set an explicit value which will override the calculation if set. +# osd_memory_target: 4294967296 #journal_size: 5120 # OSD journal size in MB #block_db_size: -1 # block db size in bytes for the ceph-volume lvm batch. -1 means use the default of 'as big as possible'. #public_network: 0.0.0.0/0 diff --git a/roles/ceph-config/templates/ceph.conf.j2 b/roles/ceph-config/templates/ceph.conf.j2 index 8cc16bd6a..6773230ac 100644 --- a/roles/ceph-config/templates/ceph.conf.j2 +++ b/roles/ceph-config/templates/ceph.conf.j2 @@ -90,20 +90,18 @@ filestore xattr use omap = true {% if osd_objectstore == 'bluestore' %} {% set _num_osds = num_osds | default(0) | int %} [osd] -{% if is_hci and _num_osds > 0 %} +{% if is_hci | bool and _num_osds > 0 and not osd_memory_target is defined %} {# hci_safety_factor is the safety factor for HCI deployments #} -{% if ansible_memtotal_mb * 1048576 * hci_safety_factor / _num_osds > osd_memory_target %} {% set _osd_memory_target = (ansible_memtotal_mb * 1048576 * hci_safety_factor / _num_osds) | int %} -{% endif %} -{% elif _num_osds > 0 %} +{% elif _num_osds > 0 and not osd_memory_target is defined %} {# non_hci_safety_factor is the safety factor for dedicated nodes #} -{% if ansible_memtotal_mb * 1048576 * non_hci_safety_factor / _num_osds > osd_memory_target %} {% set _osd_memory_target = (ansible_memtotal_mb * 1048576 * non_hci_safety_factor / _num_osds) | int %} {% endif %} -{% endif %} +{% if _osd_memory_target is defined or osd_memory_target is defined %} osd memory target = {{ _osd_memory_target | default(osd_memory_target) }} {% endif %} {% endif %} +{% endif %} {% if inventory_hostname in groups.get(rgw_group_name, []) %} {% set _rgw_hostname = hostvars[inventory_hostname]['rgw_hostname'] | default(hostvars[inventory_hostname]['ansible_hostname']) %} diff --git a/roles/ceph-defaults/defaults/main.yml b/roles/ceph-defaults/defaults/main.yml index 818ac134e..19bf23954 100644 --- a/roles/ceph-defaults/defaults/main.yml +++ b/roles/ceph-defaults/defaults/main.yml @@ -364,10 +364,12 @@ cephfs_pools: ## OSD options # +# Variables to calculate a suitable osd_memory_target based on the number of OSDs is_hci: false hci_safety_factor: 0.2 non_hci_safety_factor: 0.7 -osd_memory_target: 4294967296 +# You can also set an explicit value which will override the calculation if set. +# osd_memory_target: 4294967296 journal_size: 5120 # OSD journal size in MB block_db_size: -1 # block db size in bytes for the ceph-volume lvm batch. -1 means use the default of 'as big as possible'. public_network: 0.0.0.0/0 -- 2.39.5