diff --git a/doc/source/reference/databases/index.rst b/doc/source/reference/databases/index.rst
index d9c135f04a2c0c6b3ff27d09f72982e0de8e42c4..613082ea6c7b68fbfa500e3057350e79c88b2d52 100644
--- a/doc/source/reference/databases/index.rst
+++ b/doc/source/reference/databases/index.rst
@@ -8,3 +8,4 @@ This section describes configuration of database services.
    :maxdepth: 1
 
    external-mariadb-guide
+   mariadb-guide
diff --git a/doc/source/reference/databases/mariadb-guide.rst b/doc/source/reference/databases/mariadb-guide.rst
new file mode 100644
index 0000000000000000000000000000000000000000..305bc6712359729ef131e6d84fc43bb9e3c10eed
--- /dev/null
+++ b/doc/source/reference/databases/mariadb-guide.rst
@@ -0,0 +1,70 @@
+.. _mariadb-guide:
+
+=============
+MariaDB Guide
+=============
+
+Kolla Ansible supports deployment of a MariaDB/Galera cluster
+for use by OpenStack and other services.
+
+MariaDB Shards
+~~~~~~~~~~~~~~
+
+A database shard, or simply a shard, is a horizontal partition of data
+in a database or search engine. Each shard is held on a separate database
+server/cluster, to spread load. Some data within a database remains present
+in all shards, but some appears only in a single shard.
+Each shard acts as the single source for this subset of data.
+
+Kolla supports sharding on service's database level, so every database
+can be hosted on different shard. Each shard is implemented as
+an independent Galera cluster.
+
+This section explains how to configure multiple database shards. Currently,
+only one shard is accessible via the HAProxy load balancer and supported
+by the ``kolla-ansible mariadb_backup`` command. This will be improved
+in future by using ProxySQL, allowing load balanced access to all shards.
+
+Deployment
+----------
+
+Each shard is identified by an integer ID, defined by ``mariadb_shard_id``.
+The default shard, defined by ``mariadb_default_database_shard_id`` (default 0),
+identifies the shard that will be accessible via HAProxy and available for backing up.
+
+In order to deploy several MariaDB cluster, you will need to edit
+inventory file in the way described below:
+
+   .. code-block:: ini
+
+      [mariadb]
+      server1ofcluster0
+      server2ofcluster0
+      server3ofcluster0
+      server1ofcluster1 mariadb_shard_id=1
+      server2ofcluster1 mariadb_shard_id=1
+      server3ofcluster1 mariadb_shard_id=1
+      server1ofcluster2 mariadb_shard_id=2
+      server2ofcluster2 mariadb_shard_id=2
+      server3ofcluster2 mariadb_shard_id=2
+
+.. note::
+
+   If ``mariadb_shard_id`` is not defined for host in inventory file it will be set automatically
+   to ``mariadb_default_database_shard_id`` (default 0) from ``group_vars/all.yml`` and can be
+   overwritten in ``/etc/kolla/globals.yml``. Shard which is marked as default is special in case
+   of backup or loadbalance, as it is described below.
+
+Loadbalancer
+------------
+Kolla currently supports balancing only for default shard. This will be
+changed in future by replacement of HAProxy with ProxySQL. This results in
+certain limitations as described below.
+
+Backup and restore
+------------------
+
+Backup and restore is working only for default shard as kolla currently
+using HAProxy solution for MariaDB loadbalancer which is simple TCP and
+has configured only default shard hosts as backends, therefore backup
+script will reach only default shard on ``kolla_internal_vip_address``.