|
|
(12 intermediate revisions by 9 users not shown) |
Line 1: |
Line 1: |
− | = Installing StarlingX with containers: Standard Storage configuration = | + | {{Warning|header='''Warning - Deprecated'''|body='''This wiki page is out of date and now deprecated. For the current and upcoming versions, see [https://docs.starlingx.io/deploy_install_guides/index.html StarlingX Installation and Deployment guides]'''}} |
| | | |
− | this page is still under construction
| + | = Documentation Contribution = |
| | | |
− | == History ==
| + | You might consider contributing to StarlingX documentation if you find a bug or have a suggestions for improvement. |
| + | To get started: |
| | | |
− | * '''January 30, 2019:''' Initial draft | + | * Please use "[https://docs.starlingx.io/contributor/index.html Contribute]" guides. |
− | | + | * Launch a bug in [https://bugs.launchpad.net/starlingx/+bugs?field.tag=stx.docs StarlingX Launchpad] with the tag ''stx.docs''. |
− | == Introduction ==
| |
− | | |
− | These instructions are for a Standard, 2 controllers, 2 computes, 2 storage (2+2+2) configuration, in VirtualBox.
| |
− | | |
− | Other configurations are in development.
| |
− | | |
− | Installing on bare metal is also possible, however the the process would have to be adapted for the specific hardware configuration.
| |
− | | |
− | '''Note''': These instructions are valid for a load built on '''January 30, 2019''' or later.
| |
− | | |
− | == Building the Software ==
| |
− | | |
− | Refer to these instructions on the AIO SX page [[StarlingX/Containers/Installation#Building_the_Software| Building the Software]]
| |
− | | |
− | == Setup the VirtualBox VM ==
| |
− | | |
− | Refer to these instructions on the Standard 2+2 page [[StarlingX/Containers/InstallationOnStandard#Setup_the_VirtualBox_VM| Setup the VirtualBox VM]]
| |
− | | |
− | Remember to setup 2 controllers, 2 computes and 2 storage nodes.
| |
− | | |
− | === VirtualBox Nat Networking ===
| |
− | | |
− | Refer to these instructions on the Standard 2+2 page [[StarlingX/Containers/InstallationOnStandard#VirtualBox_Nat_Networking| VirtualBox Nat Networking]]
| |
− | | |
− | == Setup Controller-0 ==
| |
− | === Install StarlingX ===
| |
− | Boot the VM from the ISO media. Select the following options for installation:
| |
− | *Standard Controller Configuration
| |
− | *Graphical Console
| |
− | *STANDARD Security Boot Profile
| |
− | | |
− | Log into Controller-0 as user wrsroot, with password wrsroot. The first time you log in as wrsroot, you are required to change your password. Enter the current password (wrsroot):
| |
− | | |
− | <pre>
| |
− | Changing password for wrsroot.
| |
− | (current) UNIX Password: wrsroot
| |
− | </pre>
| |
− | | |
− | Enter a new password for the wrsroot account and confirm it.
| |
− | | |
− | === Run config_controller ===
| |
− | | |
− | <code>sudo config_controller </code>
| |
− | | |
− | Use default settings during config_controller, except for the following:
| |
− | * External OAM floating address: 10.10.10.3
| |
− | * External OAM address for first controller node: 10.10.10.4
| |
− | * External OAM address for second controller node 10.10.10.5
| |
− | * If you do not have direct access to the google DNS nameserver(s) 8.8.8.8 , 8.8.4.4 you will need to configure that when prompted. Press Enter to choose the default, or type a new entry. | |
− | * If you do not have direct access to the public docker registry (https://hub.docker.com/u/starlingx) and instead use a proxy for internet access, you will need to add proxy information when prompted. (Storyboard 2004710 was merged on Jan 30, 2019. )
| |
− | | |
− | The system configuration should look like this:
| |
− | <pre>
| |
− | System Configuration
| |
− | --------------------
| |
− | Time Zone: UTC
| |
− | System mode: duplex
| |
− | Distributed Cloud System Controller: no
| |
− | | |
− | PXEBoot Network Configuration
| |
− | -----------------------------
| |
− | Separate PXEBoot network not configured
| |
− | PXEBoot Controller floating hostname: pxecontroller
| |
− | | |
− | Management Network Configuration
| |
− | --------------------------------
| |
− | Management interface name: enp0s8
| |
− | Management interface: enp0s8
| |
− | Management interface MTU: 1500
| |
− | Management subnet: 192.168.204.0/24
| |
− | Controller floating address: 192.168.204.2
| |
− | Controller 0 address: 192.168.204.3
| |
− | Controller 1 address: 192.168.204.4
| |
− | NFS Management Address 1: 192.168.204.5
| |
− | NFS Management Address 2: 192.168.204.6
| |
− | Controller floating hostname: controller
| |
− | Controller hostname prefix: controller-
| |
− | OAM Controller floating hostname: oamcontroller
| |
− | Dynamic IP address allocation is selected
| |
− | Management multicast subnet: 239.1.1.0/28
| |
− | | |
− | Infrastructure Network Configuration
| |
− | ------------------------------------
| |
− | Infrastructure interface not configured
| |
− | | |
− | External OAM Network Configuration
| |
− | ----------------------------------
| |
− | External OAM interface name: enp0s3
| |
− | External OAM interface: enp0s3
| |
− | External OAM interface MTU: 1500
| |
− | External OAM subnet: 10.10.10.0/24
| |
− | External OAM gateway address: 10.10.10.1
| |
− | External OAM floating address: 10.10.10.3
| |
− | External OAM 0 address: 10.10.10.4
| |
− | External OAM 1 address: 10.10.10.5
| |
− | | |
− | DNS Configuration
| |
− | -----------------
| |
− | Nameserver 1: 8.8.8.8
| |
− | </pre>
| |
− | | |
− | TO DO: update this with proxy info
| |
− | | |
− | === Provisioning Controller-0 ===
| |
− | | |
− | ==== Set the ntp server ====
| |
− | Refer to these instructions on the AIO SX page [[StarlingX/Containers/Installation#Set_the_ntp_server| Set the ntp server]]
| |
− | | |
− | ==== Configure the vswitch type (optional) ====
| |
− | Refer to these instructions on the AIO SX page [[StarlingX/Containers/Installation#Configure_the_vswitch_type_.28optional.29| Configure the vswitch type]]
| |
− | | |
− | ==== Prepare the host for running the containerized services ====
| |
− | Refer to these instructions on the Standard 2+2 page [[StarlingX/Containers/InstallationOnStandard#Prepare_the_host_for_running_the_containerized_services| Prepare the host for running the containerized services]]
| |
− | | |
− | ==== Unlock Controller-0 ====
| |
− | source /etc/platform/openrc
| |
− | system host-unlock controller-0
| |
− | | |
− | == Install remaining hosts ==
| |
− | | |
− | === PXE boot hosts ===
| |
− | Power-on, the remaining hosts, they should PXEboot from the controller.
| |
− | | |
− | Press F-12 for network boot if they do not.
| |
− | | |
− | Once booted from PXE, hosts should be visible with Check with 'system host-list':
| |
− | | |
− | <pre>
| |
− | [wrsroot@controller-0 ~(keystone_admin)]$ system host-list
| |
− | +----+--------------+-------------+----------------+-------------+--------------+
| |
− | | id | hostname | personality | administrative | operational | availability |
| |
− | +----+--------------+-------------+----------------+-------------+--------------+
| |
− | | 1 | controller-0 | controller | unlocked | enabled | available |
| |
− | | 2 | None | None | locked | disabled | offline |
| |
− | | 3 | None | None | locked | disabled | offline |
| |
− | | 4 | None | None | locked | disabled | offline |
| |
− | | 5 | None | None | locked | disabled | offline |
| |
− | | 6 | None | None | locked | disabled | offline |
| |
− | +----+--------------+-------------+----------------+-------------+--------------+
| |
− | </pre>
| |
− | | |
− | === Configure host personalities === | |
− | | |
− | <pre>
| |
− | source /etc/platform/openrc
| |
− | system host-update 2 personality=controller
| |
− | system host-update 3 personality=storage
| |
− | system host-update 4 personality=storage
| |
− | system host-update 5 personality=worker hostname=compute-0
| |
− | system host-update 6 personality=worker hostname=compute-1
| |
− | </pre>
| |
− | | |
− | At this point hosts should start installing.
| |
− | | |
− | === Wait for hosts to become online ===
| |
− | Once all Nodes have been installed and rebooted, on Controller-0 list the hosts:
| |
− | | |
− | <pre>
| |
− | +----+--------------+-------------+----------------+-------------+--------------+
| |
− | | id | hostname | personality | administrative | operational | availability |
| |
− | +----+--------------+-------------+----------------+-------------+--------------+
| |
− | | 1 | controller-0 | controller | unlocked | enabled | available |
| |
− | | 2 | controller-1 | controller | locked | disabled | online |
| |
− | | 3 | storage-0 | storage | locked | disabled | online |
| |
− | | 4 | storage-1 | storage | locked | disabled | online |
| |
− | | 5 | compute-0 | worker | locked | disabled | online |
| |
− | | 6 | compute-1 | worker | locked | disabled | online |
| |
− | +----+--------------+-------------+----------------+-------------+--------------+
| |
− | </pre>
| |
− | | |
− | == Prepare the remaining hosts for running the containerized services ==
| |
− | | |
− | Refer to these instructions on the Standard 2+2 page [[StarlingX/Containers/InstallationOnStandard#Prepare_the_remaining_hosts_for_running_the_containerized_services| here]]
| |
− | | |
− | == (Optional) Setup Remote Storage ==
| |
− | | |
− | (Optional) Nova local storage will default to local image, but you can enable remote storage for root/ephemeral/swap disks in standard storage configurations by labeling the worker nodes.
| |
− | <pre>
| |
− | source /etc/platform/openrc
| |
− | for NODE in compute-0 compute-1; do
| |
− | system host-label-assign $NODE remote-storage=enabled
| |
− | done
| |
− | </pre>
| |
− | | |
− | == Provisioning controller-1 ==
| |
− | | |
− | === Add interfaces on Controller-1 ===
| |
− | | |
− | Refer to these instructions on the Standard 2+2 page [[StarlingX/Containers/InstallationOnStandard#Add_interfaces_on_Controller-1| here ]]
| |
− | | |
− | === Unlock Controller-1 ===
| |
− | <pre>
| |
− | source /etc/platform/openrc
| |
− | system host-unlock controller-1
| |
− | </pre>
| |
− | | |
− | Wait for node to be available:
| |
− | | |
− | <pre>
| |
− | +----+--------------+-------------+----------------+-------------+--------------+
| |
− | | id | hostname | personality | administrative | operational | availability |
| |
− | +----+--------------+-------------+----------------+-------------+--------------+
| |
− | | 1 | controller-0 | controller | unlocked | enabled | available |
| |
− | | 2 | controller-1 | controller | unlocked | enabled | available |
| |
− | | 3 | storage-0 | worker | locked | disabled | online |
| |
− | | 4 | storage-1 | worker | locked | disabled | online |
| |
− | | 5 | compute-0 | worker | locked | disabled | online |
| |
− | | 6 | compute-1 | worker | locked | disabled | online |
| |
− | +----+--------------+-------------+----------------+-------------+--------------+
| |
− | </pre>
| |
− | | |
− | * Ceph cluster shows a quorum with controller-0 and controller-1
| |
− | <pre>
| |
− | [root@controller-0 wrsroot(keystone_admin)]# ceph -s
| |
− | cluster 03b577a9-b368-4e1a-bc2a-f508903e124d
| |
− | health HEALTH_ERR
| |
− | no osds
| |
− | 1 mons down, quorum 0,1 controller-0,controller-1
| |
− | monmap e1: 3 mons at {controller-0=192.168.204.3:6789/0,controller-1=192.168.204.4:6789/0,storage-0=192.168.204.243:6789/0}
| |
− | election epoch 4, quorum 0,1 controller-0,controller-1
| |
− | osdmap e1: 0 osds: 0 up, 0 in
| |
− | flags sortbitwise,require_jewel_osds
| |
− | pgmap v2: 64 pgs, 1 pools, 0 bytes data, 0 objects
| |
− | 0 kB used, 0 kB / 0 kB avail
| |
− | 64 creating
| |
− | </pre>
| |
− | | |
− | == Provision storage ==
| |
− | | |
− | === Add the cluster-host interface on storage hosts ===
| |
− | | |
− | <pre>
| |
− | source /etc/platform/openrc
| |
− | system host-if-modify -c platform --networks cluster-host storage-0 $(system host-if-list -a storage-0 | awk '/mgmt0/{print $2}')
| |
− | system host-if-modify -c platform --networks cluster-host storage-1 $(system host-if-list -a storage-1 | awk '/mgmt0/{print $2}')
| |
− | </pre>
| |
− | | |
− | === Add an OSD to the storage hosts ===
| |
− | | |
− | <pre>
| |
− | source /etc/platform/openrc
| |
− | system host-stor-add storage-0 $(system host-disk-list storage-0 | awk '/sdb/{print $2}')
| |
− | system host-stor-add storage-1 $(system host-disk-list storage-1 | awk '/sdb/{print $2}')
| |
− | </pre>
| |
− | | |
− | === Unlock the storage hosts ===
| |
− | | |
− | <pre>
| |
− | source /etc/platform/openrc
| |
− | system host-unlock storage-0
| |
− | system host-unlock storage-1
| |
− | </pre>
| |
− | | |
− | * Ceph cluster shows HEALTH_OK
| |
− | | |
− | ceph -s
| |
− | | |
− | <pre>
| |
− | cluster 03b577a9-b368-4e1a-bc2a-f508903e124d
| |
− | health HEALTH_OK
| |
− | monmap e1: 3 mons at {controller-0=192.168.204.3:6789/0,controller-1=192.168.204.4:6789/0,storage-0=192.168.204.243:6789/0}
| |
− | election epoch 6, quorum 0,1,2 controller-0,controller-1,storage-0
| |
− | osdmap e15: 2 osds: 2 up, 2 in
| |
− | flags sortbitwise,require_jewel_osds
| |
− | pgmap v23: 64 pgs, 1 pools, 0 bytes data, 0 objects
| |
− | 67584 kB used, 100234 MB / 100300 MB avail
| |
− | 64 active+clean
| |
− | </pre>
| |
− | | |
− | == Provision Computes ==
| |
− | | |
− | === Setup the cluster-host interfaces on the computes ===
| |
− | | |
− | TODO: Why is this step different than Standard
| |
− | | |
− | <pre>
| |
− | source /etc/platform/openrc
| |
− | system host-if-modify -c platform --networks cluster-host compute-0 $(system host-if-list -a compute-0 | awk '/mgmt0/{print $2}')
| |
− | system host-if-modify -c platform --networks cluster-host compute-1 $(system host-if-list -a compute-1 | awk '/mgmt0/{print $2}')
| |
− | </pre>
| |
− | | |
− | === Configure data interfaces for computes ===
| |
− | | |
− | Refer to these instructions on the Standard 2+2 page [[StarlingX/Containers/InstallationOnStandard#Configure_data_interfaces_for_computes| Configure data interfaces for computes]]
| |
− | | |
− | === Create volume groups for computes ===
| |
− | TODO: Determine if we can reference [[StarlingX/Containers/InstallationOnStandard#Create_the_volume_group_for_nova needs to be changed | this]] or if it makes sense for these to be different.
| |
− | | |
− | Create 2 partitions on the root disk (/dev/sda).
| |
− | | |
− | Assign /dev/sda6 (4GB) to the cgts-vg.
| |
− | | |
− | Assign /dev/sda7 (28G) to nova-local
| |
− | | |
− | <pre>
| |
− | for COMPUTE in compute-0 compute-1; do
| |
− | ROOT_DISK=$(system host-show ${COMPUTE} | grep rootfs | awk '{print $4}')
| |
− | ROOT_DISK_UUID=$(system host-disk-list ${COMPUTE} --nowrap | awk /${ROOT_DISK}/'{print $2}')
| |
− | AVAIL_SIZE=$(system host-disk-list ${COMPUTE} | awk /${ROOT_DISK}/'{printf("%d",$12)}')
| |
− | CGTS_PARTITION_SIZE=4
| |
− | NOVA_PARTITION_SIZE=$(($AVAIL_SIZE - $CGTS_PARTITION_SIZE))
| |
− | CGTS_PARTITION=$(system host-disk-partition-add -t lvm_phys_vol ${COMPUTE} ${ROOT_DISK_UUID} ${CGTS_PARTITION_SIZE})
| |
− | CGTS_PARTITION_UUID=$(echo ${CGTS_PARTITION} | grep -ow "| uuid | [a-z0-9\-]* |" | awk '{print $4}')
| |
− | NOVA_PARTITION=$(system host-disk-partition-add -t lvm_phys_vol ${COMPUTE} ${ROOT_DISK_UUID} ${NOVA_PARTITION_SIZE})
| |
− | NOVA_PARTITION_UUID=$(echo ${NOVA_PARTITION} | grep -ow "| uuid | [a-z0-9\-]* |" | awk '{print $4}')
| |
− | system host-lvg-add ${COMPUTE} cgts-vg
| |
− | system host-pv-add ${COMPUTE} cgts-vg ${CGTS_PARTITION_UUID}
| |
− | system host-lvg-add ${COMPUTE} nova-local
| |
− | system host-pv-add ${COMPUTE} nova-local ${NOVA_PARTITION_UUID}
| |
− | system host-lvg-modify -b image ${COMPUTE} nova-local
| |
− | done
| |
− | </pre>
| |
− | | |
− | === Unlock the Computes ===
| |
− | <pre>
| |
− | for COMPUTE in compute-0 compute-1; do
| |
− | system host-unlock $COMPUTE
| |
− | done
| |
− | </pre>
| |
− | | |
− | == Using sysinv to bring up/down the containerized services ==
| |
− | | |
− | === Generate the stx-openstack application tarball ===
| |
− | | |
− | Refer to these instructions on the AIO SX page [[StarlingX/Containers/Installation#Generate_the_stx-openstack_application_tarball| Generate the stx-openstack application tarball]]
| |
− | | |
− | === Stage application for deployment ===
| |
− | | |
− | Refer to these instructions on the AIO SX page [[StarlingX/Containers/Installation#Stage_application_for_deployment| Stage application for deployment]]
| |
− | | |
− | === Bring Up Services ===
| |
− | | |
− | Refer to these instructions on the AIO SX page [[StarlingX/Containers/Installation#Bring_Up_Services| Bring Up Services]]
| |
− | | |
− | === Verify the cluster endpoints ===
| |
− | | |
− | Refer to these instructions on the AIO SX page [[StarlingX/Containers/Installation#Verify_the_cluster_endpoints| here ]]
| |
− | | |
− | == Provider/tenant networking setup ==
| |
− | | |
− | Refer to these instructions on the AIO SX page [[StarlingX/Containers/Installation#Provider.2Ftenant_networking_setup| here ]]
| |
− | | |
− | == Additional Setup Instructions ==
| |
− | | |
− | Refer to these instructions on the AIO SX page [[StarlingX/Containers/Installation#Additional_Setup_Instructions| Additional Setup Instructions]]
| |
− | | |
− | == Horizon access ==
| |
− | | |
− | Refer to these instructions on the AIO SX page [[StarlingX/Containers/Installation#Horizon_access| here ]]
| |
− | | |
− | == Known Issues and Troubleshooting ==
| |
− | | |
− | None
| |
You might consider contributing to StarlingX documentation if you find a bug or have a suggestions for improvement.
To get started: