My Backup Plan

I've had a number of people ask about my backup strategy—how I ensure the 6 TB of video project files and a few TB of other files stays intact over time.

3-2-1 backup plan

Over the past year, since I got more serious about my growing YouTube channel's success, I decided to document and automate as much of my backups as possible, following a 3-2-1 backup plan:

  • 3 Copies of all my data
  • 2 Copies on different storage media
  • 1 Offsite copy

The culmination of that work is this GitHub repository: my-backup-plan.

The first thing I needed to do was take a data inventory—all the files important enough for me to worry about fell into six main categories:

6 backup categories

Making sure symlinks work on CIFS/SMB mounted shares

I was recently working on some backup scripts to make sure I could clone all my GitHub repositories to my NAS, which I have mounted to a Raspberry Pi that handles all my backups.

I'm using gickup to run through all my GitHub repos and clone them locally, and I configured it to clone each repo directly into my NAS share, which is mounted over CIFS using something like:

sudo mount -t cifs -o uid=pi,username=myuser,password=mypass //my-nas-server/Backups /Volumes/Backups

Most repositories cloned correctly, but a few had symlinks inside, and when git was cloning them, the process would error out with:

I built a $5,000 Raspberry Pi server (yes, it's ridiculous)

When I heard about Radxa's Taco—a Raspberry Pi Compute Module 4-powered NAS/router-in-a-box—I knew what must be done.

Load it up with as much SSD storage as I can afford, and see what it can do.

Raspberry Pi CM4 Taco NAS with 48 TB of SSD storage

And after installing five Samsung 870 QVO 8TB SSDs and one Sabrent Rocket Q NVMe SSD—loading up every drive slot on the Taco to the tune of 48TB raw storage—I found out it can actually do a lot! Just... not very fast. At least not compared to a modern desktop.

Special thanks to Lambda for sponsoring this project—I was originally going to put a bunch of the cheapest SSDs I had on hand on the Taco and call it a day, but with Lambda's help I was able to buy the 8TB SSDs to make this the most overpowered Pi storage project ever!

Kubesail's PiBox mini 2 - 16 TB of SSD storage on a Pi

Kubesail Raspberry PiBox mini 2 front side exposed

Many months ago, when I was first testing different SATA cards on the Raspberry Pi Compute Module 4, I started hearing from GitHub user PastuDan about his experiences testing a few different SATA interface chips on the CM4.

As it turns out, he was working on the design for the PiBox mini 2, a small two-drive NAS unit powered by a Compute Module 4 with 2 native SATA ports (providing data and power), 1 Gbps Ethernet, HDMI, USB 2, and a front-panel LCD for information display.

The Hardware

The PiBox mini 2 is powered by the Compute Module 4 on this interesting carrier board:

PiBox mini carrier board with Raspberry Pi Compute Module 4

Raspberry Pi OS now has SATA support built-in

After months of testing various SATA cards on the Raspberry Pi Compute Module 4, the default Raspberry Pi OS kernel now includes SATA support out of the box.

SATA card and Samsung SSD with Raspberry Pi Compute Module 4 IO Board

In the past, if you wanted to use SATA hard drives or SSDs and get native SATA speeds, and be able to RAID them together for redundancy or performance, you'd have to recompile the Linux kernel with SATA and AHCI.

Sure you could always use hard drives and SSDs with SATA to USB adapters, but you sacrifice 10-20% of the performance, and can't RAID them together, at least not without some hacks.

There's a video version of this post: SATA support is now built into Raspberry Pi OS!

Moving my home media library from iTunes to Jellyfin and Infuse

Since 2008, I've ripped every DVD and Blu-Ray I bought to my Mac, with a collection of SD and HD media totaling around 2 TB today. To make that library accessible, I've always used iTunes and the iTunes Shared Library functionality that—while it still exists today—seems to be on life support, in kind of a "we still support it because the code is there" state.

The writing's been on the wall for a few years, especially after the split from iTunes to "Music" and "TV" apps, and while I tested out Plex a few years back, I never really considered switching to another home media library system, mostly due to laziness.

Jeff with Mac mini NAS

I have a 2010 Mac mini (see above) that's acted as my de-facto media library/NAS for over a decade... and it's still running strong, with an upgraded 20 TB of total storage space. But it's been unsupported by Apple for a few years, and besides, I have a new ASUSTOR Lockerstor 4 with 16 TB of always-online NAS storage!

The Wiretrustee SATA Pi Board is a true SATA NAS

In my earlier posts about building a custom Raspberry Pi SATA NAS, and supercharging it with 2.5G networking and OMV, I noted that my builds were experimental only—they were a mess of cables and parts, with a hilariously-oversized 700W PC power supply.

I lamented the fact there was no simple "SATA backplane on a board" for the Raspberry Pi Compute Module 4. But no longer.

Wiretrustee SATA Board for Raspberry Pi OMV NAS

Wiretrustee's SATA Board integrates a SATA controller and data and power for up to four SATA drives with a Raspberry Pi Compute Module 4.

And their entire solution makes for a great little Raspberry Pi-based NAS, using software like OpenMediaVault.

Retrieving individual files from S3 Glacier Deep Archive using AWS CLI

I still haven't blogged about my overall backup strategy (though I've mentioned it in the past a few times on my YouTube channel)—but overall, how it works is I have two local copies of any important data, and most of the non-video data is also stored in my Dropbox folder, so I get two local copies and one cloud backup for 'free'.

Then I also back up everything (including video content) from my NAS to an Amazon S3 Glacier Deep Archive-backed bucket at least once a week (sometimes more frequently, when I am working on a big project and manually kick off a mid-week backup).

Building a 2.5 Gbps 5-drive Pi NAS - Hardware Setup

A few months ago, an ASUSTOR representative emailed me with an offer I couldn't refuse. He saw my blog post and video about building the fastest Raspberry Pi NAS, and asked if I wanted to put up my best Pi-based NAS against an Asustor NAS.

We settled on the Asustor Lockerstor 4, with dual-2.5 Gbps networking, 4 GB of RAM, and a quad-core Intel CPU. To make things even, he convinced Seagate to send four 8TB IronWolf NAS drives. I don't fancy he thought it would be a good show if I kept on using my four used WD GreenPower drives from 2010!

I posted a video of the hardware build process for both NASes on my YouTube channel: