Merge "[UG] Services decomposition"

This commit is contained in:
Jenkins 2017-01-17 17:41:46 +00:00 committed by Gerrit Code Review
commit cbd7fcc65c
2 changed files with 185 additions and 0 deletions

View File

@ -26,6 +26,7 @@ This section includes the following topics:
configure-environment/add-nodes.rst
configure-environment/add-label.rst
configure-environment/change-roles.rst
configure-environment/decompose-services.rst
configure-environment/change-hostname-slave-nodes.rst
configure-environment/select-bootable-device.rst
configure-environment/network-settings.rst

View File

@ -0,0 +1,184 @@
.. _decompose_services:
======================================
Decompose the controller node services
======================================
You can run different services on dedicated OpenStack nodes depending on
needs of your OpenStack environment. Using the Fuel CLI you can move
controller node services out of the existing controller role into
custom roles and assign these roles to dedicated nodes. This capability
may be helpful while managing highly-loaded OpenStack environments.
The services available for decomposition are:
* Neutron (including L3 agents, LBaaS, and others)
* Keystone
* MySQL DB
* RabbitMQ
**To decompose the controller node services:**
#. Log in to the Fuel Master node console.
#. Download the controller's role configuration:
.. code-block:: console
fuel role --release 2 --role controller --file controller.yaml
You will get the configuration file with the following content:
.. code-block:: yaml
name: controller
meta:
conflicts:
- compute
description: >
The Controller initiates orchestration activities and provides an
external API. Other components like Glance (image storage), Keystone
(identity management), Horizon (OpenStack dashboard) and Nova-Scheduler
are installed on the controller as well.
group: base
has_primary: true
limits:
min: 1
overrides:
- condition: settings:neutron_advanced_configuration.neutron_l3_ha.value == true
message: >
Neutron L3 HA requires at least 2 Controller nodes to function
properly.
min: 2
recommended: 3
name: Controller
public_for_dvr_required: true
public_ip_required: true
tags:
- controller
- rabbitmq
- database
- keystone
- neutron
update_required:
- compute
- cinder
weight: 10
volumes_roles_mapping:
- allocate_size: min
id: os
- allocate_size: min
id: logs
- allocate_size: all
id: image
- allocate_size: min
id: mysql
- allocate_size: min
id: horizon
#. In ``controller.yaml``, remove the tag from the ``tags`` section that
corresponds to the service you need to move to a dedicated node and save
the changes.
For example, remove the ``database`` tag and save the changes. Now, your
controller role configuration file does not include the ``database`` tag
in the ``tags`` section, and the ``mysql`` record in
the ``volumes_roles_mapping`` section:
.. code-block:: yaml
:emphasize-lines: 24-28, 33-41
name: controller
meta:
conflicts:
- compute
description: >
The Controller initiates orchestration activities and provides an
external API. Other components like Glance (image storage), Keystone
(identity management), Horizon (OpenStack dashboard) and Nova-Scheduler
are installed on the controller as well.
group: base
has_primary: true
limits:
min: 1
overrides:
- condition: settings:neutron_advanced_configuration.neutron_l3_ha.value == true
message: >
Neutron L3 HA requires at least 2 Controller nodes to function
properly.
min: 2
recommended: 3
name: Controller
public_for_dvr_required: true
public_ip_required: true
tags:
- controller
- rabbitmq
- keystone
- neutron
update_required:
- compute
- cinder
weight: 10
volumes_roles_mapping:
- allocate_size: min
id: os
- allocate_size: min
id: logs
- allocate_size: all
id: image
- allocate_size: min
id: horizon
#. Upload the updated controller role:
.. code-block:: console
fuel role --release 2 --role controller --update --file controller.yaml
#. Create a new custom role for the service you need to remove from
the controller node:
#. For example, create and edit ``database.yaml`` specifying the removed
entries from the controller role configuration:
.. code-block:: yaml
name: database
meta:
name: Database
description: >
Separated DB from controller.
group: base
conflicts:
- controller
- compute
has_primary: true
limits:
min: 1
update_required:
- controller
- database
tags:
- database
weight: 100
volumes_roles_mapping:
- allocate_size: min
id: os
- allocate_size: min
id: mysql
#. In the Fuel CLI, create the new role based on the ``database.yaml``
configuration file:
.. code-block:: console
fuel role --release 2 --create --file database.yaml
#. Assign the newly created role using the Fuel web UI or CLI as described
in :ref:`change-roles`.
#. To apply the changes, deploy your OpenStack environment.
.. seealso::
* :ref:`cli-roles`