]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
config: Always use osd_memory_target if set
authorGaudenz Steinlin <gaudenz.steinlin@cloudscale.ch>
Mon, 28 Oct 2019 09:41:26 +0000 (10:41 +0100)
committerDimitri Savineau <savineau.dimitri@gmail.com>
Fri, 13 Nov 2020 14:27:11 +0000 (09:27 -0500)
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 <gaudenz.steinlin@cloudscale.ch>
(cherry picked from commit 4d1fdd2b05d55f8028fb5593d41fa61dbddd7095)

group_vars/all.yml.sample
group_vars/rhcs.yml.sample
roles/ceph-config/templates/ceph.conf.j2
roles/ceph-defaults/defaults/main.yml

index f7c6fbfb3a97cc6f2ab66c6ad479d5d2fc53209b..722f5ff671c603a6d4bbe1019884bcb02f0438d8 100644 (file)
@@ -342,10 +342,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
index 91617f7fc2d03109e9a597ce6dbac56781463c9e..b11d4dd8f412f9b8d894305946beaed8e3e5e14f 100644 (file)
@@ -342,10 +342,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
index e6f7a8e043660193444c9bafc3b01c4780d6c661..2c12b7db46e22e59d712372d1fe5cdd20e711748 100644 (file)
@@ -88,20 +88,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']) %}
index cbcda5b705982523c6367139161bc462ade9a62b..8ad5ee39f5932312b95b8fc2c6bae2d66cbc8f83 100644 (file)
@@ -334,10 +334,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