From 575b9a2641cdc40db92e1803156fc6ce95c22923 Mon Sep 17 00:00:00 2001 From: OlgaGusarenko Date: Thu, 5 Jan 2017 17:52:45 +0200 Subject: [PATCH] [UG] Services decomposition Adds the instruction on how to deploy services on dedicated OpenStack nodes Change-Id: I41093e7cfd38f3be5481d22e6c8ae89fc85fb84e --- .../fuel-user-guide/configure-environment.rst | 1 + .../decompose-services.rst | 184 ++++++++++++++++++ 2 files changed, 185 insertions(+) create mode 100644 userdocs/fuel-user-guide/configure-environment/decompose-services.rst diff --git a/userdocs/fuel-user-guide/configure-environment.rst b/userdocs/fuel-user-guide/configure-environment.rst index 5801bff4f..1ac1f15d1 100644 --- a/userdocs/fuel-user-guide/configure-environment.rst +++ b/userdocs/fuel-user-guide/configure-environment.rst @@ -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 diff --git a/userdocs/fuel-user-guide/configure-environment/decompose-services.rst b/userdocs/fuel-user-guide/configure-environment/decompose-services.rst new file mode 100644 index 000000000..b5724dc98 --- /dev/null +++ b/userdocs/fuel-user-guide/configure-environment/decompose-services.rst @@ -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` \ No newline at end of file