How to install ZFS on Ubuntu – A Setup and Usage Guide

Let’s learn to install ZFS on Ubuntu. ZFS or the Z File System is an enterprise-grade file system designed to overcome many problems in the previous file systems. It has the functions of both the traditional file systems and the volume managers.

Originally developed by Sun Microsystems and first shipped with Solaris, it is known for data integrity, and protection against data corruption, high performance, easy-to-create snapshots, support for huge data storages, native level encryption, and much more.

Steps to install ZFS on Ubuntu

Since Ubuntu 16.04, ZFS is included in the official repositories of Ubuntu, so now it is very easy to install ZFS on Ubuntu. Before we proceed with the installation, make sure your repositories are up to date by executing:

sudo apt update

Now we can install ZFS on Ubuntu with the help of apt command with sudo:

sudo apt install zfsutils-linux

Once you are done installing, we can now proceed to learn some basic commands to use ZFS.

You can run zfs --version to see if ZFS is installed,

Zfs Vers install ZFS on Ubuntu

Understanding the Basics of ZFS

Before we proceed with learning about a new file system, it is important to take a backup of your files.

1. Creating a simple ZFS pool

To find out the installed drives use fdisk command:

sudo fdisk -l

and it will list all the installed drives on your machine,

Sudo Fdisk L 1 install ZFS on Ubuntu

If you have no space for a ZFS pool on your only disk, then to make space for your ZFS pool you’ll need to resize one of your devices for which you can make use of resize2fs utility.

But, you cannot resize the partition on which Ubuntu is installed, while running it. Even if you try to resize a LVM Ubuntu partition booting a Live Server from a Ubuntu ISO image, it may result in data loss. There are workarounds for this case, but getting on them is out of the scope of this article.

We highly recommend using a different disk as we do in this tutorial.

Now to create a pool, execute zpool command with sudo command:

sudo zpool create example /dev/sdb

we can see our freshly created pool using df command:

df -h
Our First ZFS Pool

The pool has been successfully created and is now accessible on the system, users can now create and browse files.

We have added 8GB of gibberish data to test out our newly installed filesystem.

2. Determining the integrity of the files

ZFS is known for its data integrity, and on ZFS verifying checksum to verify data integrity is know as zfs scrubbing. It is important to routinely run scrub to protect your data against silent corruption and ensuring data integrity.

For ZFS scrubbing run:

sudo zpool scrub example

and to see the status of the pool execute:

sudo zpool status example
Status Of ZFS Pool
Status of ZFS pool

so we have now learned how to verify integrity in ZFS.

3. Creating Snapshots in ZFS

When a snapshot is created everything is duplicated, and afterward, they only record the changes. Snapshots can be only created for a dataset and not for individual files.

To create a snapshot execute:

sudo zfs snapshot dataset@snapshotname

And to roll back a snapshot execute:

sudo zfs rollback dataset@snapshotname

This will undo any changes made after that snapshot.

To get a list of all the snapshots execute:

sudo zfs list -t all

To remove a snapshot execute:

sudo zfs destroy dataset@snapshotname

This will delete the snapshot specified in the command.

Conclusion

ZFS is a great file system with features like scrubbing, snapshots, trimming, mirrors and RAIDs, and a whole list of features.

Installing ZFS (zfsonlinux) is a very easy and a simple task on Ubuntu, and you can get started with ZFS on Ubuntu within few minutes.

We hope you enjoyed learning! Happy Learning!