diff --git a/tests/run.yml b/tests/run.yml
index b54d818dad3d64021b7034abbd47b9423e2d96c8..089d04cd7fff9fa29b67396ddb68cefbb108fcad 100644
--- a/tests/run.yml
+++ b/tests/run.yml
@@ -4,8 +4,8 @@
     kolla_ansible_src_dir: "src/{{ zuul.project.canonical_hostname }}/openstack/kolla-ansible"
     kolla_ansible_full_src_dir: "{{ zuul.executor.work_root }}/{{ kolla_ansible_src_dir }}"
   tasks:
-    - name: Prepare ceph disks
-      script: "{{ kolla_ansible_full_src_dir }}/tests/setup_ceph_disks.sh"
+    - name: Prepare ceph disks for bluestore and filestore OSD
+      script: "{{ kolla_ansible_full_src_dir }}/tests/setup_ceph_disks.sh {{ hostvars[inventory_hostname]['ceph_osd_storetype'] }}"
       when: scenario == "ceph"
       become: true
 
diff --git a/tests/setup_ceph_disks.sh b/tests/setup_ceph_disks.sh
index 214e5e3532db475b20924883942e0c15132def93..84269911941cb031f8eed46a1ffb1040f927437e 100644
--- a/tests/setup_ceph_disks.sh
+++ b/tests/setup_ceph_disks.sh
@@ -1,23 +1,38 @@
 mkdir -p /opt/data/kolla
-dd if=/dev/zero of=/opt/data/kolla/ceph-osd0.img bs=5M count=128
-LOOP=$(losetup -f)
-losetup $LOOP /opt/data/kolla/ceph-osd0.img
-parted $LOOP -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_BS_OSD1 1 -1
 
-dd if=/dev/zero of=/opt/data/kolla/ceph-osd0-b.img bs=5M count=2048
-LOOP=$(losetup -f)
-losetup $LOOP /opt/data/kolla/ceph-osd0-b.img
-parted $LOOP -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_BS_OSD1_B 1 -1
+if [ $1 = 'filestore' ]; then
+    #setup devices for Kolla Ceph filestore OSD
+    dd if=/dev/zero of=/opt/data/kolla/ceph-osd1.img bs=5M count=1000
+    LOOP=$(losetup -f)
+    losetup $LOOP /opt/data/kolla/ceph-osd1.img
+    parted $LOOP -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_OSD1 1 -1
 
-dd if=/dev/zero of=/opt/data/kolla/ceph-osd0-w.img bs=5M count=256
-LOOP=$(losetup -f)
-losetup $LOOP /opt/data/kolla/ceph-osd0-w.img
-parted $LOOP -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_BS_OSD1_W 1 -1
+    dd if=/dev/zero of=/opt/data/kolla/ceph-journal1.img bs=5M count=512
+    LOOP=$(losetup -f)
+    losetup $LOOP /opt/data/kolla/ceph-journal1.img
+    parted $LOOP -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_OSD1_J 1 -1
+else
+    # Setup devices for Kolla Ceph bluestore OSD
+    dd if=/dev/zero of=/opt/data/kolla/ceph-osd0.img bs=5M count=100
+    LOOP=$(losetup -f)
+    losetup $LOOP /opt/data/kolla/ceph-osd0.img
+    parted $LOOP -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_BS_OSD0 1 -1
 
-dd if=/dev/zero of=/opt/data/kolla/ceph-osd0-d.img bs=5M count=256
-LOOP=$(losetup -f)
-losetup $LOOP /opt/data/kolla/ceph-osd0-d.img
-parted $LOOP -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_BS_OSD1_D 1 -1
+    dd if=/dev/zero of=/opt/data/kolla/ceph-osd0-b.img bs=5M count=1000
+    LOOP=$(losetup -f)
+    losetup $LOOP /opt/data/kolla/ceph-osd0-b.img
+    parted $LOOP -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_BS_OSD0_B 1 -1
+
+    dd if=/dev/zero of=/opt/data/kolla/ceph-osd0-w.img bs=5M count=200
+    LOOP=$(losetup -f)
+    losetup $LOOP /opt/data/kolla/ceph-osd0-w.img
+    parted $LOOP -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_BS_OSD0_W 1 -1
+
+    dd if=/dev/zero of=/opt/data/kolla/ceph-osd0-d.img bs=5M count=200
+    LOOP=$(losetup -f)
+    losetup $LOOP /opt/data/kolla/ceph-osd0-d.img
+    parted $LOOP -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_BS_OSD0_D 1 -1
+fi
 
 partprobe
 
diff --git a/tests/templates/inventory.j2 b/tests/templates/inventory.j2
index 055c8710a2c201d72f2110d3a0dc7933260f570e..2056bfa7e3dd476971eae0a6b7b0c33b5d009dd3 100644
--- a/tests/templates/inventory.j2
+++ b/tests/templates/inventory.j2
@@ -17,7 +17,7 @@
 
 [storage]
 {% for host in hostvars %}
-{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} ansible_user=kolla ansible_ssh_private_key_file={{ ansible_env.HOME ~ '/.ssh/id_rsa_kolla' }}
+{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} ansible_user=kolla ansible_ssh_private_key_file={{ ansible_env.HOME ~ '/.ssh/id_rsa_kolla' }} ceph_osd_store_type={{ 'filestore' if host == 'primary' else 'bluestore' }}
 {% endfor %}
 
 [monitoring]
diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml
index a8c80559b8dd0928bea0927a1c223663f552d30c..86668e205c3db34650883685220269b115e8b0e3 100644
--- a/zuul.d/jobs.yaml
+++ b/zuul.d/jobs.yaml
@@ -60,6 +60,13 @@
       base_distro: ubuntu
       install_type: source
       scenario: ceph
+    host-vars:
+      primary:
+        ceph_osd_storetype: filestore
+      secondary1:
+        ceph_osd_storetype: bluestore
+      secondary2:
+        ceph_osd_storetype: bluestore
 
 - job:
     name: kolla-ansible-centos-source-ceph
@@ -70,6 +77,13 @@
       base_distro: centos
       install_type: source
       scenario: ceph
+    host-vars:
+      primary:
+        ceph_osd_storetype: filestore
+      secondary1:
+        ceph_osd_storetype: bluestore
+      secondary2:
+        ceph_osd_storetype: bluestore
 
 - job:
     name: kolla-ansible-oraclelinux-source-ceph
@@ -80,6 +94,13 @@
       base_distro: oraclelinux
       install_type: source
       scenario: ceph
+    host-vars:
+      primary:
+        ceph_osd_storetype: filestore
+      secondary1:
+        ceph_osd_storetype: bluestore
+      secondary2:
+        ceph_osd_storetype: bluestore
 
 - job:
     name: kolla-ansible-bifrost-centos-source