]> 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)
committerGuillaume Abrioux <gabrioux@redhat.com>
Mon, 16 Nov 2020 08:21:01 +0000 (09:21 +0100)
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 efe56d9fc51918945b6a9c54e126df071f79e485..b5f9765b17f6a53632af88a01857466082964ffc 100644 (file)
@@ -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
index 6c2f03b9c9ed2e49953ceeef69c0686321f67f93..47abf5680a76c083e57d46631a4f8d052854e3a2 100644 (file)
@@ -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
index 8cc16bd6a74c0782c50bb969377ef65118e052e8..6773230ac12247da624806ae721b1837effa023c 100644 (file)
@@ -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']) %}
index 818ac134ef51cc6dd2ae0fd35cebad216f942ff8..19bf2395469caac4f2b30c085fbfb4b462025549 100644 (file)
@@ -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