fix: create the storage pool deliberately — btrfs, because cloning is the whole point #51
No reviewers
Labels
No labels
blocked
blocker:ci-red
blocker:conflict
blocker:drill-pending
blocker:unrequested
bug
claimed
documentation
enhancement
epic
merge-next
needs-triage
ready
release
scope:cli
scope:drill
scope:host
scope:installer
scope:templates
scope:tiers
stale
state:addressing
state:bots-reviewing
state:building
state:needs-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: heavy-duty/box#51
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/storage-btrfs"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #29.
incus admin init --minimalpicksdir— no copy-on-write, soclaudebox snapshotandnew --fromeach pay a full copy of the provisioned root: several GB and minutes apiece (measured live on the drill host; a drill run pays it three times). Against "log in once, snapshot, clone forever", that price is the product tax the issue named.What this does
setup-host.shbootstraps with an explicit preseed instead of--minimal. The preseed is exactly what--minimalcreates —defaultpool,incusbr0, default profile with root + eth0 — with one difference: the pool driver is chosen deliberately.btrfs-progsif absent — clones and snapshots become CoW: near-instant, sharing blocks, diverging on write. N clones of one snapshot ≈ 1 copy + deltas instead of N full copies.Per the issue's decision points: btrfs over zfs/lvm-thin (no kernel module or DKMS risk on Debian/Ubuntu — it's in-tree; loop file needs no spare partition), and the default profile/network are preserved because the drill's probe containers (
cbprobe,payroll) launch against them.What to know before merging
incus storage show default— on the drill host (pool alreadydir) nothing changes. Getting btrfs there means migrating the pool (or a teardown that includes it), which is deliberately out of scope here.incus storage set default size=<X>); boxes' 60GiB roots are sparse on it exactly as they were on dir.🤖 Generated with Claude Code