Jump to: navigation, search

Difference between revisions of "StarlingX/Containers/InstallationOnStandardStorage"

(Prepare the remaining hosts for running the containerized services)
 
(13 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]]
 
 
 
==== Enable Ceph Backend ====
 
 
 
Refer to these instructions on the Standard 2+2 page [[StarlingX/Containers/InstallationOnStandard#Enable_the_Ceph_backend|  Enable the Ceph backend]]
 
 
 
==== 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
 

Latest revision as of 19:21, 8 August 2019

Warning icon.svg Warning - Deprecated

This wiki page is out of date and now deprecated. For the current and upcoming versions, see StarlingX Installation and Deployment guides

Documentation Contribution

You might consider contributing to StarlingX documentation if you find a bug or have a suggestions for improvement. To get started: