]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
osd: drop filestore support
authorGuillaume Abrioux <gabrioux@redhat.com>
Fri, 20 Jan 2023 18:14:35 +0000 (19:14 +0100)
committerTeoman ONAY <tonay@redhat.com>
Wed, 31 May 2023 21:07:13 +0000 (23:07 +0200)
filestore objectstore will be gone in the next Ceph release.the
This drops the filestore support in ceph-ansible.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
31 files changed:
docs/source/osds/scenarios.rst
group_vars/all.yml.sample
group_vars/rhcs.yml.sample
infrastructure-playbooks/cephadm-adopt.yml
infrastructure-playbooks/docker-to-podman.yml
library/ceph_volume.py
roles/ceph-config/templates/ceph.conf.j2
roles/ceph-defaults/defaults/main.yml
roles/ceph-osd/tasks/container_options_facts.yml [deleted file]
roles/ceph-osd/tasks/main.yml
roles/ceph-osd/templates/systemd-run.j2
roles/ceph-validate/tasks/main.yml
tests/functional/all_daemons/container/group_vars/osds
tests/functional/all_daemons/group_vars/osds
tests/functional/lvm-batch/container/group_vars/all
tests/functional/lvm-batch/container/hosts
tests/functional/lvm-batch/container/vagrant_variables.yml
tests/functional/lvm-batch/group_vars/all
tests/functional/lvm-batch/hosts
tests/functional/lvm-batch/vagrant_variables.yml
tests/functional/lvm-osds/container/group_vars/all
tests/functional/lvm-osds/container/hosts
tests/functional/lvm-osds/group_vars/all
tests/functional/lvm-osds/hosts
tests/functional/shrink_osd/container/group_vars/osds [deleted file]
tests/functional/shrink_osd/container/hosts
tests/functional/shrink_osd/container/vagrant_variables.yml
tests/functional/shrink_osd/group_vars/osds
tests/functional/shrink_osd/hosts
tests/functional/shrink_osd/vagrant_variables.yml
tox.ini

index db411c2974e1948be97fef6aa38d4fe22edc3f4c..9b8d873fbb6fecaa6ecf94b50999d029bb1499d4 100644 (file)
@@ -37,10 +37,6 @@ It is automatically enabled.
 
 Other (optional) supported settings:
 
-- ``osd_objectstore``: Set the Ceph *objectstore* for the OSD. Available options
-  are ``filestore`` or ``bluestore``.  You can only select ``bluestore`` with
-  the Ceph release is luminous or greater. Defaults to ``bluestore`` if unset.
-
 - ``dmcrypt``: Enable Ceph's encryption on OSDs using ``dmcrypt``.
     Defaults to ``false`` if unset.
 
@@ -138,12 +134,6 @@ Supported ``lvm_volumes`` configuration settings:
           per OSD when using ``devices`` like there is for ``lvm_volumes``.
 
 
-``filestore`` objectstore variables:
-
-- ``journal``: The logical volume name or full path to a partition.
-
-- ``journal_vg``: The volume group name, **required** if ``journal`` is a logical volume.
-
 .. warning:: Each entry must be unique, duplicate values are not allowed
 
 
index 41fd6a2a07cd7857a70c9956c1cd10a2f8c5d89f..5270cf6b520831f84d252c36aa58d7021c1a9465 100644 (file)
@@ -373,7 +373,6 @@ dummy:
 # Any device containing these patterns in their path will be excluded.
 #osd_auto_discovery_exclude: "dm-*|loop*|md*|rbd*"
 
-
 ## MDS options
 #
 #mds_max_mds: 1
@@ -545,7 +544,7 @@ dummy:
 # OS TUNING #
 #############
 
-#disable_transparent_hugepage: "{{ false if osd_objectstore == 'bluestore' else true }}"
+#disable_transparent_hugepage: "{{ false if osd_objectstore == 'bluestore' }}"
 #os_tuning_params:
 #  - { name: fs.file-max, value: 26234859 }
 #  - { name: vm.zone_reclaim_mode, value: 0 }
index e3baac4bcb8bc3f7dccb6b76eb6f2a15948e8642..2fc078ea54b70c8ae97509d8b97e91abf54907d5 100644 (file)
@@ -373,7 +373,6 @@ ceph_iscsi_config_dev: false
 # Any device containing these patterns in their path will be excluded.
 #osd_auto_discovery_exclude: "dm-*|loop*|md*|rbd*"
 
-
 ## MDS options
 #
 #mds_max_mds: 1
@@ -545,7 +544,7 @@ ceph_iscsi_config_dev: false
 # OS TUNING #
 #############
 
-#disable_transparent_hugepage: "{{ false if osd_objectstore == 'bluestore' else true }}"
+#disable_transparent_hugepage: "{{ false if osd_objectstore == 'bluestore' }}"
 #os_tuning_params:
 #  - { name: fs.file-max, value: 26234859 }
 #  - { name: vm.zone_reclaim_mode, value: 0 }
index ee3e39353479964237e31bb9171d2eb765b20ced..8f347cf66933e02517c437d98940df5de1c2de59 100644 (file)
       run_once: true
       when: delegate_facts_host | bool
 
-    - name: fail if one osd node is using filestore
-      fail:
-        msg: >
-          filestore OSDs are not supported with cephadm.
-          Please convert them with the filestore-to-bluestore.yml playbook first.
-      when:
-        - osd_group_name in group_names
-        - osd_objectstore == 'filestore'
-
     - import_role:
         name: ceph-facts
         tasks_from: container_binary.yml
index 4911255f07a355ca398abea5c887326f4aca80d7..9cbd12e3431c960cd5a4099c1f3bbbd8fe028302 100644 (file)
         tasks_from: systemd.yml
       when: inventory_hostname in groups.get(nfs_group_name, [])
 
-    - import_role:
-        name: ceph-osd
-        tasks_from: container_options_facts.yml
-      when: inventory_hostname in groups.get(osd_group_name, [])
-
     - import_role:
         name: ceph-osd
         tasks_from: systemd.yml
index af47a4b6c52c2044706ff534cd62f4ddd51a638d..8882e3bc03bbdad57f5b3ff39ade2aa938418cf8 100644 (file)
@@ -40,7 +40,7 @@ options:
         default: ceph
     objectstore:
         description:
-            - The objectstore of the OSD, (bluestore only)
+            - The objectstore of the OSD.
         required: false
         choices: ['bluestore']
         default: bluestore
index e87636c25d2d8c37357797557a1f4cc014fc6082..9208a22051c767320abf4aac11efff40131eac14 100644 (file)
@@ -66,11 +66,9 @@ log file = {{ rbd_client_log_file }} # must be writable by QEMU and allowed by S
 {% endif %}
 
 {% if inventory_hostname in groups.get(osd_group_name, []) %}
-{% if osd_objectstore == 'bluestore' %}
 [osd]
 osd memory target = {{ _osd_memory_target | default(osd_memory_target) }}
 {% endif %}
-{% endif %}
 
 {% if inventory_hostname in groups.get(rgw_group_name, []) %}
 {% set _rgw_hostname = hostvars[inventory_hostname]['rgw_hostname'] | default(hostvars[inventory_hostname]['ansible_facts']['hostname']) %}
index b59e9d7e892851205675bd10c1c83b0347de08c5..46c4bfb67298beca50320ab5b7df5045a7b5a380 100644 (file)
@@ -365,7 +365,6 @@ osd_objectstore: bluestore
 # Any device containing these patterns in their path will be excluded.
 osd_auto_discovery_exclude: "dm-*|loop*|md*|rbd*"
 
-
 ## MDS options
 #
 mds_max_mds: 1
@@ -537,7 +536,7 @@ ceph_conf_overrides: {}
 # OS TUNING #
 #############
 
-disable_transparent_hugepage: "{{ false if osd_objectstore == 'bluestore' else true }}"
+disable_transparent_hugepage: "{{ false if osd_objectstore == 'bluestore' }}"
 os_tuning_params:
   - { name: fs.file-max, value: 26234859 }
   - { name: vm.zone_reclaim_mode, value: 0 }
diff --git a/roles/ceph-osd/tasks/container_options_facts.yml b/roles/ceph-osd/tasks/container_options_facts.yml
deleted file mode 100644 (file)
index 0a9255a..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
----
-- name: set_fact container_env_args '-e osd_bluestore=1 -e osd_filestore=0 -e osd_dmcrypt=0'
-  set_fact:
-    container_env_args: -e OSD_BLUESTORE=1 -e OSD_FILESTORE=0 -e OSD_DMCRYPT=0
-  when:
-    - osd_objectstore == 'bluestore'
-    - not dmcrypt | bool
-
-- name: set_fact container_env_args '-e osd_bluestore=1 -e osd_filestore=0 -e osd_dmcrypt=1'
-  set_fact:
-    container_env_args: -e OSD_BLUESTORE=1 -e OSD_FILESTORE=0 -e OSD_DMCRYPT=1
-  when:
-    - osd_objectstore == 'bluestore'
-    - dmcrypt | bool
index 623731ddd1d53803caad68bb5a6e907187e42c84..9159b4519117dd2ecabe2393373942769b67971c 100644 (file)
     - not rolling_update | default(False) | bool
     - not switch_to_containers | default(False) | bool
 
-- name: include container_options_facts.yml
-  include_tasks: container_options_facts.yml
-  when: containerized_deployment | bool
-
 - name: include_tasks scenarios/lvm.yml
   include_tasks: scenarios/lvm.yml
   when:
index b18631a2381d1e1bdeae86a4b14ccca21a6a90bf..9d5ce3feef9410be799aa3f70dbb21e37ceaa662 100644 (file)
@@ -14,9 +14,7 @@ OSD_FSID="$(echo "$CEPH_VOLUME_LIST_JSON" | $PYTHON -c "import sys, json; print(
 OSD_TYPE="$(echo "$CEPH_VOLUME_LIST_JSON" | $PYTHON -c "import sys, json; print(json.load(sys.stdin)['$OSD_ID'][0]['type'])")"
 
 # Discover the objectstore
-if [[ "data journal" =~ $OSD_TYPE ]]; then
-    OSD_OBJECTSTORE=(--filestore)
-elif [[ "block wal db" =~ $OSD_TYPE ]]; then
+if [[ "block wal db" =~ $OSD_TYPE ]]; then
     OSD_OBJECTSTORE=(--bluestore)
 else
     log "Unable to discover osd objectstore for OSD type: $OSD_TYPE"
@@ -38,9 +36,6 @@ numactl \
 --pids-limit={{ 0 if container_binary == 'podman' else -1 }} \
 --rm --net=host --privileged=true --pid=host \
 --ipc=host \
-{% if osd_objectstore == 'filestore' -%}
---memory={{ ceph_osd_docker_memory_limit }} \
-{% endif -%}
 --cpus={{ cpu_limit }} \
 {% if ceph_osd_docker_cpuset_cpus is defined -%}
 --cpuset-cpus='{{ ceph_osd_docker_cpuset_cpus }}' \
@@ -59,7 +54,6 @@ numactl \
 {% if ansible_facts['distribution'] == 'Ubuntu' -%}
 --security-opt apparmor:unconfined \
 {% endif -%}
-{{ container_env_args }} \
 -e CLUSTER={{ cluster }} \
 -e TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES={{ ceph_tcmalloc_max_total_thread_cache }} \
 -v /run/lvm/:/run/lvm/ \
index 3bb67b4e9cc171f675f0249dafdfc4ec8da3dffa..e24f43e9a59981a6cc9661b1221f0eee061d8d59 100644 (file)
@@ -8,7 +8,7 @@
 
 - name: validate osd_objectstore
   fail:
-    msg: "osd_objectstore must be either 'bluestore'"
+    msg: "osd_objectstore must be 'bluestore''"
   when: osd_objectstore not in ['bluestore']
 
 - name: validate monitor network configuration
index 27268d4065017d2da5868a893d95623380b5a8b4..ad25b5804eb8ca97a24516ba214b489eb74d63c9 100644 (file)
@@ -1,5 +1,4 @@
 ---
-osd_objectstore: "bluestore"
 lvm_volumes:
   - data: data-lv1
     data_vg: test_group
index 3ec1d6e4c1867094562734c6dccb7ee75a713f52..99c065ee0ff446152e36594cd68e08dedfdd19e4 100644 (file)
@@ -1,7 +1,6 @@
 ---
 os_tuning_params:
   - { name: fs.file-max, value: 26234859 }
-osd_objectstore: "bluestore"
 lvm_volumes:
   - data: data-lv1
     data_vg: test_group
index a2da38721a848c2d0eec6ba1a9e998f8958e78e0..87787c6ad4c0a8187dc0ffd8e6c5f89b80c25296 100644 (file)
@@ -12,8 +12,6 @@ public_network: "192.168.39.0/24"
 cluster_network: "192.168.40.0/24"
 monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
 radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
-journal_size: 2048
-osd_objectstore: "bluestore"
 crush_device_class: test
 copy_admin_key: true
 devices:
index 7c4aa52fd0e5948b7c40888c46bb02e6f0da1ce8..f6a265ab3e5d6093f9a7ed71fefc9358d8d0a8a3 100644 (file)
@@ -3,4 +3,3 @@ mon0
 
 [osds]
 osd0
-osd1 osd_objectstore=bluestore devices="['/dev/sda', '/dev/sdb']" dedicated_devices="['/dev/sdc']"
\ No newline at end of file
index 568acea0ea651c45a0dd61eeda2c30e61a5ed45c..f5d63d592b61e20be55407d36f94766bb3d66304 100644 (file)
@@ -5,7 +5,7 @@ docker: true
 
 # DEFINE THE NUMBER OF VMS TO RUN
 mon_vms: 1
-osd_vms: 2
+osd_vms: 1
 mds_vms: 0
 rgw_vms: 0
 nfs_vms: 0
index 4b8aa59eec8d45401efa52532ecac5edf30a1b5c..0c432635caebd4dbc1a43279517c9a51ad7c7d4a 100644 (file)
@@ -7,7 +7,6 @@ public_network: "192.168.39.0/24"
 cluster_network: "192.168.40.0/24"
 monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
 radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
-osd_objectstore: "bluestore"
 crush_device_class: test
 copy_admin_key: true
 devices:
index 7c4aa52fd0e5948b7c40888c46bb02e6f0da1ce8..f6a265ab3e5d6093f9a7ed71fefc9358d8d0a8a3 100644 (file)
@@ -3,4 +3,3 @@ mon0
 
 [osds]
 osd0
-osd1 osd_objectstore=bluestore devices="['/dev/sda', '/dev/sdb']" dedicated_devices="['/dev/sdc']"
\ No newline at end of file
index 9f11ca4b6df42a20b7a4007204d23d5cebf6c5ec..0a0a86b9dbe29c3a6471f31df8b86368a678f58c 100644 (file)
@@ -5,7 +5,7 @@ docker: false
 
 # DEFINE THE NUMBER OF VMS TO RUN
 mon_vms: 1
-osd_vms: 2
+osd_vms: 1
 mds_vms: 0
 rgw_vms: 0
 nfs_vms: 0
index 135e8ea7cc12001e65735d6cf603e34bc58bd649..0e42c2d28958a6a5e895b6adead38fbca088b02a 100644 (file)
@@ -9,7 +9,6 @@ ceph_repository: community
 public_network: "192.168.33.0/24"
 cluster_network: "192.168.34.0/24"
 monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
-journal_size: 100
 copy_admin_key: true
 containerized_deployment: true
 # test-volume is created by tests/functional/lvm_setup.yml from /dev/sdb
index 266bad70d4fa68d9e09735456de9a004984129fb..98db36ad559833fbc51359395e993faff3835441 100644 (file)
@@ -2,7 +2,7 @@
 mon0
 
 [osds]
-osd0 osd_objectstore=bluestore lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group', 'db': 'journal1', 'db_vg': 'journals'}]"
-osd1 osd_objectstore=bluestore lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group'}]" dmcrypt=true
-osd2 osd_objectstore=bluestore lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group', 'db': 'journal1', 'db_vg': 'journals'}]"
-osd3 osd_objectstore=bluestore lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group'}]" dmcrypt=true
+osd0 lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group', 'db': 'journal1', 'db_vg': 'journals'}]"
+osd1 lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group'}]" dmcrypt=true
+osd2 lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group', 'db': 'journal1', 'db_vg': 'journals'}]"
+osd3 lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group'}]" dmcrypt=true
index dd0b490330d47aa5719e3c2d1add94d30888c8eb..3ee80cc074208c5c076f9bccf5e586eebda7b4d8 100644 (file)
@@ -5,7 +5,6 @@ ceph_repository: community
 public_network: "192.168.39.0/24"
 cluster_network: "192.168.40.0/24"
 monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
-journal_size: 100
 copy_admin_key: true
 # test-volume is created by tests/functional/lvm_setup.yml from /dev/sdb
 os_tuning_params:
index 266bad70d4fa68d9e09735456de9a004984129fb..98db36ad559833fbc51359395e993faff3835441 100644 (file)
@@ -2,7 +2,7 @@
 mon0
 
 [osds]
-osd0 osd_objectstore=bluestore lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group', 'db': 'journal1', 'db_vg': 'journals'}]"
-osd1 osd_objectstore=bluestore lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group'}]" dmcrypt=true
-osd2 osd_objectstore=bluestore lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group', 'db': 'journal1', 'db_vg': 'journals'}]"
-osd3 osd_objectstore=bluestore lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group'}]" dmcrypt=true
+osd0 lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group', 'db': 'journal1', 'db_vg': 'journals'}]"
+osd1 lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group'}]" dmcrypt=true
+osd2 lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group', 'db': 'journal1', 'db_vg': 'journals'}]"
+osd3 lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group'}]" dmcrypt=true
diff --git a/tests/functional/shrink_osd/container/group_vars/osds b/tests/functional/shrink_osd/container/group_vars/osds
deleted file mode 100644 (file)
index e441fd8..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
----
-journal_size: 100
index f1b96fa593e0e99212d014b6b7eb7b57f761a177..3dc07cb326dec7c3a5bbc9a868401ee450890c6e 100644 (file)
@@ -4,5 +4,3 @@ mon0
 [osds]
 osd0 osd_objectstore=bluestore lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group', 'db': 'journal1', 'db_vg': 'journals'}]"
 osd1 osd_objectstore=bluestore lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group'}]" dmcrypt=true
-osd2 osd_objectstore=bluestore lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group', 'db': 'journal1', 'db_vg': 'journals'}]"
-osd3 osd_objectstore=bluestore lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group'}]" dmcrypt=true
\ No newline at end of file
index d3e3527e07bc4e1a9eb887785f8c1dba994d1df9..29c36eed861f42a59c92d9e81f4a2e2784ff2c84 100644 (file)
@@ -5,7 +5,7 @@ docker: True
 
 # DEFINE THE NUMBER OF VMS TO RUN
 mon_vms: 1
-osd_vms: 4
+osd_vms: 2
 mds_vms: 0
 rgw_vms: 0
 nfs_vms: 0
index bae7ce267015e16dc15cdcaa037403dfd56299f2..77f10f0aaaec00f154dab497885a931c0093415c 100644 (file)
@@ -1,4 +1,3 @@
 ---
 os_tuning_params:
   - { name: fs.file-max, value: 26234859 }
-journal_size: 100
index c58f9edd2244ca50184a944d59149b3e2f5af7ac..9b68b7bcb33cf11097045e88821d4251cda50515 100644 (file)
@@ -4,5 +4,3 @@ mon0 monitor_address=192.168.71.10
 [osds]
 osd0 osd_objectstore=bluestore lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group', 'db': 'journal1', 'db_vg': 'journals'}]"
 osd1 osd_objectstore=bluestore lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group'}]" dmcrypt=true
-osd2 osd_objectstore=bluestore lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group', 'db': 'journal1', 'db_vg': 'journals'}]"
-osd3 osd_objectstore=bluestore lvm_volumes="[{'data': 'data-lv1', 'data_vg': 'test_group'},{'data': 'data-lv2', 'data_vg': 'test_group'}]" dmcrypt=true
index cc35d3d3f7631ed1f6cb2504a4f6b9d9755db69c..584c063e7d87c9472be8d096f2b0356017151526 100644 (file)
@@ -5,7 +5,7 @@ docker: false
 
 # DEFINE THE NUMBER OF VMS TO RUN
 mon_vms: 1
-osd_vms: 4
+osd_vms: 2
 mds_vms: 0
 rgw_vms: 0
 nfs_vms: 0
diff --git a/tox.ini b/tox.ini
index 61a2b67205a080800b82b0b34b2768ac6665e394..b57b2801d611bf957a0326b682fe72a31cab2b77 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -370,7 +370,8 @@ commands=
 
   # configure lvm, we exclude osd2 given this node uses lvm batch scenario (see corresponding inventory host file)
   !lvm_batch-!lvm_auto_discovery: ansible-playbook -vv -i {changedir}/{env:INVENTORY} {toxinidir}/tests/functional/lvm_setup.yml --limit 'osds:!osd2'
-  lvm_osds,all_in_one: ansible-playbook -vv -i {changedir}/{env:INVENTORY} {toxinidir}/tests/functional/lvm_setup.yml --limit osd2
+  lvm_osds: ansible-playbook -vv -i {changedir}/{env:INVENTORY} {toxinidir}/tests/functional/lvm_setup.yml --limit 'osd2'
+  all_in_one: ansible-playbook -vv -i {changedir}/{env:INVENTORY} {toxinidir}/tests/functional/lvm_setup.yml
 
   rhcs: ansible-playbook -vv -i {changedir}/{env:INVENTORY} {toxinidir}/tests/functional/rhcs_setup.yml --extra-vars "ceph_docker_registry={env:CEPH_DOCKER_REGISTRY:quay.io} repo_url={env:REPO_URL:} rhel7_repo_url={env:RHEL7_REPO_URL:}" --skip-tags "vagrant_setup"