Files
felhom.eu/documentation/audits/storage-identity-buildB-2026-10-15/README.md
T
admin 920c1aaf84
gates / gates (push) Successful in 6m39s
storage identity build B: live proof, R-1068/R-1079/R-1082/R-1084 closed, R-1093/R-1094 opened, D15, golden 0.318.0 record, backup page
A fresh one-disk install (512 GB VM, installer 1.33.0, agent 0.158.1 + golden 0.318.0 vouched): data volume 100 GiB, data
area 213 GiB registered as the default drive with no press, Jellyfin with no extra step, nothing of the area in a whole-box
copy; partitions formatted and used; the honest backup offer on a VM; /mnt/sys_drive never offered (no box had it).
16 §13 build B status; capability map D15; poster facts (drawing needs a refresh, STATUS); the backup page HU+EN now that
it is true; REPORT-storage-identity-buildB-2026-10-16.md.

Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
2026-10-16 10:07:13 +02:00

48 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Storage identity, build B — live evidence (2026-10-16)
Design: `architecture/16-storage-physical-identity.md` §5–§7, §9 (§13 = what was built). Releases: agent v0.158.1
(v0.158.0 superseded by a security review), controller v0.318.0, installer 1.33.0 (published), golden 0.318.0
(`documentation/tests/golden-0.318.0-2026-10-16/`). The operator vouched agent 0.158.1 + golden 0.318.0 and raised the
global floor to 0.318.0 / MinAgent 0.158.1.
**Method:** endpoint level (no browser on DooPlex) — the dashboard requests the pages make (`/api/stacks/<app>/deploy`,
`/api/storage/init`, `/api/storage/attach`, `/api/disks/candidates`, `/backups`, `/claim`, `/api/server/poweroff`), the agent's
local API with the guest's own token (`/disks`, `/disks/candidates`, `/disks/same-disk`, `/backup`), the VM console
(screendumps) for the Proxmox install. Times are UTC.
## Part 1 — the D3 space check
`SPACE-CHECK.md` + `space/` — ruled by the operator 2026-10-16: data volume 50/100/130 GiB, reserve max(16 GiB, 10 %) ≤ 48 GiB.
## Part 2 — live
| What | Result | File |
|---|---|---|
| A fresh one-disk install (scratch VM 342 on demo-hp, **512 GB** disk, ISO 1.29.0, the public installer 1.33.0, customer Tester4) | pool 383 GiB → data volume **100 GiB**, internal place **created, 213 GiB**; day-0 SUCCESS in 3 min | `05-vm342-create.txt`, `07-fresh-install.log` |
| The agent mounts it, the controller registers it | `/mnt/belso` (by fs-UUID) → bound at `/mnt/felhom-drives/belso`; the guest config has no mount point for it; controller 0.318.0: „registered /mnt/felhom-drives/belso (default=true)" | `15-box-logs.txt` |
| Jellyfin with no extra step | deploy with DOMAIN + SUBDOMAIN only → **202**, healthy in 30 s, `/media` = `/mnt/felhom-drives/belso/userdata/media` (the OMV run on 0.314.0: 400 „HDD_PATH … kötelező") | `08-jellyfin-deploy.txt` |
| Not in the whole-box copy | a 64 MB marker in the place → 0 entries in the archive (control: 29,512 `var/lib/felhom/docker` entries); vzdump „excluding bind mount point mp8" | `09-…` |
| The place is the system disk | same-disk internal vs sys_drive: **same disk, proven** (kind internal, `unknown/vm` — a VM; build A never counts such a copy) | `10-…` |
| R-1082 | the attach list is empty while the controller's own mount table holds `/mnt/sys_drive` (0.314.0 offered it) | `10-…` |
| Partitions (a 16 GB scratch disk, two parts, part 2 ext4) | both listed, formattable; part 1 formatted + registered (`/mnt/felhom-drives/resz1`); then nothing of the disk is offered for formatting, part 2 offered for USE only and attached (`resz2`); same-disk part 1 vs part 2: **same disk, proven**; formatting the whole disk: **409** in words | `11-`…`14-` |
| R-1084 | the offer on a VM: „Ezt a meghajtót kijelölheted a rendszermentés helyéül. A Felhom nem tudja ellenőrizni … ezért nem ígérhetjük, hogy egy lemezhiba után is vissza tudod állítani a rendszert." | `14-…` |
| Delivery to the three test boxes | Tester 1, demo-hp, N100: agent 0.158.1 + bundle 0.158.1 (through the step bundle `0.158.1-step1`), controller 0.318.0 by the floor | — |
## Not as the design said (filed or recorded)
- **An empty part asks for the typed confirmation** („device has a partition table"): `lsblk` reports the parent disk's table
for a partition, so the agent's probe reads an empty part as data-bearing. Safe direction, wrong friction → R-1093.
- **The whole-disk refusal sentence** ends „Csak a szabad részét formázhatod" — not true while another part is mounted (the
free part can then only be used) → R-1094.
- **A 200 GB disk gets no internal place** under the ruled sizes (pool 113 → 113 − 16 − 82 = 15 GiB < 20); the brief's
200 GB VM could not show it, so the VM was rebuilt with 512 GB (`05-…`).
- **Tester 1's dashboard password in the restored credentials file does not open Tester 1** — the dashboard checks ran on the
Tester4 scratch box instead (also a VM, same shape).
## Teardown
Machine: VM 342 switched off the household way (`/api/server/poweroff`, alarms held) and destroyed; Tester 1's 16 GB scratch
disk unlinked and deleted. Host: the helper `agentq.sh` removed from Tester 1's host (VM 342 is gone with its copy). Hub: the
three per-customer floors of build A cleared (303 `floor_set`); Tester4's host is off — the operator deletes the throwaway
customer. Secrets: scan of this folder for the phrase, the dashboard password, the setup code and the token prefix = none.