.. begin-aio-sx-install-verify-ip-connectivity External connectivity is required to run the Ansible bootstrap playbook. The StarlingX boot image will |DHCP| out all interfaces so the server may have obtained an IP address and have external IP connectivity if a |DHCP| server is present in your environment. Verify this using the :command:`ip addr` and :command:`ping 8.8.8.8` commands. Otherwise, manually configure an IP address and default IP route. Use the PORT, IP-ADDRESS/SUBNET-LENGTH and GATEWAY-IP-ADDRESS applicable to your deployment environment. :: sudo ip address add / dev sudo ip link set up dev sudo ip route add default via dev ping 8.8.8 .. end-aio-sx-install-verify-ip-connectivity .. begin-config-controller-0-oam-interface-sx The following example configures the |OAM| interface on a physical untagged ethernet port, use |OAM| port name that is applicable to your deployment environment, for example eth0: :: ~(keystone_admin)$ OAM_IF= ~(keystone_admin)$ system host-if-modify controller-0 $OAM_IF -c platform ~(keystone_admin)$ system interface-network-assign controller-0 $OAM_IF oam To configure a vlan or aggregated ethernet interface, see |node-interfaces-index|. .. end-config-controller-0-oam-interface-sx .. begin-config-controller-0-ntp-interface-sx .. code-block:: none ~(keystone_admin)$ system ntp-modify ntpservers=0.pool.ntp.org,1.pool.ntp.org To configure |PTP| instead of |NTP|, see |ptp-server-config-index|. .. end-config-controller-0-ntp-interface-sx .. begin-config-controller-0-OS-k8s-sriov-sx #. Configure the Kubernetes |SRIOV| device plugin. :: ~(keystone_admin)$ system host-label-assign controller-0 sriovdp=enabled #. |optional| If you are planning on running |DPDK| in Kubernetes hosted application containers on this host, configure the number of 1G Huge pages required on both |NUMA| nodes. .. code-block:: bash # assign 10x 1G huge page on processor/numa-node 0 on controller-0 to applications ~(keystone_admin)$ system host-memory-modify -f application controller-0 0 -1G 10 # assign 10x 1G huge page on processor/numa-node 1 on controller-0 to applications ~(keystone_admin)$ system host-memory-modify -f application controller-0 1 -1G .. end-config-controller-0-OS-k8s-sriov-sx .. begin-config-controller-0-OS-add-cores-sx 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. .. code-block:: bash ~(keystone_admin)$ system host-cpu-modify -f platform -p0 6 controller-0 .. end-config-controller-0-OS-add-cores-sx .. begin-config-controller-0-OS-vswitch-sx To deploy |OVS-DPDK|, run the following command: .. parsed-literal:: ~(keystone_admin)$ system modify --vswitch_type |ovs-dpdk| Default recommendation for an |AIO|-controller is to use a single core for |OVS-DPDK| vSwitch. .. code-block:: bash # assign 1 core on processor/numa-node 0 on controller-0 to vswitch ~(keystone_admin)$ system host-cpu-modify -f vswitch -p0 1 controller-0 When using |OVS-DPDK|, configure 1G of huge pages for vSwitch memory on each |NUMA| node on the host. It is recommended to configure 1x 1G huge page (-1G 1) for vSwitch memory on each |NUMA| node on the host. However, due to a limitation with Kubernetes, only a single huge page size is supported on any one host. If your application |VMs| require 2M huge pages, then configure 500x 2M huge pages (-2M 500) for vSwitch memory on each |NUMA| node on the host. .. code-block:: # Assign 1x 1G huge page on processor/numa-node 0 on controller-0 to vswitch ~(keystone_admin)$ system host-memory-modify -f vswitch -1G 1 controller-0 0 # Assign 1x 1G huge page on processor/numa-node 1 on controller-0 to vswitch ~(keystone_admin)$ system host-memory-modify -f vswitch -1G 1 controller-0 1 .. important:: |VMs| created in an |OVS-DPDK| environment must be configured to use huge pages to enable networking and must use a flavor with property: hw:mem_page_size=large Configure the huge pages for |VMs| in an |OVS-DPDK| environment on this host, the following commands are an example that assumes that 1G huge page size is being used on this host: .. code-block:: bash # assign 1x 1G huge page on processor/numa-node 0 on controller-0 to applications ~(keystone_admin)$ system host-memory-modify -f application -1G 10 controller-0 0 # assign 1x 1G huge page on processor/numa-node 1 on controller-0 to applications ~(keystone_admin)$ system host-memory-modify -f application -1G 10 controller-0 1 .. note:: After controller-0 is unlocked, changing vswitch_type requires locking and unlocking controller-0 to apply the change. .. end-config-controller-0-OS-vswitch-sx .. begin-config-controller-0-OS-add-fs-sx .. note:: Both cannot exist at the same time. Add an 'instances' filesystem .. code-block:: bash ~(keystone_admin)$ export NODE=controller-0 # Create ‘instances’ filesystem ~(keystone_admin)$ system host-fs-add ${NODE} instances= Or add a 'nova-local' volume group: .. code-block:: bash ~(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 .. end-config-controller-0-OS-add-fs-sx .. begin-config-controller-0-OS-data-interface-sx .. code-block:: bash ~(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} ~(keystone_admin)$ system host-if-modify -m 1500 -n data1 -c data ${NODE} # 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} ${DATANET0} ~(keystone_admin)$ system interface-datanetwork-assign ${NODE} ${DATANET1} .. end-config-controller-0-OS-data-interface-sx