Files
obsidian-vault/100 inbox/Filesystem Consolidation Plan.md

9.0 KiB
Raw Blame History

created, modified, type, tags, aliases
created modified type tags aliases
2026-05-28 2026-05-28 note
dev-ops
filesystem
consolidation
planning
consolidation-plan
file-system-redesign

Filesystem Consolidation Plan

DRAFT — Planning document for reorganising files across all machines.


Principles

  1. One source of truth — no duplicate data on multiple drives
  2. Always-on drives for active data — rarely-used data goes on removable/archive drives
  3. NTFS for cross-platform — anything that needs Samba/NFS access from Windows/Mac
  4. Backup repos stay where they are — changing backup infrastructure is risky
  5. Consolidate by access frequency — hot/warm/cold tiers

Current Inventory — What Needs Homes

Always-On Services (need drives mounted 24/7)

Service Machine Current Mount Size Notes
Immich photos .35 /mnt/hd/immich/ ~? 40K photos, need fast reliable access
Jellyfin media .35 /mnt/hd/... ? Movies, TV shows, music
Docker containers .35 /Docker/Containers/ 23.7G Already on system drive
Docker data .35 /mnt/hd/*/ ? Lidarr, Radarr, Sonarr, etc. data
Websites .13 /var/www/ ? Active web projects
Docker on .13 .13 /home/sam/Docker/ ?

Personal Data (frequent access)

Data Current Location(s) Size Notes
Dev projects .27 ~/... ? NixOS, coding projects
Old web work .13 ALL_TRANFERS/ + .27 /mnt/backup/ ? htdocs, PHP, etc. — DUPLICATED
Arduino / IoT .13 ALL_TRANFERS + SmartDrive ? DUPLICATED
Flash AS3.0 .13 ALL_TRANFERS ? Rarely accessed
Music .13 + .27 ? DUPLICATED
Sheet music ? ? Could move to Obsidian
Family notes ? ? Could move to Obsidian
TODO lists Obsidian + ? Already in Obsidian
Movies/TV .35 /mnt/hd/ + .13 ? Jellyfin media
Display screen + website builder ? ? Large project?

Archive / Rarely Accessed (cold storage)

Data Current Location(s) Size Notes
Sorted photos (20032023) .13 sorted_pictures_holder/ ~? 31K photos, already organized
Old subject-organized photos .27 /mnt/backup/ + .13 ~? DUPLICATED
Integral300 recovery .img .27 /mnt/tempbackup/ 298G Keep or delete?
Integral300 backup .27 SmartDrive integral300_backup_... 105G Already extracted — delete?
Windows old drives .13 /mnt/storage/ 271G used Old Windows files
Old Windows data drive .13 /mnt/data/ 1.5T used ALL_TRANFERS, etc. — DUPLICATED

Backup Repos (stay where they are)

Repo Machine Path Size
Borg .27 repo .13 /mnt/ubuntu_storage_3TB/backup/borg/.27 ~?
Borg .13 repo .13 /mnt/ubuntu_storage_3TB/backup/borg/.13 ~?
Kopia repo .23 (via .35) /mnt/nfs_usb_3tb/kopia/ 46G
Restic repo .23 (via .35) /mnt/nfs_usb_3tb/backups/restic/ 13G

Drive Role Assignment

Always-On Drives (mounted 24/7)

Machine Drive Mount Role Filesystem
.35 vda1 (My Passport) /mnt/hd Active data — Immich, Jellyfin, Docker service data, current projects NTFS (cross-platform)
.13 sdd1 (ubuntu_storage_3TB) /mnt/ubuntu_storage_3TB Backup target — Borg repos only ext4
.13 sdb2 (Data) /mnt/data Archive — old photos, old web work, ALL_TRANFERS NTFS (cross-platform)
.13 sda2 (Storage) /mnt/storage Windows legacy — old Windows files NTFS (cross-platform)

Warm-Swap Drives (plug in when needed)

Drive Size Free Role Label
SmartDrive 687G 548G Transfer / temporary — moving data between machines SmartDrive
TempBackup 458G 136G Offline backup — secondary copy of critical data TempBackup
Back Up 224G 158G Legacy — old photos (read-only NTFS) Back Up (NTFS)
MaxtorBackup 1.4T 1.3T Archive target — empty, ready for use MaxtorBackup

Proposed Folder Hierarchy

On .35/mnt/hd/ (My Passport — NTFS) — Active Data

This is the hot data tier — always accessible via Docker, Samba, etc.

/mnt/hd/
├── services/                    ← Docker service data (bind-mounted)
│   ├── immich/                  ── Already here
│   ├── audiobookshelf/
│   ├── lidarr/
│   ├── radarr/
│   ├── sonarr/
│   ├── qbittorrent/
│   ├── readarr/
│   ├── headphones/
│   ├── spotweb/
│   ├── nextcloud/               ── Future?
│   └── paperless/               ── Already on NFS
├── media/                       ← Jellyfin media library
│   ├── movies/
│   ├── tv/
│   ├── music/
│   ├── audiobooks/
│   ├── podcasts/
│   └── books/
└── projects/                    ← Current active projects
    ├── web/
    ├── arduino/
    ├── nixos/
    └── ...

On .13/mnt/data/ (NTFS) — Archive & Warm Data

This is the archive tier — old projects, old photos, everything rarely accessed but worth keeping.

/mnt/data/
├── archive/
│   ├── photos/                  ← Consolidated photo archive
│   │   ├── sorted_pictures_holder/  ── From ALL_TRANFERS
│   │   └── old_subject_organized/   ── From Back Up drive + PICTURES_GROUPED_SUBJECT_OLD
│   ├── web_work/                ← Old htdocs, PHP, Flash AS3.0 projects
│   ├── arduino_iot/
│   ├── music/
│   ├── sheet_music/
│   ├── family_notes/
│   └── integral300/             ← Recovery .img moved here from .27
└── transfer/                    ← Staging area for moving data between machines

On .13/mnt/ubuntu_storage_3TB/ (ext4) — Backup Repository

/mnt/ubuntu_storage_3TB/
└── backup/
    ├── borg/
    │   ├── .13/                 ← .13 local backups
    │   └── .27/                 ← .27 backups via SSH
    └── restic/                  ← Future: secondary restic target?

Consolidation Actions

Phase 1 — Eliminate Duplicates

What Duplicated Where Action
Old subject-organized photos .27 /mnt/backup/ + .13 PICTURES_GROUPED_SUBJECT_OLD Delete from .27 (keep .13 copy)
Integral300 extracted backup .27 SmartDrive integral300_backup_... Delete — recovery .img is the source of truth
Arduino / IoT files .13 ALL_TRANFERS + SmartDrive Consolidate to .13 archive
Old web work (htdocs) Multiple places Consolidate to .13 /mnt/data/archive/web_work/

Phase 2 — Consolidate to Right Drives

What Move From Move To When
Integral300 recovery .img .27 /mnt/tempbackup/ .13 /mnt/data/archive/integral300/ Phase 2
Sorted photos .13 ALL_TRANFERS/Pictures/sorted_pictures_holder/ .13 /mnt/data/archive/photos/ Phase 2
Old web work .13 ALL_TRANFERS/ .13 /mnt/data/archive/web_work/ Phase 2

Phase 3 — System Rebalancing

Action Reason
Mount MaxtorBackup as offline backup repository Provides a second physical copy of backup repos
Configure periodic rsync from .23 backup repos → MaxtorBackup .23 has no backup — this covers it
Clean up old empty stub directories on .35 /mnt/hd/ Remove Western Digital installer files, System Volume Information

Always-Connected vs Hot-Swap

Drive Connection Why
.35 My Passport (vda, /mnt/hd) Always on Immich, Jellyfin, Docker services need this
.13 ubuntu_storage_3TB Always on Backup target — Borg runs daily
.13 Data (sdb) Always on Archive data, accessible to network
.13 Storage (sda) Always on Old Windows files
.27 SmartDrive Hot-swap Only needed during data transfers
.27 TempBackup Hot-swap Temporary storage / cache
.27 Back Up Hot-swap Legacy — eventually retire
MaxtorBackup Hot-swap Offline backup — plug in monthly

Open Questions

  • Should Immich and Jellyfin media live on the same drive? (single point of failure)
  • Should we move old photo archive to MaxtorBackup and rotate it offsite?
  • Is the Integral300 recovery .img still needed (298G)? It matches the extracted files.
  • What about .13's /var/www/ websites — should they be backed up?
  • Should .23 (file-server) get its own backup?
  • Naming convention for drives: should we re-label drives with consistent names?