[UG] Services decomposition

Adds the instruction on how to deploy services on dedicated OpenStack nodes

Change-Id: I41093e7cfd38f3be5481d22e6c8ae89fc85fb84e
This commit is contained in:
OlgaGusarenko 2017-01-05 17:52:45 +02:00
parent f39e203603
commit 575b9a2641
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-nodes.rst
configure-environment/add-label.rst configure-environment/add-label.rst
configure-environment/change-roles.rst configure-environment/change-roles.rst
configure-environment/decompose-services.rst
configure-environment/change-hostname-slave-nodes.rst configure-environment/change-hostname-slave-nodes.rst
configure-environment/select-bootable-device.rst configure-environment/select-bootable-device.rst
configure-environment/network-settings.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`