diff --git a/doc/source/_includes/migrate-an-aiosx-subcloud-to-an-aiodx-subcloud.rest b/doc/source/_includes/migrate-an-aiosx-subcloud-to-an-aiodx-subcloud.rest new file mode 100644 index 000000000..e69de29bb diff --git a/doc/source/dist_cloud/.vscode/settings.json b/doc/source/dist_cloud/.vscode/settings.json new file mode 100644 index 000000000..3cce948f6 --- /dev/null +++ b/doc/source/dist_cloud/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "restructuredtext.confPath": "" +} \ No newline at end of file diff --git a/doc/source/dist_cloud/index.rst b/doc/source/dist_cloud/index.rst index 6c11ed9cf..8cc3b12bf 100644 --- a/doc/source/dist_cloud/index.rst +++ b/doc/source/dist_cloud/index.rst @@ -48,6 +48,7 @@ Operation managing-ldap-linux-user-accounts-on-the-system-controller changing-the-admin-password-on-distributed-cloud updating-docker-registry-credentials-on-a-subcloud + migrate-an-aiosx-subcloud-to-an-aiodx-subcloud -------- diff --git a/doc/source/dist_cloud/migrate-an-aiosx-subcloud-to-an-aiodx-subcloud.rst b/doc/source/dist_cloud/migrate-an-aiosx-subcloud-to-an-aiodx-subcloud.rst new file mode 100644 index 000000000..09183651e --- /dev/null +++ b/doc/source/dist_cloud/migrate-an-aiosx-subcloud-to-an-aiodx-subcloud.rst @@ -0,0 +1,172 @@ + +.. _migrate-an-aiosx-subcloud-to-an-aiodx-subcloud: + +--------------------------------------- +Migrate an AIO-SX to an AIO-DX Subcloud +--------------------------------------- + +|release-caveat| + +.. rubric:: |context| + +You can migrate an |AIO-SX| subcloud to an |AIO-DX| subcloud without +reinstallation. This operation involves updating the system mode, adding the +|OAM| unit IP addresses of each controller, and installing the second controller. + +.. rubric:: |prereq| + +A distributed cloud system is setup with at least a system controller and an +|AIO-SX| subcloud. The subcloud must be online and managed by dcmanager. +Both the management network and cluster-host network need to be configured and +cannot be on the loopback interface. + +====================================== +Reconfigure the Cluster-Host Interface +====================================== + +If the cluster-host interface is on the loopback interface, use the following +procedure to reconfigure the cluster-host interface on to a physical interface. + +.. rubric:: |proc| + +#. Lock the active controller. + + .. code-block:: none + + ~(keystone_admin)$ system host-lock controller-0 + +#. Change the class attribute to 'none' for the loopback interface. + + .. code-block:: none + + ~(keystone_admin)$ system host-if-modify controller-0 lo -c none + +#. Delete the current cluster-host interface-network configuration + + .. code-block:: none + + ~(keystone_admin)$ IFNET_UUID=$(system interface-network-list controller-0 | awk '{if ($8 =="cluster-host") print $4;}') + ~(keystone_admin)$ system interface-network-remove $IFNET_UUID + +#. Assign the cluster-host network to the new interface. This example assumes + the interface name is mgmt0. + + .. code-block:: none + + ~(keystone_admin)$ system interface-network-assign controller-0 mgmt0 cluster-host + +.. rubric:: |postreq| + +Continue with the |AIO-SX| to |AIO-DX| subcloud migration, using one of the +following procedures: + +Use Ansible Playbook to Migrate a Subcloud from AIO-SX to AIO-DX, or +Manually Migrate a Subcloud from AIO-SX to AIO-DX. + + +.. _use-ansible-playbook-to-migrate-a-subcloud-from-AIO-SX-to-AIO-DX: + +================================================================ +Use Ansible Playbook to Migrate a Subcloud from AIO-SX to AIO-DX +================================================================ + +Use the following procedure to migrate a subcloud from |AIO-SX| to |AIO-DX| +using the ansible playbook. + +.. rubric:: |prereq| + +- the subcloud must be online and managed from the System Controller +- the subcloud's controller-0 may be locked or unlocked; the ansible playbook + will lock the subcloud controller-0 as part of migrating the subcloud + + +.. rubric:: |proc| + +#. Create a configuration file and specify the |OAM| unit IP addresses and + the ansible ssh password in the **migrate-subcloud1-overrides-EXAMPLE.yml** + file. The existing |OAM| IP address of the |AIO-SX| system will be used as + the |OAM| floating IP address of the new |AIO-DX| system. + + In the following example, 10.10.10.13 and 10.10.10.14 are the new |OAM| unit + IP addresses for controller-0 and controller-1 respectively. + + .. code-block:: none + + { + "ansible_ssh_pass": "St8rlingX*", + "external_oam_node_0_address": "10.10.10.13", + "external_oam_node_1_address": "10.10.10.14", + } + +#. On the system controller, run the ansible playbook to migrate the |AIO-SX| + subcloud to an |AIO-DX|. + + For example, if the subcloud name is 'subcloud1', enter: + + .. code-block:: none + + ~(keystone_admin)$ ansible-playbook /usr/share/ansible/stx-ansible/playbooks/migrate_sx_to_dx.yml -e @migrate-subcloud1-overrides-EXAMPLE.yml -i subcloud1, -v + + The ansible playbook will lock the subcloud's controller-0, if it not + already locked, apply the configuration changes to convert the subcloud to + an |AIO-DX| system with a single controller, and unlock controller-0. + Wait for the controller to reset and come back up to an operational state. + +#. Software install and configure the second controller for the subcloud. + + For instructions on installing and configuring controller-1 in an + |AIO-DX| setup to continue with the migration, see |inst-doc|. + +.. only:: partner + + .. include:: ../_includes/migrate-an-aiosx-subcloud-to-an-aiodx-subcloud.rest + +.. _manually-migrate-a-subcloud-from-AIO-SX-to-AIO-DX: + +================================================= +Manually Migrate a Subcloud from AIO-SX to AIO-DX +================================================= + +As an alternative to using the Ansible playbook, use the following procedure +to manually migrate a subcloud from |AIO-SX| to |AIO-DX|. Perform the following +commands on the |AIO-SX| subcloud. + +.. rubric:: |proc| + +#. If not already locked, lock the active controller. + + .. code-block:: none + + ~(keystone_admin)$ system host-lock controller-0 + +#. Change the system mode to 'duplex'. + + .. code-block:: none + + ~(keystone_admin)$ system modify -m duplex + +#. Add the |OAM| unit IP addresses of controller-0 and controller-1. + + For example, the |OAM| subnet is 10.10.10.0/24 and uses 10.10.10.13 and + 10.10.10.14 for the unit IP addresses of controller-0 and controller-1 + respectively. The existing |OAM| IP address of the |AIO-SX| system will be + used as the OAM floating IP address of the new |AIO-DX| system. + + .. code-block:: none + + ~(keystone_admin)$ system oam-modify oam_c0_ip=10.10.10.13 oam_c1_ip=10.10.10.14 + +#. Unlock the controller. + + .. code-block:: none + + ~(keystone_admin)$ system host-unlock controller-0 + + Wait for the controller to reset and come back up to an operational state. + +#. Software install and configure the second controller for the subcloud. + + For instructions on installing and configuring controller-1 in an + |AIO-DX| setup to continue with the migration, see |inst-doc|. + +