# workspace-ageout Hot-to-cold tiering changelog for `workspace.rmf44.xyz`. ## What this is `workspace.rmf44.xyz` lives on `hawker` (VPS, 237 GB root disk) with user files stored in `/var/lib/workspace-hot/`. A nightly job ages out files unmodified for more than 90 days, moving them to dessert NFS at `/mnt/dessert-cold/` (the durability tier). An hourly disk-pressure safety valve does the same when free space on hawker drops below 50 GB. Every aging-out run writes a `changelog/YYYY-MM-DD.txt` entry and commits it to this repo, so you have a permanent record of what moved where. ## Restoring an aged-out file Files aged out of the hot tier are NOT deleted — they live on the cold tier (NFS) on `desslok` at `/slab/container_storage/workspace-cold/`. To restore a file: ```bash # on hawker, as tigo: ssh desslok 'ls -la /slab/container_storage/workspace-cold/path/to/file' scp desslok:/slab/container_storage/workspace-cold/path/to/file \ /var/lib/workspace-hot/path/to/file ``` Replace `path/to/file` with the relative path shown in the changelog. ## Reading the changelog ```bash git log --stat # overview git show HEAD # most recent run ls changelog/ # all dated entries ``` Each entry looks like: ``` workspace-ageout run: 2026-08-12T03:00:07Z Threshold: 90 days Disk before: 184G free Disk after: 187G free Reclaimed: 3G Files aged out: 47 race/files/Projects/old-quarterly-report.docx race/files/Photos/2025/IMG_4401.jpg ... Files failed: 0 ``` ## How it works - **`/usr/local/bin/workspace-ageout.sh`** runs nightly (cron `0 3 * * *`). Finds files in `/var/lib/workspace-hot/` with `mtime > 90 days`, rsyncs each to `/mnt/dessert-cold/` (preserving relative paths), verifies via md5sum, and deletes from hot. Appdata is excluded. - **`/usr/local/bin/workspace-pressure.sh`** runs hourly (cron `0 * * * *`). When `df -BG` on hot shows < 50 GB free, ages out oldest files until 80 GB free, regardless of mtime. Both scripts use a `rsync --remove-source-files`-style two-phase move (rsync first, then delete) so a network blip never causes data loss. ## Where data lives - **Hot tier:** `/var/lib/workspace-hot/` on hawker (local disk) - **Cold tier:** `/mnt/dessert-cold/` on hawker → `desslok:/slab/container_storage/workspace-cold/` over NetBird NFS - **Changelog:** this repo (auto-committed per run) - **Logs:** syslog via `logger -t workspace-ageout` and `logger -t workspace-pressure` ## Restore UX (per Lord Race, 2026-08-11) User SSHes to hawker and runs `scp` from desslok. No custom tooling, no plugin.