Merge "Blueprint: ceilometer-central-agent-ha"
This commit is contained in:
commit
32f5fd8f43
213
specs/6.1/ceilometer-central-agent-ha.rst
Normal file
213
specs/6.1/ceilometer-central-agent-ha.rst
Normal file
@ -0,0 +1,213 @@
|
|||||||
|
..
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||||
|
License.
|
||||||
|
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
==============================================
|
||||||
|
Add central agent HA and workload partitioning
|
||||||
|
==============================================
|
||||||
|
|
||||||
|
https://blueprints.launchpad.net/fuel/+spec/ceilometer-central-agent-ha
|
||||||
|
|
||||||
|
Implement Redis installation and using it as a coordination backend
|
||||||
|
for ceilometer central agents
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
===================
|
||||||
|
|
||||||
|
A detailed description of the problem:
|
||||||
|
|
||||||
|
* Currentrly ceilometer central agent is the only one ceilometer component
|
||||||
|
that didn't support HA and workload partitioning. During Juno release
|
||||||
|
cycle this feature was intorduced to the ceilometer in the upstream code
|
||||||
|
using tooz coordination openstack library. This library supports several
|
||||||
|
backends (zookeeper, redis, memcached among them). It was decided
|
||||||
|
to introduce this built-in ceilometer feature to MOS as well.
|
||||||
|
Redis was chosen as the coordination backend.
|
||||||
|
|
||||||
|
Proposed change
|
||||||
|
===============
|
||||||
|
|
||||||
|
This feature is experimental and should be implemented as fuel-plugin.
|
||||||
|
It's implementation requires following things to be done:
|
||||||
|
* Implement Redis installation on controller nodes only in HA mode
|
||||||
|
* Prepare Redis packages and it's dependencies
|
||||||
|
* Configure ceilometer central agents to work with redis
|
||||||
|
|
||||||
|
Installation diagram is as follows
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
+---------------------+
|
||||||
|
| |
|
||||||
|
| +---------------+ |
|
||||||
|
| | ceilometer +-------------------------+
|
||||||
|
| | central agent | | |
|
||||||
|
| +---------------+ | |
|
||||||
|
| | |
|
||||||
|
| Primary controller | |
|
||||||
|
| | |
|
||||||
|
| +---------------+ | |
|
||||||
|
| | redis <------------------------------+
|
||||||
|
| | master | | | |
|
||||||
|
| +---------------+ | | |
|
||||||
|
| | | |
|
||||||
|
+---------------------+ | |
|
||||||
|
| |
|
||||||
|
+---------------------+ | |
|
||||||
|
| | | |
|
||||||
|
| +---------------+ | | |
|
||||||
|
| | ceilometer +-------------------------+ |
|
||||||
|
| | central agent | | | |
|
||||||
|
| +---------------+ | | |
|
||||||
|
| | +------v----+--+
|
||||||
|
| controller 1 | | |
|
||||||
|
| | | Coordination |
|
||||||
|
| +---------------+ | | |
|
||||||
|
| | redis | | +------^----+--+
|
||||||
|
| | slave1 | | | |
|
||||||
|
| | <------------------------------+
|
||||||
|
| +---------------+ | | |
|
||||||
|
| | | |
|
||||||
|
+---------------------+ | |
|
||||||
|
| |
|
||||||
|
+---------------------+ | |
|
||||||
|
| | | |
|
||||||
|
| +---------------+ | | |
|
||||||
|
| | ceilometer +-------------------------+ |
|
||||||
|
| | central agent | | |
|
||||||
|
| +---------------+ | |
|
||||||
|
| | |
|
||||||
|
| controller 2 | |
|
||||||
|
| | |
|
||||||
|
| +---------------+ | |
|
||||||
|
| | redis | | |
|
||||||
|
| | slave2 <------------------------------+
|
||||||
|
| | | |
|
||||||
|
| +---------------+ |
|
||||||
|
| |
|
||||||
|
+---------------------+
|
||||||
|
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
|
||||||
|
This feature could be implemented by default, but it has experimental status.
|
||||||
|
|
||||||
|
Data model impact
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
REST API impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Upgrade impact
|
||||||
|
--------------
|
||||||
|
|
||||||
|
These changes will be needed in puppet scripts:
|
||||||
|
|
||||||
|
* Add redis module
|
||||||
|
|
||||||
|
* Configure ceilometer central agent to use redis as backend
|
||||||
|
|
||||||
|
This change will be needed in packages:
|
||||||
|
|
||||||
|
* Use upstream Redis packages and it's dependencies
|
||||||
|
|
||||||
|
Security impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Notifications impact
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Other end user impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Performance Impact
|
||||||
|
------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Other deployer impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
This could be installed only in HA mode with ceilometer
|
||||||
|
|
||||||
|
Developer impact
|
||||||
|
----------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
Ivan Berezovskiy
|
||||||
|
|
||||||
|
Other contributors:
|
||||||
|
Dina Belova
|
||||||
|
|
||||||
|
Reviewer:
|
||||||
|
Vladimir Kuklin Sergii Golovatiuk
|
||||||
|
|
||||||
|
QA:
|
||||||
|
Vadim Rovachev
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
* Implement redis installation from puppet (iberezovskiy)
|
||||||
|
|
||||||
|
* Configure ceilometer central agent (iberezovskiy)
|
||||||
|
|
||||||
|
* Write a documentation (dbelova)
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Testing
|
||||||
|
=======
|
||||||
|
|
||||||
|
Testing approach:
|
||||||
|
|
||||||
|
* Environment with ceilometer in HA mode should be succesfully deployed
|
||||||
|
|
||||||
|
* Ceilometer should collect all enabled polling meters for deployed
|
||||||
|
environment
|
||||||
|
|
||||||
|
* Polling meters should be divided on groups by ceilometer central agents
|
||||||
|
|
||||||
|
* Redis cluster should be with one master and two slaves
|
||||||
|
|
||||||
|
* Ensure that after one central agent was broken, during the next polling
|
||||||
|
cycle all measurements will be rescheduled between two another,
|
||||||
|
and still all of them will be collected
|
||||||
|
|
||||||
|
* Ensure that after node with redis master was broken ceilometer central
|
||||||
|
agents can work with new redis master and can poll meters
|
||||||
|
|
||||||
|
Documentation Impact
|
||||||
|
====================
|
||||||
|
|
||||||
|
A note should be added about redis plugin installation and
|
||||||
|
how ceilometer agent can work in HA mode
|
||||||
|
|
||||||
|
References
|
||||||
|
==========
|
||||||
|
|
||||||
|
None
|
Loading…
Reference in New Issue
Block a user