-
Notifications
You must be signed in to change notification settings - Fork 7
Description
Summary
The ZFS collector Docker image currently only supports amd64. Add arm64 support for users running ZFS on ARM64 servers (AWS Graviton, Ampere Altra, Raspberry Pi 4/5 with 8GB RAM, etc.).
Background
In PR #89, we added the ZFS collector Docker image but limited it to amd64 due to build time issues. The arm64 build under QEMU emulation takes 45+ minutes (vs ~5 minutes for amd64) because installing zfsutils-linux and its dependencies under emulation is extremely slow.
Possible Solutions
-
Accept the long build time - Just add arm64 back and let it run for 45+ minutes. Simple but slow.
-
Cross-compilation approach - Build the Go binary natively with
GOOS=linux GOARCH=arm64, then only use QEMU for the final runtime image assembly (which just copies the binary and installs packages). -
Separate workflow - Run arm64 builds less frequently (e.g., only on releases, not on every develop push).
-
Native ARM runner - Use a native arm64 GitHub runner if available.
Technical Notes
zfsutils-linuxis available for arm64 in Debian Bookworm contrib- The Go binary cross-compiles cleanly for arm64
- The slow part is apt-get installing zfsutils-linux under QEMU
Related
- PR Merge develop to master: ZFS collector Docker image #89 - Initial ZFS collector Docker image (amd64 only)
- Issue Missing zfs collector image? #85 - Original request for ZFS collector image