u/Hour_Preparation2670

Free ZFS storage driver for XCP-ng homelabs - native zvols, instant snapshots, zero coalesce

If you run XCP-ng in your homelab with ZFS, this might be useful. I built a storage driver that does ZFS properly - raw zvols, native snapshots, native compression. No VHD chains, no coalesce overhead, no garbage collection eating your weekends.

Quick install:

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

Free forever for homelabs, students, and researchers. No catch, no trial expiry, no phone-home. Source available on GitHub.

What you get:

  • Each VM disk is a ZFS volume - snapshots are instant
  • Set compression, copies, sync per VDI - not per pool
  • Changed Block Tracking for incremental backups
  • Works with XenOrchestra (XO) for backup/restore
  • Crash recovery built in - corrupt metabase auto-recovers from ZFS
  • 270-day eval for commercial use if you ever go that route

What you don't get:

  • Cross-SR live migration (pending upstream xenopsd patch)
  • XenServer support (API incompatible, XCP-ng 8.3 only for now)

Tested on a 3-host pool with NFS and iSCSI shared SRs. 83 of 91 E2E tests passing. The remaining 8 are edge cases and upstream dependencies, not driver bugs.

This is my first product launch. Be gentle, but don't hold back on the feedback.

reddit.com
u/Hour_Preparation2670 — 5 days ago
▲ 4 r/zfs+1 crossposts

Bulkhead ZFS-Live: native ZFS storage driver for XCP-ng - raw zvols, zero coalesce, zero VHD chains

I built a native ZFS storage driver for XCP-ng. Raw zvols, native snapshots, zero VHD chains, zero coalesce.

What it is: An SMAPIv3 storage driver that manages each VDI as a ZFS volume. Snapshots are instant (COW), compression is native, replication is zfs send/receive. One layer - ZFS manages the blocks directly.

Why it exists: The existing XCP-ng ZFS driver (zfs-vol) creates and destroys entire zpools per SR, has no property management, and is a 720-line stub. The existing NFS/iSCSI drivers all use VHD chains with coalesce/GC overhead. I wanted ZFS to work the way ZFS should work on a hypervisor.

What ships in v1.0:

  • Raw zvol-backed VDIs with native ZFS snapshots and clones
  • Per-VDI ZFS property tuning (compression, copies, sync, caching)
  • Changed Block Tracking via QEMU dirty bitmaps over NBD
  • Crash recovery - metabase corruption auto-recovers from ZFS on sr-scan
  • 83/91 E2E tests passing, 240+ XAPI dispatch operations verified
  • Verified on XCP-ng 8.3 (both unpatched and XSA-489 patched hosts)

Licensing: Source available. Free forever for homelabs, students, and researchers. Revenue-tiered for commercial use. 270-day evaluation, no PO required.

Happy to answer questions about the architecture, the ZFS property management, or why I built it from scratch instead of fixing what was there.

u/Hour_Preparation2670 — 5 days ago