ZFS-Live.

Native ZFS storage driver for XAPI. Raw zvols, native snapshots, shared-SR live VM migration, changed block tracking. Zero coalesce. Zero VHD chains.

Raw zvols.

Each VDI is a ZFS volume. Snapshots are instant (COW), compression is native, replication is zfs send. One layer — ZFS manages the blocks directly. Lightning fast.

Universal compatibility.

One binary. Dump it on any supported platform. It detects what it's running on — which XAPI version, which OpenZFS version — and adapts. Dispatch gaps get shimmed. Missing features degrade gracefully. Newer ZFS means more capabilities, not a new driver version.

Platform XAPI OpenZFS Status
XCP-ng 8.3 25.6.0 2.1.x Verified
XenServer 8.4 Not supported (API incompatible) *

* Experimental XenServer support incoming.

XAPI SMAPIv3 OpenZFS 2.1+ NBD CBT

Get started.

Install on any supported XAPI host. The driver detects your environment and configures itself. See the README for full instructions.

Quick install

$ curl -fsSL https://get.bulkhead.dk/zfs-live.sh | sh

Manual install

$ git clone https://github.com/bulkhead-dk/zfs-live-xapi.git
$ cd zfs-live-xapi
$ ./installer.sh

What ships in v1.0.

  • Raw zvol-backed VDIs with native ZFS snapshots and clones
  • Thick and thin provisioning via refreservation
  • Per-VDI tuning — compression, copies, sync, primarycache, logbias, volblocksize
  • Live VM migration across hosts (shared SR)
  • Native VDI copy via zfs send/receive (same-pool clone, cross-pool stream)
  • Changed Block Tracking via QEMU dirty bitmaps over NBD
  • Native ZFS compression (lz4, zstd where available)
  • Crash recovery — interrupted resize operations repaired automatically
  • Universal version matrix — auto-detects XAPI and OpenZFS capabilities
  • One-command deployment via Ansible with atomic install rollback

Pending upstream: Cross-SR storage migration (SXM) via zfs send/receive is fully implemented in the driver. It will work automatically once the upstream xenopsd patch lands — no driver update needed.