From e302c1baae905e13d70fb90a3b3555db304ee5ed Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Han?= Date: Tue, 6 Mar 2018 14:26:53 +0100 Subject: [PATCH] mon: add support for erasure code pool MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit You can now specify type: erasure and erasure_profile to use when declaring the pool dictionnary. Signed-off-by: Sébastien Han --- group_vars/mons.yml.sample | 35 +++++++++++-------- roles/ceph-mon/defaults/main.yml | 35 +++++++++++-------- roles/ceph-mon/tasks/openstack_config.yml | 11 +++--- .../centos/7/cluster/group_vars/all | 1 - .../centos/7/cluster/group_vars/mons | 21 +++++++++++ .../functional/centos/7/docker/group_vars/all | 1 - .../centos/7/docker/group_vars/mons | 21 +++++++++++ 7 files changed, 89 insertions(+), 36 deletions(-) diff --git a/group_vars/mons.yml.sample b/group_vars/mons.yml.sample index 970879494..5a68eec44 100644 --- a/group_vars/mons.yml.sample +++ b/group_vars/mons.yml.sample @@ -87,39 +87,44 @@ dummy: ############# #openstack_config: false #openstack_glance_pool: -# name: images +# name: "images" # pg_num: "{{ osd_pool_default_pg_num }}" # pgp_num: "{{ osd_pool_default_pg_num }}" -# type: replicated -# rule_name: "0" +# rule_name: "replicated_rule" +# type: "replicated" +# erasure_profile: "" # size: "" #openstack_cinder_pool: -# name: volumes +# name: "volumes" # pg_num: "{{ osd_pool_default_pg_num }}" # pgp_num: "{{ osd_pool_default_pg_num }}" -# type: replicated -# rule_name: "0" +# rule_name: "replicated_rule" +# type: "replicated" +# erasure_profile: "" # size: "" #openstack_nova_pool: -# name: vms +# name: "vms" # pg_num: "{{ osd_pool_default_pg_num }}" # pgp_num: "{{ osd_pool_default_pg_num }}" -# type: replicated -# rule_name: "0" +# rule_name: "replicated_rule" +# type: "replicated" +# erasure_profile: "" # size: "" #openstack_cinder_backup_pool: -# name: backups +# name: "backups" # pg_num: "{{ osd_pool_default_pg_num }}" # pgp_num: "{{ osd_pool_default_pg_num }}" -# type: replicated -# rule_name: "0" +# rule_name: "replicated_rule" +# type: "replicated" +# erasure_profile: "" # size: "" #openstack_gnocchi_pool: -# name: metrics +# name: "metrics" # pg_num: "{{ osd_pool_default_pg_num }}" # pgp_num: "{{ osd_pool_default_pg_num }}" -# type: replicated -# rule_name: "0" +# rule_name: "replicated_rule" +# type: "replicated" +# erasure_profile: "" # size: "" #openstack_pools: diff --git a/roles/ceph-mon/defaults/main.yml b/roles/ceph-mon/defaults/main.yml index 271f2b8e0..3b08eb15e 100644 --- a/roles/ceph-mon/defaults/main.yml +++ b/roles/ceph-mon/defaults/main.yml @@ -79,39 +79,44 @@ create_crush_tree: false ############# openstack_config: false openstack_glance_pool: - name: images + name: "images" pg_num: "{{ osd_pool_default_pg_num }}" pgp_num: "{{ osd_pool_default_pg_num }}" - type: replicated - rule_name: "0" + rule_name: "replicated_rule" + type: "replicated" + erasure_profile: "" size: "" openstack_cinder_pool: - name: volumes + name: "volumes" pg_num: "{{ osd_pool_default_pg_num }}" pgp_num: "{{ osd_pool_default_pg_num }}" - type: replicated - rule_name: "0" + rule_name: "replicated_rule" + type: "replicated" + erasure_profile: "" size: "" openstack_nova_pool: - name: vms + name: "vms" pg_num: "{{ osd_pool_default_pg_num }}" pgp_num: "{{ osd_pool_default_pg_num }}" - type: replicated - rule_name: "0" + rule_name: "replicated_rule" + type: "replicated" + erasure_profile: "" size: "" openstack_cinder_backup_pool: - name: backups + name: "backups" pg_num: "{{ osd_pool_default_pg_num }}" pgp_num: "{{ osd_pool_default_pg_num }}" - type: replicated - rule_name: "0" + rule_name: "replicated_rule" + type: "replicated" + erasure_profile: "" size: "" openstack_gnocchi_pool: - name: metrics + name: "metrics" pg_num: "{{ osd_pool_default_pg_num }}" pgp_num: "{{ osd_pool_default_pg_num }}" - type: replicated - rule_name: "0" + rule_name: "replicated_rule" + type: "replicated" + erasure_profile: "" size: "" openstack_pools: diff --git a/roles/ceph-mon/tasks/openstack_config.yml b/roles/ceph-mon/tasks/openstack_config.yml index 209670f91..1e5e51c92 100644 --- a/roles/ceph-mon/tasks/openstack_config.yml +++ b/roles/ceph-mon/tasks/openstack_config.yml @@ -1,13 +1,16 @@ --- - name: create openstack pool(s) command: > - "{{ docker_exec_cmd }} ceph --cluster {{ cluster }} + {{ docker_exec_cmd }} ceph --cluster {{ cluster }} osd pool create {{ item.name }} {{ item.pg_num }} {{ item.pgp_num | default(item.pg_num) }} - {{ item.rule_name|default("0") }} - {{ item.type|default("replicated") }} - {{ item.size|default('') }}" + {{ item.rule_name | default("replicated_rule") }} + {{ item.type | default("replicated") }} + {%- if item.type | default("replicated") == 'erasure' and item.erasure_profile != '' %} + {{ item.erasure_profile }} + {%- endif %} + {{ item.size | default('') }} with_items: "{{ openstack_pools | unique }}" changed_when: false diff --git a/tests/functional/centos/7/cluster/group_vars/all b/tests/functional/centos/7/cluster/group_vars/all index 0bfe7f3cc..48c814b62 100644 --- a/tests/functional/centos/7/cluster/group_vars/all +++ b/tests/functional/centos/7/cluster/group_vars/all @@ -18,7 +18,6 @@ osd_scenario: non-collocated os_tuning_params: - { name: fs.file-max, value: 26234859 } user_config: True -openstack_config: True ceph_conf_overrides: global: osd_pool_default_size: 1 diff --git a/tests/functional/centos/7/cluster/group_vars/mons b/tests/functional/centos/7/cluster/group_vars/mons index d4d1d4334..bf6adf85d 100644 --- a/tests/functional/centos/7/cluster/group_vars/mons +++ b/tests/functional/centos/7/cluster/group_vars/mons @@ -12,3 +12,24 @@ crush_rule_hdd: default: true crush_rules: - "{{ crush_rule_hdd }}" + +openstack_config: True +openstack_glance_pool: + name: "images" + pg_num: "{{ osd_pool_default_pg_num }}" + pgp_num: "{{ osd_pool_default_pg_num }}" + rule_name: "HDD" + type: "replicated" + erasure_profile: "" + size: "" +openstack_cinder_pool: + name: "volumes" + pg_num: "{{ osd_pool_default_pg_num }}" + pgp_num: "{{ osd_pool_default_pg_num }}" + rule_name: "HDD" + type: "replicated" + erasure_profile: "" + size: "" +openstack_pools: + - "{{ openstack_glance_pool }}" + - "{{ openstack_cinder_pool }}" diff --git a/tests/functional/centos/7/docker/group_vars/all b/tests/functional/centos/7/docker/group_vars/all index 35ed0c374..9575fa435 100644 --- a/tests/functional/centos/7/docker/group_vars/all +++ b/tests/functional/centos/7/docker/group_vars/all @@ -30,4 +30,3 @@ user_config: True keys: - { name: client.test, key: "AQAin8tUoMPDGRAACcfAQHbq4eTuUoTCZdW1Uw==", mon_cap: "allow r", osd_cap: "allow class-read object_prefix rbd_children, allow rwx pool=test", mode: "0600", acls: [] } - { name: client.test2, key: "AQAin8tUAJkGGhAA8WZ8Lz5c7IkT8QZ5s7bI1A==", mon_cap: "allow r", osd_cap: "allow class-read object_prefix rbd_children, allow rwx pool=test2", mode: "0600", acls: [] } -openstack_config: True diff --git a/tests/functional/centos/7/docker/group_vars/mons b/tests/functional/centos/7/docker/group_vars/mons index d4d1d4334..bf6adf85d 100644 --- a/tests/functional/centos/7/docker/group_vars/mons +++ b/tests/functional/centos/7/docker/group_vars/mons @@ -12,3 +12,24 @@ crush_rule_hdd: default: true crush_rules: - "{{ crush_rule_hdd }}" + +openstack_config: True +openstack_glance_pool: + name: "images" + pg_num: "{{ osd_pool_default_pg_num }}" + pgp_num: "{{ osd_pool_default_pg_num }}" + rule_name: "HDD" + type: "replicated" + erasure_profile: "" + size: "" +openstack_cinder_pool: + name: "volumes" + pg_num: "{{ osd_pool_default_pg_num }}" + pgp_num: "{{ osd_pool_default_pg_num }}" + rule_name: "HDD" + type: "replicated" + erasure_profile: "" + size: "" +openstack_pools: + - "{{ openstack_glance_pool }}" + - "{{ openstack_cinder_pool }}" -- 2.39.5