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. Unlike LINSTOR/Ceph, MFCloud drives the whole pool creation — including RAID layout — from the UI; there's no manual zpool create step.

Prerequisites

  • A compute node with one or more free, unpartitioned raw disks to dedicate to ZFS — don't point this at the disk holding the OS.
  • Operator has can_manage_storage permission.

Create the pool

  1. Storage → ZFS Local Storage (or Manage Storage → Local ZFS Arrays tab).
  2. Fill in Create ZFS Array:
  3. Compute Node — selecting it scans for raw disks.
  4. ZFS Pool Name — e.g. flash-tier-1.
  5. RAID Architecture:
    • Stripe (RAID 0) — max speed, no redundancy.
    • Mirror (RAID 1) — survives 1 drive failure.
    • RAIDZ1 (RAID 5) — survives 1 drive failure, min 3 drives.
    • RAIDZ2 (RAID 6) — survives 2 drive failures, min 4 drives.
  6. In Raw Disk Devices, click each disk to include (click again to deselect). All data on selected disks is erased.
  7. Format & Create Array. This runs zpool create on the node with the chosen RAID topology (ashift=12, compression, etc. set automatically) and registers the pool as a libvirt storage pool.

The new pool shows up in Active ZFS Pools with its host, RAID type, and status. 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.

Importing an existing pool / cross-host replication

These live under the ZFS Local Storage button on the Datastores page, not the Create-Array form above — see ZFS Pool Replication & VM Restore (DR).

Snapshots

ZFS-backed VMs get instant snapshots, no copy-on-write delay. The VM snapshot button in the UI runs zfs snapshot <pool>/<vm-name>@<snapshot-name> for you — no manual zfs commands needed for day-to-day use.

Capacity warning

ZFS performance falls off a cliff above ~80% pool usage. The Storage view shows pool usage; configure alert thresholds in Settings to get notified when a pool crosses your warning line.

Removing a pool

Storage → ZFS pool row → Remove. MFCloud unregisters the libvirt pool but does NOT destroy the underlying ZFS data — run zpool destroy <pool-name> manually on the node if you really want the disks back.

See also