docs: network-storage — DSM validated recipe + Q1c CLOSED (FAIL, restart reassert gap)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
This commit is contained in:
@@ -117,10 +117,33 @@ worst case is systemd's 90 s (black-holed server) — verify traffic therefore r
|
||||
job + status poll, never a single long HTTP call (the agentapi client keeps its global 15 s
|
||||
timeout).
|
||||
|
||||
## Synology (DSM) — validated recipe (SPIKE-nas-dsm-2026-07-11, real DSM 7.2)
|
||||
|
||||
The consumer recipes were validated end-to-end against a real DSM 7.2 (virtual-dsm) through the live
|
||||
add pipeline. Exact steps for the customer/operator:
|
||||
- **Enable NFS first (off by default, and defaults to NFSv3 which our mount rejects):** Control
|
||||
Panel → File Services → NFS → "Enable NFS service" → **Maximum NFS protocol: NFSv4.1** → Apply.
|
||||
- **NFS rule:** Control Panel → Shared Folder → <share> → Edit → NFS Permissions → Create → the
|
||||
Felhom host IP, Read/Write, **Squash: "Map all users to admin"** → Save. The export path shown on
|
||||
that tab (`/volume1/<share>`) is what goes in the add form.
|
||||
- **SMB:** Control Panel → User & Group → create a user with Read/Write on the share — nothing else
|
||||
(no force-user). **Hardlinks work on DSM's SMB stack** (the Q5 caveat is closed for Synology).
|
||||
- Route A on DSM behaves exactly as on Debian: guest sees `nobody`, chown clean-EPERM, chmod
|
||||
persists. The SMB error taxonomy (`smb_auth`/`smb_share`) classifies identically to Debian.
|
||||
|
||||
**QNAP remains a stated caveat** — no emulator exists; not validated.
|
||||
|
||||
## Open items
|
||||
|
||||
- Q1c: whether an automount trigger installed BEFORE guest boot propagates at guest start —
|
||||
needs a restart-window test (the add flow installs while the guest runs, which is proven).
|
||||
- Synology/QNAP appliance fidelity pass (virtual-dsm) before GA.
|
||||
- The demo's pre-existing `nas-media` unit (if any) predates `retry=0` and is not rewritten —
|
||||
re-adding the share re-creates it with the current option string.
|
||||
- **Q1c CLOSED — FAIL (SPIKE-nas-dsm-2026-07-11 §Q1c, supervised):** a configured NAS automount
|
||||
trigger does **not** survive a guest reboot. `mp8` is `shared`→`shared,slave`; slave propagation
|
||||
only carries mounts established AFTER the guest's post-reboot bind, so the pre-existing host autofs
|
||||
trigger is absent from the guest's fresh namespace, and an in-guest access sees an **empty
|
||||
directory** (not the share) without triggering the host mount. The controller's per-share health
|
||||
still reads `idle`/`ok` (it inspects the HOST automount), masking the gap. **Fix = agent-side
|
||||
`ReassertNetworkMounts` on guest reboot** (mirror `ReassertGuestBinds`), spec'd at
|
||||
`documentation/backlog/FOLLOWUP-nas-automount-guest-reboot-reassert.md`; interim workaround = re-add
|
||||
the share. Until fixed, a customer guest reboot requires re-touching NAS shares.
|
||||
- QNAP appliance fidelity pass (no emulator) before GA — Synology is now validated.
|
||||
- The demo's `nas-media` share predates `retry=0`; re-adding re-creates the unit with the current
|
||||
option string.
|
||||
|
||||
Reference in New Issue
Block a user