Installing Kernel Based Virtual Machine and User Plane VM
The SMI Cluster Manager utilizes the Kernel Based Virtualization (KVM) – a virtualization technology – to deploy the User Plane Function (UPF) VMs.
To deploy the KVM and UPF:
-
Setup the KVM and UPF configuration
The following is a sample KVM and UPF configuration
software upf <version_number> #For example, v748 url <repo_url> user <username> password <password> sha256 <sha256_hash> #For example, 9141df47188fb795f3805fd61abf8784d52d2916f32014f564572a6cbbf7c545 description "<description>" #For example, "UPF software version v748" exit # associating to Bare Metal environment environments bare-metal ucs-server exit # General cluster configuration clusters <cluster_name> environment bare-metal addons ingress bind-ip-address <bind_ip_address> addons cpu-partitioner enabled configuration master-virtual-ip <master_vip> configuration master-virtual-ip-interface <master_vip_interface_name> #For example, eno1 configuration allow-insecure-registry true node-defaults ssh-username <username> node-defaults initial-boot default-user <username> node-defaults initial-boot default-user-ssh-public-key "<SSH_Public_key>" node-defaults ssh-connection-private-key "-----BEGIN OPENSSH PRIVATE KEY----- <SSH_Private_Key> -----END OPENSSH PRIVATE KEY-----\n" node-defaults initial-boot default-user-password <password> node-defaults initial-boot netplan ethernets <ethernet_interface> #For example, eno1 dhcp4 false dhcp6 false gateway4 <gateway_ipv4_address> nameservers search <<domain_name>> nameservers addresses <nameserver_ipv4_addresses> exit # initial-boot section of node-defaults node-defaults ucs-server host initial-boot networking static-ip netmask <ipv4_address> node-defaults ucs-server host initial-boot networking static-ip gateway <ipv4_address> node-defaults ucs-server host initial-boot networking static-ip dns <ipv4_address> node-defaults ucs-server cimc user <username> node-defaults ucs-server cimc password <password> node-defaults ucs-server cimc remote-management sol enabled node-defaults ucs-server cimc remote-management sol baud-rate <baud_rate> node-defaults ucs-server cimc remote-management sol comport <com_port> node-defaults ucs-server cimc remote-management sol ssh-port <ssh_port> node-defaults ucs-server cimc networking ntp enabled node-defaults ucs-server cimc networking ntp servers <ntp_server_url> exit node-defaults os proxy https-proxy <proxy_server> node-defaults os proxy no-proxy <proxy_servers> node-defaults os ntp enabled node-defaults os ntp servers <ntp_server_url> #For monitoring the LCM's IP range (Optional) node-defaults kvm monitoring local-ip-address-range <ipv4address/subnet> exit node-type-defaults kvm os netplan-additions bridges <bridge_name> #For example, ex4000 addresses <ipv4_address/subnet> exit exit #node configuration nodes <node_name> #For example, kvm-1 ssh-ip <ssh_ipv4address> type kvm vms <vm_name> kvm-1 upf software <software_version> #For example, v748 upf networking management ip <ipv4addess> upf networking management netmask <ipv4address> upf networking management gateway <ipv4address> upf networking management interface-type bridge upf networking management bridge name <bridge_name> #For example, ex4000 type upf exit vms <vm_name> #For example, upf2 upf software <software_version> #For example, v748 upf networking management ip <ipv4address> upf networking management netmask <ipv4address> upf networking management gateway <ipv4address> upf networking management interface-type bridge upf networking management bridge name <bridge_name> #For example, ex4000 type upf exit #Default VM configuration vm-defaults upf day0 username username vm-defaults upf day0 password password ucs-server host initial-boot networking static-ip ipv4-address <ipv4address> ucs-server cimc ip-address <ipv4address> ucs-server cimc storage-adaptor create-virtual-drive true initial-boot netplan ethernets <interface_name> #For example, eno1 addresses <ipv4address/subnet> exit exit # control-plane node configuration ucs-server host initial-boot networking static-ip ipv4-address <ipv4address> ucs-server cimc ip-address <ipv4address> ucs-server cimc storage-adaptor create-virtual-drive true initial-boot netplan ethernets <interface_name> #For example, eno1 addresses <ipv4address/subnet> #Configure secure boot (optional) ucs-server cimc bios configured-boot-mode Uefi ucs-server cimc bios uefi-secure-boot yes exit exit ucs-server host initial-boot networking static-ip ipv4-address <ipv4address> ucs-server cimc ip-address <ipv4address> ucs-server cimc storage-adaptor create-virtual-drive true initial-boot netplan ethernets <interface_name> #For example, eno1 addresses <ipv4address/subnet> exit exit ops-centers cee <ops_center_name> #For example, cee repository-local <repo_name> cee-2020-02-0-i04 exit exit
NoteFor the Clusters on Edge deployments, you must define the ucs-server host initial-boot networking parameter. This reduces latency in bringing up the ISO media in CIMC. The following is an example configuration for deploying UPF on remote sites:
ucs-server host initial-boot networking static-ip ipv4-address <IPv4address> ucs-server host initial-boot networking static-ip netmask <IPv4address> ucs-server host initial-boot networking static-ip gateway <IPv4address> ucs-server host initial-boot networking static-ip dns <IPv4address>
If ucs-server host initial-boot networking parameter is not defined, the CIMC can timeout (and throw errors) while trying to download a SMI hard drive image instead of embedding it into the ISO file (30 MB versus 300 MB).
-
Login to the Cluster Manager CLI and enter configuration mode
-
Add the KVM and UPF configuration to deploy the KVM and UPF clusters.
NoteA sample configuration to deploy KVM and UPF clusters is provided here. -
Commit and exit the configuration
-
Validate the cluster configuration in the Cluster Manager
Example:
clusters cndp-testbed-cm actions validate-config run log-level DEBUG vmware-checks false k8s-node-checks false This will run validation. Are you sure? [no,yes] yes message 2020-05-06 19:50:38.597 INFO __main__: Verifying ntp config ...... ... ... 2020-05-06 19:50:45.723 INFO __main__: You have not run all checks together. Run clusters cndp-testbed-cm actions validate run valid TRUE
-
-
Configure KVM using the following configuration:
configure clusters <cluster_name> vm-defaults node-defaults kvm monitoring local-ip-address-range ip-address-and-prefix node-type-defaults kvm nodes type <k8s/kvm> vms <name> ssh-ip <kvm_IP> exit exit
-
Configure the UPF using the following configuration. The following parameters are specific to UPF configuration:
-
day 0 – Specifies the configuration applicable to the VM when it is first created. After initial creation (day 0), changes here will not apply unless the VM is deleted and redeployed.
-
username – Specifies the StarOS administrator username
-
password – Specifies the StarOS administrator password
-
syslog-ip – Specifies the StarOS logging syslog IP
-
-
networking – Specifies the configuration for the management interface.
NoteOther networks are expected to be provisioned as day 1 configuration by talking directly to the UPF.-
IP_Address - Specifies the IP address.
-
Netmask - Specifies the Netmask
-
Gateway - Specifies the Gateway
-
interface-type - Only bridge is supported for now
-
bridge name - Specifies the bridge name. For more details, see the bridge section defined in KVM configuration
-
domain-name - Specifies the domain name
-
name-servers - Specifies the name servers
-
-
ntp-servers – Specifies the NTP (Network Time Protocol) settings for UPF
-
software – Specifies the link to version of UPF to deploy
-
nodes [name] vms - Currently, two UPFs are allowed per node to align with NUMA.
-
type (upf - default upf) - Provides the ability for additional types of VMS in the future. Currently, UPF is the only choice.
-
-
os enable-passthrough [true_or_false] - To use PCI Passthrough to pass the NIC to UPF, enable-passthrough must be enabled. By default UPFs use SRIOV to configure the network interfaces.
-
os num-vfs-per-pf [vf_num] - Specifies the number of VFs created for each PF. The default value is 16.
-
-
Run the synchronization
clusters cluster_name actions sync run debug true
-
Monitor the progress of the cluster synchronization
monitor sync-logs cluster_name
-
-
Connect to the UPF node through console in KVM after the synchronization is complete
virsh console <upf_name> serial1--force
or SSH to UPF if the bridge is configured locally
ssh username@management_ip
NoteFor authentication, you can use the username and password configured in Day 0 configuration. Also, the SMI Cluster Manger is not required for operating the deployed VMs.
NOTES:
-
vm-defaults - Allows configuring the necessary values across all the VMs. It is available at cluster and node level.
-
kvm monitoring local-ip-address-range ip-address-and-prefix – Specifies the IP configuration for UPF LCM.
-
node-type-defaults kvm - Allows configuring the necessary values across all the KVMs.
-
type <k8s/kvm> - Allows only nodes of type kvm to be run
-
vms <name> - Specifies the VM configuration.
-
ssh-ip <kvm_IP> - Specifies the KVM IPv4 address