diff --git a/ansible/roles/mariadb/tasks/bootstrap.yml b/ansible/roles/mariadb/tasks/bootstrap.yml
index af7d8f3084cb8d554fddf44abc893207c105cfcc..ac8254a35b8eb62b590004b629c71283be65b377 100644
--- a/ansible/roles/mariadb/tasks/bootstrap.yml
+++ b/ansible/roles/mariadb/tasks/bootstrap.yml
@@ -11,20 +11,18 @@
   always_run: True
   run_once: True
 
-# TODO(SamYaple): Improve failed_when check
-- name: Checking if a previous cluster exists
-  command: docker exec mariadb stat /var/lib/mysql/grastate.dat
-  register: exists
-  changed_when: False
-  failed_when: False
-  always_run: True
-  run_once: True
+- name: Creating mariadb volume
+  kolla_docker:
+    action: "create_volume"
+    common_options: "{{ docker_common_options }}"
+    name: "mariadb"
+  register: mariadb_volume
 
 - name: Writing hostname of host with existing cluster files to temp file
   local_action: copy content={{ ansible_hostname }} dest=/tmp/kolla_mariadb_cluster mode=0600
   changed_when: False
   always_run: True
-  when: exists.rc == 0
+  when: not mariadb_volume | changed
 
 - name: Registering host from temp file
   set_fact:
@@ -44,7 +42,6 @@
       KOLLA_BOOTSTRAP:
       KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
       DB_ROOT_PASSWORD: "{{ database_password }}"
-      DB_PID_FILE: "/var/lib/mysql/{{ hostvars[inventory_hostname]['ansible_hostname'] }}-galera.pid"
       DB_MAX_TIMEOUT: "{{ database_max_timeout }}"
     image: "{{ mariadb_image_full }}"
     name: "mariadb"
@@ -52,13 +49,17 @@
     volumes:
       - "{{ node_config_directory }}/mariadb/:{{ container_config_directory }}/:ro"
       - "mariadb:/var/lib/mysql"
-  when: delegate_host == 'None' and inventory_hostname == groups['mariadb'][0]
+  when:
+    - delegate_host == 'None'
+    - inventory_hostname == groups['mariadb'][0]
 
 - name: Waiting for MariaDB service to be ready
-  command: "docker exec mariadb ls /var/lib/mysql/{{ hostvars[inventory_hostname]['ansible_hostname'] }}-galera.pid /var/lib/mysql/cluster.exists"
+  command: "docker exec mariadb ls /var/lib/mysql/mariadb.pid"
   register: bootstrap_result
-  when: delegate_host == 'None' and inventory_hostname == groups['mariadb'][0]
-  until: bootstrap_result|success
+  when:
+    - delegate_host == 'None'
+    - inventory_hostname == groups['mariadb'][0]
+  until: bootstrap_result | success
   changed_when: False
   retries: 6
   delay: 10
diff --git a/ansible/roles/mariadb/tasks/start.yml b/ansible/roles/mariadb/tasks/start.yml
index cfc12c0631ea65bfcb9f9990d51cd235e1617c1b..8216b5eb8b586dda11fcbfa18bfe3bbe0f2c732c 100644
--- a/ansible/roles/mariadb/tasks/start.yml
+++ b/ansible/roles/mariadb/tasks/start.yml
@@ -13,7 +13,7 @@
         ( delegate_host == 'None' and inventory_hostname != groups['mariadb'][0] )
 
 - name: Waiting for MariaDB service to be ready
-  command: "docker exec mariadb ls /var/lib/mysql/{{ hostvars[inventory_hostname]['ansible_hostname'] }}-galera.pid"
+  command: "docker exec mariadb ls /var/lib/mysql/mariadb.pid"
   register: bootstrap_result
   when: delegate_host != 'None' or
         ( groups['mariadb'] | length ) == 1 or
diff --git a/ansible/roles/mariadb/templates/galera.cnf.j2 b/ansible/roles/mariadb/templates/galera.cnf.j2
index 4e1039268e67bb1bac02727673a79ff6296d522f..9f9ed3ecd8060b07963aad946bfdf7c429250d7c 100644
--- a/ansible/roles/mariadb/templates/galera.cnf.j2
+++ b/ansible/roles/mariadb/templates/galera.cnf.j2
@@ -26,4 +26,4 @@ wsrep_slave_threads=4
 max_connections=1000
 
 [server]
-pid-file=/var/lib/mysql/{{ ansible_hostname }}-galera.pid
+pid-file=/var/lib/mysql/mariadb.pid
diff --git a/docker/mariadb/extend_start.sh b/docker/mariadb/extend_start.sh
index dcbdac2edd31727f0d4bbb9917d5b92dda5dae4f..55e9ae4c9015cbeb0c47691766371f583b2c654e 100644
--- a/docker/mariadb/extend_start.sh
+++ b/docker/mariadb/extend_start.sh
@@ -4,7 +4,7 @@ function bootstrap_db {
     mysqld_safe --wsrep-new-cluster &
     # Wait for the mariadb server to be "Ready" before starting the security reset with a max timeout
     TIMEOUT=${DB_MAX_TIMEOUT:-60}
-    while [ ! -f ${DB_PID_FILE} ]; do
+    while [[ ! -f /var/lib/mysql/mariadb.pid ]]; do
         if [[ ${TIMEOUT} -gt 0 ]]; then
             let TIMEOUT-=1
             sleep 1
@@ -18,7 +18,10 @@ function bootstrap_db {
     mysqladmin -uroot -p"${DB_ROOT_PASSWORD}" shutdown
 }
 
-sudo chown mysql: /var/lib/mysql
+# Only update permissions if permissions need to be updated
+if [[ $(stat -c %U:%G /var/lib/mysql) != "mysql:mysql" ]]; then
+    sudo chown mysql: /var/lib/mysql
+fi
 
 # This catches all cases of the BOOTSTRAP variable being set, including empty
 if [[ "${!KOLLA_BOOTSTRAP[@]}" ]] && [[ ! -e /var/lib/mysql/cluster.exists ]]; then