← back

A ZFS tale

Cover Image for A ZFS tale

A ZFS tale

I recently traded and got in return 1TB HDD from a friend, had another one collecting dust, and an old Core 2 Duo machine doing nothing. Perfect time to build a nas maybe!

The Hardware

  • Intel Core 2 Duo E7500 @ 2.93GHz
  • 4GB RAM
  • 2x 1TB HDDs (one mine, one traded)

What I Did

  1. Installed Arch Linux (because why make life easy?)
  2. Set up ZFS on the traded drive
  3. Got Nextcloud running for media storage

Here's my simple ZFS list :

mediapool/photos    # photos
mediapool/videos    # videos
mediapool/documents # Important stuff

iCloud Sync Setup

I (ofc me & LLM) implemented a smart backup strategy between iCloud and my local storage:

# Key features of my sync script:
- Maintains a diffrential index to track what's been downloaded
- Only syncs new/changed files from iCloud
- Preserves directory structure: /mediapool/photos/YEAR/MONTH/
- Handles API rate limits to avoid throttling
- Converts HEIC to JPG during sync (idk who to curse, the browser codecs or apple for coming up with a werid image format)

The script runs every month and only downloads what's new, saving both bandwidth and API calls. It's been surprisingly reliable!

Lessons Learned

  • ZFS is amazing
  • Old hardware can still be useful

What's Next

  • Adding more drives (looking at you, friends with "obsolete" hardware), it's super easy to add / remove drives into zfs, just need to attach them and add them to the vdev
  • read up more about ZFS
  • Implementing backup strategies for my backup ;)
  • should I write a proper UI for the media management system, hate nextcloud it's super heavy, rn I'm looking at filebrowser.

P.S. If you have any spare drives lying around, no, I don't want them (I totally do).

Code & Scripts

All the scripts mentioned (iCloud sync, HEIC conversion) are available on my GitHub. Feel free to adapt them for your own use!