]> 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>
Mon, 13 Jan 2020 15:54:01 +0000 (16:54 +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>
(cherry picked from commit ef2cb99f739ade80e285d83050ac01184aafc753)

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

index 3125065c2602fab65518894e2d16f7e2a9103c65..44f8bc627a61809c15d0bb3d33fece3e30e6c007 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 1a61df5cd7fc4570cc76049078802632edc59a7f..226cf59a73b4e4c5ea5dd78141c876bf525c0d38 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 49ec014395118301f3baa0f9e179af01fb6eed8d..412030c31752f706851ec8af1e728ab5d884f672 100644 (file)
@@ -11,7 +11,7 @@
     - osd_crush_location is defined
 
 - name: create configured crush rules
-  command: "{{ hostvars[groups[mon_group_name][0]]['docker_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} osd crush rule create-simple {{ item.name }} {{ item.root }} {{ item.type }}"
+  command: "{{ hostvars[groups[mon_group_name][0]]['docker_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