Merge lp://staging/~james-page/charms/precise/hacluster/redux into lp://staging/charms/hacluster
Status: | Merged |
---|---|
Merged at revision: | 16 |
Proposed branch: | lp://staging/~james-page/charms/precise/hacluster/redux |
Merge into: | lp://staging/charms/hacluster |
Diff against target: |
1217 lines (+647/-387) 10 files modified
.project (+17/-0) .pydevproject (+8/-0) config.yaml (+9/-4) copyright (+5/-0) hooks/hacluster.py (+8/-235) hooks/hooks.py (+136/-146) hooks/lib/cluster_utils.py (+130/-0) hooks/lib/utils.py (+332/-0) hooks/maas.py (+1/-1) hooks/pcmk.py (+1/-1) |
To merge this branch: | bzr merge lp://staging/~james-page/charms/precise/hacluster/redux |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Andres Rodriguez (community) | Approve | ||
Review via email: mp+155237@code.staging.launchpad.net |
Description of the change
Redux ready for final submission (hopefully)
1) Refactored to use HA openstack-
2) 'ready' barrier on peer relation added
Each service-unit set a 'ready' flag on the peer relationship when its received enough information to configure corosync and pacemaker; service units are only counted as valid once they have set this.
This ensures that nodes that don't have enough config info don't get counted when assessing clusterable size
3) oldest peer configures services
This is to avoid a split brain when initially forming the cluster; the oldest peer will most likely be busy dealing with other service relations, whilst the other service units start getting ready to be clustered during early service archive
By ensuring that the oldest peer configures the actual services, we smooth the transition from peering->clustered and avoid one of the newer service units trying to take control before the cluster is fully formed.
4) configurable initial cluster size
Default to 2 units; but should be set to the target size for the initial cluster.
5) default to corosync/pacemake v1 integration
This is as recommended upstream and splits the control of the corosync and pacemaker daemons.
The branch looks good to me. However, I believe we need to make sure the pacemaker initscript is being set to defaults and that starts after corosync since it is disabled in packaging.