]> 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>
Fri, 13 Nov 2020 08:13:58 +0000 (09:13 +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>
group_vars/all.yml.sample
group_vars/rhcs.yml.sample
roles/ceph-config/templates/ceph.conf.j2
roles/ceph-defaults/defaults/main.yml

index 1c6a9e630bc439ee9ecaffedf5d5b9994296b59a..df0e76457c43ddf3bab0c217bd38ba42be2c23b8 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 a10171cfd20aed43d13b06bf59e463502a62dcbf..2ba95134bf5f725a69b382b095d36785eeca43ce 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 1fdb764311f9165f48189361c982c644a7fad62e..5f094cb6faf7bd3663b749c2579390d6044637e6 100644 (file)
@@ -82,20 +82,18 @@ filestore xattr use omap = true
 {% if osd_objectstore == 'bluestore' %}
 {% set _num_osds = num_osds | default(0) | int %}
 [osd]
-{% if is_hci | bool 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 33f0023247ce18f156c292f2d3c5dc409c2d204f..97d2f8004d82a876e07c7226eee462937cd9d6be 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