13
High Available controller core services VIETOPENSTACK 9th MEETUP Ha Noi, 07/05/2016

HA in OpenStack service - meetup #9

Embed Size (px)

Citation preview

Page 1: HA in OpenStack service - meetup #9

High Available controller core servicesVIETOPENSTACK 9th MEETUP

Ha Noi, 07/05/2016

Page 2: HA in OpenStack service - meetup #9

Click to edit Master title styleOpenStack release: LibertyOS version: Ubuntu 14.04.3 LTS, Trusty TahrVMware ESXi 5.5

Lab information

2High Available controller core services

Page 3: HA in OpenStack service - meetup #9

Click to edit Master title styleHigh availability concepts

3High Available controller core services

System downtimeOccurs when a user-facing service is unavailable beyond a specified maximum amount of time.Data lossAccidental deletion or destruction of data.

Stateless servicenova-api, nova-conductor, glance-api, keystone-api, neutron-api and nova-scheduler,…Stateful serviceOpenStack database and message queue. Making stateful services highly available can depend on whether you choose an active/passive or active/active configuration.

One uses a cluster manager such as Pacemaker to co-ordinate the actions of the various services across a set of machinesHAProxy provides a fast and reliable HTTP reverse proxy and load balancer for TCP or HTTP applications

Page 4: HA in OpenStack service - meetup #9

Click to edit Master title style

KeystoneGlanceNovaNeutronL3HAMySQLRabbitMQ

Controller core services to be HA

4High Available controller core services

Page 5: HA in OpenStack service - meetup #9

Click to edit Master title style

Each instance of HAProxy configures its front end to accept connections only from the virtual IP (VIP) address and to terminate them as a list of all instances of the corresponding service under load balancing, such as any OpenStack API service.

This makes the instances of HAProxy act independently and fail over transparently together with the network endpoints (VIP addresses) failover and, therefore, shares the same SLA

HAproxy service

5High Available controller core services

Load distribution API isolation Simplified process for adding/removing of nodes Enhanced failure detection

Page 6: HA in OpenStack service - meetup #9

Click to edit Master title stylePacemaker to manage VIP & Haproxy service.

Pacemaker relies on the Corosync messaging layer for reliable cluster communications.

Corosync implements the Totem single-ring ordering and membership protocol. It also provides UDP and InfiniBand based messaging, quorum, and cluster membership to Pacemaker.

Pacemaker relies on resource agents (RAs), scripts that encapsulate the knowledge of how to start, stop, and check the health of each application managed by the cluster

Pacemaker cluster stack & corosync service

6High Available controller core services

Page 7: HA in OpenStack service - meetup #9

Click to edit Master title styleArchitecture

7High Available controller core services

Page 8: HA in OpenStack service - meetup #9

Click to edit Master title styleUse Galera Cluster to provide replication between  instances of the database on controller nodes.

Galera Cluster is a synchronous multi-master database cluster, based on MySQL and the InnoDB storage engine.

It is a high-availability service that provides high system uptime, no data loss, and scalability for growth.

Mariadb Galera cluster

8High Available controller core services

Page 9: HA in OpenStack service - meetup #9

Click to edit Master title styleMemcached is a general-purpose distributed memory caching system. It is used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the number of times an external data source must be read.

Memcached is a memory cache demon that can be used by most OpenStack services to store ephemeral data, such as tokens.

Access to memcached is not handled by HAproxy because replicated access is currently only in an experimental state. Instead OpenStack services must be supplied with the full list of hosts running memcached.

Memcached

9High Available controller core services

Page 10: HA in OpenStack service - meetup #9

Click to edit Master title styleRabbitMQ is AMQP broker to coordinate the execution of jobs entered into the system (communication service)

Configure RabbitMQ for HA queuesBuild a cluster of RabbitMQ nodes to construct a RabbitMQ broker, which is a logical grouping of several Erlang nodes.Mirrored queues in RabbitMQ improve the availability of service since it is resilient to failures.

Configure OpenStack services to use Rabbit HA queuesWe have to configure the OpenStack components to use at least two RabbitMQ nodes.

RabbitMQ cluster

10High Available controller core services

Page 11: HA in OpenStack service - meetup #9

Click to edit Master title style

1, Stop Pacemaker or Corosync service

2, Stop 1 of 3 nodes

3, Stop 2 of 3 nodes

4, Other recommended

Failover & failback senarios

11High Available controller core services

Page 12: HA in OpenStack service - meetup #9

Click to edit Master title style

VPN to lab

Demo

12High Available controller core services

Page 13: HA in OpenStack service - meetup #9

Click to edit Master title styleThe end

13High Available controller core services

Source: http://docs.openstack.org/ha-guide/Support team: VietOpenStack