Review: Ubuntu Server 16.04 LTS shines

Latest Ubuntu Server lays the foundation for higher speeds and greater density with Snap packages, LXD containers, and ZFS storage

Review: Ubuntu Server 16.04 LTS shines
Thinkstock
At a Glance
  • Canonical Ltd. Ubuntu Server 16.04 LTS

Ubuntu 16.04 LTS (Xenial Xerus) represents the first release from Canonical to deliver long-term support since 2011 (version 14). While the latest improvements may not be entirely revolutionary, Ubuntu 16.04 rounds up exciting features to fortify the server base and enhance the desktop experience. InfoWorld reviewed the new desktop release in April. In this review, I’ll focus on the server.

One of the key updates in this release comes by way of the new Snap package archive. Canonical’s LTS repositories are notoriously outpaced by modern software release cycles. It’s the classic trade-off for stability: Canonical moves slowly to adopt new versions of packages in order to vet applications and ensure they don’t muck up your system. Unfortunately, that induces a lag time that leaves users waiting as the latest and greatest software passes them by.

Snap packages -- born from Ubuntu’s mobile development efforts -- offer a self-contained environment that installs code and all of its dependencies and security into sandboxed directories. Snaps run alongside your other apps and traditional Deb packages without clobbering each other or the Canonical codebase. Developers can push (and recall) updates freely and users get to break out cutting-edge releases without concern for their system stability. Everybody’s happy … or they will be, as more developers begin releasing their products in Snap package format.

Deeper under the hood, Ubuntu 16.04 brings the OS back in sync with long-term kernel support (such as Linux 14.4 LTS), offers system-level containers and VM-like container management with LXD, and introduces native kernel support for the ZFS storage system in 64-bit servers.

Further, Canonical continues to expand the breadth of its impressive platform reach. With newly added IBM LinuxONE and IBM z Systems support, Ubuntu support now stretches from mobile devices to mainframes. 

Getting served

The setup routine for Ubuntu Server 16.04 went off without a hitch on my fresh installations. The in-place update, however, did not go as smoothly. 

On an existing 64-bit Ubuntu 14 base, the stumbling block came from MySQL 5.7 failing to install. Working around the problem required manually removing all traces of MySQL, the partial install of 5.7, and the configuration files. Even then, I still needed to apt purge MySQL before the new install would take. 

If you use the do-release-upgrade command from the update-manager-core package, note that you still need to use the –d development flag in order to find the update. Official updates aren’t visible until after the first dot rev using this method.

Also of note, this is the first LTS version to adopt the systemd init bootstrapping model. Although Debian Jessie and Ubuntu 15.10 users have already experienced the migration, Ubuntu 14’s Upstart custom scripts will require modification as you adapt to the new suite of systemd tools.

The upgrade was smooth sailing otherwise.

Welcome ZFS 

Born in the days of Solaris, ZFS is part file system and part volume manager. Packed with compelling provisions for disk pooling, continuous corruption detection, snapshot maintenance, and built-in compression, ZFS goes a long way to ensuring volume integrity and data reliability while minimizing administrative effort. Plus, the copy-on-write cloning capabilities of ZFS make it a natural partner for Canonical’s LXD containers.

Oddly, even though the support pieces are in the Dynamic Kernel Module Support (DKMS), I still needed to install ZFS manually. But now that ZFS is in the kernel, installation no longer requires mucking about with Personal Package Archives (PPAs) or building modules. Simply install the ZFS utilities (apt install zfsutils-linux) and you have what you need to begin configuring storage pools (zpools) and RAIDs from the command line.

There are a couple of caveats to be aware of, though. First, ZFS is currently supported only on Ubuntu 64-bit architectures. Second, it’s supported only for data storage, meaning there is no support yet for installing ZFS as your root file system.

That said, you could work around the file system issue by kludging an environment with the Xenial Live CD: Install ZFS in the Live CD environment, mirror a data set for the root file system, install a minimal system, configure grub and swap, then reboot to upgrade the final system.

The process is tedious, for sure. Canonical should address this complexity with seamless installer wizards as well as routines to streamline ZFS storage provisioning and management.

In the meantime, ZFS is worth the trouble. Along with the maturity and stability come nice enterprise features ranging from data compression, deduplication, and scheduled snapshots for consistent checkpoints and rollbacks to provisions for cloning, pool management, and even file streaming that mirrors working snapshots to other machines. You get almost everything you could want for wrangling and securing data in ZFS.

Introducing LXD

Another hot addition is the inclusion of Canonical’s LXD container manager. LXD containers run with the simplicity of virtual machines but can operate on bare metal -- as machine containers -- without all of the overhead of a VM. For example, I was able to package and launch a Docker container (Docker 1.10.3 supported) inside an LXD machine container. The lightweight runtime of the LXD “hypervisor” helps optimize container density, while its Fan Networking allows you to network all of your containers using a simple, script-based setup. (But be sure to install the ubuntu-fan package.)

LXD runs freaking fast, and it can be installed on nearly any architecture -- from Raspberry Pi to mainframes. Because Canonical moves in lock-step with OpenStack, there’s even a plug-in to the current stable Mitaka release. 

LXD builds on Canonical’s LXC container library, which provides everything you need for low-level container management but lacks the tooling for user-friendly configuration and adoption. LXD supplements the LXC container management API with a new REST API to simplify management access.

Canonical has bundled all of the requisites into a single package, so LXD is straightforward to install (apt install lxd). Running LXD init will walk you through the configuration routine, prompting you for network info, password, and storage type (I suggest using ZFS for best performance). With your network topology loaded, LXD serves as the virtual router to your containers, managing all system resources and security configurations.

If you’re familiar with Docker, you’ll feel at home with LXD’s image-based containers. Like Docker, LXD allows you to import images from local or remote repositories (use lxc remote list to display available sources). The launch command triggers LXD to pull the source image, create the container, and spin up the machine. 

LXD really shines in its tools for managing running containers. LXD delivers quick access to a bash shell inside each container, allows files to be pushed and pulled between container and host system, and even supports snapshots and live migrations. You can perform updates and run multiple applications (including Docker) within a single, executing LXD.  

On the downside, LXD container management is limited to the command line, though web GUIs are available from the broader community. Currently the nova-compute-lxd OpenStack plug-in can help ease management at scale.

At first blush the Ubuntu Server 16.04 LTS release may seem to lack a huge wow factor. But this is a solid bundle that combines forward-looking enhancements with Ubuntu’s hallmark approachability and the stability of a Long Term Support edition.

Snap packages should make it easier and safer to keep pace with new software releases. ZFS brings a fast, scalable, enterprise-grade storage option into the fold. LXD fills an important gap in the virtualization landscape, complementing Docker’s application-oriented containers with system containers that can be managed much like virtual machines.

It’s the same friendly and familiar server distro you rely on today, fortified with new storage and containerization capabilities that will be key to driving down ownership costs tomorrow.

InfoWorld Scorecard
Features (30%)
Administration (30%)
Ease of use (15%)
Security (15%)
Value (10%)
Overall Score (100%)
Ubuntu Server 16.04 LTS 9 8 8 8 10 8.5
At a Glance
  • The most approachable server distro available now comes with storage reliability and containerization advantages that will be key to driving down ownership costs.

    Pros

    • Snaps package architecture improves update frequency and stability
    • LXD system containers an excellent complement to Docker
    • ZFS brings enterprise-grade data integrity, data reliability, and storage management
    • IBM mainframe added to already broad architecture support
    • Includes Linux 4.4 kernel with notable speed improvements
    • Stability-oriented release with five years of support

    Cons

    • ZFS installation and management tools need work
    • Snap packages have yet to be broadly adopted

Copyright © 2016 IDG Communications, Inc.