ZFS is a combined file system and logical volume manager that is scalable and includes features such as protection against data corruption. It also offers high storage capacity, allows for snapshots and copy-on-write clones, and much more. Because of its ability to deal with large amounts of data, a ZFS storage pool makes for a great way to extend your on-premises cloud solution.

Let’s walk through the process of creating a ZFS storage pool. I’ll demonstrate on Ubuntu Server 18.04.

SEE: Serverless computing: A guide for IT leaders (Tech Pro Research)

What you need

In order to successfully create the ZFS storage pool, you’ll need:

  • A running instance of Ubuntu Server.
  • A user account with sudo privileges.

Installing ZFS

The first thing to do is to install the ZFS package. As this is found within the standard repository, it can be installed with the single command:

sudo apt-get install zfsutils-linux -y

Once that installation completes, you’re ready to create the pool.

Creating a ZFS pool

The first step in creating your ZFS pool is knowing what type of pool to create and which drives to pool. There are two types of simple pools to create:

  • Striped pool, where a copy of data is stored across all drives.
  • Mirrored pool, where a single, complete copy of data is stored on all drives.

Next, you need to know which drives are available to pool. To find out what drives you have available, issue the command:

sudo fdisk -l

You should see all of your available drives (Figure A).

I created two virtual drives for the purpose of using them in a ZFS pool:

  • /dev/vda
  • /dev/vdb

To create a striped pool, the command would be:

sudo zpool create pool1 /dev/vda /dev/vdb

To create a mirrored pool, the command would be:

sudo zpool create pool1 mirror /dev/vda /dev/vdb

In both of the above examples, the newly created pool would be called pool1.

Our new pool would then be mounted at /pool1 (Figure B).

You can check the status of your pool with the command:

sudo zpool status

The above command will list out the state and other information of the newly created pool (Figure C).

You can now associate the newly created pool with your cloud storage solution, giving you plenty of room for expansion.

Removing the pool

If you need to remove the pool, it can be done with the command:

sudo zpool destroy pool1

Remember to substitute pool1 with whatever you named your pool.

And that’s all there is to creating either a striped or mirrored ZFS pool on Ubuntu Server. With this tool at the ready, you don’t have to worry about your cloud solution running out of storage room.