]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
config/osd: various fixes
authorGuillaume Abrioux <gabrioux@redhat.com>
Mon, 11 Jul 2022 08:23:56 +0000 (10:23 +0200)
committerGuillaume Abrioux <gabrioux@redhat.com>
Mon, 11 Jul 2022 12:20:00 +0000 (14:20 +0200)
- sets `osd_memory_target` per osd host.
- ceph.conf refactor (osd)

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=2056675
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit 8a5628b51616b0b9740680bd14c669d4316941f3)

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

index 658ff3d788291a1b870074548f66a365c90e3d70..a031cca04016d60db092800a23fa44b6239f13ea 100644 (file)
@@ -357,6 +357,7 @@ dummy:
 #is_hci: false
 #hci_safety_factor: 0.2
 #non_hci_safety_factor: 0.7
+#safety_factor: "{{ hci_safety_factor if is_hci | bool else non_hci_safety_factor }}"
 #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'.
index d1f9cd66a65598e6516b65d395f3d953d1d31a42..68fcb1423f5c056429def2d1b345e3ba56ff4057 100644 (file)
@@ -357,6 +357,7 @@ ceph_iscsi_config_dev: false
 #is_hci: false
 #hci_safety_factor: 0.2
 #non_hci_safety_factor: 0.7
+#safety_factor: "{{ hci_safety_factor if is_hci | bool else non_hci_safety_factor }}"
 #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'.
index 6bda62f2241eff2bb9ef52228f73ceb1f7ccefa2..fc06d925a4d784d7cffaeedadad7fb4e19bce08b 100644 (file)
       when:
         - devices | default([]) | length > 0
 
+    - name: set_fact _osd_memory_target
+      set_fact:
+        _osd_memory_target: "{{ ((ansible_facts['memtotal_mb'] * 1048576 * safety_factor | float) / num_osds | float) | int }}"
+      when:
+        - num_osds | default(0) | int > 0
+        - ((ansible_facts['memtotal_mb'] * 1048576 * safety_factor | float) / num_osds | float) > osd_memory_target
+
+    - name: set osd_memory_target
+      command: "{{ ceph_cmd }} config set osd/host:{{ inventory_hostname }} osd_memory_target {{ _osd_memory_target | default(osd_memory_target) }}"
+      changed_when: false
+      delegate_to: "{{ groups[mon_group_name][0] }}"
+
 - name: create ceph conf directory
   file:
     path: "/etc/ceph"
index 8761569f7943b67341089186cb897469ed8d122f..3d5183810f89d95398b8f924b0af1f2583ac23a0 100644 (file)
@@ -82,17 +82,6 @@ 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 %}
-{# hci_safety_factor is the safety factor for HCI deployments #}
-{% if ansible_facts['memtotal_mb'] * 1048576 * hci_safety_factor / _num_osds > osd_memory_target %}
-{% set _osd_memory_target = (ansible_facts['memtotal_mb'] * 1048576 * hci_safety_factor / _num_osds) | int %}
-{% endif %}
-{% elif _num_osds > 0 %}
-{# non_hci_safety_factor is the safety factor for dedicated nodes #}
-{% if ansible_facts['memtotal_mb'] * 1048576 * non_hci_safety_factor / _num_osds > osd_memory_target %}
-{% set _osd_memory_target = (ansible_facts['memtotal_mb'] * 1048576 * non_hci_safety_factor / _num_osds) | int %}
-{% endif %}
-{% endif %}
 osd memory target = {{ _osd_memory_target | default(osd_memory_target) }}
 {% endif %}
 {% endif %}
index 1b434dc09ae31b34a71a264976c62b74f7cbec04..ea46fb2d0fd6d1da7710c6a3808c5929e0d20472 100644 (file)
@@ -349,6 +349,7 @@ lvmetad_disabled: false
 is_hci: false
 hci_safety_factor: 0.2
 non_hci_safety_factor: 0.7
+safety_factor: "{{ hci_safety_factor if is_hci | bool else non_hci_safety_factor }}"
 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'.