e02c6257ae
There appears to be a window between a pacemaker remote resource being added and the location properties for that resource being added. In this window the resource is down and pacemaker may fence the node. The window is present because the charm charm currently does: 1) Set stonith-enabled=true cluster property 2) Add maas stonith device that controls pacemaker remote node that has not yet been added. 3) Add pacemaker remote node 4) Add pacemaker location rules. I think the following two fixes are needed: 1) For initial deploys update the charm so it does not enable stonith until stonith resources and pacemaker remotes have been added. 2) For scale-out do not add the new pacemaker remote stonith resource until the corresponding pacemaker resource has been added along with its location rules. Depends-On: Ib8a667d0d82ef3dcd4da27e62460b4f0ce32ee43 Change-Id: I7e2f568d829f6d0bfc7859a7d0ea239203bbc490 Closes-Bug: #1884284 |
||
---|---|---|
actions | ||
charmhelpers | ||
files | ||
hooks | ||
lib | ||
templates | ||
tests | ||
unit_tests | ||
.gitignore | ||
.gitreview | ||
.project | ||
.pydevproject | ||
.stestr.conf | ||
.zuul.yaml | ||
actions.yaml | ||
charm-helpers-hooks.yaml | ||
config.yaml | ||
copyright | ||
icon.svg | ||
LICENSE | ||
Makefile | ||
metadata.yaml | ||
README.md | ||
requirements.txt | ||
setup.cfg | ||
test-requirements.txt | ||
tox.ini |
Overview
The hacluster charm provides high availability for OpenStack applications that lack native (built-in) HA functionality. The clustering solution is based on Corosync and Pacemaker.
It is a subordinate charm that works in conjunction with a principle charm that supports the 'hacluster' interface. The current list of such charms can be obtained from the Charm Store (the charms officially supported by the OpenStack Charms project are published by 'openstack-charmers').
See OpenStack high availability in the OpenStack Charms Deployment Guide for a comprehensive treatment of HA with charmed OpenStack.
Note
: The hacluster charm is generally intended to be used with MAAS-based clouds.
Usage
High availability can be configured in two mutually exclusive ways:
- virtual IP(s)
- DNS
The virtual IP method of implementing HA requires that all units of the clustered OpenStack application are on the same subnet.
The DNS method of implementing HA requires that MAAS is used as the backing cloud. The clustered nodes must have static or "reserved" IP addresses registered in MAAS. If using a version of MAAS earlier than 2.3 the DNS hostname(s) should be pre-registered in MAAS before use with DNS HA.
Configuration
This section covers common configuration options. See file config.yaml
for
the full list of options, along with their descriptions and default values.
cluster_count
The cluster_count
option sets the number of hacluster units required to form
the principle application cluster (the default is 3). It is best practice to
provide a value explicitly as doing so ensures that the hacluster charm will
wait until all relations are made to the principle application before building
the Corosync/Pacemaker cluster, thereby avoiding a race condition.
Deployment
At deploy time an application name should be set, and be based on the principle charm name (for organisational purposes):
juju deploy hacluster <principle-charm-name>-hacluster
A relation is then added between the hacluster application and the principle application.
In the below example the VIP approach is taken. These commands will deploy a three-node Keystone HA cluster, with a VIP of 10.246.114.11. Each will reside in a container on existing machines 0, 1, and 2:
juju deploy -n 3 --to lxd:0,lxd:1,lxd:2 --config vip=10.246.114.11 keystone
juju deploy --config cluster_count=3 hacluster keystone-hacluster
juju add-relation keystone-hacluster:ha keystone:ha
Actions
This section lists Juju actions supported by the charm. Actions allow specific operations to be performed on a per-unit basis.
pause
resume
status
cleanup
To display action descriptions run juju actions hacluster
. If the charm is
not deployed then see file actions.yaml
.
Bugs
Please report bugs on Launchpad.
For general charm questions refer to the OpenStack Charm Guide.