diff --git a/specs/6.1/ceilometer-central-agent-ha.rst b/specs/6.1/ceilometer-central-agent-ha.rst new file mode 100644 index 00000000..cf94a7fa --- /dev/null +++ b/specs/6.1/ceilometer-central-agent-ha.rst @@ -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