5250a00781
This allows us to specify external journals for osds which can greatly improve performance when the external journals are on the solid-state drives. The new lookup and startup methods fix the previous races we had preventing osds from being created properly. This retains the same functionality as before and is completely compatible with the previous method and labels, however this does set new labels for all new bootstrap OSDs. This was due to a limitation in the length of the name of a GPT partition. Closes-Bug: #1558853 DocImpact Partially-Implements: blueprint ceph-improvements Change-Id: I61fd10cb35c67dabc53bd82270f26909ef51fc38
84 lines
3.5 KiB
YAML
84 lines
3.5 KiB
YAML
---
|
|
- name: Looking up disks to bootstrap for Ceph
|
|
command: docker exec -t kolla_toolbox /usr/bin/ansible localhost
|
|
-m find_disks
|
|
-a "partition_name='KOLLA_CEPH_OSD_BOOTSTRAP' match_mode='prefix'"
|
|
register: osd_lookup
|
|
changed_when: "{{ osd_lookup.stdout.find('localhost | SUCCESS => ') != -1 and (osd_lookup.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
|
|
failed_when: osd_lookup.stdout.split()[2] != 'SUCCESS'
|
|
|
|
- name: Reading data from variable
|
|
set_fact:
|
|
osds_bootstrap: "{{ (osd_lookup.stdout.split('localhost | SUCCESS => ')[1]|from_json).disks|from_json }}"
|
|
|
|
- name: Looking up disks to bootstrap for Ceph
|
|
command: docker exec -t kolla_toolbox /usr/bin/ansible localhost
|
|
-m find_disks
|
|
-a "partition_name='KOLLA_CEPH_OSD_CACHE_BOOTSTRAP' match_mode='prefix'"
|
|
register: osd_cache_lookup
|
|
changed_when: "{{ osd_cache_lookup.stdout.find('localhost | SUCCESS => ') != -1 and (osd_cache_lookup.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
|
|
failed_when: osd_cache_lookup.stdout.split()[2] != 'SUCCESS'
|
|
|
|
- name: Reading data from variable
|
|
set_fact:
|
|
osds_cache_bootstrap: "{{ (osd_cache_lookup.stdout.split('localhost | SUCCESS => ')[1]|from_json).disks|from_json }}"
|
|
|
|
- name: Bootstrapping Ceph OSDs
|
|
kolla_docker:
|
|
action: "start_container"
|
|
common_options: "{{ docker_common_options }}"
|
|
detach: False
|
|
environment:
|
|
KOLLA_BOOTSTRAP:
|
|
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
|
OSD_DEV: "{{ item.1.device }}"
|
|
OSD_PARTITION: "{{ item.1.partition }}"
|
|
OSD_PARTITION_NUM: "{{ item.1.partition_num }}"
|
|
JOURNAL_DEV: "{{ item.1.journal_device }}"
|
|
JOURNAL_PARTITION: "{{ item.1.journal }}"
|
|
JOURNAL_PARTITION_NUM: "{{ item.1.journal_num }}"
|
|
USE_EXTERNAL_JOURNAL: "{{ item.1.external_journal | bool }}"
|
|
OSD_FILESYSTEM: "{{ ceph_osd_filesystem }}"
|
|
OSD_INITIAL_WEIGHT: "{{ osd_initial_weight }}"
|
|
HOSTNAME: "{{ hostvars[inventory_hostname]['ansible_' + storage_interface]['ipv4']['address'] }}"
|
|
image: "{{ ceph_osd_image_full }}"
|
|
labels:
|
|
BOOTSTRAP:
|
|
name: "bootstrap_osd_{{ item.0 }}"
|
|
privileged: True
|
|
restart_policy: "never"
|
|
volumes:
|
|
- "{{ node_config_directory }}/ceph-osd/:{{ container_config_directory }}/:ro"
|
|
- "/dev/:/dev/"
|
|
with_indexed_items: osds_bootstrap|default([])
|
|
|
|
- name: Bootstrapping Ceph Cache OSDs
|
|
kolla_docker:
|
|
action: "start_container"
|
|
common_options: "{{ docker_common_options }}"
|
|
detach: False
|
|
environment:
|
|
KOLLA_BOOTSTRAP:
|
|
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
|
CEPH_CACHE:
|
|
OSD_DEV: "{{ item.1.device }}"
|
|
OSD_PARTITION: "{{ item.1.partition }}"
|
|
OSD_PARTITION_NUM: "{{ item.1.partition_num }}"
|
|
JOURNAL_DEV: "{{ item.1.journal_device }}"
|
|
JOURNAL_PARTITION: "{{ item.1.journal }}"
|
|
JOURNAL_PARTITION_NUM: "{{ item.1.journal_num }}"
|
|
USE_EXTERNAL_JOURNAL: "{{ item.1.external_journal | bool }}"
|
|
OSD_FILESYSTEM: "{{ ceph_osd_filesystem }}"
|
|
OSD_INITIAL_WEIGHT: "{{ osd_initial_weight }}"
|
|
HOSTNAME: "{{ hostvars[inventory_hostname]['ansible_' + storage_interface]['ipv4']['address'] }}"
|
|
image: "{{ ceph_osd_image_full }}"
|
|
labels:
|
|
BOOTSTRAP:
|
|
name: "bootstrap_osd_cache_{{ item.0 }}"
|
|
privileged: True
|
|
restart_policy: "never"
|
|
volumes:
|
|
- "{{ node_config_directory }}/ceph-osd/:{{ container_config_directory }}/:ro"
|
|
- "/dev/:/dev/"
|
|
with_indexed_items: osds_cache_bootstrap|default([])
|