diff options
| author | SamYaple <sam@yaple.net> | 2016-03-19 02:48:22 +0000 |
|---|---|---|
| committer | SamYaple <sam@yaple.net> | 2016-03-19 22:36:30 +0000 |
| commit | 6d0cd535d34ac10f144ab5d909256364363e7f38 (patch) | |
| tree | 4fd5ddc92a33ec5d8c6e096d625e306b34c35222 | |
| parent | e9b9a84157735d3ed22fce2d1b63915ff2689691 (diff) | |
| download | kolla-6d0cd535d34ac10f144ab5d909256364363e7f38.tar.gz kolla-6d0cd535d34ac10f144ab5d909256364363e7f38.zip | |
Allow user to choose filesystem for osd
Change-Id: I9c770a08219d2eead5ece8e3462157359cd920cb
Partially-Implements: blueprint ceph-improvements
| -rw-r--r-- | ansible/group_vars/all.yml | 6 | ||||
| -rw-r--r-- | ansible/roles/ceph/tasks/bootstrap_osds.yml | 2 | ||||
| -rw-r--r-- | ansible/roles/ceph/tasks/start_osds.yml | 3 | ||||
| -rw-r--r-- | docker/ceph/ceph-base/Dockerfile.j2 | 2 | ||||
| -rw-r--r-- | docker/ceph/ceph-osd/extend_start.sh | 9 |
5 files changed, 20 insertions, 2 deletions
diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index 30f4b3172..bfa4c2051 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -225,6 +225,12 @@ ceph_enable_cache: "no" # Valid options are [ forward, none, writeback ] ceph_cache_mode: "writeback" +# Valid options are [ ext4, btrfs, xfs ] +ceph_osd_filesystem: "xfs" + +# These are /etc/fstab options. Comma seperated, no spaces (see fstab(8)) +ceph_osd_mount_options: "defaults,noatime" + # A requirement for using the erasure-coded pools is you must setup a cache tier # Valid options are [ erasure, replicated ] ceph_pool_type: "replicated" diff --git a/ansible/roles/ceph/tasks/bootstrap_osds.yml b/ansible/roles/ceph/tasks/bootstrap_osds.yml index 38ad2de44..16599170e 100644 --- a/ansible/roles/ceph/tasks/bootstrap_osds.yml +++ b/ansible/roles/ceph/tasks/bootstrap_osds.yml @@ -32,6 +32,7 @@ KOLLA_BOOTSTRAP: KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" OSD_DEV: "{{ item.1.device }}" + 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 }}" @@ -55,6 +56,7 @@ KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" CEPH_CACHE: OSD_DEV: "{{ item.1.device }}" + 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 }}" diff --git a/ansible/roles/ceph/tasks/start_osds.yml b/ansible/roles/ceph/tasks/start_osds.yml index 1a59cbcd6..3f2bdd4cd 100644 --- a/ansible/roles/ceph/tasks/start_osds.yml +++ b/ansible/roles/ceph/tasks/start_osds.yml @@ -14,9 +14,10 @@ - name: Mounting Ceph OSD volumes mount: src: "UUID={{ item.fs_uuid }}" - fstype: xfs + fstype: "{{ ceph_osd_filesystem }}" state: mounted name: "/var/lib/ceph/osd/{{ item['fs_uuid'] }}" + opts: "{{ ceph_osd_mount_options }}" with_items: osds - name: Gathering OSD IDs diff --git a/docker/ceph/ceph-base/Dockerfile.j2 b/docker/ceph/ceph-base/Dockerfile.j2 index c51cad819..4787448f8 100644 --- a/docker/ceph/ceph-base/Dockerfile.j2 +++ b/docker/ceph/ceph-base/Dockerfile.j2 @@ -8,6 +8,7 @@ RUN yum -y install \ ceph-radosgw \ parted \ hdparm \ + btrfs-progs \ && yum clean all {% elif base_distro in ['ubuntu', 'debian'] %} @@ -17,6 +18,7 @@ RUN apt-get install -y --no-install-recommends \ radosgw \ parted \ hdparm \ + btrfs-tools \ && apt-get clean {% endif %} diff --git a/docker/ceph/ceph-osd/extend_start.sh b/docker/ceph/ceph-osd/extend_start.sh index 7c1e479c0..5db6f61c9 100644 --- a/docker/ceph/ceph-osd/extend_start.sh +++ b/docker/ceph/ceph-osd/extend_start.sh @@ -29,7 +29,14 @@ if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then OSD_ID=$(ceph osd create) OSD_DIR="/var/lib/ceph/osd/ceph-${OSD_ID}" mkdir -p "${OSD_DIR}" - mkfs.xfs -f "${OSD_PARTITION}" + + if [[ "${OSD_FILESYSTEM}" == "btrfs" ]]; then + mkfs.btrfs -f "${OSD_PARTITION}" + elif [[ "${OSD_FILESYSTEM}" == "ext4" ]]; then + mkfs.ext4 "${OSD_PARTITION}" + else + mkfs.xfs -f "${OSD_PARTITION}" + fi mount "${OSD_PARTITION}" "${OSD_DIR}" # This will through an error about no key existing. That is normal. It then |
