From: Guillaume Abrioux Date: Fri, 11 Dec 2020 14:19:56 +0000 (+0100) Subject: osd: support creating ec profiles X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c9e8b5f6e9b6fd25277e7cc9b49cf6a8e00aa331;p=ceph-ansible.git osd: support creating ec profiles this adds ec profiles creation support in ceph-ansible Signed-off-by: Guillaume Abrioux --- diff --git a/group_vars/all.yml.sample b/group_vars/all.yml.sample index ff385cf6a..18e562746 100644 --- a/group_vars/all.yml.sample +++ b/group_vars/all.yml.sample @@ -365,6 +365,12 @@ dummy: # type. #filestore_xattr_use_omap: null +# define any ec profiles here if needed +# example: +# ec_profiles: +# - {'name': 'my_ec_profile1', 'k': 2, 'm': 4, 'stripe_unit': 8192} +# - {'name': 'my_ec_profile2', 'k': 4, 'm': 8, 'crush_root': 'HDD', 'crush_device_class': 'ssd'} + ## MDS options # #mds_max_mds: 1 diff --git a/group_vars/rhcs.yml.sample b/group_vars/rhcs.yml.sample index 07b77e87f..61208f844 100644 --- a/group_vars/rhcs.yml.sample +++ b/group_vars/rhcs.yml.sample @@ -365,6 +365,12 @@ ceph_iscsi_config_dev: false # type. #filestore_xattr_use_omap: null +# define any ec profiles here if needed +# example: +# ec_profiles: +# - {'name': 'my_ec_profile1', 'k': 2, 'm': 4, 'stripe_unit': 8192} +# - {'name': 'my_ec_profile2', 'k': 4, 'm': 8, 'crush_root': 'HDD', 'crush_device_class': 'ssd'} + ## MDS options # #mds_max_mds: 1 diff --git a/roles/ceph-defaults/defaults/main.yml b/roles/ceph-defaults/defaults/main.yml index 6e79141e9..1d2b3f913 100644 --- a/roles/ceph-defaults/defaults/main.yml +++ b/roles/ceph-defaults/defaults/main.yml @@ -357,6 +357,12 @@ osd_auto_discovery_exclude: "dm-*|loop*|md*|rbd*" # type. filestore_xattr_use_omap: null +# define any ec profiles here if needed +# example: +# ec_profiles: +# - {'name': 'my_ec_profile1', 'k': 2, 'm': 4, 'stripe_unit': 8192} +# - {'name': 'my_ec_profile2', 'k': 4, 'm': 8, 'crush_root': 'HDD', 'crush_device_class': 'ssd'} + ## MDS options # mds_max_mds: 1 diff --git a/roles/ceph-osd/tasks/main.yml b/roles/ceph-osd/tasks/main.yml index 575318b02..67bd449d4 100644 --- a/roles/ceph-osd/tasks/main.yml +++ b/roles/ceph-osd/tasks/main.yml @@ -104,6 +104,25 @@ when: hostvars[groups[mon_group_name][0]]['crush_rule_config'] | default(crush_rule_config) | bool tags: wait_all_osds_up +- name: create erasure coded profile + ceph_ec_profile: + cluster: "{{ cluster }}" + name: "{{ item.name }}" + state: present + stripe_unit: "{{ item.stripe_unit | default(omit) }}" + k: "{{ item.k }}" + m: "{{ item.m }}" + crush_root: "{{ item.crush_root | default(omit) }}" + crush_device_class: "{{ item.crush_device_class | default(omit) }}" + with_items: "{{ ec_profiles }}" + environment: + CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}" + CEPH_CONTAINER_BINARY: "{{ container_binary }}" + when: + - ec_profiles is defined + - ec_profiles | length > 0 + - inventory_hostname == ansible_play_hosts_all | last + # Create the pools listed in openstack_pools - name: include openstack_config.yml include_tasks: openstack_config.yml diff --git a/tests/functional/lvm-osds/container/group_vars/all b/tests/functional/lvm-osds/container/group_vars/all index 7d7400f2f..16c41d88a 100644 --- a/tests/functional/lvm-osds/container/group_vars/all +++ b/tests/functional/lvm-osds/container/group_vars/all @@ -39,4 +39,7 @@ openstack_pools: - "{{ openstack_cinder_pool }}" ceph_docker_registry: quay.ceph.io ceph_docker_image: ceph-ci/daemon -ceph_docker_image_tag: latest-master \ No newline at end of file +ceph_docker_image_tag: latest-master +ec_profiles: + - {'name': 'my_ec_profile1', 'k': 2, 'm': 4, 'stripe_unit': 8192} + - {'name': 'my_ec_profile2', 'k': 4, 'm': 8, 'crush_root': 'HDD', 'crush_device_class': 'ssd'} \ No newline at end of file diff --git a/tests/functional/lvm-osds/group_vars/all b/tests/functional/lvm-osds/group_vars/all index 0f0883bcf..e206cef54 100644 --- a/tests/functional/lvm-osds/group_vars/all +++ b/tests/functional/lvm-osds/group_vars/all @@ -31,4 +31,7 @@ openstack_cinder_pool: application: rbd openstack_pools: - "{{ openstack_glance_pool }}" - - "{{ openstack_cinder_pool }}" \ No newline at end of file + - "{{ openstack_cinder_pool }}" +ec_profiles: + - {'name': 'my_ec_profile1', 'k': 2, 'm': 4, 'stripe_unit': 8192} + - {'name': 'my_ec_profile2', 'k': 4, 'm': 8, 'crush_root': 'HDD', 'crush_device_class': 'ssd'} \ No newline at end of file