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: