[Docs Draft] znas filesystem -- pending review (20260715-201238-docs-znas-13a5) #15
Labels
No labels
doc-staleness
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
traveler/Netgrimoire#15
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
fsid=0: NFSv4 pseudo-root (required for client enumeration).crossmnt: Allows traversal into sub-datasets (e.g.,vault/Data→vault/Data/media_books).nohide: Required forvault/Data/media_booksandvault/Data/media_comicsto be visible to clients.no_root_squash: Preserves root permissions (required for Docker Swarm).Loopback Mount (ZNAS Only)
ZNAS mounts its own NFS exports back to itself at
/data/nfs/znasto provide a consistent path for Docker Swarm containers, regardless of which node they land on. This is configured via ZFS mountpoints (not/etc/fstab):Client Autofs Mounts
Configuration
All Swarm nodes (including ZNAS) use autofs to mount NFS exports on-demand at
/data/nfs/znas. This ensures consistent paths across all nodes./etc/auto.master/etc/auto.nfsClient Behavior
/) from ZNAS at/data/nfs/znas, then traverses into subdirectories as needed./data/nfs/znas/, ensuring Docker Swarm containers use the same paths regardless of scheduling.docker5):Loop-Mounted Images
None detected. Live state confirms no loop devices are in use on ZNAS:
Pocket ZFS Sync Mechanism
Overview
The Pocket Grimoire portable system (a 5TB SSD) is synced from ZNAS using syncoid (part of the
zfs-auto-snapshotpackage). The sync is unidirectional:vault/pocket/*→pocket-media/*.Sync Targets
vault/pocket/green/mediapocket-media/media/greenvault/pocket/media/referencepocket-media/media/referencevault/pocket/services/DockerVolpocket-media/services/DockerVolvault/pocket/services/stackspocket-media/services/stacksSync Command
The sync is triggered by the "Gremlin Pocket Dismount" n8n workflow via SSH:
-r: Recursive sync.Current State
pocket-mediapool) is physically docked to ZNAS as of 2026-07-08 (mid-migration).mycrofthost (Pocket Grimoire) is unreachable and presumed offline.Discrepancies Noted
Dataset Layout:
vault/Green/Pocketwas listed as/export/Green/Pocket.vault/Green/Pocketis mounted at/export/Green/Pocket, butvault/pocket/green/mediais mounted at/data/nfs/znas/Green/Pocket(loopback). This suggests the Pocket sync source is nowvault/pocket/green/media.NFS Exports:
/export/Pocketwas not listed in the exports file./export/Pocketis explicitly exported (fsid=32).Pocket Sync:
vault/pocket/services/DockerVolorvault/pocket/services/stacks.Loopback Mounts:
/etc/fstab./etc/fstab).Superseded by #16: same run fixed the pool-capacity/pocket-pool content issues found in this draft (see the ntfy/staging debug session), plus the notification-routing bug that meant this draft's ntfy ping never reached a channel you were watching. Closing in favor of #16.