]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
mon: make sure osd_pool_default_size is honoured 1214/head
authorSébastien Han <seb@redhat.com>
Tue, 3 Jan 2017 12:48:59 +0000 (13:48 +0100)
committerSébastien Han <seb@redhat.com>
Wed, 25 Jan 2017 21:53:17 +0000 (22:53 +0100)
This patch makes sure we set the proper pool size on the rbd pool.
Usually during bootstrap the rbd pool size is not honoured so we need to
add this workaround.

Signed-off-by: Sébastien Han <seb@redhat.com>
roles/ceph-mon/tasks/ceph_keys.yml
roles/ceph-mon/tasks/rbd_pool.yml
roles/ceph-mon/tasks/rbd_pool_pgs.yml [new file with mode: 0644]
roles/ceph-mon/tasks/rbd_pool_size.yml [new file with mode: 0644]

index 42ce56b0d3fef4a8cd337b9c6640f6643e51b35d..d37cc64d1fde860171047aa2ba7988ccebfed9d9 100644 (file)
@@ -20,7 +20,7 @@
 - name: test if initial mon keyring is in mon kv store
   command: ceph --cluster {{ cluster }} config-key get initial_mon_keyring
   changed_when: false
-  failed_when: false
+  ignore_errors: true
   always_run: true
   run_once: true
   register: is_initial_mon_keyring_in_kv
     osd_pool_default_pg_num: "{{ ceph_conf_overrides.global.osd_pool_default_pg_num }}"
   when: ceph_conf_overrides.global.osd_pool_default_pg_num is defined
 
+- name: test if rbd exists
+  command: ceph --cluster {{ cluster }} osd pool stats rbd
+  changed_when: false
+  failed_when: false
+  register: rbd_pool_exist
+
 - include: rbd_pool.yml
-  when: ceph_conf_overrides.global.osd_pool_default_pg_num is defined
+  when: rbd_pool_exist.rc == 0
+
+- include: rbd_pool_pgs.yml
+  when:
+    - rbd_pool_exist.rc == 0
+    - ceph_conf_overrides.global.osd_pool_default_pg_num is defined
+
+- include: rbd_pool_size.yml
+  when:
+    - rbd_pool_exist.rc == 0
+    - ceph_conf_overrides.global.osd_pool_default_size is defined
 
 - include: openstack_config.yml
   when: openstack_config
index fadea41e9c311aad5fbcfc8b6eab41dc056018bb..8b9a6ab481735dd303dbf36b11ab8dc829bac1ff 100644 (file)
   always_run: true
   register: rbd_pool_pgs
 
-- name: destroy and recreate rbd pool if osd_pool_default_pg_num is not honoured
-  shell: |
-    ceph --connect-timeout 5 --cluster {{ cluster }} osd pool rm rbd rbd --yes-i-really-really-mean-it
-    ceph --connect-timeout 5 --cluster {{ cluster }} osd pool create rbd {{ ceph_conf_overrides.global.osd_pool_default_pg_num }}
-  changed_when: false
-  failed_when: false
-  when:
-    - rbd_pool_df.stdout == "0"
-    - rbd_pool_pgs.stdout != "{{ ceph_conf_overrides.global.osd_pool_default_pg_num }}"
diff --git a/roles/ceph-mon/tasks/rbd_pool_pgs.yml b/roles/ceph-mon/tasks/rbd_pool_pgs.yml
new file mode 100644 (file)
index 0000000..a58969c
--- /dev/null
@@ -0,0 +1,10 @@
+---
+- name: destroy and recreate rbd pool if osd_pool_default_pg_num is not honoured
+  shell: |
+    ceph --connect-timeout 5 --cluster {{ cluster }} osd pool rm rbd rbd --yes-i-really-really-mean-it
+    ceph --connect-timeout 5 --cluster {{ cluster }} osd pool create rbd {{ ceph_conf_overrides.global.osd_pool_default_pg_num }}
+  changed_when: false
+  failed_when: false
+  when:
+    - rbd_pool_df.stdout == "0"
+    - rbd_pool_pgs.stdout != "{{ ceph_conf_overrides.global.osd_pool_default_pg_num }}"
diff --git a/roles/ceph-mon/tasks/rbd_pool_size.yml b/roles/ceph-mon/tasks/rbd_pool_size.yml
new file mode 100644 (file)
index 0000000..76cacc7
--- /dev/null
@@ -0,0 +1,16 @@
+---
+- name: check size for rbd pool
+  shell: |
+    ceph --connect-timeout 5 --cluster {{ cluster }} osd pool get rbd size | awk '{print $2}'
+  changed_when: false
+  failed_when: false
+  always_run: true
+  register: rbd_pool_size
+
+- name: change rbd pool size if osd_pool_default_size is not honoured
+  command: ceph --connect-timeout 5 --cluster {{ cluster }} osd pool set rbd size {{ ceph_conf_overrides.global.osd_pool_default_size }}
+  changed_when: false
+  failed_when: false
+  when:
+    - rbd_pool_df.stdout == "0"
+    - rbd_pool_size.stdout != "{{ ceph_conf_overrides.global.osd_pool_default_size }}"