ZFS Powered Magic Upgrades
Allan Jude
<allanjude@freebsd.org>
Using boot environments for atomic in-place upgrades
Describe a system of using ZFS Boot Environments to quickly, safely, and atomically upgrade 100s of remote machines.
Overview:
- How the file system hierarchy is modified to allow the systems to be upgraded in-place
- How we use ZFS to create and deploy the boot environments
- Simplifying the creation of the BEs using poudriere image
- Extending poudriere image to support ZFS
- Using zfsbootcfg to boot a new BE once
- How we determine if the BE “works” and should be promoted to the default
Motivation:
- We often have only SSH access to the machines, so we needed something that could self-recover just by power cycling the machine
- No longer need to use freebsd-update, mergemaster, or etcupdate