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

9.4 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

Decisions (2026-05-28)

  1. Keep Immich and Jellyfin on same drive (.35 My Passport) — different purposes (home photos vs movies)
  2. Photos need careful plan — keep one master copy + backup. temp_transfer and other photo collections also need consolidation into the archive
  3. Do not back up .13.27's data is already backed up via Borg, .13's websites are in Gitea (git), no local backup needed
  4. .27 drives can be renamed — SmartDrive, TempBackup, Back Up, XPSystemDrive. Other machines' drives stay as-is

Open Questions

  • Is the Integral300 recovery .img still needed (298G)? It matches the extracted files.
  • Should .23 (file-server) get its own backup?
  • Should we move old photo archive to MaxtorBackup and rotate it offsite?
  • What naming convention for .27 drives?