Adopt 4.4 kernel in MOS9 / Ubuntu 14.04

Problem description

As a Cloud Owner I want to be able to deploy MOS 9.x with Linux kernel v4.4 so that I could use latest models of servers for my cloud.

MOS 9.x is currently shipped with Linux kernel v3.x - this will likely become an issue in 2017, when customers want to use newer models of servers for their cloud capacity. Next to that OVS and KVM may get improvements by upgrading the Kernel.

Latest Ubuntu 14.04 release, 14.04.5, includes kernel 4.4 oficially backported from Ubuntu Xenial 16.04 that will be supported until 14.04 EOL:

Kernel v4.4 is available in official Ubuntu repositories, so no additional work is needed here - no need to build a custom kernel or enable additional repositories.

This gives us a good opportunity to replace 3.13 kernel with 4.4, to get the following advantages:

  • updated drivers (we even can remove several drivers since stock versions are good), e.g.
    • hpsa-dkms package can be removed
    • updated iscsi driver (resolves issue with some storages)
    • updated pci driver (resolves issue with some Intel NICs)
  • support for more hardware out of the box (e.g. it fixes issue with multiple SR-IOV NICs installed in one chassis)
  • a kernel with a lot of bug/security fixes

Proposed changes

Web UI



Data model





RPC Protocol


Fuel Client



There is a little chance that some plugins are not compatible with 4.4 kernel. However, since upgrading to 4.4 kernel is a manual operation, this should be checked before an upgrade.

Fuel Library

The following CRs needed:


There is no alternative way if you want functionality of a new kernel.

Upgrade impact


Security impact


Notifications impact


End user impact

End user (or support staff) should manually upgrade their environement in order to get this feature following documentation describing upgrade steps.

Upgrading the kernel is a process that may result in workload downtime. The user should carefully plan the kernel upgrade. Expected workflow for existing environments is:

  1. Live-migrate existing instances from node which should be upgraded to any other node in cluster
  2. Upgrade the kernel that now contains no running instances
  3. Reboot the node
  4. Verify node is working correctly with new kernel
  5. (Optionally) live-migrate instances back to original node to spread load

This workflow should be repeated until all nodes are upgraded to latest kernel.

Performance impact


Deployment impact

After Fuel Master is upgraded with MOS 9.2 packages, a number of step to upgrade existing environments / default settings should be done in order to switch to kernel 4.4. These steps are described in documentation describing upgrade steps among with helper scripts. Without this already deployed MOS 9.0 and 9.1 environments will stay the same, 3.13-based, unless end-user manually upgrades the kernel to v4.4 on specific nodes.

Developer impact


Infrastructure impact


Documentation impact

Upgrade procedure should be documented and officially published.



Primary assignee:
Dmitry Teselkin
Other contributors:
Ivan Suzdal
Mandatory design review:
Nastya Urlapova

Work Items

  • Prepare documentation describing upgrade steps.
  • Prepare minimal set of scripts to automate routing tasks required to perform upgrade.
  • Verify upgrade procedure, verify cluster after an upgrade in following cases:
    • upgrade master node only and deploy new environment
    • upgrade master node and existing environment



Testing, QA

Upgrade procedure is not fully automated process and should be applied and verified manually. No new tests needs to be added.

Acceptance criteria

  • Instructions for upgrade of existing MOS 9.0/9.1 environments into kernel v4.4 are created and meet the following criteria:
    • Customers/L2 are expected to follow instructions and upgrade the kernel to v4.4 on computes, one by one, nothing should be automated by Fuel, instructions are provided as is.
    • Any node in a deployment environment that is currently using v3.x should stay on v3.x unless customer manually upgrades the kernel to newer version.