Skip to content

Add a Local ZFS Pool

ZFS is the right choice for single-host workloads, scratch volumes, and dev/test VMs that don't need replication. Faster than LINSTOR for local I/O — no DRBD overhead.

Prerequisites

  • ZFS kernel module loaded (modprobe zfs; zfs version).
  • A free disk or partition to dedicate to ZFS — don't carve out from the root pool.
  • Operator has can_manage_storage permission.

Bootstrap (one-time per node)

On the compute node, as root:

# Pick the disk — adjust for your hardware!
DISK=/dev/sdb

# Create the pool. Use ashift=12 for any modern disk (4K sectors).
zpool create -f -o ashift=12 mfcloud-zfs $DISK

# Recommended dataset settings for VM disks
zfs set compression=lz4 mfcloud-zfs
zfs set atime=off mfcloud-zfs
zfs set xattr=sa mfcloud-zfs

# Confirm
zpool list -v

Register with MFCloud

  1. Storage → ZFS Pools → + Add Pool.
  2. Pick the host and the pool name (mfcloud-zfs from above).
  3. Register.

MFCloud mounts the pool at /<pool> and starts using it as a storage backend option. VM disks are stored as qcow2 files directly on the pool (/<pool>/<vm-name>.qcow2) — you still get ZFS's instant, whole-pool snapshots, just not per-VM ZFS volumes.

Snapshots

ZFS-backed VMs get instant snapshots, no copy-on-write delay:

zfs snapshot mfcloud-zfs/vm-app-01@before-upgrade
zfs rollback mfcloud-zfs/vm-app-01@before-upgrade   # destroys newer snaps

The VM snapshot button in the UI does this for you and ties the snapshot name to the modal's input.

Capacity warning

ZFS performance falls off a cliff above ~80 % pool usage. Set a quota and alert:

zfs set quota=80% mfcloud-zfs            # hard limit
zfs set reservation=10G mfcloud-zfs/sys  # never let system tools starve

The Storage view shows pool usage; configure CPU/RAM-style alert thresholds in Settings → Platform → Storage alert threshold to get a webhook when a pool crosses your warning line.

Removing a pool

Storage → ZFS Pools → row → Remove. MFCloud unregisters the libvirt pool but does NOT destroy the underlying ZFS data — run zpool destroy mfcloud-zfs manually if you really want the disks back.

See also