Skip to content

Commit 0162fdc

Browse files
committedJul 11, 2022
config/osd: various fixes
- 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 8a5628b)

File tree

5 files changed

+15
-11
lines changed

5 files changed

+15
-11
lines changed
 

‎group_vars/all.yml.sample

+1
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,7 @@ dummy:
357357
#is_hci: false
358358
#hci_safety_factor: 0.2
359359
#non_hci_safety_factor: 0.7
360+
#safety_factor: "{{ hci_safety_factor if is_hci | bool else non_hci_safety_factor }}"
360361
#osd_memory_target: 4294967296
361362
#journal_size: 5120 # OSD journal size in MB
362363
#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'.

‎group_vars/rhcs.yml.sample

+1
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,7 @@ ceph_iscsi_config_dev: false
357357
#is_hci: false
358358
#hci_safety_factor: 0.2
359359
#non_hci_safety_factor: 0.7
360+
#safety_factor: "{{ hci_safety_factor if is_hci | bool else non_hci_safety_factor }}"
360361
#osd_memory_target: 4294967296
361362
#journal_size: 5120 # OSD journal size in MB
362363
#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'.

‎roles/ceph-config/tasks/main.yml

+12
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,18 @@
9898
when:
9999
- devices | default([]) | length > 0
100100

101+
- name: set_fact _osd_memory_target
102+
set_fact:
103+
_osd_memory_target: "{{ ((ansible_facts['memtotal_mb'] * 1048576 * safety_factor | float) / num_osds | float) | int }}"
104+
when:
105+
- num_osds | default(0) | int > 0
106+
- ((ansible_facts['memtotal_mb'] * 1048576 * safety_factor | float) / num_osds | float) > osd_memory_target
107+
108+
- name: set osd_memory_target
109+
command: "{{ ceph_cmd }} config set osd/host:{{ inventory_hostname }} osd_memory_target {{ _osd_memory_target | default(osd_memory_target) }}"
110+
changed_when: false
111+
delegate_to: "{{ groups[mon_group_name][0] }}"
112+
101113
- name: create ceph conf directory
102114
file:
103115
path: "/etc/ceph"

‎roles/ceph-config/templates/ceph.conf.j2

-11
Original file line numberDiff line numberDiff line change
@@ -82,17 +82,6 @@ filestore xattr use omap = true
8282
{% if osd_objectstore == 'bluestore' %}
8383
{% set _num_osds = num_osds | default(0) | int %}
8484
[osd]
85-
{% if is_hci | bool and _num_osds > 0 %}
86-
{# hci_safety_factor is the safety factor for HCI deployments #}
87-
{% if ansible_facts['memtotal_mb'] * 1048576 * hci_safety_factor / _num_osds > osd_memory_target %}
88-
{% set _osd_memory_target = (ansible_facts['memtotal_mb'] * 1048576 * hci_safety_factor / _num_osds) | int %}
89-
{% endif %}
90-
{% elif _num_osds > 0 %}
91-
{# non_hci_safety_factor is the safety factor for dedicated nodes #}
92-
{% if ansible_facts['memtotal_mb'] * 1048576 * non_hci_safety_factor / _num_osds > osd_memory_target %}
93-
{% set _osd_memory_target = (ansible_facts['memtotal_mb'] * 1048576 * non_hci_safety_factor / _num_osds) | int %}
94-
{% endif %}
95-
{% endif %}
9685
osd memory target = {{ _osd_memory_target | default(osd_memory_target) }}
9786
{% endif %}
9887
{% endif %}

‎roles/ceph-defaults/defaults/main.yml

+1
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,7 @@ lvmetad_disabled: false
349349
is_hci: false
350350
hci_safety_factor: 0.2
351351
non_hci_safety_factor: 0.7
352+
safety_factor: "{{ hci_safety_factor if is_hci | bool else non_hci_safety_factor }}"
352353
osd_memory_target: 4294967296
353354
journal_size: 5120 # OSD journal size in MB
354355
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'.

0 commit comments

Comments
 (0)
Please sign in to comment.