Setting Up Openstack with HA and Ceph as Storage

This document covers how to setup an Openstack running on HA and using a Ceph as storage.

We will be using CentOS 7 as operating system of our servers and should be running the following Services and Information:

  1. Infrastructure and Server Details
  2. IP List and Blocks
  3. Controllers Installation
    1. Controller1 / Controller2 / Controller3
      1. IP Address Config
      2. Mongodb
      3. Pacemaker
      4. HAProxy
      5. Database/Galera
      6. RabbitMQ
      7. Keystone
      8. Glance
      9. Nova
      10. Neutron
      11. Dashboard
      12. Cinder
  4. Compute Installation
    1. Compute1 / Compute2 / Compute3
      1. IP Address Config
      2. Nova-Compute
      3. Linux Bridge
  5. Cinder and Ceph Installation
    1. Ceph1 / Ceph2 / Ceph3
      1. Ceph
      2. Cinder-Volume
      3. Cinder-Backup

Basic Configurations are the following:

#CONTROLLERS controller1 controller2 controller3
# COMPUTES compute1 compute2 compute3 
#CEPHS ceph1 ceph2 ceph3 
#DATABASES db-server01 db-server02 db-server03
#VIPs database-vip dashboard-vip controller rabbitmq-vip keystone-vip memcached-vip neutron-vip glance-vip nova-vip cinder-vip


ALL: Install the packages to all of the nodes

# yum -y install chrony

ALL: Edit the /etc/chrony.conf file and add, change, or remove these keys as necessary for your environment:

server iburst

ALL: Start the NTP service and configure it to start when the system boots:

# systemctl enable chronyd.service
# systemctl start chronyd.service

Openstack Repository

ALL: Enable the Openstack Repository

# yum -y install centos-release-openstack-ocata

ALL: Upgrade packages

# yum -y upgrade

ALL: Install the OpenStack client:

# yum -y install python-openstackclient

Database (Galera Cluster) for High Availability

ALL CONTROLLER NODES: Configure REPO and Install the packages by running the following:

# sed -i -e 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# cat >> /etc/yum.repos.d/mariadb.repo << EOF
name = MariaDB
baseurl =
# yum -y remove mariadb-common mariadb-config mariadb-libs
# yum -y install MariaDB-Galera-server MariaDB-client galera rsync nmap lsof perl-DBI nc socat jemalloc python2-PyMySQL
# systemctl enable mysql
# systemctl start mysql
# mysql_secure_installation
# systemctl restart mysql