Skip to content

Compute node configuration for UBUNTU 14.04 LTS

Gerardo García edited this page Nov 28, 2016 · 30 revisions

This page is obsolete.

The project 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://raw.githubusercontent.com/nfvlabs/openmano/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 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