mirror of https://github.com/ceph/ceph-ansible.git
filestore-to-bluestore: reuse dedicated journal
If the filestore configuration was using a dedicated journal with either
a partition or a LV/VG then we need to reuse this for bluestore DB.
When filestore is using a raw devices then we shouldn't destroy
everything (data + journal) but only data otherwise the journal
partition won't exist anymore.
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1790479
Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
(cherry picked from commit 535da53d69
)
pull/5143/head
parent
3fc4cc9f62
commit
928c792f8d
|
@ -193,7 +193,7 @@
|
||||||
|
|
||||||
- name: set_fact osd_fsid_list
|
- name: set_fact osd_fsid_list
|
||||||
set_fact:
|
set_fact:
|
||||||
osd_fsid_list: "{{ osd_fsid_list | default([]) + [{'osd_fsid': item.tags['ceph.osd_fsid'], 'destroy': (item.lv_name.startswith('osd-data-') and item.vg_name.startswith('ceph-')) | ternary(true, false)}] }}"
|
osd_fsid_list: "{{ osd_fsid_list | default([]) + [{'osd_fsid': item.tags['ceph.osd_fsid'], 'destroy': (item.lv_name.startswith('osd-data-') and item.vg_name.startswith('ceph-')) | ternary(true, false), 'device': item.devices[0]}] }}"
|
||||||
with_items: "{{ _lvm_list }}"
|
with_items: "{{ _lvm_list }}"
|
||||||
when: item.type == 'data'
|
when: item.type == 'data'
|
||||||
|
|
||||||
|
@ -201,7 +201,7 @@
|
||||||
ceph_volume:
|
ceph_volume:
|
||||||
action: "zap"
|
action: "zap"
|
||||||
osd_fsid: "{{ item.osd_fsid }}"
|
osd_fsid: "{{ item.osd_fsid }}"
|
||||||
destroy: "{{ item.destroy }}"
|
destroy: false
|
||||||
environment:
|
environment:
|
||||||
CEPH_VOLUME_DEBUG: 1
|
CEPH_VOLUME_DEBUG: 1
|
||||||
CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment else None }}"
|
CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment else None }}"
|
||||||
|
@ -209,6 +209,20 @@
|
||||||
loop: "{{ osd_fsid_list }}"
|
loop: "{{ osd_fsid_list }}"
|
||||||
when: osd_fsid_list is defined
|
when: osd_fsid_list is defined
|
||||||
|
|
||||||
|
- name: zap destroy ceph-volume prepared devices
|
||||||
|
ceph_volume:
|
||||||
|
action: "zap"
|
||||||
|
data: "{{ item.device }}"
|
||||||
|
destroy: true
|
||||||
|
environment:
|
||||||
|
CEPH_VOLUME_DEBUG: 1
|
||||||
|
CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment else None }}"
|
||||||
|
CEPH_CONTAINER_BINARY: "{{ container_binary }}"
|
||||||
|
loop: "{{ osd_fsid_list }}"
|
||||||
|
when:
|
||||||
|
- osd_fsid_list is defined
|
||||||
|
- item.destroy | bool
|
||||||
|
|
||||||
- name: ensure all dm are closed
|
- name: ensure all dm are closed
|
||||||
command: dmsetup remove "{{ item['lv_path'] }}"
|
command: dmsetup remove "{{ item['lv_path'] }}"
|
||||||
with_items: "{{ _lvm_list }}"
|
with_items: "{{ _lvm_list }}"
|
||||||
|
@ -258,6 +272,23 @@
|
||||||
filter: ansible_devices
|
filter: ansible_devices
|
||||||
when: osd_auto_discovery | bool
|
when: osd_auto_discovery | bool
|
||||||
|
|
||||||
|
- name: update lvm_volumes configuration for bluestore
|
||||||
|
when: lvm_volumes is defined
|
||||||
|
block:
|
||||||
|
- name: reuse filestore journal partition for bluestore db
|
||||||
|
set_fact:
|
||||||
|
config_part: "{{ config_part | default([]) + [item | combine({'db': item.journal})] }}"
|
||||||
|
with_items: "{{ lvm_volumes | selectattr('journal_vg', 'undefined') | list }}"
|
||||||
|
|
||||||
|
- name: reuse filestore journal vg/lv for bluestore db
|
||||||
|
set_fact:
|
||||||
|
config_vglv: "{{ config_vglv | default([]) + [item | combine({'db': item.journal, 'db_vg': item.journal_vg})] }}"
|
||||||
|
with_items: "{{ lvm_volumes | selectattr('journal_vg', 'defined') | list }}"
|
||||||
|
|
||||||
|
- name: override lvm_volumes with bluestore configuration
|
||||||
|
set_fact:
|
||||||
|
lvm_volumes: "{{ config_part | default([]) + config_vglv | default([]) }}"
|
||||||
|
|
||||||
- name: force osd_objectstore to bluestore
|
- name: force osd_objectstore to bluestore
|
||||||
set_fact:
|
set_fact:
|
||||||
osd_objectstore: bluestore
|
osd_objectstore: bluestore
|
||||||
|
|
Loading…
Reference in New Issue