refactor(install): always use root loop-file storage

Remove secondary-disk discovery and whole-disk ZFS creation from the
installer. New installations now always create a sparse ZFS loop-file
pool from free space on /, while existing vpsmgr pools are still adopted.
The installer no longer scans, selects, formats, or modifies devices such
as /dev/vdb, including virtual ISO/CD devices.

Update storage documentation and keep the existing reclaim, pool sizing,
and ZFS quota behavior.

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
This commit is contained in:
bluebluesodaandCommandCodeBot committed 2026-08-15 15:24:18 +00:00
1 parent 3d524eef05
commit 64349de0c0
3 files changed
+68 -98

No files matched your search

+5 -5
View File
@@ -154,11 +154,11 @@ The panel daemon runs as the dedicated unprivileged `vps` system user
## Storage
- The pool is ZFS. On first install, `10-incus.sh` either adopts an existing
pool, uses a spare whole-disk block device, or (no spare disk) creates a
**sparse loop-file pool** sized to a share of the free space on `/`:
80% by default, 90% when ≥ 20 GiB free. The loop file only allocates blocks
as the pool actually fills. On very small hosts, cap the ZFS ARC
- The pool is ZFS. On first install, `10-incus.sh` adopts an existing pool or
creates a **sparse loop-file pool** sized to a share of the free space on
`/`: 80% by default, 90% when ≥ 20 GiB free. New installations never scan,
select, format, or modify secondary disks. The loop file only allocates
blocks as the pool actually fills. On very small hosts, cap the ZFS ARC
(`zfs.arc_max`) so container memory keeps priority over the pool's cache.
- Containers are ZFS clones of the image: the image's blocks are shared
(copy-on-write), so a well-provisioned image costs one copy no matter how
+1 -1
View File
@@ -34,7 +34,7 @@ same table; `vps config list` shows the live values with this annotation.
| `net.ext_if` | operator | re-run `vps install` | external NIC (auto-detected from default route) |
| `net.ipv6_subnet` | operator | re-run `vps install` | global IPv6 prefix for pass-through, e.g. `2602:fada:6::/64`; empty = disabled (does not remove IPv6 state already applied, see note below) |
| `net.ipv6_mode` | **fixed at install** | — | IPv6 allocation mode: `none` / `prefix` (/112 blocks) / `pool` (per-container address) |
| `net.ipv6_pool` | operator | next `vps install` | pool-mode address list (bare global addresses or `/128`); editable via the admin panel's IPv6 Pool page |
| `net.ipv6_pool` | operator | applied immediately | pool-mode address list (bare global addresses or `/128`); editable via the admin panel's IPv6 Pool page |
| `incus.image` | operator | next `vps add` / reinstall | container image alias |
| `incus.image_fallback` | operator | next `vps add` / reinstall | fallback remote image |
| `incus.pool` | **fixed at install** | — | storage pool |