Zfs


Mar. 4, 2025

USC2025+SE2 — Backups for the people!

We have started deploying a new backup server, levering the zfs filesystem together with FreeBSD jails 🤓

Aug. 8, 2023

ZFS: working with send/recv

Usage

Basics

The following example aims at illustrating the core concept of zfs send/recv:

  1. Let’s create a dataset via zfs create storage/test-source;
  2. Next, we’ll take a snapshot, since only snapshots of a live filesystem can be sent, not the dataset itself: zfs snap storage/test-source@one;
  3. Now, let’s send this snapshot to a destination dataset: zfs send -v storage/test-source@one | zfs recv -v storage/test-destination; we now have a working independant copy of the dataset on the destination, ain’t this cool?
  4. Say we did some changes, and we wanna back it up! Let’s take a second snapshot: zfs snap storage/test-source@two;
  5. Now, let’s send the increment to the same target: zfs send -v -i storage/test-source@two | zfs recv -v storage/test-destination
  6. And… voilà ! One can list snapshots via zfs list -t snap to check what’s up.

Note: To track the progress of zfs send | zfs recv, one can use a well-known tool, pv, as suggested in the Solaris documentation.

May. 2, 2023

ZFS: {zpool,dataset} tuning

Definitions

Most of us came from traditional storage systems, and had to wrap our minds around new concepts introduced by zfs. Let’s break it down:

zpool (RAID array + volume manager)

A zpool combines multiple physical disks into a single storage pool, handling redundancy, caching, and data integrity at the block level. It’s comparable to a:

  • RAID array, but more flexible and self-healing;
  • volume manager, dynamically allocating storage without requiring fixed partitions;
  • storage backend, on top of which ZFS datasets (filesystems) are created;

Instead of manually partitioning disks or setting up traditional RAID, zfs automatically distributes data across the zpool.

Apr. 17, 2023

ZFS: pool layout

Goals

Using ZFS for NAS appliances storing large media files is a very common scenario. In this specific context, we may want to get:

  1. great storage capacity;
  2. good resilience;
  3. decent performance;

…in that order!

We’ll try & figure out proper storage designs for 8 large hard disks in this specific context.

Concepts

You may well want to read choosing the right ZFS pool layout in addition to getting familiar with ZFS concepts.