docs: record OS operational-snapshot binding (real OS data on cube, survives power cycle)

This commit is contained in:
hermes
2026-08-13 09:53:51 -04:00
parent 0343ea6bcb
commit 868883ba1e
+20 -8
View File
@@ -56,8 +56,14 @@ is real. Each must be reproduced live, not asserted.
boot history to `/cubefs/c200/z001|z002|z003`) and `cube-os-klog.service`
(streams kernel ring buffer to `/cubefs/c200/z004`) run at boot; both enabled
+ active; state survives a FULL power cycle (verified 2026-08-13: rebooted the
VM, boot history showed pre- + post-reboot lines, manifest unchanged).
**STATUS: DONE (auxiliary layer; not yet the root fs).**
VM, boot history showed multiple boots, manifest unchanged).
**ALSO (2026-08-13): real OS operational data** — `cube-os-snapshot.service` +
`cube-os-snapshot.timer` (every 5 min + 30s after boot) write genuine OS state
(running units, network, resources, journal) into `/cubefs/c200/z010/y001/xNNN`
(rolling 3-digit counter, x-axis is u16→3-digit per cubefs path model).
Verified: snapshot survives daemon restart; the OS wrote a NEW snapshot on a
fresh boot after a full power cycle; inode == packed CZYX. **STATUS: DONE
(auxiliary layer; not yet the root fs).**
---
@@ -117,12 +123,18 @@ missing.
- Phase 3 (optional hardening): the `cube open` primitive currently needs a key
cell present; wire a real key-management flow (Null-space key cells issued at
boot) so OS services can open records by CZYX + flags unattended.
- Boot substrate (next deepening): bind a real OS tree (e.g. `/var/log`,
`/etc` config, the boot manifest) so the OS reads/writes through the cube by
default — currently the cube holds OS *state* (manifest/identity/klog) but the
root fs is still ext4. The magic-prefix "open by CZYX" FUSE passthrough is the
natural next step (a path like `/cubefs/.czyx/200.1.1.1` resolves directly to
the coordinate).
- Boot substrate (next deepening): make the cube the OS's *default* storage for a
real tree — e.g. have a service write `/etc` or `/var/log` operational files
through the cube by default. Currently the cube holds OS *state* (manifest/
identity/klog/snapshots) but the root fs is still ext4. The magic-prefix
"open by CZYX" FUSE passthrough is the natural next step (a path like
`/cubefs/.czyx/200.1.1.1` resolves directly to the coordinate), and a
loop/overlay over a cube-backed file would let the OS treat the cube as a real
block device.
- IMAGE PROVISIONING CAVEAT: the systemd units + scripts live in the VM guest
filesystem, NOT in the CUBELinux-2 git repo. If `build_vm.sh` bakes a fresh
image, re-add these units (cube-os-state, cube-os-klog, cube-os-snapshot +
timer) to the image provisioning, or they won't survive a from-scratch rebuild.
- OPTIONAL (cosmetic): launch the "CUBE Shell" desktop launcher in the VM to
confirm end-to-end at the file level (wiring already verified:
cube-term → cubec → /run/cube/cube.sock).