]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
ceph-osd: add device class to crush rules
authorDimitri Savineau <dsavinea@redhat.com>
Thu, 31 Oct 2019 20:24:12 +0000 (16:24 -0400)
committerGuillaume Abrioux <gabrioux@redhat.com>
Thu, 14 Nov 2019 15:25:46 +0000 (16:25 +0100)
This adds device class support to crush rules when using the class key
in the rule dict via the create-replicated sub command.
If the class key isn't specified then we use the create-simple sub
command for backward compatibility.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1636508
Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
group_vars/mons.yml.sample
roles/ceph-mon/defaults/main.yml
roles/ceph-osd/tasks/crush_rules.yml
tests/functional/all_daemons/container/group_vars/mons
tests/functional/all_daemons/group_vars/mons
tests/functional/podman/group_vars/mons

index 5644dc7e1ea48626572f1a43709533868843273f..6f79ae41b4df17e0fac21bc6656fe9aa27848503 100644 (file)
@@ -43,14 +43,16 @@ dummy:
 
 #crush_rule_hdd:
 #  name: HDD
-#  root: HDD
+#  root: default
 #  type: host
+#  class: hdd
 #  default: false
 
 #crush_rule_ssd:
 #  name: SSD
-#  root: SSD
+#  root: default
 #  type: host
+#  class: ssd
 #  default: false
 
 #crush_rules:
index f4460a7089d20d15c898bd1069ab0518c53cef5d..46d20d506790a63ee439e6c066b802980d2f9034 100644 (file)
@@ -35,14 +35,16 @@ crush_rule_config: false
 
 crush_rule_hdd:
   name: HDD
-  root: HDD
+  root: default
   type: host
+  class: hdd
   default: false
 
 crush_rule_ssd:
   name: SSD
-  root: SSD
+  root: default
   type: host
+  class: ssd
   default: false
 
 crush_rules:
index 02e5bef518942d30b9c2e7f5706e4d9822095d2f..edeedc1ba39314c91790801276f088d500a88e3a 100644 (file)
@@ -11,7 +11,7 @@
     - osd_crush_location is defined
 
 - name: create configured crush rules
-  command: "{{ hostvars[groups[mon_group_name][0]]['container_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} osd crush rule create-simple {{ item.name }} {{ item.root }} {{ item.type }}"
+  command: "{{ hostvars[groups[mon_group_name][0]]['container_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} osd crush rule {{ 'create-replicated' if item.class is defined else 'create-simple' }} {{ item.name }} {{ item.root }} {{ item.type }} {{ item.class | default('') }}"
   changed_when: false
   with_items: "{{ hostvars[groups[mon_group_name][0]]['crush_rules'] | unique }}"
   delegate_to: '{{ groups[mon_group_name][0] }}'
index 4b54059472a3fed8055b4efdcb5135e55a052993..7b31aa92243f1d2a5f8e41244fddb00646231df1 100644 (file)
@@ -3,8 +3,9 @@ create_crush_tree: True
 crush_rule_config: True
 crush_rule_hdd:
   name: HDD
-  root: HDD
+  root: default
   type: host
+  class: hdd
   default: true
 crush_rules:
   - "{{ crush_rule_hdd }}"
index 4b88173422b200e7d9686c990b20c8843b129485..f6ab9a5415ec4a83aff670e1fcbd94d55ca1cbec 100644 (file)
@@ -3,8 +3,9 @@ create_crush_tree: True
 crush_rule_config: True
 crush_rule_hdd:
   name: HDD
-  root: HDD
+  root: default
   type: host
+  class: hdd
   default: true
 crush_rules:
   - "{{ crush_rule_hdd }}"
\ No newline at end of file
index 4b54059472a3fed8055b4efdcb5135e55a052993..7b31aa92243f1d2a5f8e41244fddb00646231df1 100644 (file)
@@ -3,8 +3,9 @@ create_crush_tree: True
 crush_rule_config: True
 crush_rule_hdd:
   name: HDD
-  root: HDD
+  root: default
   type: host
+  class: hdd
   default: true
 crush_rules:
   - "{{ crush_rule_hdd }}"