Setup a ZFS storage pool

1. Overview

ZFS is a combined file system and logical volume manager originally designed and implemented by a team at Sun Microsystems led by Jeff Bonwick and Matthew Ahrens. Features of ZFS include protection against data corruption, high storage capacity (256 ZiB), snapshots and copy-on-write clones and continuous integrity checking to name but a few. If you are dealing with large amounts of data, or providing a backing filesystem for virtualisation, ZFS is a great choice.

This guide will go through the process of installing ZFS on Ubuntu 16.04 LTS and setting up a storage pool.

What you’ll learn

  • How to install ZFS
  • How to create a storage pool

What you’ll need

  • Ubuntu Server 16.04 LTS

Ready? Let’s head over to the next step!

2. Installing ZFS

The main components of ZFS are maintained as a standard Ubuntu package, so to install simply run:

sudo apt install zfsutils-linux

After that, we can check if ZFS was installed correctly by running:

whereis zfs

You should see output similar to the following:


Now that we’re done installing the required packages, let’s create a storage pool!

3. Creating a ZFS Pool

Choosing Drives to Pool

Check installed drives by running:

sudo fdisk -l

Carefully note down the device names of drives you want to pool.

These are the two drives we’re going to pool:


Creating a Pool

There are two types of simple storage pools we can create. A striped pool, where a copy of data is stored across all drives or a mirrored pool, where a single complete copy of data is stored on all drives.

To create a striped pool, we run:

sudo zpool create new-pool /dev/sdb /dev/sdc

To create a mirrored pool, we run:

sudo zpool create new-pool mirror /dev/sdb /dev/sdc

In both examples, new-pool is the name of the pool.

Sometimes an error like this might pop up:


Add “-f” to the end of the zpool create command to override it.

A mirrored pool is usually recommended as we’d still be able to access our data if a single drive fails. However, this means that we’ll only get the capacity of a single drive. A striped pool, while giving us the combined storage of all drives, is rarely recommended as we’ll lose all our data if a drive fails. You can also opt for both, or change the designation at a later date if you add more drives to the pool.

The newly created pool is mounted at /new-pool. You can select a different mount point using the -m option:

sudo zpool create -m /usr/share/pool new-pool mirror /dev/sdb /dev/sdc

The newly mounted pool will appear to Ubuntu as any other part of the filesystem.

4. Checking Pool Status

You can check the status of ZFS pools with:

sudo zpool status

This is the status of our newly created pool:


  • 1 Users Found This Useful
Was this answer helpful?

Related Articles

Create a bootable USB stick on Ubuntu

Install or upgrade Ubuntu Test out the Ubuntu desktop experience without touching your PC...

Apply kernel patches without rebooting

1. Overview The Canonical Livepatch Service applies critical kernel security patches without...

Install and Configure Samba

1. Overview A Samba file server enables file sharing across different operating systems over a...

Configure SSH to use two-factor authentication

1. Overview SSH, the secure shell, is often used to access remote Linux systems. Because we...

How to Install ONLYOFFICE on Ubuntu 18.04

1. INTRODUCTION ONLYOFFICE is an open source office suite that includes online editors and the...