Chapter 1 New Features and Changes

The Unbreakable Enterprise Kernel Release 3 (UEK R3) is Oracle's third major release of its heavily tested and optimized operating system kernel for Oracle Linux 6 and 7 on the x86-64 architecture. It is based on the mainline Linux kernel version 3.8.13.

The 3.8.13-118 release is the seventh quarterly update release for UEK R3. It includes security and bug fixes, as well as driver updates.

Oracle actively monitors upstream checkins and applies critical bug and security fixes to UEK R3.

UEK R3 uses the same versioning model as the mainline Linux kernel version. It is possible that some applications might not understand the 3.x versioning scheme. If an application does require a 2.6 context, you can use the uname26 wrapper command to start it. However, regular Linux applications are usually neither aware of, nor affected by, Linux kernel version numbers.

1.1 Notable Changes

  • Chelsio Terminator 4 (T4) Virtual Function network driver (cxgb4vf) version 1.0.0 has been added.

  • For Oracle Linux 7 only, support for network interface teaming has been added. The ethernet team device driver has been added, with support for active-backup mode, broadcast mode, load-balancing mode, and round-robin mode.

    Note

    UEK R3 does not support random mode.

  • Broadwell processor support.

  • Bug fixes for btrfs, ext4, xfs, and OCFS2 file systems.

This kernel update also includes updated dependencies for QLogic firmware. The dependencies should be resolved when you install the new kernel.

1.2 LXC Improvements

For containers created with the lxc-oracle template script, you can use the --privileged=rt option to give a container the ability to run real-time processes. If you specify the =rt (real-time) modifier, you can configure the lxc.cgroup.cpu.rt_runtime_us setting in the container's configuration file or when you start the container. This setting specifies the maximum continuous period in microseconds for which the container has access to CPU resources from the base period set by the system-wide value of cpu.rt_period_us. Otherwise, a container uses the system-wide value of cpu.rt_runtime_us, which might cause it to consume too many CPU resources.

If you use the --privileged=rt option, rebooting the container terminates all of its running processes and reboots it to a clean state.

This release also includes security and bug fixes.

1.3 Xen Improvements

  • Updated netfront and netback drivers.

1.4 Driver Updates

The Unbreakable Enterprise Kernel supports a wide range of hardware and devices. In close cooperation with hardware and storage vendors, several device drivers have been updated by Oracle.

Table 1.1 Updated Drivers in UEK R3 QU7

Manufacturer

Driver

Version

Description

Broadcom

bnx2

2.2.5p

NetXtreme II 1 Gigabit network adapter driver

Broadcom

bnx2fc

2.9.6

NetXtreme II FCoE driver

Broadcom

bnx2x

1.713.01

NetXtreme II 10 Gigabit network adapter driver

Chelsio

cxgb4vf

1.0.0

Terminator 4 (T4) Virtual Function network driver

Emulex

be2iscsi

10.6.0.1o
(with upstream patches)

OneConnect Open-iSCSI driver

Emulex

be2net

10.6.0.3
(with upstream patches)

OneConnect (Blade Engine 2) NIC driver

Emulex

lpfc

0:11.0.0.1

LightPulse Fibre Channel SCSI driver

Intel

i40e

1.3.21-k

Ethernet Connection XL710 network driver

Intel

i40evf

1.3.13

XL710 X710 virtual function network driver

Intel

ixgbe

4.1.2

10 Gigabit PCI Express network driver

Mellanox

mlx4_en

2.1.8 (Nov 10 2015)

ConnectX HCA Ethernet driver

QLogic

qla2xxx

8.07.00.26.39.0-k

Fibre channel HBA driver

VMware

vmxnet3

1.4.2.0-k

VMware VMXNET3 virtual ethernet driver


1.5 Technology Preview

The following features included in the Unbreakable Enterprise Kernel Release 3 are still under development, but are made available for testing and evaluation purposes. Do not use these features on production systems.

  • DRBD (Distributed Replicated Block Device)

    A shared-nothing, synchronously replicated block device (RAID1 over network), designed to serve as a building block for high availability (HA) clusters. It requires a cluster manager (for example, pacemaker) for automatic failover.

  • Kernel module signing facility

    Applies cryptographic signature checking to modules on module load, checking the signature against a ring of public keys compiled into the kernel. GPG is used to do the cryptographic work and determines the format of the signature and key data.

  • NFS over RDMA Client

    Enables you to use NFS over the RDMA transport on the Oracle InfiniBand stack. This is more efficient than using the TCP/IPoIB transport. The technology preview does not include NFS over RDMA server support, or support for NFS over RDMA in virtualized environments. NFS version 3 and 4 are supported. Currently, only the Mellanox ConnectX-2 and ConnectX-3 Host Channel Adapters (HCAs) are supported. The client passes the full Connectathon NFS test suite using these HCAs. The Release Notes will be updated if additional adapters are supported after the initial release.

    See Section 1.5.1, “Using the NFS over RDMA Client” for details of how to use the feature.

  • Swap files on NFS shares

    Ability for a system to use swap files that reside on NFS shares. For information about using swap files, see the swapon(8) manual page and the Administrator's Guide for your Oracle Linux release.

  • Transcendent Memory

    Transcendent Memory (tmem) provides a new approach for improving the utilization of physical memory in a virtualized environment by claiming underutilized memory in a system and making it available where it is most needed. From the perspective of an operating system, tmem is fast pseudo-RAM of indeterminate and varying size that is useful primarily when real RAM is in short supply. To learn more about this technology and its use cases, see the Transcendent Memory project page at https://oss.oracle.com/projects/tmem/.

1.5.1 Using the NFS over RDMA Client

The following instructions also include details for enabling an NFS over RDMA server. These are provided as an example only, as the NFS over RDMA server is currently not supported with the UEK R3 kernel.

  1. Install an RDMA device, set up InfiniBand and enable IPoIB.

    The Oracle Linux OFED packages are available from the following channels:

    • Oracle Linux 6: ol6_x86_64_ofed_UEK

    • Oracle Linux 7: ol7_x86_64_UEKR3_OFED20

  2. Check that the RDMA device is working.

    # cat /sys/class/infiniband/driver_name/ports/1/state
    4: ACTIVE

    where driver_name is the RDMA device driver, for example mlx4_0.

  3. Verify the physical InfiniBand interfaces and links.

    Check that the hosts can be contacted through the InfiniBand switch, by using commands such as ibhosts, and ibnetdiscover.

  4. Check the connection between the NFS client and NFS server.

    You can configure the settings for an InfiniBand interface in the
    /etc/sysconfig/network-scripts/ifcfg-ibN file.

    You can use the ping command to check the connection. For example:

    nfs-server$ ip addr add 10.196.0.101/24 dev ib0
    nfs-client$ ip addr add 10.196.0.102/24 dev ib0
    nfs-server$ ping 10.196.0.102 
    nfs-client$ ping 10.196.0.101
  5. Install the nfs-utils package on the NFS client and server.

  6. Configure the NFS shares.

    Edit the /etc/exports file. Define the directories that the NFS server will make available for clients to mount, using the IPoIB addresses of the clients. For example:

    /export_dir 10.196.0.102(fsid=0,rw,async,insecure,no_root_squash) 
    /export_dir 10.196.0.0/255.255.255.0(fsid=0,rw,async,insecure,no_root_squash)
  7. On the NFS server, load the svcrdma kernel module and start the NFS service.

    Oracle Linux 6:

    # modprobe svcrdma
    # service nfs start
    # echo rdma 20049 > /proc/fs/nfsd/portlist

    Oracle Linux 7:

    # modprobe svcrdma
    # systemctl start nfs-server
    # echo rdma 20049 > /proc/fs/nfsd/portlist
    Note

    The rdma 20049 setting does not persist when the NFS service is restarted. You have to set it each time the NFS service starts.

  8. On the NFS client, load the xprtrdma kernel module and start the NFS service.

    # modprobe xprtrdma
    # service nfs start
    # mount -o proto=rdma,port=20049 host:/export /mnt 
    

    where host is the host name or IP address of the IPoIB server, and export is the name of the NFS share.

    To check that the mount over RDMA is successful, check the proto field for the mount point.

    # nfsstat -m
    /mnt from 10.196.0.102:/export
    Flags: rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=rdma,port=20049,
    ...

    Alternatively:

    # cat /proc/mounts

Known Issues

Any mounted file systems must be unmounted on the NFS client before you shut down the NFS server. Otherwise the NFS server hangs when you shut down.

1.6 Compatibility

Oracle Linux maintains user-space compatibility with Red Hat Enterprise Linux, which is independent of the kernel version running underneath the operating system. Existing applications in user space will continue to run unmodified on the Unbreakable Enterprise Kernel Release 3 and no re-certifications are needed for RHEL certified applications.

To minimize impact on interoperability during releases, the Oracle Linux team works closely with third-party vendors whose hardware and software have dependencies on kernel modules. The kernel ABI for UEK R3 will remain unchanged in all subsequent updates to the initial release. In this release, there are changes to the kernel ABI relative to UEK R2 that require recompilation of third-party kernel modules on the system. Before installing UEK R3, verify its support status with your application vendor.

1.7 Header Packages for Development

The kernel-headers packages provide the C header files that specify the interface between user-space binaries or libraries and UEK or RHCK. These header files define the structures and constants that you need to build most standard programs or to rebuild the glibc package.

The kernel-devel and kernel-uek-devel packages provide the kernel headers and makefiles that you need to build modules against UEK and RHCK.

To install the packages required to build modules against UEK and the C header files for both UEK and RHCK:

# yum install kernel-uek-devel-`uname -r` kernel-headers