Merge "Add devref for tacker conductor and vim monitoring"
This commit is contained in:
commit
40261e5b11
|
@ -0,0 +1,70 @@
|
|||
..
|
||||
Copyright 2014-2015 OpenStack Foundation
|
||||
All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
not use this file except in compliance with the License. You may obtain
|
||||
a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
License for the specific language governing permissions and limitations
|
||||
under the License.
|
||||
|
||||
================
|
||||
Tacker conductor
|
||||
================
|
||||
|
||||
Tacker conductor is a component which is used to communicate with other
|
||||
components via message RPC. In the conductor, the RPC server sides can
|
||||
access the tacker base on behalf of them.
|
||||
|
||||
|
||||
To start
|
||||
==============
|
||||
|
||||
Tacker conductor can be started via python console entry script
|
||||
'tacker-conductor':
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
tacker-conductor --config-file /etc/tacker/tacker.conf
|
||||
|
||||
..
|
||||
|
||||
we can easily start many tacker-conductor instances with different 'host' value
|
||||
in the configuration file:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
test@ubuntu64:~/devstack$ grep 'host = secondinstance' /etc/tacker/tacker2.conf
|
||||
host = secondinstance
|
||||
|
||||
..
|
||||
|
||||
and then start the second instance:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
tacker-conductor --config-file /etc/tacker/tacker2.conf
|
||||
|
||||
..
|
||||
|
||||
Rabbitmq queues
|
||||
===============
|
||||
|
||||
Tacker conductor is listening on three queues:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
test@ubuntu64:~/tacker$ sudo rabbitmqctl list_queues | grep CONDUCTOR
|
||||
TACKER_CONDUCTOR 0
|
||||
TACKER_CONDUCTOR.ubuntu64 0
|
||||
TACKER_CONDUCTOR_fanout_0ea005c0b666488485a7b3689eb70168 0
|
||||
|
||||
..
|
||||
|
||||
But only TACKER_CONDUCTOR queue without host suffix is used.
|
|
@ -0,0 +1,124 @@
|
|||
..
|
||||
Copyright 2014-2015 OpenStack Foundation
|
||||
All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
not use this file except in compliance with the License. You may obtain
|
||||
a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
License for the specific language governing permissions and limitations
|
||||
under the License.
|
||||
|
||||
===============================
|
||||
Mistral workflow VIM monitoring
|
||||
===============================
|
||||
|
||||
For the purpose to make tacker server scale, the mistral workflow is used to
|
||||
re-implement the VIM monitoring feature.
|
||||
|
||||
The main monitoring process is like this:
|
||||
|
||||
- user registers a VIM
|
||||
- tacker server saves it into database
|
||||
- tacker server generates a mistral workflow and executes it
|
||||
- the VIM monitor mistral action is executed and do the monitoring, if there
|
||||
is status change, it will RPC call conductor
|
||||
- the conductor changes the VIM status
|
||||
|
||||
|
||||
Feature exploration
|
||||
===================
|
||||
|
||||
Firstly register a VIM:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ tacker vim-register --config-file ~/testvim_config.yaml testvim2 -c id -c name -c status
|
||||
Created a new vim:
|
||||
+--------+--------------------------------------+
|
||||
| Field | Value |
|
||||
+--------+--------------------------------------+
|
||||
| id | 4406cf8f-f2af-46cc-bfb9-e00add5805b7 |
|
||||
| name | testvim2 |
|
||||
| status | PENDING |
|
||||
+--------+--------------------------------------+
|
||||
|
||||
..
|
||||
|
||||
The registered VIM's id is '4406cf8f-f2af-46cc-bfb9-e00add5805b7', after this,
|
||||
there is a mistral workflow named as
|
||||
'vim_id_4406cf8f-f2af-46cc-bfb9-e00add5805b7', is generated in mistral:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ mistral workflow-list --filter name=vim_id_4406cf8f-f2af-46cc-bfb9-e00add5805b7 -c ID -c Name
|
||||
+--------------------------------------+---------------------------------------------+
|
||||
| ID | Name |
|
||||
+--------------------------------------+---------------------------------------------+
|
||||
| 0cd0deff-6132-4ee2-a181-1c877cd594cc | vim_id_4406cf8f-f2af-46cc-bfb9-e00add5805b7 |
|
||||
+--------------------------------------+---------------------------------------------+
|
||||
|
||||
..
|
||||
|
||||
and it is executed:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ mistral execution-list --filter workflow_name=vim_id_4406cf8f-f2af-46cc-bfb9-e00add5805b7 -c ID -c 'Workflow name' -c State
|
||||
+--------------------------------------+---------------------------------------------+---------+
|
||||
| ID | Workflow name | State |
|
||||
+--------------------------------------+---------------------------------------------+---------+
|
||||
| 99ced0e2-be09-4219-ab94-299df8ee8789 | vim_id_4406cf8f-f2af-46cc-bfb9-e00add5805b7 | RUNNING |
|
||||
+--------------------------------------+---------------------------------------------+---------+
|
||||
|
||||
..
|
||||
|
||||
The monitoring task is running too:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ mistral task-list --filter workflow_name=vim_id_4406cf8f-f2af-46cc-bfb9-e00add5805b7 -c ID -c 'Workflow name' -c Name -c State
|
||||
+--------------------------------------+-----------------------------+---------------------------------------------+---------+
|
||||
| ID | Name | Workflow name | State |
|
||||
+--------------------------------------+-----------------------------+---------------------------------------------+---------+
|
||||
| f2fe2904-6ff2-4531-9bd0-4c998ef1515f | monitor_ping_vimPingVIMTASK | vim_id_4406cf8f-f2af-46cc-bfb9-e00add5805b7 | RUNNING |
|
||||
+--------------------------------------+-----------------------------+---------------------------------------------+---------+
|
||||
|
||||
..
|
||||
|
||||
Of course, the VIM's state is in 'REACHABLE' status:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ tacker vim-list --name testvim2 -c id -c name -c status
|
||||
+--------------------------------------+----------+-----------+
|
||||
| id | name | status |
|
||||
+--------------------------------------+----------+-----------+
|
||||
| 4406cf8f-f2af-46cc-bfb9-e00add5805b7 | testvim2 | REACHABLE |
|
||||
+--------------------------------------+----------+-----------+
|
||||
|
||||
..
|
||||
|
||||
The deletion of VIM will lead to removal of all of these mistral resources.
|
||||
|
||||
|
||||
Rabbitmq queues
|
||||
===============
|
||||
|
||||
Each mistral VIM monitoring action is listening on three queues:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
~/tacker$ sudo rabbitmqctl list_queues | grep -i KILL_ACTION
|
||||
KILL_ACTION 0
|
||||
KILL_ACTION.4406cf8f-f2af-46cc-bfb9-e00add5805b7 0
|
||||
KILL_ACTION_fanout_a8118e2e18b9443986a1b37f7b082ab9 0
|
||||
|
||||
..
|
||||
|
||||
But only KILL_ACTION with VIM id as suffix is used.
|
|
@ -63,6 +63,8 @@ Feature Documentation
|
|||
devref/vnffg_usage_guide.rst
|
||||
devref/nsd_usage_guide.rst
|
||||
devref/vnf_component_usage_guide.rst
|
||||
devref/tacker_conductor.rst
|
||||
devref/tacker_vim_monitoring.rst
|
||||
|
||||
API Documentation
|
||||
=================
|
||||
|
|
Loading…
Reference in New Issue