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_storagepermission.
Create the pool¶
- Storage → ZFS Local Storage (or Manage Storage → Local ZFS Arrays tab).
- Fill in Create ZFS Array:
- Compute Node — selecting it scans for raw disks.
- ZFS Pool Name — e.g.
flash-tier-1. - 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.
- In Raw Disk Devices, click each disk to include (click again to deselect). All data on selected disks is erased.
- Format & Create Array. This runs
zpool createon 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.