-
Notifications
You must be signed in to change notification settings - Fork 6
Compute node configuration for UBUNTU 14.04 LTS
This page is obsolete.
The project OpenVIM, as well as OpenMANO, has been contributed to the open source community project Open Source MANO (OSM), hosted by ETSI.
Go to the URL osm.etsi.org to know more about OSM.
This article contains specific instructions to configure a compute node, ready for NFV data plane workloads, based on a Ubuntu 14.04 LTS Linux system.
Known issues:
In Ubuntu 14.04 LTS the two 10Gbps ports in a NIC are assigned to the same iommu group
n2@nfv106:~$ find /sys/kernel/iommu_groups/ -type l|grep "0000:81:00"
/sys/kernel/iommu_groups/40/devices/0000:81:00.0
/sys/kernel/iommu_groups/40/devices/0000:81:00.1
Due to this limitation physical function passthrough interfaces must be assigned by pairs (from the same iommu group), even if only one interface is needed. In case both paired interfaces are not assigned to the guest a VFIO error will be raised and the guest instance will not boot.
For further details see http://vfio.blogspot.com.es/2014/08/iommu-groups-inside-and-out.html. See the comments for specifics on this problem and links to the required kernel patches to fix it (not included in this documentation).
In order to apply the configuration, you can do it automatically by using a script that performs all actions apart from BIOS configuration and user key sharing. This script is only for Ubuntu 14.04 LTS.
wget https://github.com/nfvlabs/openvim/raw/master/scripts/configure-compute-node-UBUNTU14.04.sh
chmod +x ./configure-compute-node-UBUNTU14.04.sh
sudo ./configure-compute-node-UBUNTU14.04.sh <user> <iface>
The variable <user> is the host user used by openvim to connect via ssh (libvirt admin rights will be granted to that user). The variable <iface> is the host interface where Linux bridges will be provisioned.
It is also possible to do the process manually. The general guidelines mostly apply to compute nodes based on UBUNTU 14.04. The main differences are enumerated below.
#IOMMU TLB cache support#
- No action related to the kernel is required since Ubuntu 14.04 LTS includes a kernel version with support of huge page TLB cache in IOMMU.
#Huge pages reservation#
-
Enable the number of desired hugepages in the grub command line, adding the number of required hugepages
hugepages=24 (reserves 24GB)
#Pre-provision of Linux bridges# The network configuration files are different in Ubuntu compared to RHEL7.1/CentOS7.1. The example of the general guidelines must be modified to accomodate the changes:
For example, to create a bridge associated to the physical "em1" vlan 1111 interface, it is required to add three entries per bridge at /etc/network/interfaces file:
auto em1
iface em1 inet static
mtu 9000
auto em1.1111
iface em1.1001 inet static
mtu 9000
auto virbrManX
iface virbrManX inet static
bridge_ports em1.1111
mtu 9000
#Disable Apparmor#
Ubuntu uses apparmor, a secutity feature that blocks the access to some machine resources. This feature prevents the access to the hugepages by libvirt. To avoid this problem deactivate apparmor:
/etc/init.d/apparmor stop
update-rc.d -f apparmor remove