From 699823bfc9e202749e7b0546bb120aaa20f55782 Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Tue, 14 May 2019 16:19:39 -0700 Subject: [PATCH] Added deployment_install AIO-DX combo manual Draft of the combined deployment and installation instructions for the AIO-DX StarlingX configuration. Applied review comments from Tee Ngo and Al Bailey. Changed "tailf" to "tail -f" per Al Bailey review. I placed new/updated information from the AIO-DX wiki that was updated by Tee Ngo. I addressed Bart Wensley and Bob Churches comments. * Leaving section on "Set Ceph pool replication" for now. * Removed section on "Providernetworking setup (pre-Stein). * Removed the note in the "Providernetworking setup: Network Segment Ranges (Stein)" section. * Removed the "Bring Down Services" section. Patch 13: Removed the "Set Ceph pool replication" section. Also, removed "Stein" per Al Bailey. Change-Id: I196b2a309257b4fa8b8cceb079bbaadcd97a9257 Signed-off-by: Scott Rifenbark Signed-off-by: Abraham Arce Signed-off-by: Scott Rifenbark --- doc/source/deploy_install_guides/index.rst | 1 + .../latest/aio_duplex/index.rst | 1240 +++++++++++++++++ ...ngx-deployment-options-duplex-extended.png | Bin 0 -> 55323 bytes .../starlingx-deployment-options-duplex.png | Bin 0 -> 58816 bytes 4 files changed, 1241 insertions(+) create mode 100644 doc/source/deploy_install_guides/latest/aio_duplex/index.rst create mode 100644 doc/source/deploy_install_guides/latest/figures/starlingx-deployment-options-duplex-extended.png create mode 100644 doc/source/deploy_install_guides/latest/figures/starlingx-deployment-options-duplex.png diff --git a/doc/source/deploy_install_guides/index.rst b/doc/source/deploy_install_guides/index.rst index 1005f5dc3..4f5c2ac39 100755 --- a/doc/source/deploy_install_guides/index.rst +++ b/doc/source/deploy_install_guides/index.rst @@ -12,6 +12,7 @@ The following list provides help on choosing the correct deployment guide: :maxdepth: 1 latest/aio_simplex/index + latest/aio_duplex/index - Following are deployment and installation guides for past StarlingX releases that have been archived: diff --git a/doc/source/deploy_install_guides/latest/aio_duplex/index.rst b/doc/source/deploy_install_guides/latest/aio_duplex/index.rst new file mode 100644 index 000000000..77d5d827b --- /dev/null +++ b/doc/source/deploy_install_guides/latest/aio_duplex/index.rst @@ -0,0 +1,1240 @@ +====================== +All-in-one duplex R2.0 +====================== + +.. contents:: + :local: + :depth: 1 + + +------------ +Introduction +------------ + +The All-in-one duplex (AIO-DX) configuration option comes in standard +and extended options. + +************************** +All-in-one duplex standard +************************** + +The All-in-one duplex (AIO-DX) standard configuration option +provides all three cloud functions (controller, compute, and storage) +on two physical servers. +With these cloud functions, multiple application types can be deployed and +consolidated onto a protected pair of physical servers. + +.. figure:: ../figures/starlingx-deployment-options-duplex.png + :scale: 90% + :alt: All-In-One Simplex deployment configuration + + *All-in-one duplex standard configuration* + +Following are some benefits of the AIO-DX configuration: + +- Consolidate legacy applications that must run standalone on a server by using + multiple virtual machines on a single physical server. + +- Consolidate legacy applications that run on different operating systems or + different distributions of operating systems by using multiple virtual + machines on a single pair of physical servers. + +- Provide the storage backend solution using a two-node CEPH deployment across two servers. + +- HA Services run on the controller function across the two physical servers in either + Active/Active or Active/Standby mode. + +- Virtual Machines are scheduled on both Compute Functions. + +- During an overall server hardware fault, the following occurs: + + - All Controller HA Services go Active on the remaining healthy server. + + - All Virtual Machines are recovered on the remaining healthy server. + +- Only a small amount of cloud processing and storage power is required + with an All-in-one duplex configuration and protection against + overall server hardware faults is required. + +************************** +All-in-one duplex extended +************************** + +The All-in-one duplex extended configuration option extends the capacity of the +All-in-one duplex standard configuration option by adding up to four compute +nodes to the deployment. +The extended configuration option provides a capacity growth path for +someone starting with an All-in-one duplex standard configuration option. + +With this option, virtual machines can be scheduled on either of the +all-in-one controller nodes, the compute nodes, or both. + +.. figure:: ../figures/starlingx-deployment-options-duplex-extended.png + :scale: 90% + :alt: All-in-one duplex extended configuration + + *All-In-One Duplex Extended deployment configuration* + +This configuration is limited to four compute nodes as the controller function +on the all-in-one controllers has only a portion of the processing power of the +overall server. + +-------------------- +Installation Options +-------------------- + +You can install StarlingX in the following: + +- **Bare metal**: Real deployments of StarlingX are only supported on + physical servers. + +- **Virtual environment**: It should only be used for evaluation or + development purposes. + +Furthermore, StarlingX installed in virtual environments has a single option: + +- :doc:`Libvirt/QEMU ` + +------------ +Requirements +------------ + +********** +Bare metal +********** + +Required Servers: + +- Combined server (controller + compute): 2 + +^^^^^^^^^^^^^^^^^^^^^ +Hardware requirements +^^^^^^^^^^^^^^^^^^^^^ + +The recommended minimum requirements for the physical servers where +the All-in-one duplex will be deployed are: + +- Minimum processor: + + - Typical hardware form factor: + + - Dual-CPU Intel Xeon E5 26xx family (SandyBridge) 8 cores/socket + + - Low cost / low power hardware form factor + + - Single-CPU Intel Xeon D-15xx family, 8 cores + + +- Memory: 64 GB + +- BIOS: + + - Hyper-Threading technology: Enabled + + - Virtualization technology: Enabled + + - VT for directed I/O: Enabled + + - CPU power and performance policy: Performance + + - CPU C state control: Disabled + + - Plug & play BMC detection: Disabled + + +- Primary disk: + + - 500 GB SDD or NVMe + + +- Additional disks: + + - Zero or more 500 GB disks (min. 10K RPM) + + +- Network ports + + .. note:: All-in-one duplex configuration requires one or more data ports. + This configuration does not require a management port. + + - Management: 10GE + + - OAM: 10GE + + - Data: n x 10GE + + +^^^^^^^^^^^^^^^^^^^^^^^^ +NVMe drive as boot drive +^^^^^^^^^^^^^^^^^^^^^^^^ + +To use a Non-Volatile Memory Express (NVMe) drive as the boot drive for any of +your nodes, you must configure your host and adjust kernel parameters during +installation: + +- Configure the host to be in UEFI mode. + +- Edit the kernel boot parameter. + After you are presented with the StarlingX ISO boot options and after + you have selected the preferred installation option + (e.g. Standard Configuration / All-in-One Controller Configuration), press the + TAB key to edit the kernel boot parameters. + Modify the **boot_device** and **rootfs_device** from the default **sda** so + that it is the correct device name for the NVMe drive (e.g. "nvme0n1"). + + :: + + vmlinuz rootwait console=tty0 inst.text inst.stage2=hd:LABEL=oe_iso_boot + inst.ks=hd:LABEL=oe_iso_boot:/smallsystem_ks.cfg boot_device=nvme0n1 + rootfs_device=nvme0n1 biosdevname=0 usbcore.autosuspend=-1 inst.gpt + security_profile=standard user_namespace.enable=1 initrd=initrd.img + +******************* +Virtual environment +******************* + +The recommended minimum requirements for the workstation, hosting the +virtual machine(s) where StarlingX will be deployed, include the following: + +^^^^^^^^^^^^^^^^^^^^^ +Hardware requirements +^^^^^^^^^^^^^^^^^^^^^ + +A workstation computer with: + +- Processor: x86_64 only supported architecture with BIOS enabled + hardware virtualization extensions + +- Cores: 8 (4 with careful monitoring of cpu load) + +- Memory: At least 32 GB RAM + +- Hard Disk: 500 GB HDD + +- Network: Two network adapters with active Internet connection + +^^^^^^^^^^^^^^^^^^^^^ +Software requirements +^^^^^^^^^^^^^^^^^^^^^ + +A workstation computer with: + +- Operating System: Newly installed Ubuntu 16.04 LTS 64-bit + +- If applicable, configured proxy settings + +- Git + +- KVM/VirtManager + +- Libvirt library + +- QEMU full-system emulation binaries + +- tools project + +- StarlingX ISO image + +-------------------------- +Setting up the workstation +-------------------------- + +This section describes how to set up the workstation computer that +hosts the virtual machine(s) where StarlingX will be deployed. + +****************************** +Updating your operating system +****************************** + +Before building an image, ensure your Linux distribution is current. +You must first update the local database list of available packages: + +:: + + $ sudo apt-get update + +************************ +Installing tools project +************************ + +Clone the tools project. +Typically, you clone this project while in your home directory: + +:: + + $ cd $HOME + $ git clone https://git.starlingx.io/tools + +**************************************** +Installing requirements and dependencies +**************************************** + +Navigate to the tools installation libvirt directory: + +:: + + $ cd $HOME/tools/deployment/libvirt/ + +Install the required packages: + +:: + + $ bash install_packages.sh + +****************** +Disabling firewall +****************** + +Unload the firewall and disable it during boot: + +:: + + $ sudo ufw disable + Firewall stopped and disabled on system startup + $ sudo ufw status + Status: inactive + +************************** +Prepare the virtual server +************************** + +Run the libvirt QEMU setup scripts to set up +virtualized OAM and management networks: + +:: + + $ bash setup_network.sh + +Building XML for definition of virtual servers: + +:: + + $ bash setup_configuration.sh -c duplex -i + +The default XML server definitions that are created by the previous script +are: + +- duplex-controller-0 +- duplex-controller-1 + +************************* +Power up a virtual server +************************* + +To power up the virtual server, use the following command form: + +:: + + $ sudo virsh start + +Following is an example where is "duplex-controller-0": + +:: + + $ sudo virsh start duplex-controller-0 + +******************************* +Access a virtual server console +******************************* + +The XML for virtual servers in the tools repo, deployment/libvirt, +provides both graphical and text consoles. +Access the graphical console in virt-manager by right-clicking on the +domain (i.e. the server) and selecting "Open". + +Access the textual console with the command "virsh console $DOMAIN", +where DOMAIN is the name of the server shown in virsh. + +When booting the controller-0 for the first time, both the serial and +graphical consoles present the initial configuration menu for the +cluster. +you can select the serial or graphical console for controller-0. +However, for the remaining nodes regardless of the option you selected, +you can only use serial. + +Open the graphic console on all servers before powering them on to +observe the boot device selection and PXI boot progress. +Run "virsh console $DOMAIN" command promptly after the boot process +completes in order to see the initial boot sequence, which follows +the boot device selection. +Once the boot process completes, you only have a few seconds to +run the command. + +------------------------------------------- +Getting or building the StarlingX ISO image +------------------------------------------- + +The following sub-sections describe how to get or build the +StarlingX ISO image. + +********************* +Building the Software +********************* + +Follow the standard build process in the `StarlingX Developer +Guide `__. + +Alternatively, you can use a pre-built ISO, which includes all +required packages provided by the `StarlingX CENGN +mirror `__. + +********** +Bare metal +********** + +For bare metal, you must have a bootable USB flash drive +that contains the StarlingX ISO image. + +******************* +Virtual environment +******************* + +For the virtual environment, copy the StarlingX ISO Image +to the tools deployment libvirt project directory: + +:: + + $ cp $HOME/tools/deployment/libvirt/ + +----------------------- +Setting up Controller-0 +----------------------- + +Installing controller-0 involves initializing a host with software +and then applying a bootstrap configuration from the command line. +The configured bootstrapped host becomes controller-0. + +Following is the general procedure: + +1. Have a USB device that contains a bootable StarlingX ISO. + +2. Be sure that USB device is plugged into a bootable USB slot on the server that + will be the Controller-0. + +3. Power on the server. + +4. Configure the controller by running the Ansible bootstrap playbook. + +************************* +Initializing controller-0 +************************* + +This section describes how to initialize StarlingX in host controller-0. + +.. note:: Except where noted, you must execute all the commands from a console on + the host. + +Follow this procedure to initialize the controller: + +1. Be sure your USB device that has the StarlingX ISO is plugged into + a bootable USB port on the host your are configuring as controller-0. + +2. Power on the host. + +3. Wait for the console to show the StarlingX ISO booting options: + + - **All-in-one Controller Configuration:** + + For this option, select "All-in-one Controller Configuration" for the + the type of installation from the installer welcome screen. + + - **Graphical Console:** + + Select "Graphical Console" as the console to use during + installation. + + - **Standard Security Boot Profile:** + + Select "Standard Security Boot Profile" as the Security Profile. + +4. Monitor the initialization. When it completes, a reboot is initiated + on the controller-0 host and briefly displays a GNU GRUB screen after + which the reboot automatically continues into the StarlingX image. + +5. Log into controller-0 as user "wrsroot" and use "wrsroot" as the password. + The first time you log in as "wrsroot", you are required to change your + password: + + :: + + Changing password for wrsroot. + (current) UNIX Password: wrsroot + + +6. Enter a new password for the "wrsroot" account and confirm the change. + Once you change the password, controller-0 is initialized with StarlingX + and is ready for configuration. + + +************************ +Configuring controller-0 +************************ + +This section describes how to configure controller-0 for local +bootstrap in VirtualBox by running the Ansible bootstrap playbook. + +.. note:: - For ease of use in development and controlled test environments, + you can provide passwords by specifying from the command line + an override file that is an unencrypted text file. + + - The wrsroot password is used for SSH authentication. + + - In production environments, you should store sensitive + information in the Ansible vault secret file and use + SSH keys rather than passwords for authentication. + +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Location of the controller bootstrap playbook +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +All StarlingX playbooks are located under the directory +/usr/share/ansible/stx-ansible/playbooks. +Consequently, the controller bootstrap playbook is located +at: /usr/share/ansible/stx-ansible/playbooks/bootstrap/. + +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Default bootstrap playbook settings +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The default inventory file, which resides in Ansible configuration directory +(i.e. /etc/ansible/hosts), contains one single host - the localhost. +You can override this file using a custom hosts file and the "-i option". +Doing so makes the file available for remote play through the Ansible +playbook. + +The /usr/share/ansible/stx-ansible/playbooks/bootstrap/host_vars/default.yml +file specifies the default configuration parameters. +You can overwrite these parameters in two ways: + +- Using either the --extra-vars or -e options at the command line. + +- Using an override file. + +Using the override file is the preferred option when multiple +parameters exist that need to be overwritten. + +By default Ansible looks for and imports user override files +in the sysadmin home directory ($HOME). +If you want to place these files in a different location, you +must specify the location by using the -e option +(e.g. -e "override_files_dir="). + +The override file must conform to the following naming convention: +:: + + .yml + +An example filename is localhost.yml. + +^^^^^^^^^^^^^^ +Password types +^^^^^^^^^^^^^^ + +For local bootstrap, two types of passwords exist: + +- **ansible_become_pass**: a Sudo password to run tasks that require + escalated privileges. + Most bootstrap tasks must be run as root. + Since the playbook is run by wrsroot user, this is the wrsroot password. + +- **admin_password**: A password used in when system commands, such as + a Horizon login, are executed. + +Additionally, if an automatic SSH login that uses an SSH key has not been +set up between the Ansible control node and the target controller, +another password is required: + +- **ansible_ssh_pass**: The password used to log into the target host(s). + +For all the passwords mentioned in this section, the defaults are +set to "St8rlingX*". + +^^^^^^^^^^^^^^^^^^^^ +Running the playbook +^^^^^^^^^^^^^^^^^^^^ + +To run the playbook, you need to first set up external connectivity. +This section describes how to set up external connectivity and +then provides two examples showing how to bootstrap controller-0 by +running the playbook. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Setting up external connectivity +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Use these commands to set up external connectivity: + +:: + + sudo su + export CONTROLLER0_OAM_CIDR=10.10.10.3/24 + export DEFAULT_OAM_GATEWAY=10.10.10.1 + ifconfig enp0s3 $CONTROLLER0_OAM_CIDR + ip route add default via $DEFAULT_OAM_GATEWAY dev enp0s3 + +~~~~~~~~~~~~~~~~~~~~~~ +Bootstrap controller-0 +~~~~~~~~~~~~~~~~~~~~~~ + +Following is an example that runs the local playbook using all the defaults, +including passwords being "St8rlingX*": + +:: + + ansible-playbook /usr/share/ansible/stx-ansible/playbooks/bootstrap/bootstrap.yml + +This next example runs the local playbook using an override file that provides +custom parameters that include admin and sysadmin passwords. +The override file is named "localhost.yml" and is located under +/home/sysadmin. +The override file has the following content: + +:: + + system_mode: duplex + management_subnet: 192.168.204.0/24 + dns_servers: + - 8.8.4.4 + external_oam_floating_ip: + admin_password: App70le* + ansible_become_pass: App70le* + +Run the bootstrap playbook: + +:: + + ansible-playbook /usr/share/ansible/stx-ansible/playbooks/bootstrap/bootstrap.yml + +This final example bootstraps controller-0 by running +the local playbook and using a custom sysadmin and admin password +specified in the command line: + +:: + + ansible-playbook /usr/share/ansible/stx-ansible/playbooks/bootstrap/bootstrap.yml -e "ansible_become_pass= admin_password=" + +.. note:: Ansible does not currently support specifying playbook + search paths. + Consequently, you must specify the full path to the bootstrap + playbook in the command line unless you are already in the + bootstrap playbook directory. + In the near future, a command alias called "bootstrap-controller" + will be provided for ease of use. + +************************* +Provisioning the platform +************************* + +The following subsections describe how to provision the +server being used as controller-0. +Provisioning makes many services available. + +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Configure OAM, Management, and Cluster Interface for controller-0 (Ansible bootstrap method only) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Use the following commands to configure OAM, Management, and Cluster Interface +for controller-0: + +:: + + source /etc/platform/openrc + OAM_IF=enp0s3 + MGMT_IF=enp0s8 + system host-if-modify controller-0 lo -c none + system host-if-modify controller-0 $OAM_IF --networks oam -c platform + system host-if-modify controller-0 $MGMT_IF -c platform --networks mgmt + system host-if-modify controller-0 $MGMT_IF -c platform --networks cluster-host + + +^^^^^^^^^^^^^^^^^^ +Set the NTP server +^^^^^^^^^^^^^^^^^^ + +Use the following command to configure the IP Addresses +of the remote Network Time Protocol (NTP) servers. +These servers are used for network time synchronization: + +:: + + source /etc/platform/openrc + system ntp-modify ntpservers=0.pool.ntp.org,1.pool.ntp.org + +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Configure the vSwitch type (optional) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This section describes how to configure the Virtual Switch, which +allows network entities to connect to virtual machines over a +virtual network. + +.. note:: As of March 29th 2019, Open vSwitch (OVS) running in a container + is deployed by default. + +To deploy OVS-DPDK (OVS with the Data Plane Development Kit, which +is supported only on baremetal hardware, run the following command: + +:: + + system modify --vswitch_type ovs-dpdk + # To set the vswitch type back to the default (i.e. OVS running in a container), run: + # system modify --vswitch_type none + +.. note:: - For virtual environments, only OVS running in a container is + supported. + + - You cannot modify the vSwitch type after controller-0 is + unlocked. + +^^^^^^^^^^^^^^^^^^^^^^^^^ +Configure data interfaces +^^^^^^^^^^^^^^^^^^^^^^^^^ + +Part of provisioning controller-0 is to configure the +data interfaces. Use the following to configure data interfaces: + +:: + + DATA0IF=eth1000 + DATA1IF=eth1001 + export COMPUTE=controller-0 + PHYSNET0='physnet0' + PHYSNET1='physnet1' + SPL=/tmp/tmp-system-port-list + SPIL=/tmp/tmp-system-host-if-list + system host-port-list ${COMPUTE} --nowrap > ${SPL} + system host-if-list -a ${COMPUTE} --nowrap > ${SPIL} + DATA0PCIADDR=$(cat $SPL | grep $DATA0IF |awk '{print $8}') + DATA1PCIADDR=$(cat $SPL | grep $DATA1IF |awk '{print $8}') + DATA0PORTUUID=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $2}') + DATA1PORTUUID=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $2}') + DATA0PORTNAME=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $4}') + DATA1PORTNAME=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $4}') + DATA0IFUUID=$(cat $SPIL | awk -v DATA0PORTNAME=$DATA0PORTNAME '($12 ~ DATA0PORTNAME) {print $2}') + DATA1IFUUID=$(cat $SPIL | awk -v DATA1PORTNAME=$DATA1PORTNAME '($12 ~ DATA1PORTNAME) {print $2}') + + # configure the datanetworks in StarlingX, prior to referencing it in the 'system host-if-modify command' + system datanetwork-add ${PHYSNET0} vlan + system datanetwork-add ${PHYSNET1} vlan + + # the host-if-modify '-p' flag is deprecated in favor of the '-d' flag for assignment of datanetworks. + system host-if-modify -m 1500 -n data0 -d ${PHYSNET0} -c data ${COMPUTE} ${DATA0IFUUID} + system host-if-modify -m 1500 -n data1 -d ${PHYSNET1} -c data ${COMPUTE} ${DATA1IFUUID} + +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Prepare the host for running the containerized services +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To prepare the host for running the containerized services, +apply all the node labels for each controller and their compute +functions: + +:: + + system host-label-assign controller-0 openstack-control-plane=enabled + system host-label-assign controller-0 openstack-compute-node=enabled + system host-label-assign controller-0 openvswitch=enabled + system host-label-assign controller-0 sriov=enabled + +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Set up partitions for controller-0 +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +You need to create partitions on the root disk and then +wait for them to become ready. + +- 34 GB for nova-local (mandatory). + +- 6 GB for the cgts-vg (optional). This extends the existing cgts + volume group. There should be sufficient space by default) + +Following is an example: + +:: + + export COMPUTE=controller-0 + + echo ">>> Getting root disk info" + ROOT_DISK=$(system host-show ${COMPUTE} | grep rootfs | awk '{print $4}') + ROOT_DISK_UUID=$(system host-disk-list ${COMPUTE} --nowrap | grep ${ROOT_DISK} | awk '{print $2}') + echo "Root disk: $ROOT_DISK, UUID: $ROOT_DISK_UUID" + + echo ">>>> Configuring nova-local" + NOVA_SIZE=34 + NOVA_PARTITION=$(system host-disk-partition-add -t lvm_phys_vol ${COMPUTE} ${ROOT_DISK_UUID} ${NOVA_SIZE}) + NOVA_PARTITION_UUID=$(echo ${NOVA_PARTITION} | grep -ow "| uuid | [a-z0-9\-]* |" | awk '{print $4}') + system host-lvg-add ${COMPUTE} nova-local + system host-pv-add ${COMPUTE} nova-local ${NOVA_PARTITION_UUID} + sleep 2 + + echo ">>> Wait for partition $NOVA_PARTITION_UUID to be ready." + while true; do system host-disk-partition-list $COMPUTE --nowrap | grep $NOVA_PARTITION_UUID | grep Ready; if [ $? -eq 0 ]; then break; fi; sleep 1; done + + echo ">>>> Extending cgts-vg" + PARTITION_SIZE=6 + CGTS_PARTITION=$(system host-disk-partition-add -t lvm_phys_vol ${COMPUTE} ${ROOT_DISK_UUID} ${PARTITION_SIZE}) + CGTS_PARTITION_UUID=$(echo ${CGTS_PARTITION} | grep -ow "| uuid | [a-z0-9\-]* |" | awk '{print $4}') + + echo ">>> Wait for partition $CGTS_PARTITION_UUID to be ready" + while true; do system host-disk-partition-list $COMPUTE --nowrap | grep $CGTS_PARTITION_UUID | grep Ready; if [ $? -eq 0 ]; then break; fi; sleep 1; done + + system host-pv-add ${COMPUTE} cgts-vg ${CGTS_PARTITION_UUID} + sleep 2 + + echo ">>> Waiting for cgts-vg to be ready" + while true; do system host-pv-list ${COMPUTE} | grep cgts-vg | grep adding; if [ $? -ne 0 ]; then break; fi; sleep 1; done + + system host-pv-list ${COMPUTE} + +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Configure Ceph for Controller-0 +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Use the following to configure Ceph for Controller-0: + +:: + + echo ">>> Enable primary Ceph backend" + system storage-backend-add ceph --confirmed + + echo ">>> Wait for primary ceph backend to be configured" + echo ">>> This step really takes a long time" + while [ $(system storage-backend-list | awk '/ceph-store/{print $8}') != 'configured' ]; do echo 'Waiting for ceph..'; sleep 5; done + + echo ">>> Ceph health" + ceph -s + + echo ">>> Add OSDs to primary tier" + + system host-disk-list controller-0 + system host-disk-list controller-0 | awk '/\/dev\/sdb/{print $2}' | xargs -i system host-stor-add controller-0 {} + system host-stor-list controller-0 + + echo ">>> ceph osd tree" + ceph osd tree + +^^^^^^^^^^^^^^^^^^^^^ +Unlock the controller +^^^^^^^^^^^^^^^^^^^^^ + +You must unlock controller-0 so that you can use it to install +controller-1. Use the system host-unlock command: + +:: + + system host-unlock controller-0 + +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Test for Ceph cluster operation +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Now, test that the ceph cluster is operational: + +:: + + ceph -s + cluster 6cb8fd30-622a-4a15-a039-b9e945628133 + health HEALTH_OK + monmap e1: 1 mons at {controller-0=127.168.204.3:6789/0} + election epoch 4, quorum 0 controller-0 + osdmap e32: 1 osds: 1 up, 1 in + flags sortbitwise,require_jewel_osds + pgmap v35: 1728 pgs, 6 pools, 0 bytes data, 0 objects + 39180 kB used, 50112 MB / 50150 MB avail + 1728 active+clean + + +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Boot the second AIO controller +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To boot the second VM (i.e. the VM without an ISO media mounted), +press the F12 key immediately. +Select the "lan" for the alternative boot option to force a +network boot. + +As the VM boots, a message appears on the controller-1 console +instructing you to configure the personality of the node. +Do so from a controller-0 shell using the following commands: + +:: + + source /etc/platform/openrc + system host-list + +The results indicate that ID 2 is the un-provisioned controller: + +:: + + +----+--------------+-------------+----------------+-------------+--------------+ + | id | hostname | personality | administrative | operational | availability | + +----+--------------+-------------+----------------+-------------+--------------+ + | 1 | controller-0 | controller | unlocked | enabled | available | + | 2 | None | None | locked | disabled | offline | + +----+--------------+-------------+----------------+-------------+--------------+ + +:: + + system host-update 2 personality=controller + +The packages install and the controller reboots. + +-------------------------------------- +Provisioning the second AIO controller +-------------------------------------- + +The following sub-sections show how to provision controller-1. + +****************************************** +Configure Data Interfaces for Controller-1 +****************************************** + +Configure the data interfaces as follows: + +:: + + source /etc/platform/openrc + export COMPUTE='controller-1' + PHYSNET0='physnet0' + PHYSNET1='physnet1' + OAM_IF=enp0s3 + DATA0IF=eth1000 + DATA1IF=eth1001 + NOWRAP="--nowrap" + + echo ">>> Configuring OAM Network" + system host-if-modify -n oam0 -c platform --networks oam ${COMPUTE} $(system host-if-list -a $COMPUTE $NOWRAP | awk -v OAM_IF=$OAM_IF '{if ($4 == OAM_IF) { print $2;}}') + + echo ">>> Configuring Cluster Host Interface" + system host-if-modify $COMPUTE mgmt0 --networks cluster-host + + echo ">>> Configuring Data Networks" + SPL=/tmp/tmp-system-port-list + SPIL=/tmp/tmp-system-host-if-list + system host-port-list ${COMPUTE} $NOWRAP > ${SPL} + system host-if-list -a ${COMPUTE} $NOWRAP > ${SPIL} + DATA0PCIADDR=$(cat $SPL | grep $DATA0IF |awk '{print $8}') + DATA1PCIADDR=$(cat $SPL | grep $DATA1IF |awk '{print $8}') + DATA0PORTUUID=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $2}') + DATA1PORTUUID=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $2}') + DATA0PORTNAME=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $4}') + DATA1PORTNAME=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $4}') + DATA0IFUUID=$(cat $SPIL | awk -v DATA0PORTNAME=$DATA0PORTNAME '($12 ~ DATA0PORTNAME) {print $2}') + DATA1IFUUID=$(cat $SPIL | awk -v DATA1PORTNAME=$DATA1PORTNAME '($12 ~ DATA1PORTNAME) {print $2}') + system host-if-modify -m 1500 -n data0 -p ${PHYSNET0} -c data ${COMPUTE} ${DATA0IFUUID} + system host-if-modify -m 1500 -n data1 -p ${PHYSNET1} -c data ${COMPUTE} ${DATA1IFUUID} + +*********************************************************** +Prepare controller-1 for running the containerized services +*********************************************************** + +Use the following to prepare controller-1 for running the +containerized services: + +:: + + source /etc/platform/openrc + + system host-label-assign controller-1 openstack-control-plane=enabled + system host-label-assign controller-1 openstack-compute-node=enabled + system host-label-assign controller-1 openvswitch=enabled + system host-label-assign controller-1 sriov=enabled + +********************************* +Setup Partitions for Controller-1 +********************************* + +You need to create partitions on the root disk and then +wait for them to become ready. + +- 34 GB for nova-local (mandatory). + +- 6 GB for the cgts-vg (optional). This extends the existing cgts + volume group. There should be sufficient space by default) + +:: + + source /etc/platform/openrc + export COMPUTE=controller-1 + + echo ">>> Getting root disk info" + ROOT_DISK=$(system host-show ${COMPUTE} | grep rootfs | awk '{print $4}') + ROOT_DISK_UUID=$(system host-disk-list ${COMPUTE} --nowrap | grep ${ROOT_DISK} | awk '{print $2}') + echo "Root disk: $ROOT_DISK, UUID: $ROOT_DISK_UUID" + + echo ">>>> Configuring nova-local" + NOVA_SIZE=34 + NOVA_PARTITION=$(system host-disk-partition-add -t lvm_phys_vol ${COMPUTE} ${ROOT_DISK_UUID} ${NOVA_SIZE}) + NOVA_PARTITION_UUID=$(echo ${NOVA_PARTITION} | grep -ow "| uuid | [a-z0-9\-]* |" | awk '{print $4}') + system host-lvg-add ${COMPUTE} nova-local + system host-pv-add ${COMPUTE} nova-local ${NOVA_PARTITION_UUID} + + echo ">>>> Extending cgts-vg" + PARTITION_SIZE=6 + CGTS_PARTITION=$(system host-disk-partition-add -t lvm_phys_vol ${COMPUTE} ${ROOT_DISK_UUID} ${PARTITION_SIZE}) + CGTS_PARTITION_UUID=$(echo ${CGTS_PARTITION} | grep -ow "| uuid | [a-z0-9\-]* |" | awk '{print $4}') + system host-pv-add ${COMPUTE} cgts-vg ${CGTS_PARTITION_UUID} + +******************************* +Configure Ceph for Controller-1 +******************************* + +Use the following to configure Ceph for Controller-1: + +:: + + source /etc/platform/openrc + + echo ">>> Get disk & tier info" + HOST="controller-1" + DISKS=$(system host-disk-list ${HOST}) + TIERS=$(system storage-tier-list ceph_cluster) + echo "Disks:" + echo "$DISKS" + echo "Tiers:" + echo "$TIERS" + + echo ">>> Add OSDs to primary tier" + system host-stor-add ${HOST} $(echo "$DISKS" | grep /dev/sdb | awk '{print $2}') --tier-uuid $(echo "$TIERS" | grep storage | awk '{print $2}') + + echo ">>> system host-stor-list ${HOST}" + system host-stor-list ${HOST} + echo ">>> ceph osd tree" + ceph osd tree + +******************* +Unlock controller-1 +******************* + +You must unlock controller-1 using the following commands: + +:: + + source /etc/platform/openrc + system host-unlock controller-1 + + +Wait for controller-1 to reboot before proceeding. + +------------------------------------------------------------------------- +Using the system CLI to bring up and take down the containerized services +------------------------------------------------------------------------- + +This section describes how to bring up and take down the containerized services. + +********************************************** +Generate the stx-openstack application tarball +********************************************** + +Each build on the CENGN mirror generates the `stx-openstack application +tarballs `__. + +Alternatively, in a development environment, you can run the following command +to construct the application tarballs: + +:: + + $MY_REPO_ROOT_DIR/cgcs-root/build-tools/build-helm-charts.sh + +You can find the resulting tarballs under +$MY_WORKSPACE/std/build-helm/stx. + +If the build-helm-charts.sh command is unable to find the charts, run +"build-pkgs" to build the chart rpms and then re-run the build-helm-charts.sh +command. + +******************************** +Stage application for deployment +******************************** + +Transfer the helm-charts-manifest.tgz application tarball onto your +active controller. + +Once the tarball is on the controller, use the system CLI to upload +the application tarball: + +:: + + system application-upload stx-openstack helm-charts-manifest.tgz + system application-list + +***************** +Bring Up Services +***************** + +Use the system CLI to apply the application: + +:: + + system application-apply stx-openstack + +You can monitor the progress by watching the system application-list: + +:: + + watch -n 5 system application-list + +Alternatively, you can monitor progress by tailing the Armada execution log: + +:: + + sudo docker exec armada_service tail -f stx-openstack-apply.log + +---------------------------- +Verify the cluster endpoints +---------------------------- + +You can verify the cluster endpoints using the following +command from a new shell as a root user: + +:: + + openstack endpoint list + +-------------------------------- +Provider/tenant networking setup +-------------------------------- + +This section describes how to set up provider/tenant networking. + +.. note:: The remaining networking steps are done using this root user. + +************************************************ +Providernetworking setup: Network Segment Ranges +************************************************ + +Use the following to create the network segment ranges: + +:: + + ADMINID=`openstack project list | grep admin | awk '{print $2}'` + PHYSNET0='physnet0' + PHYSNET1='physnet1' + + openstack network segment range create ${PHYSNET0}-a --network-type vlan --physical-network ${PHYSNET0} --minimum 400 --maximum 499 --private --project ${ADMINID} + + openstack network segment range create ${PHYSNET0}-b --network-type vlan --physical-network ${PHYSNET0} --minimum 10 --maximum 10 --shared + + openstack network segment range create ${PHYSNET1}-a --network-type vlan --physical-network ${PHYSNET1} --minimum 500 --maximum 599 --private --project ${ADMINID} + +*********************** +Tenant Networking setup +*********************** + +Setup tenant networking using the following: + +:: + + ADMINID=`openstack project list | grep admin | awk '{print $2}'` + PHYSNET0='physnet0' + PHYSNET1='physnet1' + PUBLICNET='public-net0' + PRIVATENET='private-net0' + INTERNALNET='internal-net0' + EXTERNALNET='external-net0' + PUBLICSUBNET='public-subnet0' + PRIVATESUBNET='private-subnet0' + INTERNALSUBNET='internal-subnet0' + EXTERNALSUBNET='external-subnet0' + PUBLICROUTER='public-router0' + PRIVATEROUTER='private-router0' + + neutron net-create --tenant-id ${ADMINID} --provider:network_type=vlan --provider:physical_network=${PHYSNET0} --provider:segmentation_id=10 --router:external ${EXTERNALNET} + neutron net-create --tenant-id ${ADMINID} --provider:network_type=vlan --provider:physical_network=${PHYSNET0} --provider:segmentation_id=400 ${PUBLICNET} + neutron net-create --tenant-id ${ADMINID} --provider:network_type=vlan --provider:physical_network=${PHYSNET1} --provider:segmentation_id=500 ${PRIVATENET} + neutron net-create --tenant-id ${ADMINID} ${INTERNALNET} + PUBLICNETID=`neutron net-list | grep ${PUBLICNET} | awk '{print $2}'` + PRIVATENETID=`neutron net-list | grep ${PRIVATENET} | awk '{print $2}'` + INTERNALNETID=`neutron net-list | grep ${INTERNALNET} | awk '{print $2}'` + EXTERNALNETID=`neutron net-list | grep ${EXTERNALNET} | awk '{print $2}'` + neutron subnet-create --tenant-id ${ADMINID} --name ${PUBLICSUBNET} ${PUBLICNET} 192.168.101.0/24 + neutron subnet-create --tenant-id ${ADMINID} --name ${PRIVATESUBNET} ${PRIVATENET} 192.168.201.0/24 + neutron subnet-create --tenant-id ${ADMINID} --name ${INTERNALSUBNET} --no-gateway ${INTERNALNET} 10.10.0.0/24 + neutron subnet-create --tenant-id ${ADMINID} --name ${EXTERNALSUBNET} --gateway 192.168.1.1 --disable-dhcp ${EXTERNALNET} 192.168.1.0/24 + neutron router-create ${PUBLICROUTER} + neutron router-create ${PRIVATEROUTER} + PRIVATEROUTERID=`neutron router-list | grep ${PRIVATEROUTER} | awk '{print $2}'` + PUBLICROUTERID=`neutron router-list | grep ${PUBLICROUTER} | awk '{print $2}'` + neutron router-gateway-set --disable-snat ${PUBLICROUTERID} ${EXTERNALNETID} + neutron router-gateway-set --disable-snat ${PRIVATEROUTERID} ${EXTERNALNETID} + neutron router-interface-add ${PUBLICROUTER} ${PUBLICSUBNET} + neutron router-interface-add ${PRIVATEROUTER} ${PRIVATESUBNET} + +----------------------------- +Additional Setup Instructions +----------------------------- + +This section provides additional commands as a reference. + +******************* +Bring Down Services +******************* + +Use the system CLI to uninstall the application. + +:: + + system application-remove stx-openstack + system application-list + +*************** +Delete Services +*************** + +Use the system CLI to delete the application definition. + +:: + + system application-delete stx-openstack + system application-list + +-------------- +Horizon access +-------------- + +This section describes Horizon access. + +:: + + # After successful armada manifest is applied, the following should be seen: + + kubectl get services -n openstack | grep horizon + horizon ClusterIP 10.104.34.245 80/TCP,443/TCP 13h + horizon-int NodePort 10.101.103.238 80:31000/TCP 13h + + The platform horizon UI is available at http:// + + $ curl -L http://10.10.10.3:8080 -so - | egrep '(PlugIn|)' + <title>Login - StarlingX + global.horizonPlugInModules = ['horizon.dashboard.project', 'horizon.dashboard.container-infra', 'horizon.dashboard.dc_admin', 'horizon.dashboard.identity', 'horizon.app.murano']; + + The containerized horizon UI is available at http://:31000 + + $ curl -L http://10.10.10.3:31000 -so - | egrep '(PlugIn|)' + <title>Login - StarlingX + global.horizonPlugInModules = ['horizon.dashboard.project', 'horizon.dashboard.identity']; + +-------------------------------- +Known Issues and Troubleshooting +-------------------------------- + +No known issues or troubleshooting procedures exist. + +--------------------------------------- +Deployment and installation terminology +--------------------------------------- + +Following are terms used when describing the AIO-SX deployment and installation. + +.. include:: ../deployment_terminology.rst + :start-after: incl-simplex-deployment-terminology: + :end-before: incl-simplex-deployment-terminology-end: + +.. include:: ../deployment_terminology.rst + :start-after: incl-standard-controller-deployment-terminology: + :end-before: incl-standard-controller-deployment-terminology-end: + +.. include:: ../deployment_terminology.rst + :start-after: incl-common-deployment-terminology: + :end-before: incl-common-deployment-terminology-end: + diff --git a/doc/source/deploy_install_guides/latest/figures/starlingx-deployment-options-duplex-extended.png b/doc/source/deploy_install_guides/latest/figures/starlingx-deployment-options-duplex-extended.png new file mode 100644 index 0000000000000000000000000000000000000000..411f499b553c39494e48af998167ad4956267f8d GIT binary patch literal 55323 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 z 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 b`D6|>p=F_Pt)w;h*LXS_`s(lD*3th9lx$ge literal 0 HcmV?d00001 diff --git a/doc/source/deploy_install_guides/latest/figures/starlingx-deployment-options-duplex.png b/doc/source/deploy_install_guides/latest/figures/starlingx-deployment-options-duplex.png new file mode 100644 index 0000000000000000000000000000000000000000..8bbda0879a21bd5ec347a02333a04f63c50b754f GIT binary patch literal 58816 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