update: convert straw bucket

After an upgrade, the presence of straw buckets will produce the
following warning (HEALTH_WARN):

```
crush map has legacy tunables (require firefly, min is hammer)
```

because straw bucket is a firefly feature it needs to be converted to
straw2.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1967964

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit eee576477c)
pull/6695/head
Guillaume Abrioux 2021-07-08 21:57:13 +02:00
parent 27755f9bff
commit ea8f0c7bcb
1 changed files with 37 additions and 0 deletions

View File

@ -1052,6 +1052,43 @@
- import_role: - import_role:
name: ceph-dashboard name: ceph-dashboard
- name: switch any existing crush buckets to straw2
hosts: "{{ mon_group_name | default('mons') }}[0]"
become: true
any_errors_fatal: true
gather_facts: false
tasks:
- import_role:
name: ceph-defaults
- import_role:
name: ceph-facts
tasks_from: container_binary.yml
- name: set_fact ceph_cmd
set_fact:
ceph_cmd: "{{ container_binary + ' run --rm --net=host -v /etc/ceph:/etc/ceph:z --entrypoint=ceph ' + ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else 'ceph' }}"
- name: backup the crushmap
command: "{{ ceph_cmd }} --cluster {{ cluster }} osd getcrushmap -o /etc/ceph/{{ cluster }}-crushmap"
changed_when: false
- block:
- name: switch crush buckets to straw2
command: "{{ ceph_cmd }} --cluster {{ cluster }} crush set-all-straw-buckets-to-straw2"
changed_when: false
rescue:
- name: restore the crushmap
command: "{{ ceph_cmd }} --cluster {{ cluster }} osd setcrushmap -i /etc/ceph/{{ cluster }}-crushmap"
changed_when: false
- name: switching to straw2 buckets failed
debug:
msg: >
"An attempt to switch to straw2 bucket was made but failed.
Check the cluster status."
- name: show ceph status - name: show ceph status
hosts: "{{ mon_group_name|default('mons') }}" hosts: "{{ mon_group_name|default('mons') }}"
become: True become: True