OpenStack-Specific Host Configuration

:

Important

  • These steps are required only if the StarlingX OpenStack application (stx-openstack) will be installed.

  • You can use the same OpenStack procedure for AIO-DX. Repeat the steps for both controller-0 and controller-1. When running the procedure on controller-1, update the commands accordingly by replacing controller-0 with controller-1.

  1. Assign OpenStack host labels to controller-0 in support of installing the stx-openstack manifest and helm-charts later.

    ~(keystone_admin)$ system host-label-assign controller-0 openstack-control-plane=enabled
    ~(keystone_admin)$ system host-label-assign controller-0 openstack-compute-node=enabled
    ~(keystone_admin)$ system host-label-assign controller-0 openvswitch=enabled

    Note

    If you have a NIC that supports SR-IOV, then you can enable it by using the following:

    ~(keystone_admin)$ system host-label-assign controller-0 sriov=enabled
    
  2. Due to the additional OpenStack services running on the AIO controller platform cores, additional platform cores may be required.

    A minimum of 4 platform cores are required, 6 platform cores are recommended.

    Increase the number of platform cores with the following commands. This example assigns 6 cores on processor/numa-node 0 on controller-0 to platform.

    ~(keystone_admin)$ system host-cpu-modify -f platform -p0 6 controller-0
    
  3. Due to the additional OpenStack services’ containers running on the controller host, the size of the Docker filesystem needs to be increased from the default size of 30G to 60G.

    # check existing size of docker fs
    system host-fs-list controller-0
    # check available space (Avail Size (GiB)) in cgts-vg LVG where docker fs is located
    system host-lvg-list controller-0
    # if existing docker fs size + cgts-vg available space is less than
    # 80G, you will need to add a new disk to cgts-vg.
    
       # Get device path of BOOT DISK
       system host-show controller-0 | fgrep rootfs
    
       # Get UUID of ROOT DISK by listing disks
       system host-disk-list controller-0
    
       # Add new disk to 'cgts-vg' local volume group
       system host-pv-add controller-0 cgts-vg <DISK_UUID>
       sleep 10    # wait for disk to be added
    
       # Confirm the available space and increased number of physical
       # volumes added to the cgts-vg colume group
       system host-lvg-list controller-0
    
    # Increase docker filesystem to 60G
    system host-fs-modify controller-0 docker=60
    
  4. Configure the host setting for the vSwitch.

    StarlingX has OVS (kernel-based) vSwitch configured as default, which:

    • Runs in a container; defined within the helm charts of stx-openstack manifest.

    • Shares the core(s) assigned to the platform.

    If you require better performance, OVS-DPDK (OVS with the Data Plane Development Kit, which is supported only on bare metal hardware) should be used:

    • Runs directly on the host (it is not containerized). Requires that at least 1 core be assigned/dedicated to the vSwitch function.

    To deploy the default containerized OVS:

    ~(keystone_admin)$ system modify --vswitch_type none
    

    This does not run any vSwitch directly on the host, instead, it uses the containerized OVS defined in the helm charts of stx-openstack manifest.

  5. Add an instances filesystem or set up a disk based nova-local volume group, which is needed for stx-openstack nova ephemeral disks.

    Note

    Both cannot exist at the same time.

    Add an ‘instances’ filesystem

    ~(keystone_admin)$ export NODE=controller-0
    
    # Create ‘instances’ filesystem
    ~(keystone_admin)$ system host-fs-add ${NODE} instances=<size>
    

    Or add a ‘nova-local’ volume group:

    ~(keystone_admin)$ export NODE=controller-0
    
    # Create ‘nova-local’ local volume group
    ~(keystone_admin)$ system host-lvg-add ${NODE} nova-local
    
    # Get UUID of an unused DISK to to be added to the ‘nova-local’ volume
    # group. CEPH OSD Disks can NOT be used
    # List host’s disks and take note of UUID of disk to be used
    ~(keystone_admin)$ system host-disk-list ${NODE}
    
    # Add the unused disk to the ‘nova-local’ volume group
    ~(keystone_admin)$ system host-pv-add ${NODE} nova-local <DISK_UUID>
    
  6. Configure data interfaces for controller-0.

    Data class interfaces are vSwitch interfaces used by vSwitch to provide VM virtio vNIC connectivity to OpenStack Neutron Tenant Networks on the underlying assigned Data Network.

    Important

    A compute-labeled AIO-controller host MUST have at least one Data class interface.

    • Configure the data interfaces for controller-0.

      ~(keystone_admin)$  NODE=controller-0
      
      # List inventoried host’s ports and identify ports to be used as ‘data’ interfaces,
      # based on displayed linux port name, pci address and device type.
      ~(keystone_admin)$ system host-port-list ${NODE}
      
      # List host’s auto-configured ‘ethernet’ interfaces,
      # find the interfaces corresponding to the ports identified in previous step, and
      # take note of their UUID
      ~(keystone_admin)$ system host-if-list -a ${NODE}
      
      # Modify configuration for these interfaces
      # Configuring them as ‘data’ class interfaces, MTU of 1500 and named data#
      ~(keystone_admin)$ system host-if-modify -m 1500 -n data0 -c data ${NODE} <data0-if-uuid>
      ~(keystone_admin)$ system host-if-modify -m 1500 -n data1 -c data ${NODE} <data1-if-uuid>
      
      # Create Data Networks that vswitch 'data' interfaces will be connected to
      ~(keystone_admin)$ DATANET0='datanet0'
      ~(keystone_admin)$ DATANET1='datanet1'
      ~(keystone_admin)$ system datanetwork-add ${DATANET0} vlan
      ~(keystone_admin)$ system datanetwork-add ${DATANET1} vlan
      
      # Assign Data Networks to Data Interfaces
      ~(keystone_admin)$ system interface-datanetwork-assign ${NODE} <data0-if-uuid> ${DATANET0}
      ~(keystone_admin)$ system interface-datanetwork-assign ${NODE} <data1-if-uuid> ${DATANET1}