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
gates / gates (push) Successful in 6m39s
gates / gates (push) Successful in 6m39s
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
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
# 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.
|
||||
@@ -0,0 +1,8 @@
|
||||
## 2026-10-16T02:11:42Z add a 16G scratch disk to Tester 1 (VM 341 on demo-hp)
|
||||
Formatting '/mnt/hdd_1/images/341/vm-341-disk-7.raw', fmt=raw size=17179869184 preallocation=off
|
||||
scsi6: successfully created disk 'nvme-scratch:341/vm-341-disk-7.raw,backup=0,size=16G'
|
||||
scsi6: nvme-scratch:341/vm-341-disk-7.raw,backup=0,size=16G
|
||||
## inside Tester 1 host
|
||||
sde 50G drive-scsi4
|
||||
sdf 20G drive-scsi5
|
||||
sdg 16G drive-scsi6
|
||||
@@ -0,0 +1,10 @@
|
||||
blkid rc=2 (2 = nothing on it)
|
||||
bash: line 1: parted: command not found
|
||||
blkid rc=2 (2 = nothing on it)
|
||||
NAME SIZE FSTYPE LABEL MOUNTPOINT
|
||||
sdg 16G
|
||||
|-sdg1 8G
|
||||
`-sdg2 8G ext4 scratchp2
|
||||
scsi-0QEMU_QEMU_HARDDISK_drive-scsi6 ../../sdg
|
||||
scsi-0QEMU_QEMU_HARDDISK_drive-scsi6-part1 ../../sdg1
|
||||
scsi-0QEMU_QEMU_HARDDISK_drive-scsi6-part2 ../../sdg2
|
||||
@@ -0,0 +1,2 @@
|
||||
gitea.dooplex.hu/admin/felhom-controller:0.317.0
|
||||
gitea.dooplex.hu/admin/felhom-controller:0.318.0-rc.2 Up 25 seconds (healthy)
|
||||
@@ -0,0 +1,6 @@
|
||||
initialize /dev/sdg data_bearing=True
|
||||
/dev/sdg1 empty fs= mountable=False formattable=True
|
||||
/dev/sdg2 filesystem fs=ext4 mountable=True formattable=True uuid:ae2bd22b-3dc9-4be0-a713-c192b8d307a0
|
||||
attach /dev/sdg data_bearing=True
|
||||
/dev/sdg1 empty fs= mountable=False formattable=True
|
||||
/dev/sdg2 filesystem fs=ext4 mountable=True formattable=True uuid:ae2bd22b-3dc9-4be0-a713-c192b8d307a0
|
||||
@@ -0,0 +1,22 @@
|
||||
Formatting '/mnt/hdd_1/images/342/vm-342-disk-0.raw', fmt=raw size=214748364800 preallocation=off
|
||||
scsi0: successfully created disk 'nvme-scratch:342/vm-342-disk-0.raw,size=200G'
|
||||
update VM 342: -boot order=scsi0;ide2
|
||||
boot: order=scsi0;ide2
|
||||
cores: 4
|
||||
ide2: local:iso/felhom-installer-1.29.0-pve9.2-1.iso,media=cdrom,size=1665356K
|
||||
memory: 8192
|
||||
net0: virtio=BC:24:11:DE:A6:46,bridge=vmbr0
|
||||
scsi0: nvme-scratch:342/vm-342-disk-0.raw,size=200G
|
||||
status: running
|
||||
2026-10-16T06:47:25Z PVE install pressed on VM 342 (ISO 1.29.0, /dev/sda 200G, ext4, PVE default layout)
|
||||
## 2026-10-16T07:14:34Z VM 342 (200 GB) removed: with the ruled sizes a 200 GB disk gives only ~15 GiB for the data area (< 20 GiB) — rebuilt with 512 GB
|
||||
name: buildb-onedisk
|
||||
scsi0: nvme-scratch:342/vm-342-disk-0.raw,size=200G
|
||||
purging VM 342 from related configurations..
|
||||
scsi0: successfully created disk 'nvme-scratch:342/vm-342-disk-0.raw,size=512G'
|
||||
update VM 342: -boot order=scsi0;ide2
|
||||
boot: order=scsi0;ide2
|
||||
net0: virtio=BC:24:11:B7:71:A8,bridge=vmbr0
|
||||
scsi0: nvme-scratch:342/vm-342-disk-0.raw,size=512G
|
||||
status: running
|
||||
2026-10-16T07:17:30Z PVE install pressed on VM 342 (ISO 1.29.0, /dev/sda 512G, ext4, PVE default layout)
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
07:38:44 tester-1 cleared: HTTP/1.1 303 See Other Location: /customers/tester-1?flash=floor_set
|
||||
07:38:44 demo-hp cleared: HTTP/1.1 303 See Other Location: /customers/demo-hp?flash=floor_set
|
||||
07:38:44 demo-felhom cleared: HTTP/1.1 303 See Other Location: /customers/demo-felhom?flash=floor_set
|
||||
@@ -0,0 +1,147 @@
|
||||
[INFO] auto-sized guest RAM: 4096 MiB (host 7939 MiB; clamp(host-4096, min 4096, max host-2048), ceiling host-1024)
|
||||
[INFO] auto-sized guest cores: 3 (host 4 cores; host-1, min 2)
|
||||
|
||||
[INFO] felhom-host-install v1.33.0 — mode=appliance customer=Tester4 vmid=9201
|
||||
|
||||
[STEP] 1/8 pre-flight
|
||||
[INFO] pve-manager/9.2.2/b9984c6d90a4bd80 (running kernel: 7.0.2-6-pve)
|
||||
[INFO] node: buildb (auto)
|
||||
[INFO] agent config: /etc/felhom-agent/agent.json
|
||||
[INFO] agent: not installed yet — will be fetched + installed in step 5/8
|
||||
[INFO] local-lvm free: ~383 GiB
|
||||
[INFO] free RAM: ~6365 MiB
|
||||
[INFO] existing guests on this host: 0 (pct+qm)
|
||||
[INFO] archive storage 'local' present
|
||||
[INFO] acl storage 'felhom-pbs' not present yet — expected: the PBS-DR tier creates it; the grant is pre-positioned deliberately
|
||||
[INFO] dnsmasq: not present before Felhom — recorded; uninstall will remove it again if we install it
|
||||
[INFO] hub reachable (https://hub.felhom.eu)
|
||||
[OK] customer 'Tester4' exists + passphrase valid
|
||||
[INFO] golden: none local — will fetch + verify from Gitea in step 7/8
|
||||
[OK] pre-flight passed
|
||||
[STEP] 2/8 Proxmox API token
|
||||
[OK] token minted (secret captured, not logged)
|
||||
[OK] scoped ACL applied (Base@/, Guest@/pool/felhom + /vms/990000..990009, Store@[local local-lvm felhom-pbs])
|
||||
[SKIP] old broad role FelhomAgent already absent
|
||||
[STEP] 3/8 compute volume grows
|
||||
[INFO] auto-computed from a 383 GiB thin pool (16 §7: 50/100/130 GiB)
|
||||
[INFO] grows: rootfs +0G (->32G), data +76G (->100G, ONE volume)
|
||||
[STEP] 4/8 host enrollment (POST /host-enroll)
|
||||
[OK] host REUSED (idempotent — existing credential)
|
||||
[INFO] host_id: Tester4-68d1d8 (api_key captured, not logged)
|
||||
[STEP] 4b/8 break-glass credential (root@pam console password → hub vault)
|
||||
[OK] root@pam password set + vaulted to the hub (retrieve via the operator /admin path; never logged here)
|
||||
[WARN] NOTE: the root@pam password just CHANGED — the old one now fails at the PVE web GUI (:8006).
|
||||
[WARN] Retrieve the new one at hub → host page (vaulted recovery credential).
|
||||
[STEP] 5/8 agent install (fetch + verify + install)
|
||||
[INFO] disabled pve-enterprise.sources (Enabled: no)
|
||||
[INFO] disabled ceph.sources (Enabled: no)
|
||||
[INFO] added pve-no-subscription.sources (suite=trixie)
|
||||
[OK] apt repos aligned to no-subscription (changed; apt-get update OK)
|
||||
[WARN] no git credential in controller.yaml — fetching artifacts ANONYMOUSLY (they are world-readable; sha256 verification unchanged)
|
||||
[INFO] manifest: agent v0.158.1 (sha 20264df64ef646a8…), golden v0.318.0
|
||||
[INFO] fetching agent binary v0.158.1 from Gitea …
|
||||
[OK] verified sha256 20264df64ef646a8… matches the hub manifest
|
||||
[OK] installed /usr/local/bin/felhom-agent (felhom-agent 0.158.1)
|
||||
[INFO] installing the 'sudo' package (required for the non-root agent model) …
|
||||
[OK] sudo installed (Sudo version 1.9.16p2)
|
||||
[INFO] installing the 'age' package (escrow ceremony identity-wrap dependency) …
|
||||
[OK] age installed (1.2.1)
|
||||
[OK] created service user felhom-agent
|
||||
[OK] added felhom-agent to systemd-journal (unprivileged journal read for NAS verify)
|
||||
[OK] verified sha256 c23c3d355fe70a6f… matches the hub manifest
|
||||
os-apply: BUNDLE START agent=0.158.1 sha=c23c3d355fe70a6f authority=installer files=30 write=29 same=1 kept=0 skipped=0
|
||||
os-apply: BUNDLE WROTE /usr/local/sbin/felhom-mkfs-guarded (new)
|
||||
os-apply: BUNDLE WROTE /usr/local/sbin/felhom-selfupdate-guarded (new)
|
||||
os-apply: BUNDLE WROTE /usr/local/sbin/felhom-pbs-apply (new)
|
||||
os-apply: BUNDLE WROTE /usr/local/sbin/felhom-backup-target-apply (new)
|
||||
os-apply: BUNDLE WROTE /usr/local/sbin/felhom-vzdump-partial-clean (new)
|
||||
os-apply: BUNDLE WROTE /usr/local/sbin/felhom-internal-place (new)
|
||||
os-apply: BUNDLE WROTE /usr/local/sbin/felhom-crash-guard (new)
|
||||
os-apply: BUNDLE WROTE /usr/local/sbin/felhom-priv-apply (new)
|
||||
os-apply: BUNDLE WROTE /var/lib/vz/snippets/felhom-guest-hook.sh (new)
|
||||
os-apply: BUNDLE WROTE /usr/local/sbin/felhom-shared-parent.sh (new)
|
||||
os-apply: BUNDLE WROTE /etc/systemd/system/felhom-shared-parent.service (new)
|
||||
os-apply: BUNDLE WROTE /etc/systemd/system/felhom-crash-guard.service (new)
|
||||
os-apply: BUNDLE WROTE /etc/systemd/system/felhom-crash-guard-check.service (new)
|
||||
os-apply: BUNDLE WROTE /etc/systemd/system/felhom-crash-guard-check.timer (new)
|
||||
os-apply: BUNDLE WROTE /etc/felhom/crash-guard.conf (new)
|
||||
os-apply: BUNDLE WROTE /etc/grub.d/01_felhom_oneshot (new)
|
||||
os-apply: BUNDLE WROTE /etc/grub.d/42_felhom_oneshot (new)
|
||||
os-apply: BUNDLE WROTE /etc/systemd/system/felhom-agent.service (new)
|
||||
os-apply: BUNDLE WROTE /etc/systemd/system/felhom-agent-rollback.service (new)
|
||||
os-apply: BUNDLE WROTE /etc/systemd/system/felhom-agent.service.d/felhom-agent-limits.conf (new)
|
||||
os-apply: BUNDLE WROTE /usr/local/sbin/felhom-mgmt-watchdog (new)
|
||||
os-apply: BUNDLE WROTE /etc/tmpfiles.d/felhom-privsep.conf (new)
|
||||
os-apply: BUNDLE WROTE /etc/systemd/system/felhom-mgmt-watchdog.service (new)
|
||||
os-apply: BUNDLE WROTE /etc/systemd/system/felhom-mgmt-watchdog.timer (new)
|
||||
os-apply: BUNDLE WROTE /etc/systemd/system/felhom-sshd.service (new)
|
||||
os-apply: BUNDLE WROTE /etc/felhom-oob.nft (new)
|
||||
os-apply: BUNDLE WROTE /etc/systemd/system/felhom-oob-nft.service (new)
|
||||
os-apply: BUNDLE WROTE /etc/sudoers.d/felhom-op (new)
|
||||
os-apply: BUNDLE WROTE /etc/sudoers.d/felhom-agent (new)
|
||||
os-apply: BUNDLE DONE agent=0.158.1 written=29 same=1 self-check=ok signers-created=False
|
||||
[OK] installed every root-owned file from config bundle v0.158.1 (sha c23c3d355fe70a6f…; checked, previous copies kept)
|
||||
[OK] OOB felhom-sshd instance + static belt from the bundle (agent renders config + fills sets once oob.enabled)
|
||||
[STEP] 5b/8 internal data place (Belső tárhely)
|
||||
[OK] internal place: created, 213 GiB (the agent mounts it at /mnt/belso)
|
||||
[STEP] 6/8 agent config + service
|
||||
[WARN] backup target: DEGRADED — no eligible second drive, so the whole-system backup stays on the SYSTEM drive.
|
||||
[WARN] It protects against file corruption but NOT against a disk failure. Attach a second drive and assign it in the dashboard.
|
||||
[INFO] creating island bridge vmbr9 (portless, 169.254.253.1/30)
|
||||
[OK] vmbr9 up: 169.254.253.1/30
|
||||
[INFO] R-50 island ON: local_api=169.254.253.1:8443 (vmbr9); guest net1=169.254.253.2/30; lan_resolver.host_ip=192.168.0.118
|
||||
[INFO] node=buildb local_api=169.254.253.1:8443 tls_fp=77:14:E0:5D:21:B0…
|
||||
[OK] wrote /etc/felhom-agent/agent.json (0600 felhom-agent)
|
||||
[OK] agent --selftest (read-only) passed
|
||||
[OK] felhom-agent service active (non-root felhom-agent reads the config OK)
|
||||
[OK] wrote /etc/felhom/os-trust.json + operator-signers (felhom-op-1) — the root-owned slow-lane anchors
|
||||
[STEP] 7/8 golden archive
|
||||
[WARN] no git credential in controller.yaml — fetching artifacts ANONYMOUSLY (they are world-readable; sha256 verification unchanged)
|
||||
[INFO] fetching golden v0.318.0 from Gitea → /var/lib/vz/dump/vzdump-lxc-9100-2026_10_16-09_45_36.tar.zst
|
||||
[OK] verified sha256 18077b6a689a06f3… matches the hub manifest
|
||||
[OK] golden imported + verified: local:backup/vzdump-lxc-9100-2026_10_16-09_45_36.tar.zst
|
||||
[STEP] 8/8 provision guest 9201
|
||||
[SKIP] pool felhom already exists
|
||||
=== felhom-agent 0.158.1 selftest=provision (vmid=9201 customer=Tester4 hostname=tester4) ===
|
||||
--- front half: bring-up (provision) local:backup/vzdump-lxc-9100-2026_10_16-09_45_36.tar.zst → vmid 9201 ---
|
||||
time=2026-10-16T09:46:34.045+02:00 level=INFO msg="bring-up: pool membership re-asserted" vmid=9201 pool=felhom
|
||||
[OK] front half: vmid 9201 up (boot+running) in 49s; MAC=BC:24:11:F9:27:7E
|
||||
--- back half: mint per-guest token + populate bootstrap config mount ---
|
||||
time=2026-10-16T09:46:39.169+02:00 level=INFO msg="provision: back-half complete" vmid=9201 mount=mp9 guest_path=/etc/felhom-bootstrap endpoint=169.254.253.1:8443
|
||||
[OK] back half: bootstrap mount mp9 → /etc/felhom-bootstrap on vmid 9201 (host dir /var/lib/felhom-agent/guests/9201/bootstrap)
|
||||
local-api endpoint 169.254.253.1:8443 · leaf fp ae0761dd4b8aa39a50ce43d350dfe1162a75b66f13494241cb681ee92ebf99e7 · token: minted (not printed)
|
||||
=== selftest=provision OK — guest 9201 provisioned + bootstrap-mounted (KEPT) ===
|
||||
next: reboot the guest → the golden's baked controller-bootstrap unit deploys the controller,
|
||||
which PULLS its controller.yaml from the hub (retrieval passphrase) and merges in this local_api.
|
||||
[OK] provision completed
|
||||
[INFO] rebooting guest 9201 so the baked controller-bootstrap unit picks up the mount
|
||||
[STEP] verify
|
||||
[OK] pct status: running
|
||||
[OK] onboot: 1
|
||||
mp0: local-lvm:vm-9201-disk-1,mp=/var/lib/felhom,backup=1,size=100G
|
||||
mp8: /mnt/felhom-drives,mp=/mnt/felhom-drives
|
||||
rootfs: local-lvm:vm-9201-disk-0,size=32G
|
||||
[OK] pool: guest 9201 is a member of felhom
|
||||
[OK] acl: FelhomAgentBase@/ present (user+token)
|
||||
[OK] acl: FelhomAgentGuest@/pool/felhom present (user+token)
|
||||
[OK] acl: FelhomAgentStore@/storage/local present (user+token)
|
||||
[OK] acl: FelhomAgentStore@/storage/local-lvm present (user+token)
|
||||
[OK] acl: FelhomAgentStore@/storage/felhom-pbs present (user+token)
|
||||
[OK] acl: FelhomAgentGuest@/vms/990000 present (user+token)
|
||||
[OK] acl: FelhomAgentGuest@/vms/990001 present (user+token)
|
||||
[OK] acl: FelhomAgentGuest@/vms/990002 present (user+token)
|
||||
[OK] acl: FelhomAgentGuest@/vms/990003 present (user+token)
|
||||
[OK] acl: FelhomAgentGuest@/vms/990004 present (user+token)
|
||||
[OK] acl: FelhomAgentGuest@/vms/990005 present (user+token)
|
||||
[OK] acl: FelhomAgentGuest@/vms/990006 present (user+token)
|
||||
[OK] acl: FelhomAgentGuest@/vms/990007 present (user+token)
|
||||
[OK] acl: FelhomAgentGuest@/vms/990008 present (user+token)
|
||||
[OK] acl: FelhomAgentGuest@/vms/990009 present (user+token)
|
||||
[OK] authz signers: 2 (operator-signed self-update armed)
|
||||
[OK] controller: Up 20 seconds (healthy) (after ~0s)
|
||||
[INFO] controller image: gitea.dooplex.hu/admin/felhom-controller:0.318.0
|
||||
[WARN] cloudflared not visible yet
|
||||
[INFO] (confirm in the hub UI that host Tester4-68d1d8 reports guest 9201)
|
||||
|
||||
[OK] Day-0 provision SUCCESS — vmid=9201 host_id=Tester4-68d1d8 customer=Tester4 golden=local:backup/vzdump-lxc-9100-2026_10_16-09_45_36.tar.zst
|
||||
[INFO] root@pam was rotated + vaulted at step 4b — retrieve at hub → host page (the old GUI password no longer works).
|
||||
@@ -0,0 +1,10 @@
|
||||
jellyfin deploy 07:49:38 — values: DOMAIN, SUBDOMAIN only (no HDD_PATH)
|
||||
{"ok":true,"message":"Telepítés elindítva – az állapot a kártyán követhető"}
|
||||
|
||||
HTTP 202
|
||||
## 07:50:17 jellyfin: Up 17 seconds (healthy)
|
||||
/var/lib/docker/volumes/jellyfin_jellyfin_cache/_data -> /cache
|
||||
/var/lib/docker/volumes/jellyfin_jellyfin_config/_data -> /config
|
||||
/mnt/felhom-drives/belso/userdata/media -> /media
|
||||
/mnt/felhom-drives/belso/userdata/media -> /mnt/felhom-drives/belso/userdata/media
|
||||
userdata
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
## whole-box copy, phase=done at 07:51:21
|
||||
archive: vzdump-lxc-9201-2026_10_16-09_50_29.tar.zst 1225 MB
|
||||
2026-10-16 09:50:29 INFO: including mount point rootfs ('/') in backup
|
||||
2026-10-16 09:50:29 INFO: including mount point mp0 ('/var/lib/felhom') in backup
|
||||
2026-10-16 09:50:29 INFO: excluding bind mount point mp8 ('/mnt/felhom-drives') from backup (not a volume)
|
||||
2026-10-16 09:50:29 INFO: excluding bind mount point mp9 ('/etc/felhom-bootstrap') from backup (not a volume)
|
||||
2026-10-16 09:51:18 INFO: archive file size: 1.20GB
|
||||
marker entries in the archive: 0
|
||||
belso entries in the archive: 2
|
||||
control — mp0 entries (must be > 0): 29512
|
||||
drwxr-xr-x 0/0 0 2026-10-16 09:49 ./var/lib/felhom/docker/overlay2/05cdeccc9f31a5095cd7da730f524ea4697bf80120ea3a15a12e09f406d77bf6/diff/mnt/felhom-drives/belso/
|
||||
drwxr-xr-x 0/0 0 2026-10-16 09:49 ./var/lib/felhom/docker/overlay2/05cdeccc9f31a5095cd7da730f524ea4697bf80120ea3a15a12e09f406d77bf6/diff/mnt/felhom-drives/belso/userdata/
|
||||
drwxr-xr-x 0/0 0 2026-10-16 09:49 ./var/lib/felhom/docker/overlay2/05cdeccc9f31a5095cd7da730f524ea4697bf80120ea3a15a12e09f406d77bf6/diff/mnt/felhom-drives/belso/userdata/media/
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
## 07:52:06 same-disk: the internal place vs sys_drive (agent call)
|
||||
different=False proven=True reason=same_disk | a.kind=internal a.identity=unknown ['serial:scsi:QEMU_HARDDISK:drive-scsi0'] | b.kind=system
|
||||
## GET /disks row of the internal place
|
||||
{'name': 'belso', 'mount_path': '/mnt/belso', 'guest_path': '/mnt/felhom-drives/belso', 'kind': 'internal', 'role': 'user-data', 'identity': 'unknown', 'identity_reason': 'vm', 'bound_under_parent': True}
|
||||
## R-1082: the attach list (dashboard /api/disks/candidates)
|
||||
## R-1082: the attach list (dashboard /api/disks/candidates, controller 0.318.0)
|
||||
{"data":{"vmid":9201,"initialize":[],"attach":[]},"ok":true}
|
||||
## precondition: the controller's own mount table holds /mnt/sys_drive (what 0.314.0 offered in the OMV run, audits/omv-vm-2026-10-15)
|
||||
/dev/mapper/pve-vm--9201--disk--1 /mnt/sys_drive ext4 rw,relatime,stripe=16 0 0
|
||||
@@ -0,0 +1,7 @@
|
||||
## 2026-10-16T07:52:36Z add a 16G scratch disk to VM 342
|
||||
scsi1: successfully created disk 'nvme-scratch:342/vm-342-disk-1.raw,backup=0,size=16G'
|
||||
blkid rc=2 (2 = nothing on it)
|
||||
NAME SIZE FSTYPE LABEL MOUNTPOINT
|
||||
sdb 16G
|
||||
|-sdb1 8G
|
||||
`-sdb2 8G ext4 scratchp2
|
||||
@@ -0,0 +1,25 @@
|
||||
## 07:52:51 candidates before (dashboard /api/disks/candidates)
|
||||
initialize /dev/sdb whole_disk_in_use=False
|
||||
/dev/sdb1 empty fs= formattable=True mountable=False
|
||||
/dev/sdb2 filesystem fs=ext4 formattable=True mountable=True
|
||||
attach /dev/sdb whole_disk_in_use=False
|
||||
/dev/sdb1 empty fs= formattable=True mountable=False
|
||||
/dev/sdb2 filesystem fs=ext4 formattable=True mountable=True
|
||||
## 07:52:51 format part 1 (the wizard POST /api/storage/init)
|
||||
{"data":{"phase":"formatting","started":true},"ok":true}
|
||||
|
||||
HTTP 200
|
||||
## 07:52:58 init status
|
||||
{"data":{"device":"/dev/sdb1","durable_id":"byid:scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part1","error":"","opsign":"","phase":"needs_confirmation","reason":"device has a partition table","started_at":"2026-10-16T07:52:51.782009734Z","updated_at":"2026-10-16T07:52:52.051700007Z","where":"/mnt/resz1"},"ok":true}
|
||||
## candidates after part 1 is a drive
|
||||
initialize /dev/sdb whole_disk_in_use=False
|
||||
/dev/sdb1 empty fs= formattable=True mountable=False
|
||||
/dev/sdb2 filesystem fs=ext4 formattable=True mountable=True
|
||||
attach /dev/sdb whole_disk_in_use=False
|
||||
/dev/sdb1 empty fs= formattable=True mountable=False
|
||||
/dev/sdb2 filesystem fs=ext4 formattable=True mountable=True
|
||||
## 07:53:13 confirmed format of part 1 (the wizard re-posts with confirmed + the durable id it was shown)
|
||||
{"data":{"phase":"formatting","started":true},"ok":true}
|
||||
|
||||
HTTP 200
|
||||
{"data":{"device":"/dev/sdb1","durable_id":"","error":"","opsign":"","phase":"done","reason":"","started_at":"2026-10-16T07:53:13.503303783Z","updated_at":"2026-10-16T07:53:15.360607509Z","where":"/mnt/felhom-drives/resz1"},"ok":true}
|
||||
@@ -0,0 +1,7 @@
|
||||
## 07:53:25 candidates with part 1 in use
|
||||
initialize: []
|
||||
attach /dev/sdb whole_disk_in_use=True [('/dev/sdb2', 'filesystem', 'formattable=False')]
|
||||
## 07:53:25 use part 2 (the wizard POST /api/storage/attach)
|
||||
{"data":{"registered":true,"where":"/mnt/felhom-drives/resz2"},"ok":true}
|
||||
|
||||
HTTP 200
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
## 07:53:38 same-disk: part 1 vs part 2 (agent call)
|
||||
different=False proven=True reason=same_disk | a.kind=partition b.kind=partition | ['serial:scsi:QEMU_HARDDISK:drive-scsi1']
|
||||
## 07:53:39 the server refuses formatting the whole disk under a registered part (POST /api/storage/init device=/dev/sdb)
|
||||
{"error":"Ezen a lemezen egy használatban lévő meghajtó van, ezért a teljes lemez nem formázható. Csak a szabad részét formázhatod.","ok":false}
|
||||
|
||||
HTTP 409
|
||||
## 07:53:39 /backups — the whole-box backup offer
|
||||
A Felhom nem tudja ellenőrizni, hogy a második meghajtó valóban másik lemez-e (virtuális gépben és egyes USB-házakban ez nem látszik), ezért nem számolja második másolatnak.
|
||||
Ezt a meghajtót kijelölheted a rendszermentés helyéül. A Felhom nem tudja ellenőrizni, hogy ez a meghajtó valóban másik lemez-e (virtuális gépben és egyes USB-házakban ez nem látszik), ezért nem ígérhetjük, hogy egy lemezhiba után is vissza tudod állítani a rendszert.
|
||||
@@ -0,0 +1,28 @@
|
||||
## agent (journal)
|
||||
Oct 16 09:45:34 buildb felhom-agent[6589]: time=2026-10-16T09:45:34.644+02:00 level=INFO msg="internal place: mounted on the host" where=/mnt/belso fs_uuid=0347cd44-d4d9-4c02-94fe-3af6789e3368 gib=213 duration_ms=954
|
||||
Oct 16 09:45:35 buildb felhom-agent[6589]: time=2026-10-16T09:45:35.837+02:00 level=INFO msg="wgtunnel: registered with hub" pubkey="NkTpVgvdFWq0cXODnqTBBDGvz2gZSd9wURYN4GnTuWk=" assigned_ip=10.77.0.6/32 existed=false generation=4 sync=ok
|
||||
Oct 16 09:45:35 buildb felhom-agent[6589]: time=2026-10-16T09:45:35.840+02:00 level=INFO msg="wgtunnel: registered with hub" pubkey="NkTpVgvdFWq0cXODnqTBBDGvz2gZSd9wURYN4GnTuWk=" assigned_ip=10.77.0.6/32 existed=true generation=4 sync=unchanged
|
||||
Oct 16 09:46:05 buildb felhom-agent[6589]: time=2026-10-16T09:46:05.422+02:00 level=INFO msg="wgtunnel: tunnel conf applied" endpoint=167.233.158.164:443 dns_name=ep0.felhom.eu assigned_ip=10.77.0.6/32 action=enable
|
||||
Oct 16 09:46:38 buildb felhom-agent[6589]: time=2026-10-16T09:46:38.331+02:00 level=INFO msg="guest-attach: drive bound under shared parent (normalized to one bind, live)" vmid=9201 where=/mnt/belso stable=/mnt/felhom-drives/belso prior_binds=0
|
||||
Oct 16 09:46:38 buildb felhom-agent[6589]: time=2026-10-16T09:46:38.786+02:00 level=INFO msg="local-api: guest-attach bound under shared parent" vmid=9201 where=/mnt/belso guest_path=/mnt/felhom-drives/belso
|
||||
Oct 16 09:46:55 buildb felhom-agent[6589]: time=2026-10-16T09:46:55.526+02:00 level=INFO msg="guest-attach: drive bound under shared parent (normalized to one bind, live)" vmid=9201 where=/mnt/belso stable=/mnt/felhom-drives/belso prior_binds=1
|
||||
Oct 16 09:47:01 buildb felhom-agent[6589]: time=2026-10-16T09:47:01.029+02:00 level=INFO msg="local-api: same-disk" vmid=9201 a=/mnt/sys_drive b=/mnt/felhom-drives/belso different=false proven=true reason=same_disk
|
||||
Oct 16 09:49:23 buildb felhom-agent[6589]: time=2026-10-16T09:49:23.794+02:00 level=INFO msg="local-api: same-disk" vmid=9201 a=/mnt/sys_drive b=/mnt/felhom-drives/belso different=false proven=true reason=same_disk
|
||||
Oct 16 09:49:41 buildb felhom-agent[6589]: time=2026-10-16T09:49:41.555+02:00 level=INFO msg="local-api: same-disk" vmid=9201 a=/mnt/sys_drive b=/mnt/felhom-drives/belso different=false proven=true reason=same_disk
|
||||
Oct 16 09:52:07 buildb felhom-agent[6589]: time=2026-10-16T09:52:07.593+02:00 level=INFO msg="local-api: same-disk" vmid=9201 a=/mnt/felhom-drives/belso/userdata b=/mnt/sys_drive different=false proven=true reason=same_disk
|
||||
Oct 16 09:53:14 buildb felhom-agent[6589]: time=2026-10-16T09:53:14.891+02:00 level=INFO msg="local-api: disk assigned (host mount ensured)" vmid=9201 where=/mnt/resz1
|
||||
Oct 16 09:53:14 buildb felhom-agent[6589]: time=2026-10-16T09:53:14.962+02:00 level=INFO msg="guest-attach: drive bound under shared parent (normalized to one bind, live)" vmid=9201 where=/mnt/resz1 stable=/mnt/felhom-drives/resz1 prior_binds=0
|
||||
Oct 16 09:53:15 buildb felhom-agent[6589]: time=2026-10-16T09:53:15.333+02:00 level=INFO msg="local-api: guest-attach bound under shared parent" vmid=9201 where=/mnt/resz1 guest_path=/mnt/felhom-drives/resz1
|
||||
Oct 16 09:53:27 buildb felhom-agent[6589]: time=2026-10-16T09:53:27.615+02:00 level=INFO msg="local-api: disk assigned (host mount ensured)" vmid=9201 where=/mnt/resz2
|
||||
Oct 16 09:53:27 buildb felhom-agent[6589]: time=2026-10-16T09:53:27.706+02:00 level=INFO msg="guest-attach: drive bound under shared parent (normalized to one bind, live)" vmid=9201 where=/mnt/resz2 stable=/mnt/felhom-drives/resz2 prior_binds=0
|
||||
Oct 16 09:53:28 buildb felhom-agent[6589]: time=2026-10-16T09:53:28.088+02:00 level=INFO msg="local-api: guest-attach bound under shared parent" vmid=9201 where=/mnt/resz2 guest_path=/mnt/felhom-drives/resz2
|
||||
Oct 16 09:53:39 buildb felhom-agent[6589]: time=2026-10-16T09:53:39.199+02:00 level=INFO msg="local-api: same-disk" vmid=9201 a=/mnt/felhom-drives/resz1 b=/mnt/felhom-drives/resz2 different=false proven=true reason=same_disk
|
||||
Oct 16 09:53:39 buildb felhom-agent[6589]: time=2026-10-16T09:53:39.796+02:00 level=INFO msg="local-api: same-disk" vmid=9201 a=/mnt/sys_drive b=/mnt/felhom-drives/belso different=false proven=true reason=same_disk
|
||||
Oct 16 09:53:40 buildb felhom-agent[6589]: time=2026-10-16T09:53:40.005+02:00 level=INFO msg="local-api: same-disk" vmid=9201 a=/mnt/sys_drive b=/mnt/felhom-drives/resz1 different=true proven=false reason=vm
|
||||
Oct 16 09:53:40 buildb felhom-agent[6589]: time=2026-10-16T09:53:40.199+02:00 level=INFO msg="local-api: same-disk" vmid=9201 a=/mnt/sys_drive b=/mnt/felhom-drives/resz2 different=true proven=false reason=vm
|
||||
Oct 16 09:53:42 buildb felhom-agent[6589]: time=2026-10-16T09:53:42.263+02:00 level=INFO msg="local-api: same-disk" vmid=9201 a=/mnt/felhom-drives/resz1 b=/mnt/sys_drive different=true proven=false reason=vm
|
||||
Oct 16 09:53:42 buildb felhom-agent[6589]: time=2026-10-16T09:53:42.465+02:00 level=INFO msg="local-api: same-disk" vmid=9201 a=/mnt/felhom-drives/resz2 b=/mnt/sys_drive different=true proven=false reason=vm
|
||||
## controller
|
||||
2026/10/16 07:46:56 [INFO] [internal-place] registered /mnt/felhom-drives/belso (default=true) — media and data-folder apps can use it
|
||||
2026/10/16 07:49:39 [INFO] [stacks] Deploy jellyfin: a media app — HDD_PATH (its own config) on the default drive "/mnt/felhom-drives/belso"; the media binds cover every present drive
|
||||
2026/10/16 07:49:39 [INFO] [stacks] Deploying stack jellyfin with 3 env vars: [SUBDOMAIN, HDD_PATH, DOMAIN]
|
||||
@@ -0,0 +1,14 @@
|
||||
## 07:54:28 household power-off (POST /api/server/poweroff)
|
||||
{"data":{"code":"confirm_required"},"error":"Írd be a megerősítő szót: KIKAPCSOLÁS.","ok":false}
|
||||
|
||||
HTTP 400
|
||||
VM 342: running at 07:58:35
|
||||
VM 342 is running - destroy failed
|
||||
status: running
|
||||
## 07:58:46 household power-off with the confirmation word
|
||||
{"data":{"powering_off":true},"ok":true}
|
||||
|
||||
HTTP 202
|
||||
VM 342: stopped at 07:59:18
|
||||
purging VM 342 from related configurations..
|
||||
Configuration file 'nodes/demo-hp/qemu-server/342.conf' does not exist
|
||||
@@ -0,0 +1,7 @@
|
||||
## 07:59:28 Tester 1 scratch disk removal
|
||||
sdg not mounted
|
||||
ls: cannot access '/tmp/agentq.sh': No such file or directory
|
||||
scsi6: nvme-scratch:341/vm-341-disk-7.raw,backup=0,size=16G
|
||||
update VM 341: -delete scsi6 -force 1
|
||||
0
|
||||
0
|
||||
@@ -0,0 +1,8 @@
|
||||
## 2026-10-16 R-1082: which boxes had attached /mnt/sys_drive — the hub's latest report per customer (reports.report_json
|
||||
## "storage", a list of {mount, label, …}; hub database copied with its WAL)
|
||||
demo-hp sys_drive mentions 0 | felhom-drives mentions 1 (control: its registered drive is listed)
|
||||
Tester-2 sys_drive mentions 0 | felhom-drives mentions 0
|
||||
tester-1 sys_drive mentions 0 | felhom-drives mentions 5
|
||||
demo-felhom sys_drive mentions 0 | felhom-drives mentions 1
|
||||
Tester4 sys_drive mentions 0 | felhom-drives mentions 1 (the data area, /mnt/felhom-drives/belso)
|
||||
Result: no box has /mnt/sys_drive registered; nothing to keep working, nothing to detach.
|
||||
Reference in New Issue
Block a user