summaryrefslogtreecommitdiff
path: root/docs/database-container-set.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/database-container-set.md')
-rw-r--r--docs/database-container-set.md50
1 files changed, 50 insertions, 0 deletions
diff --git a/docs/database-container-set.md b/docs/database-container-set.md
new file mode 100644
index 000000000..b4a16388a
--- /dev/null
+++ b/docs/database-container-set.md
@@ -0,0 +1,50 @@
+MariaDB Container Set
+=====================
+
+The MariaDB database application has been organized into two containers,
+known as a [container-set][] within the Kolla project. One container runs
+the MariaDB application and the other stores the actual data.
+
+Operational efficiencies and service stability is provided by
+separating the application from the stored data. For example, stored data
+can be backed-up or restored without touching the MariaDB application
+component.
+
+The containers work in a cooperative fashion by using [docker-compose][]
+(aka Fig) to ensure the containers are co-located on the same host.
+With docker-compose, you can manage the containers collectively
+as a single unit.
+
+Here is a sample docker-compose yaml file for using both MariaDB containers:
+
+```
+mariadbdata:
+ image: kollaglue/centos-rdo-mariadb-data
+ volumes:
+ - /var/lib/mysql:/var/lib/mysql
+ - /var/log/mariadb:/var/log/mariadb
+ net: "host"
+ privileged: true
+mariadbapp:
+ image: kollaglue/centos-rdo-mariadb-app
+ env_file:
+ - openstack.env
+ volumes_from:
+ - mariadbdata
+ net: "host"
+ ports:
+ - "3306:3306"
+ privileged: true
+```
+
+In addition to the MariaDB application being organized across two containers, the data
+container follows the [data-only container][] design pattern. In this design pattern,
+a dedicated container is used to perform a host mount and separate application
+container(s) mount volumes from the data-only container instead of performing the host
+mount directly. In the example above, the MariaDbApp container mounts the /var/lib/mysql
+and /var/log/mariadb volumes through the MariaDbData container instead of mounting
+these directly to the Docker host.
+
+[docker-compose]: http://www.fig.sh/
+[container-set]: https://review.openstack.org/#/c/153798/
+[data-only container]: http://www.tech-d.net/2013/12/16/persistent-volumes-with-docker-container-as-volume-pattern/