I have 78,398 photos on my NAS. Family photos, concert shots, travel photos going back to 2010. RAW files from my Canon 6D. Every photo I've ever cared about keeping lives on this machine. And until last week, I had never seriously thought about what happens when the machine fails.
Not if it fails. When.
I already know this. Last September, one of my array disks started throwing errors. It took eleven days of escalating warnings before the drive was rebuilt on a replacement. The parity disk caught it. Everything survived. But it got me thinking about scenarios that parity can't save you from.
The Audit
I ran a deep analysis of every share on my Unraid server. A UGREEN DXP4800+ with three data disks, a parity disk, and a 2TB NVMe cache. 25.5TB used out of 50TB total array capacity. Here's what I found.
$ df -h /mnt/disk* /mnt/cache Filesystem Size Used Avail Use% Mounted on /mnt/disk1 15T 11T 3.2T 79% /mnt/disk1 /mnt/disk2 15T 9.8T 4.7T 68% /mnt/disk2 /mnt/disk3 20T 5.2T 15T 26% /mnt/disk3 /mnt/cache 1.8T 268G 1.6T 14% /mnt/cache
The numbers looked fine on the surface. Parity is healthy. Cache drive has tons of room. Disk 3 is mostly empty. But the numbers tell you nothing about how protected the data is. Or how findable it would be in twenty years. Or what happens if someone breaks into my house and takes the whole machine.
I graded every dimension of the archive's health. The results were not great.
| Domain | Grade | Key Issue |
|---|---|---|
| Storage tiering | B- | Music cache-only, orphaned data, Documents on spinning rust |
| Backup & redundancy | D | Zero offsite backup anywhere |
| Integrity verification | F | Zero checksums on 25.5TB of XFS |
| Organization | C- | 10TB of unsorted drive dumps and recordings |
| Format longevity | B | RAW photos preserved, FLAC excellent |
| Workflow & ingest | C | Multiple tools deployed but unused |
| Searchability | D+ | Only 15-20% of archive is indexed |
| Disaster recovery | C- | Good single-failure protection, nothing beyond that |
An F in integrity verification. A D in backup. Let me walk through the scariest things I found.
The Things That Kept Me Up at Night
My entire music library has zero redundancy
This one made my stomach drop. My Music share is set to cache=prefer, which in Unraid means the data lives only on the NVMe cache drive. The mover never copies it to the array. I verified it: du -sh /mnt/disk*/Music/ returns nothing. 123GB of ripped FLACs, my entire iTunes library, all of it sitting on a single Samsung 990 PRO with no parity protection, no backup, no second copy anywhere on earth.
One NVMe failure and it's gone. Not recoverable. Just gone.
123GB exists only on NVMe. Zero copies on array. Zero copies offsite. A single drive failure means permanent loss of the entire library.
No Lightroom catalog on the server
I have 64,790 RAW photo files on the NAS. CR2s from my Canon 6D, ARWs from a Sony, some newer CR3s. But the Lightroom catalog that contains every crop, exposure adjustment, color grade, and metadata edit I've ever made? That lives on my MacBook. It's not on the server. It's not backed up to the server. If the MacBook's SSD fails, a decade of editing work disappears.
Only 760 out of 64,790 photos have XMP sidecar files. That means 98.8% of my edit history is locked inside a single .lrcat database file on a single laptop.
Zero offsite backup
This is the big one. I have parity. I have a UPS. I have monthly appdata backups. But every single bit of protection lives inside the same metal box, in the same room, in the same house. A fire takes everything. A flood takes everything. A theft takes everything. Ransomware encrypts the array and parity syncs the encrypted data, so parity actually makes it worse.
| Scenario | Current Outcome |
|---|---|
| Single disk failure | Covered (parity rebuild, 24-48 hours) |
| NVMe cache failure | Music GONE, 30 days of appdata lost |
| Double disk failure | TOTAL LOSS (25.5TB) |
| Fire / theft / flood | PERMANENT LOSS |
| Ransomware | TOTAL LOSS (parity syncs encrypted data) |
I kept telling myself single-disk parity was "good enough." It's not. It protects against exactly one failure mode.
25.5TB with zero integrity checks
My array uses XFS. XFS has no built-in checksumming. That means if a bit flips on disk, nothing detects it. Nothing alerts me. The file just quietly becomes corrupted, and the next time parity recalculates, the corruption becomes the new truth.
The September 2025 disk failure had an eleven-day window of escalating errors. Any file read from that disk during those eleven days might be silently corrupted. I have no way to know. I never generated checksums. Not for the photos, not for the music, not for anything.
25.5 terabytes. Zero verification. For years.
The Organizational Debt
Beyond the survival-level problems, there's a less dramatic but equally important issue: I can't find anything. About 40% of my data is organizational debt.
- 6.3TB of raw drive dumps from old HDDs and SSDs, never sorted
- 3.6TB of unlabeled OBS screen recordings
- 570MB in an inbox folder that's been sitting unsorted for 3-7 months
- Photos scattered across 8 inconsistently-named folders
- Naming conventions all over the place: ALL_CAPS, spaces, underscores, no standard
- An F1 race recording mixed into the Live Music folder
- 179GB in Recycle Bins that nobody emptied
I deployed Paperless-ngx for document management. It's running, it's healthy, and it has zero documents in it. I have about 1,199 PDFs scattered across the server that are completely unsearchable. I set up Calibre for ebooks. Also empty. Tdarr for video transcoding. Zero libraries configured, zero files processed.
I installed the tools. I never actually used them.
What I'm Protecting
Before building a plan, I needed to categorize what actually matters. Not all 25.5TB is created equal.
IRREPLACEABLE HARD TO REPLACE REPLACEABLE Photos 78K files, 1.7TB Music/FLAC 12G ripped Videos 1.8TB Documents 19GB legal/personal iTunes 108G library Data 9.5TB Personal archives Home Assistant config Downloads transient Lightroom catalog* PostgreSQL databases Ollama models 11GB Family film scans n8n workflows Stash metadata 25GB Google Takeout exports Roon database 6.6GB App installers * NOT ON SERVER - critical gap
The irreplaceable column is about 2.7TB. That's the stuff I cannot re-download, re-purchase, or re-create. Family photos from before my kids could walk. Legal documents. Scanned film negatives from my parents. Every photo I took at every concert, every trip, every moment I thought was worth preserving.
$15 a month for Backblaze B2 would protect all of it. I've been paying $0 and risking everything.
The Plan
I organized the fix into three layers. Prevention, protection, and organization. Each one independent. Each one valuable on its own. No layer depends on the others being complete.
Layer 1: Prevention
Stop problems before they start.
- b2sum checksums for all irreplaceable data. BLAKE2b is already installed on Unraid and runs 2-3x faster than SHA-256. Weekly verification of the critical 1.85TB (Photos, Music, Documents, Books). Monthly verification of the full 25.5TB.
- PAR2 redundancy files for the irreplaceable tier. About 90GB of overhead at 5% redundancy, but it means I can actually repair a corrupted file instead of just detecting the damage.
- BTRFS scrub on the NVMe cache, weekly. It takes 60 seconds. There is no reason this isn't automated already.
- Monthly parity checks instead of annual. My current schedule runs parity once a year in July. That's eleven months of potential drift.
# Weekly (Sunday 2 AM) b2sum --check /mnt/user/Photos/.b2sum-manifest # 1.7TB, ~4-6 hours b2sum --check /mnt/user/Music/.b2sum-manifest # 123GB b2sum --check /mnt/user/Documents/.b2sum-manifest # 19GB b2sum --check /mnt/user/Books/.b2sum-manifest # 5.8GB # Weekly (Sunday 3 AM) btrfs scrub start /mnt/cache # ~60 seconds on NVMe # Monthly (1st of month, 4 AM) b2sum --check /mnt/user/*/.b2sum-manifest # All 25.5TB, 24-48 hours
Layer 2: Protection
Survive failures when they happen.
The immediate fixes took less than an hour:
- Fix Music share. Change
cache=prefertocache=yesand run the mover. Five minutes of work to eliminate the single biggest risk on the entire server. - Copy the Lightroom catalog from my MacBook to the NAS. Export XMP sidecars for all 64,790 photos.
- Purge 179GB of Recycle Bin data to free space on Disk 1 (79% full).
- Move 54GB of orphaned data off the NVMe cache. Archive and isos are set to
cache=nobut the mover skipped them.
The longer-term protection layer:
- Backblaze B2 + rclone for offsite backup of the irreplaceable tier. About 2.7TB at roughly $15/month. Daily sync via a User Script at 4 AM. B2's built-in versioning also gives me ransomware rollback.
- Weekly appdata backups instead of monthly. My current 30-day RPO means I could lose a month of PostgreSQL data, n8n workflows, and Home Assistant config.
- Daily PostgreSQL dumps. A simple
pg_dumpcron job at 3 AM. Paperless-ngx, n8n, and other services all depend on this database. - Consider dual parity. A 24TB drive in slot 4 would cost about $375 and protect against double-disk failure. After experiencing one disk failure already, this feels less like paranoia and more like planning.
Photos (1.7TB), Documents (19GB), Music (123GB), and Backups (1.1TB) all protected by parity locally and rclone to B2 offsite. Appdata weekly to array, then synced to B2. PostgreSQL dumped daily.
Layer 3: Organization
Find things in twenty years.
I'm consolidating from 17 shares down to 11. Consistent Title-Case-Hyphen naming everywhere. No spaces in folder names (they break scripts). No ALL_CAPS. Date-prefixed filenames so chronological sorting is built in.
The tools I already deployed but never used are getting put to work:
- Immich for photo management. Phone auto-upload, face recognition, timeline browsing, map view. My 78,398 photos currently have no search, no timeline, nothing. Just folders.
- Paperless-ngx for documents. It generates PDF/A-2b (archival standard) and does full OCR. I have about 1,200 PDFs to feed into it.
- Roon for music. Already running and already excellent. One thing I got right.
- Jellyfin for video. Also already working.
The ugly part is the 10TB of organizational debt. I'm scheduling that as weekend projects across several months. One legacy drive dump per weekend. Review, sort, delete. The 3.6TB of OBS recordings alone could probably be cut in half, but I need to actually watch them to decide.
Format Longevity
Will my files still be readable in 2045? I looked at every format in the archive.
| Format | 2045 Readability | Action Needed |
|---|---|---|
| FLAC | Certain | None |
| CR2 / ARW / CR3 (RAW) | Probable | Convert to DNG as insurance copy |
| JPG | Certain | None |
| MKV / MP4 (H.264/H.265) | Very likely | None |
| M4P (DRM-protected) | Uncertain | Upgrade 34 files now |
| ENEX (Evernote export) | Uncertain | Convert to Markdown |
| Markdown | Certain | Already ideal |
| Certain | Ingest into Paperless-ngx for OCR |
The good news: most of my archive is in open, well-supported formats. FLAC will outlive me. JPEG is eternal. H.264/H.265 video is safe for decades.
The bad news: 34 M4P files from the iTunes DRM era could become unplayable if Apple ever drops FairPlay support. And my Evernote exports are in a proprietary XML format that nobody else reads. Both are small problems. Easy to fix now, potentially impossible later.
The ambiguous case is camera RAW. Canon CR2 and Sony ARW are proprietary formats. They'll probably be readable in 2045, but "probably" isn't the word I want for 64,790 irreplaceable photos. Adobe DNG is the open alternative. I plan to batch-convert everything to DNG as a parallel archive, keeping the originals.
What Gets Automated vs. What Stays Manual
I was tempted to automate everything. But some decisions require a human. Specifically, they require me. Only I know whether an OBS recording from 2023 is something I'll ever watch again. Only I know which folder a random PDF belongs in.
Fully automated: integrity checks, BTRFS scrubs, parity checks, PostgreSQL dumps, offsite sync, recycle bin purging, DS_Store cleanup, docker image cleanup.
Manual forever: Lightroom editing, inbox file categorization, archive triage, transcode quality review, family photo naming, backup restore drills.
Semi-automated: Phone photos upload via Immich (automatic), but organization is manual. Documents drop into Paperless-ngx (OCR is automatic), but I pick categories. An n8n workflow could auto-sort inbox files by extension and send me a daily digest, but I make the final call.
The Cost of Doing This
| Item | One-Time | Monthly |
|---|---|---|
| Backblaze B2 (~2.7TB) | $0 | ~$15 |
| 24TB drive (dual parity or spare) | ~$375 | $0 |
| rclone, b2sum, scripts | $0 | $0 |
| Immich, Paperless-ngx (Docker) | $0 | $0 |
| Total | ~$375 | ~$15 |
$375 up front. $15 a month. That's it.
My entire photo archive from 2010 to today. A decade of legal documents. Every piece of music I've ripped from CD. Family film scans from the 1970s. Protected from fire, theft, disk failure, and ransomware for the price of a couple of takeout meals per month.
I spent more than that on the NAS enclosure. I spent more than that on a single hard drive. But I spent $0 per month on making sure the data on those drives would survive a house fire.
The Timeline
Week 1: Stop the bleeding
- Fix Music share cache setting (5 minutes)
- Copy Lightroom catalog to server (15 minutes)
- Export XMP sidecars for all photos
- Generate b2sum baselines overnight
- Purge recycle bins, move orphaned cache data
- Schedule all existing but unscheduled user scripts
Month 1: Build the safety net
- Set up Backblaze B2 + rclone
- Weekly appdata backups + daily pg_dump
- Monthly parity checks
- Install and configure Immich for photos
- Feed first batch of PDFs into Paperless-ngx
- Fix Tdarr volume mounts and configure first library
Quarter 1: Harden
- Buy dual parity drive or a spare
- Enable BTRFS snapshots on cache (daily, keep 7)
- Implement PAR2 for irreplaceable data
- First quarterly backup restore drill
- Begin photo consolidation into unified folder structure
Months 3-12: Organize
- Process legacy drive dumps, one per weekend
- Triage OBS recordings (potential 1.8TB recovery)
- Batch-convert RAW photos to DNG
- Upgrade 34 DRM-protected iTunes files
- Convert Evernote exports to Markdown
- Expand semantic search via Qdrant + Ollama
The 2045 Test
The question I keep asking myself: can I meaningfully access this archive in twenty years?
Before this plan, the honest answer was "maybe, if nothing goes wrong." After implementation, the answer should be yes. Family photos readable in open formats, findable through Immich, protected by parity and offsite backup and PAR2 repair files. Documents OCR'd and full-text searchable. Music in FLAC, which will outlast every streaming service. Edit history preserved in XMP sidecars alongside the originals, not locked inside a proprietary database on a single laptop.
The tools are all mature and boring. rclone has been around for a decade. b2sum is part of GNU coreutils. FLAC is an open standard. Backblaze B2 uses the same storage format as S3. Nothing here is going to stop working because a startup ran out of funding.
The cost of losing them: incalculable.
I should have done this years ago. But the best time to start protecting irreplaceable data is before you lose it, and the second best time is right now.