StarlingX/Installation Guide Virtual Environment/Controller Storage
Contents
Standard Controller Storage
Controller-0 Host Installation
Installing controller-0 involves initializing a host with software and then applying a configuration from the command line. The configured host becomes Controller-0.
Procedure:
- Using an ISO image of StarlingX, initialize the controller host via Libvirt/QEMU.
- Configure the controller using the config_controller script.
Initializing Controller-0
This section describes how to initialize StarlingX in host Controller-0. Except where noted, all the commands must be executed from a console of the Workstation. Make sure Virtual Machine Manager is open.
Run the libvirt qemu setup script:
$ bash setup_standard_controller.sh
From the KVM/VirtManager window, power on the host to be configured as Controller-0 and show the virtual machine console and details:
- When the installer is loaded and the installer welcome screen appears in the Controller-0 host, select the type of installation "Standard Controller Configuration".
- Select the "Graphical Console" as the console to use during installation.
- Select "Standard Security Boot Profile" as the Security Profile.
- Monitor the initialization until it is complete. When initialization is complete, a reboot is initiated on the Controller-0 host, briefly displays a GNU GRUB screen, and then boots automatically into the StarlingX image.
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):
Changing password for wrsroot. (current) UNIX Password:
Enter a new password for the wrsroot account:
New password:
Enter the new password again to confirm it:
Retype new password:
Controller-0 is initialized with StarlingX, and is ready for configuration.
Configuring Controller-0
This section describes how to perform the Controller-0 configuration interactively. Except where noted, all the commands must be executed from the console of the active controller (here assumed to be controller-0.
When run interactively, the config_controller script presents a series of prompts for initial configuration of StarlingX. The script is used to configure the first controller in the StarlingX cluster as controller-0. The prompts are grouped by configuration area. To start the script interactively, use the following command with no parameters:
controller-0:~$ sudo config_controller System Configuration ================ Enter ! at any prompt to abort... ...
Select [y] for System Date and Time:
System date and time: ----------------------------- Is the current date and time correct? [y/N]: y
Accept default [UTC] for System timezone:
System timezone: ------------------------ Please input the timezone[UTC]:
Select default [N] for Distributed Cloud Configuration:
Distributed Cloud Configuration: ----------------------------------------- Configure Distributed Cloud System Controller [y/N]: N
For the rest of the options, accept all the default values, the output when config_controller script is run interactively continues as follows:
PXEBoot Network Management Network Infrastructure Network External OAM Network Cloud Authentication System Configuration ... WARNING: Command should only be run from the console. Continuing with this terminal may cause loss of connectivity and configuration failure ... Apply the above configuration? [y/n]: y Applying configuration (this will take several minutes): 01/08: Creating bootstrap configuration ... DONE 02/08: Applying bootstrap manifest ... DONE 03/08: Persisting local configuration ... DONE 04/08: Populating initial system inventory ... DONE 05:08: Creating system configuration ... DONE 06:08: Applying controller manifest ... DONE 07:08: Finalize controller configuration ... DONE 08:08: Waiting for service activation ... DONE Configuration was applied Please complete any out of service commissioning steps with system commands and unlock controller to proceed.
Controller-0 and System Provision
Configuring Provider Networks at Installation
You must set up provider networks at installation so that you can attach data interfaces and unlock the compute nodes.
On Controller-0, acquire Keystone administrative privileges:
controller-0:~$ source /etc/nova/openrc
Set up one provider network of the vlan type, named providernet-a:
[wrsroot@controller-0 ~(keystone_admin)]$ neutron providernet-create providernet-a --type=vlan [wrsroot@controller-0 ~(keystone_admin)]$ neutron providernet-range-create --name providernet-a-range1 --range 100-400 providernet-a
Unlocking Controller-0
You must unlock controller-0 so that you can use it to install the remaining hosts. On Controller-0, acquire Keystone administrative privileges:
controller-0:~$ source /etc/nova/openrc
Use the system host-unlock command:
[wrsroot@controller-0 ~(keystone_admin)]$ system host-unlock controller-0
The host is rebooted. During the reboot, the command line is unavailable, and any ssh connections are dropped. To monitor the progress of the reboot, use the controller-0 console.
Verifying the Controller-0 Configuration
On Controller-0, acquire Keystone administrative privileges:
controller-0:~$ source /etc/nova/openrc
Verify that the Titanium Cloud controller services are running:
[wrsroot@controller-0 ~(keystone_admin)]$ nova service-list +--------------------------------------+------------------+--------------+----------+---------+-------+ ... | Id | Binary | Host | Zone | Status | State | ... +--------------------------------------+------------------+--------------+----------+---------+-------+ ... | d7cdfaf0-9394-4053-b752-d609c837b729 | nova-conductor | controller-0 | internal | enabled | up | ... | 692c2659-7188-42ec-9ad1-c88ac3020dc6 | nova-scheduler | controller-0 | internal | enabled | up | ... | 5c7c9aad-696f-4dd1-a497-464bdd525e0c | nova-consoleauth | controller-0 | internal | enabled | up | ... +--------------------------------------+------------------+--------------+----------+---------+-------+ ...
If one of the listed services is down please reenable
#!/usr/bin/env bash source /etc/nova/openrc ALL_DISABLED_SERVICES=`nova service-list | grep disabled | awk -F "|" '{print $2}'` for service in $ALL_DISABLED_SERVICES; do nova service-force-down --unset ${service} nova service-enable ${service} done
Verify that controller-0 is unlocked, enabled, and available:
[wrsroot@controller-0 ~(keystone_admin)]$ system host-list +----+--------------+-------------+----------------+-------------+--------------+ | id | hostname | personality | administrative | operational | availability | +----+--------------+-------------+----------------+-------------+--------------+ | 1 | controller-0 | controller | unlocked | enabled | available | +----+--------------+-------------+----------------+-------------+--------------+
Compute Host Installation
After initializing and configuring an active controller, you can add and configure a backup controller and additional compute or storage hosts. Using the system host-add command, you add one or more host entries to the system inventory, assigning a personality, MAC address, IP address, and so on for each host, and then you power on the hosts, causing them to be recognized and configured according to the system inventory entry.
Initializing Compute Host
On Workstation, print information of virbr2 virtual interface associated to compute-N host:
$ sudo virsh domiflist compute-0 | grep virbr2 vnet5 bridge virbr2 e1000 52:54:00:b6:1f:c7 $ sudo virsh domiflist compute-1 | grep virbr2 vnet9 bridge virbr2 e1000 52:54:00:da:58:b4
On Controller-0, acquire Keystone administrative privileges:
controller-0:~$ source /etc/nova/openrc
On Controller-0, use the system host-add command to add compute-N host and specify their compute personality using their associated virbr2 virtual interfaces MAC addresses:
[wrsroot@controller-0 ~(keystone_admin)]$ system host-add -n compute-0 -p compute -m 52:54:00:15:7a:86 [wrsroot@controller-0 ~(keystone_admin)]$ system host-add -n compute-1 -p compute -m 52:54:00:aa:a2:46
On Workstation, start Compute-N hosts:
$ sudo virsh start compute-0 $ sudo virsh start compute-1
Once the message "Domain compute-N started" is displayed, from the KVM/VirtManager window, power on the host to be configured as compute-N and show the virtual machine console and details. The node is assigned the personality specified in the system host-add parameters. A display device menu appears on the console, with text customized for the personality (Controller, Storage, or Compute Node). You can start the installation manually by pressing Enter. Otherwise, it is started automatically after a few seconds.
On Controller-0, you can monitor the installation progress by running the system host-show command for the host periodically. Progress is shown in the install_state field.
[wrsroot@controller-0 ~(keystone_admin)]$ system host-show compute-0 | grep install | install_output | text | | install_state | booting | | install_state_info | None | [wrsroot@controller-0 ~(keystone_admin)]$ system host-show compute-1 | grep install | install_output | text | | install_state | booting | | install_state_info | None | [wrsroot@controller-0 ~(keystone_admin)]$
Wait while the compute-N is configured and rebooted. Up to 20 minutes may be required for a reboot, depending on hardware. When the reboot is complete, the compute-N is reported as Locked, Disabled, and Online.
On Controller-0
[wrsroot@controller-0 ~(keystone_admin)]$ system host-list +----+--------------+-------------+----------------+-------------+--------------+ | id | hostname | personality | administrative | operational | availability | +----+--------------+-------------+----------------+-------------+--------------+ | 1 | controller-0 | controller | unlocked | enabled | available | | 2 | compute-0 | compute | locked | disabled | online | | 3 | compute-1 | compute | locked | disabled | online | +----+--------------+-------------+----------------+-------------+--------------+ [wrsroot@controller-0 ~(keystone_admin)]$
Storage Host Provisioning
Compute Host Provision
You must configure the network interfaces and the storage disks on a host before you can unlock it.
On Controller-0, acquire Keystone administrative privileges:
controller-0:~$ source /etc/nova/openrc
Provisioning Network Interfaces on a Compute Host
On Controller-0, provision the data interfaces
[wrsroot@controller-0 ~(keystone_admin)]$ system host-if-modify -p providernet-a -nt data compute-0 ens6 [wrsroot@controller-0 ~(keystone_admin)]$ system host-if-modify -p providernet-a -nt data compute-1 ens6
Provisioning Storage on a Compute Host
On Controller-0, ensure that provider networks are available for the data interfaces. Provision the data interfaces:
system host-list --nowrap &> /dev/null && NOWRAP="--nowrap" ALL_COMPUTE=`system host-list $NOWRAP | grep compute- | cut -d '|' -f 3` # for each compute node, we should run the followings for compute in $ALL_COMPUTE; do system host-cpu-modify ${compute} -f vswitch -p0 1 system host-lvg-add ${compute} nova-local system host-pv-add ${compute} nova-local $(system host-disk-list ${compute} $NOWRAP | grep /dev/sdb | awk '{print $2}') system host-lvg-modify -b image -s 10240 ${compute} nova-local done
Unlocking a Compute Host
On Controller-0, use the system host-unlock command to unlock the node:
[wrsroot@controller-0 ~(keystone_admin)]$ system host-unlock compute-0 [wrsroot@controller-0 ~(keystone_admin)]$ system host-unlock compute-1
Wait while the compute-N is rebooted. Up to 10 minutes may be required for a reboot, depending on hardware. The host is rebooted, and its Availability State is reported as In-Test.
System Health Check
After a few minutes, all nodes shall be reported as Unlocked, Enabled, and Available:
On Controller-0
[wrsroot@controller-0 ~(keystone_admin)]$ system host-list +----+--------------+-------------+----------------+-------------+--------------+ | id | hostname | personality | administrative | operational | availability | +----+--------------+-------------+----------------+-------------+--------------+ | 1 | controller-0 | controller | unlocked | enabled | available | | 2 | compute-0 | compute | unlocked | enabled | available | | 3 | compute-1 | compute | unlocked | enabled | available | +----+--------------+-------------+----------------+-------------+--------------+