From 5547b5fe786b7491d2e33f92c4082535f2bb56cf Mon Sep 17 00:00:00 2001 From: Daneyon Hansen Date: Wed, 25 Feb 2015 05:49:40 +0000 Subject: Implements: blueprint Implement a database container set Previously, the database container was configured for use with Kubernetes. This patch removed any k8s dependencies, adds a script to manage mysql server.cnf settings and splits data and app containers. Splitting the containers provides additional portability and operational efficiencies compared to host mounts. Change-Id: I80656450c02dda5f2959d187eec20d5877dc54a2 --- docs/database-container-set.md | 50 ++++++++++++++++++++++++++++++++++++++++++ docs/integration-guide.md | 5 ++--- 2 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 docs/database-container-set.md (limited to 'docs') 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/ diff --git a/docs/integration-guide.md b/docs/integration-guide.md index d1127896d..19abe6f65 100644 --- a/docs/integration-guide.md +++ b/docs/integration-guide.md @@ -42,7 +42,6 @@ all containers. This allows a simple method of ensuring every type of node ### Environment Variable KEY/VALUE pairs ADMIN_TENANT_NAME= - tenant name - DB_ROOT_PASSWORD= - defines the MYSQL root password FLAT_INTERFACE= GLANCE_API_SERVICE_HOST= - address where glance API is running> GLANCE_DB_NAME= - DB name of glance service @@ -58,8 +57,8 @@ all containers. This allows a simple method of ensuring every type of node KEYSTONE_AUTH_PROTOCOL= - The keystone authentication protocol KEYSTONE_DB_PASSWORD= - The password used to access Keystone in the DB KEYSTONE_PUBLIC_SERVICE_HOST= - The IP address where Keystone is running - MARIADB_SERVICE_HOST= - The IP Address where mariadb is running - MYSQL_ROOT_PASSWORD= - The MYSQL password + MARIADB_ROOT_PASSWORD= - defines the MariaDB root password + MARIADB_SERVICE_HOST= - The IP Address where Mariadb is running NETWORK_MANAGER= - Use Nova or Neutron networking NOVA_API_SERVICE_HOST= - The IP Address where the Nova API Service is hosted NOVA_DB_NAME= - The name of the nova entry in the database -- cgit v1.2.3