]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
mdss: move cephfs pools creation in ceph-mds
authorGuillaume Abrioux <gabrioux@redhat.com>
Wed, 23 May 2018 03:07:38 +0000 (05:07 +0200)
committerGuillaume Abrioux <gabrioux@redhat.com>
Thu, 24 May 2018 19:29:42 +0000 (21:29 +0200)
When deploying a large number of OSD nodes it can be an issue because the
protection check [1] won't pass since it tries to create pools before all
OSDs are active.

The idea here is to move cephfs pools creation in `ceph-mds` role.

[1] https://github.com/ceph/ceph/blob/e59258943bcfe3e52d40a59ff30df55e1e6a3865/src/mon/OSDMonitor.cc#L5673

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1578086
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit 3a0e168a76beaf8fb43c6afa56c6cf2b634a8aa8)
Signed-off-by: Sébastien Han <seb@redhat.com>
roles/ceph-mds/tasks/create_mds_filesystems.yml [new file with mode: 0644]
roles/ceph-mds/tasks/main.yml
roles/ceph-mon/tasks/create_mds_filesystems.yml [deleted file]
roles/ceph-mon/tasks/main.yml
roles/ceph-osd/tasks/main.yml

diff --git a/roles/ceph-mds/tasks/create_mds_filesystems.yml b/roles/ceph-mds/tasks/create_mds_filesystems.yml
new file mode 100644 (file)
index 0000000..9320c15
--- /dev/null
@@ -0,0 +1,37 @@
+---
+- name: create filesystem pools
+  command: "{{ hostvars[groups[mon_group_name][0]]['docker_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} osd pool create {{ item.name }} {{ item.pgs }}"
+  changed_when: false
+  delegate_to: "{{ groups[mon_group_name][0] }}"
+  with_items:
+    - "{{ cephfs_pools }}"
+
+- name: check if ceph filesystem already exists
+  command: "{{ hostvars[groups[mon_group_name][0]]['docker_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} fs get {{ cephfs }}"
+  register: check_existing_cephfs
+  changed_when: false
+  delegate_to: "{{ groups[mon_group_name][0] }}"
+  failed_when: false
+
+- name: create ceph filesystem
+  command: "{{ hostvars[groups[mon_group_name][0]]['docker_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} fs new {{ cephfs }} {{ cephfs_metadata }} {{ cephfs_data }}"
+  changed_when: false
+  delegate_to: "{{ groups[mon_group_name][0] }}"
+  when:
+    - check_existing_cephfs.rc != 0
+
+- name: allow multimds
+  command: "{{ hostvars[groups[mon_group_name][0]]['docker_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} fs set {{ cephfs }} allow_multimds true --yes-i-really-mean-it"
+  changed_when: false
+  delegate_to: "{{ groups[mon_group_name][0] }}"
+  when:
+    - ceph_release_num[ceph_release] >= ceph_release_num.jewel
+    - ceph_release_num[ceph_release] < ceph_release_num.mimic
+
+- name: set max_mds
+  command: "{{ hostvars[groups[mon_group_name][0]]['docker_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} fs set {{ cephfs }} max_mds {{ mds_max_mds }}"
+  changed_when: false
+  delegate_to: "{{ groups[mon_group_name][0] }}"
+  when:
+    - ceph_release_num[ceph_release] >= ceph_release_num.jewel
+    - mds_max_mds > 1
index 18f6f81cfec205267f0bb05558929208f4ce4c87..adf971a106b686a4af5febb9f70199b62c50631a 100644 (file)
@@ -8,6 +8,11 @@
 - name: include common.yml
   include: common.yml
 
+- name: include create_mds_filesystems.yml
+  include: create_mds_filesystems.yml
+  when:
+    - inventory_hostname == groups[mds_group_name] | first
+
 - name: non_containerized.yml
   include: non_containerized.yml
   when: not containerized_deployment
diff --git a/roles/ceph-mon/tasks/create_mds_filesystems.yml b/roles/ceph-mon/tasks/create_mds_filesystems.yml
deleted file mode 100644 (file)
index 75df0a2..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
----
-- name: create filesystem pools
-  command: "{{ docker_exec_cmd }} ceph --cluster {{ cluster }} osd pool create {{ item.name }} {{ item.pgs }}"
-  changed_when: false
-  with_items:
-    - "{{ cephfs_pools }}"
-
-- name: check if ceph filesystem already exists
-  command: "{{docker_exec_cmd }} ceph --cluster {{ cluster }} fs get {{ cephfs }}"
-  register: check_existing_cephfs
-  changed_when: false
-  failed_when: false
-
-- name: create ceph filesystem
-  command: "{{ docker_exec_cmd}} ceph --cluster {{ cluster }} fs new {{ cephfs }} {{ cephfs_metadata }} {{ cephfs_data }}"
-  changed_when: false
-  when:
-    - check_existing_cephfs.rc != 0
-
-- name: allow multimds
-  command: "{{ docker_exec_cmd }} ceph --cluster {{ cluster }} fs set {{ cephfs }} allow_multimds true --yes-i-really-mean-it"
-  changed_when: false
-  when:
-    - ceph_release_num[ceph_release] >= ceph_release_num.jewel
-    - ceph_release_num[ceph_release] < ceph_release_num.mimic
-
-- name: set max_mds
-  command: "{{ docker_exec_cmd }} ceph --cluster {{ cluster }} fs set {{ cephfs }} max_mds {{ mds_max_mds }}"
-  changed_when: false
-  when:
-    - ceph_release_num[ceph_release] >= ceph_release_num.jewel
-    - mds_max_mds > 1
index 48fe37c901c7a1b6dab86748ac54f24bee3267fd..28273acceea4f78a0d992c192efa465def11ccab 100644 (file)
   when:
     - openstack_keys_tmp is defined
 
-- name: include create_mds_filesystems.yml
-  include: create_mds_filesystems.yml
-  when:
-    - groups[mds_group_name] is defined
-    - groups[mds_group_name]|length > 0
-    - inventory_hostname == groups[mon_group_name] | last
-
 - name: include calamari.yml
   include: calamari.yml
   when: calamari
index 8c10d661ded70d0b4cd7eb843d673facce995fe3..49239e845f0c8ff2c0cbb16b65a02b013374c6c4 100644 (file)
@@ -95,4 +95,4 @@
   include: openstack_config.yml
   when:
     - openstack_config
-    - inventory_hostname == groups[osd_group_name] | last
\ No newline at end of file
+    - inventory_hostname == groups[osd_group_name] | last