Skip to content

Home Server Backup & Storage Strategy Research

Date: January 23, 2026
For: Proxmox home server with mixed drives


Executive Summary

Recommended Solution:

  • Google sync: rclone with automated snapshots
  • Storage: mergerfs + SnapRAID for mixed drives
  • Archives: Deduplicate with jdupes, store on server + external HDD offsite
  • Critical configs: Git + automated backup script
  • Expansion path: Add drives to mergerfs pool anytime

1. Google Drive/Photos Sync Tools

Status: Actively maintained, v1.72.1 (Dec 2025), 55.1k stars

Pros:

  • Native Google Drive & Google Photos support built-in
  • Snapshot-friendly: Use rclone sync or rclone copy with --backup-dir for versioning
  • Automation: Easy systemd timers or cron jobs
  • Encryption: Built-in crypt backend if needed
  • Bandwidth control: Throttling, scheduling
  • Bisync mode: Two-way sync (experimental but stable)
  • Very active: 885 contributors, releases every few months
  • Mount option: Can mount Google Drive as filesystem
  • API limits handled: Built-in rate limiting and retry logic

Cons:

  • ⚠️ Command-line only (but many GUI wrappers exist: RcloneView, rclone UI)
  • ⚠️ Initial setup requires OAuth authentication
  • ⚠️ Google Photos has some limitations (album structure not preserved)

Best Practices for Your Use Case:

# Daily snapshot of Google Drive work docs (600GB)
rclone sync gdrive:/ /mnt/storage/google-drive-backup \
  --backup-dir /mnt/storage/google-drive-backups/$(date +%Y-%m-%d) \
  --drive-skip-gdocs \
  --transfers 8 \
  --checkers 16

# Daily snapshot of Google Photos (400GB)
rclone sync gphotos:/ /mnt/storage/google-photos-backup \
  --backup-dir /mnt/storage/google-photos-backups/$(date +%Y-%m-%d) \
  --transfers 4

Cost: FREE, open source (MIT license)


Alternative: insync

Status: Commercial, $29.99 one-time per account

Pros:

  • ✅ Native GUI application
  • ✅ Selective sync
  • ✅ Commercial support
  • ✅ Windows, Mac, Linux

Cons:

  • Not recommended for snapshots - designed for real-time sync
  • ❌ Cost adds up ($60 for 2 accounts)
  • ❌ Less flexible for automation

Verdict: Skip for your use case


Alternative: google-drive-ocamlfuse

Status: Linux only, less maintained

Cons:

  • ❌ Mount-only solution, not backup-focused
  • ❌ Performance issues with large files
  • ❌ Less actively maintained than rclone
  • ❌ No Google Photos support

Verdict: Skip, rclone is superior


2. Storage Strategy: Mixed Drives with Future Expansion

Why This Combo?

mergerfs (5.4k stars, v2.41.1 Nov 2025)

  • Perfect for mixed drives: 4TB, 1TB, 1TB, 250GB SSDs - all usable as-is
  • Add drives anytime: Just remount with new path
  • Individual filesystem access: If mergerfs fails, access drives directly
  • Near-native performance: Passthrough IO
  • Flexible policies: Control where files are written (most-free-space, existing-path, etc.)
  • No reformatting: Use existing ext4/xfs/btrfs drives

SnapRAID (v13.0, 2024)

  • Parity protection: Up to 6 parity disks (1-2 recommended for home)
  • Snapshot-based: Only scans changed files
  • Data verification: Scrub to detect silent corruption
  • Partial recovery: Loss limited to failed disks
  • Low resource: Runs periodically, not real-time
  • Flexible: Disks can be different sizes

Setup for Your Drives:

# 1. Format drives (if not already formatted)
sudo mkfs.ext4 -L data1 /dev/sdX  # 4TB Hitachi
sudo mkfs.ext4 -L data2 /dev/sdY  # 1TB WD Green
sudo mkfs.ext4 -L data3 /dev/sdZ  # 1TB WD Green (unused)
sudo mkfs.ext4 -L parity1 /dev/sdW # 4TB Maxtor external (for parity)

# 2. Mount individual drives
/dev/sdX /mnt/disk1 ext4 defaults 0 2
/dev/sdY /mnt/disk2 ext4 defaults 0 2
/dev/sdZ /mnt/disk3 ext4 defaults 0 2

# 3. mergerfs pool
mergerfs /mnt/disk1:/mnt/disk2:/mnt/disk3 /mnt/storage \
  -o allow_other,use_ino,cache.files=auto-full,moveonenospc=true,\
     category.create=mfs,dropcacheonclose=true

# 4. SnapRAID config (/etc/snapraid.conf)
parity /mnt/parity1/snapraid.parity
content /var/snapraid/snapraid.content
content /mnt/disk1/.snapraid.content
content /mnt/disk2/.snapraid.content
data d1 /mnt/disk1
data d2 /mnt/disk2
data d3 /mnt/disk3
exclude *.tmp
exclude /tmp/
exclude /lost+found/

# 5. Automate SnapRAID (daily script)
#!/bin/bash
# snapraid-runner.sh
snapraid diff
snapraid sync
snapraid scrub -p 8 -o 30  # Scrub 8% of data older than 30 days

Storage Layout Example:

  • 4TB Hitachi: Archives (1TB) + Google Drive snapshots (600GB) + headroom
  • 1TB WD #1: Google Photos snapshots (400GB) + Jellyfin cache
  • 1TB WD #2: Jellyfin media library + torrents
  • 4TB Maxtor USB: SnapRAID parity (external, always connected)
  • 1TB HGST USB: Offsite rotation backup
  • SSDs: Proxmox OS + critical VMs/containers + databases

Why NOT ZFS for Your Setup?

ZFS Single Disk

Major drawbacks:

  • Must use whole disk (no partition mixing)
  • Can't add space easily (need zpool replace with larger disk)
  • Single disk = no redundancy benefits
  • Memory overhead (1GB RAM per 1TB recommended)
  • Overkill for basic file storage

Only good for:

  • Critical system data on SSDs with snapshots
  • Datasets that need CoW and compression

ZFS with Multiple Disks

Your mixed drives don't work:

  • RAIDZ requires uniform disk sizes (4TB + 1TB = wasted space)
  • Can't add disks incrementally (need to rebuild vdev)
  • Expanding requires replacing ALL disks in vdev
  • RAM requirements scale with capacity

Use ZFS IF:

  • You buy 3+ identical drives in future
  • Then create new pool: zpool create tank raidz /dev/sdX /dev/sdY /dev/sdZ

Future Path: Keep mergerfs+SnapRAID for now. If you buy 3x 8TB drives later, create ZFS pool separately and migrate critical data.


Alternative: LVM + ext4

Pros:

  • ✅ Can span drives (LVM)
  • ✅ Flexible resizing

Cons:

  • ❌ No parity/redundancy without mdadm
  • ❌ Single point of failure (LVM metadata)
  • ❌ If one drive fails, whole LVM volume may be inaccessible
  • ❌ Can't access individual drives easily

Verdict: mergerfs+SnapRAID safer and more flexible


3. Backup Strategy Without Cloud

The 3-2-1 Rule Adapted:

  • 3 copies: Original + server snapshot + external offsite
  • 2 media types: Internal drives + external USB HDD
  • 1 offsite: Rotate external to parent's house/office

For YOUR Data:

Critical Data (Server configs, Docker, Proxmox)

Frequency: Daily
Method: Git + automated backup
Storage: Server + external offsite
Retention: Keep all versions (small size)

# /opt/backup/config-backup.sh
#!/bin/bash
BACKUP_DIR="/mnt/storage/config-backups"
DATE=$(date +%Y-%m-%d-%H%M)

# Proxmox configs
tar czf $BACKUP_DIR/proxmox-$DATE.tar.gz \
  /etc/pve/ \
  /etc/network/interfaces \
  /etc/hosts

# Docker compose files
tar czf $BACKUP_DIR/docker-$DATE.tar.gz \
  /opt/docker/ \
  /opt/stacks/

# Upload to Git repo (private GitHub/Gitea)
cd /opt/docker && git add -A && git commit -m "Auto backup $DATE" && git push

# Copy to external
rsync -av $BACKUP_DIR/ /mnt/offsite-backup/configs/

Important Data (Google Drive/Photos snapshots)

Frequency: Daily sync from Google, weekly to offsite
Method: rclone + rsync
Storage: Server (latest) + external (weekly)
Retention: Rolling 30 days on server, monthly on external

Archives (1TB static data)

Frequency: One-time migration + offsite copy
Method: Deduplicate, then rsync
Storage: Server + external offsite
Retention: Permanent

Non-critical (Jellyfin media)

Frequency: None
Method: N/A
Storage: Server only
Retention: Redownload if lost


Offsite Rotation Strategy

Equipment:

  • 1TB HGST USB3 external (current)
  • Buy: 1x additional 2-4TB external (€60-80)

Schedule:

  1. Week 1-2: External HDD #1 connected to server, continuous sync
  2. Week 3: Swap HDD #1 with #2
  3. Take HDD #1 to offsite location (parent's house, office locker)
  4. Connect HDD #2, let sync run
  5. Week 5: Retrieve HDD #1, swap back
  6. Repeat

Automation:

# /opt/backup/offsite-sync.sh (run when external connected)
#!/bin/bash
EXTERNAL="/mnt/offsite-backup"
if [ -d "$EXTERNAL" ]; then
  # Critical configs (small, always)
  rsync -av --delete /mnt/storage/config-backups/ $EXTERNAL/configs/

  # Archives (full copy)
  rsync -av --delete /mnt/storage/archives/ $EXTERNAL/archives/

  # Google snapshots (weekly checkpoint)
  if [ $(date +%u) -eq 7 ]; then  # Sunday
    rsync -av /mnt/storage/google-drive-backup/ $EXTERNAL/google-drive-weekly/
    rsync -av /mnt/storage/google-photos-backup/ $EXTERNAL/google-photos-weekly/
  fi
fi

4. Archive Consolidation & Deduplication

jdupes (faster, maintained fork)

# Install
sudo apt install jdupes

# 1. Find duplicates across all sources
jdupes -r -S /mnt/hitachi-current /media/old-backups /mnt/google-drive-backup > duplicates.txt

# 2. Review and delete (careful!)
jdupes -r -d -N /mnt/hitachi-current /media/old-backups  # Delete dupes, keep first

# 3. Hard link duplicates to save space (safer)
jdupes -r -L /mnt/storage/archives/

Process:

  1. Mount all old drives read-only
  2. Run jdupes to map duplicates
  3. Manually review critical files
  4. Keep one copy on server + one on external
  5. Delete Google Drive copies after verification

Alternative: rdfind

sudo apt install rdfind
rdfind -makehardlinks true /mnt/storage/archives/

Difference:

  • jdupes: Better control, more options, faster
  • rdfind: Auto-hardlink by default, simpler

Recommendation: jdupes for initial dedup, then organize manually


5. Config Backup Solutions (Critical Server Data)

What to Backup:

Proxmox VE:

  • /etc/pve/ - All VM/CT configs
  • /etc/network/interfaces - Network config
  • /etc/hosts, /etc/hostname
  • VM disks (if small): /var/lib/vz/images/
  • Proxmox Backup Server (PBS) if using

Docker/Containers:

  • All docker-compose.yml files
  • .env files
  • Bind mount directories (configs)
  • Named volumes (export with docker run --rm -v)

System:

  • /etc/ (selective)
  • Custom scripts in /opt/, /usr/local/bin/
  • SSH keys, SSL certificates
  • User cron jobs

Method 1: Git Repository (BEST for configs)

# Initialize
cd /opt/docker-configs
git init
git add .
git commit -m "Initial commit"
git remote add origin git@github.com:youruser/server-configs.git
git push -u origin main

# Automate (daily cron)
0 2 * * * cd /opt/docker-configs && git add -A && git commit -m "Auto backup $(date)" && git push

Pros:

  • ✅ Full version history
  • ✅ Easy to restore (just git clone)
  • ✅ Can use private GitHub/Gitea/Forgejo
  • ✅ Text files compress well

Cons:

  • ⚠️ Don't commit secrets (use git-crypt or .env.example)

Method 2: Proxmox Backup Server (PBS)

If you have space for a VM:

# Install PBS in LXC container (lightweight)
pct create 100 /var/lib/vz/template/cache/debian-12-standard_12.0-1_amd64.tar.zst \
  --hostname pbs --memory 2048 --rootfs local:8

# Setup PBS, point backups to large drive
# Schedule automatic backups of VMs

Pros:

  • ✅ Official Proxmox solution
  • ✅ Deduplication, compression
  • ✅ Incremental backups

Cons:

  • ⚠️ Requires storage space (but can use external)
  • ⚠️ More complex than simple scripts

Method 3: Simple Tar + Rsync (SIMPLEST)

#!/bin/bash
# /opt/backup/full-backup.sh
BACKUP_ROOT="/mnt/storage/server-backups"
DATE=$(date +%Y-%m-%d)

# Proxmox
tar czf $BACKUP_ROOT/proxmox-$DATE.tar.gz /etc/pve /etc/network

# Docker
tar czf $BACKUP_ROOT/docker-$DATE.tar.gz /opt/docker

# Rotate (keep 30 days)
find $BACKUP_ROOT -name "*.tar.gz" -mtime +30 -delete

# Sync to external
rsync -av $BACKUP_ROOT/ /mnt/offsite-backup/server-backups/

Recommendation: Use Git for configs + tar for VM disks


6. Future Expansion Strategies

Scenario A: Add One Big Drive (e.g., 8TB)

With mergerfs + SnapRAID:

# 1. Format new drive
sudo mkfs.ext4 -L data4 /dev/sdNEW

# 2. Add to mergerfs
mergerfs /mnt/disk1:/mnt/disk2:/mnt/disk3:/mnt/disk4 /mnt/storage

# 3. Update SnapRAID config
data d4 /mnt/disk4

# 4. Rebuild parity
snapraid sync

Effort: 5 minutes, zero downtime


Scenario B: Buy 3x Identical Drives (e.g., 3x 8TB)

Option 1: Add to mergerfs+SnapRAID

# Just add to existing pool, keep flexibility
mergerfs /mnt/disk1:/mnt/disk2:/mnt/disk3:/mnt/disk4:/mnt/disk5:/mnt/disk6 /mnt/storage

Option 2: Create ZFS RAIDZ1

# New pool for critical data
zpool create tank raidz /dev/sd{NEW1,NEW2,NEW3}
# Usable space: ~16TB (2 drives worth)
# Can survive 1 drive failure

Recommendation:

  • Keep mergerfs for bulk storage
  • Use ZFS pool for critical data (Proxmox VMs, databases)

Scenario C: Replace SnapRAID Parity Drive

When 4TB Maxtor external dies or you need more parity:

# Add second parity drive (6-drive protection)
# Edit /etc/snapraid.conf
parity /mnt/parity1/snapraid.parity
2-parity /mnt/parity2/snapraid.2-parity

# Rebuild
snapraid sync

Cost: ~€80 for 4TB external


7. Complete Setup Checklist

Phase 1: Initial Setup (Day 1-2)

  • Install mergerfs: sudo apt install mergerfs
  • Install SnapRAID: Download from snapraid.it
  • Format and mount data drives to /mnt/disk{1,2,3}
  • Configure mergerfs pool to /mnt/storage
  • Create SnapRAID config at /etc/snapraid.conf
  • Run initial snapraid sync (may take hours for 1TB)

Phase 2: Archive Consolidation (Day 3-5)

  • Mount all old drives
  • Install jdupes: sudo apt install jdupes
  • Run deduplication report: jdupes -r /mnt/disk1 > dupes.txt
  • Review and delete duplicates
  • Copy deduplicated archives to server
  • Copy to external HDD for offsite

Phase 3: Google Sync (Week 1)

  • Install rclone: curl https://rclone.org/install.sh | sudo bash
  • Configure Google Drive remote: rclone config
  • Configure Google Photos remote: rclone config
  • Test manual sync: rclone sync gdrive:/ /mnt/storage/gdrive-test --dry-run
  • Create backup scripts with --backup-dir for snapshots
  • Setup daily cron jobs

Phase 4: Critical Backup (Week 2)

  • Create Git repo for configs
  • Commit Proxmox configs: /etc/pve, /etc/network
  • Commit all docker-compose.yml files
  • Setup automated git push (daily cron)
  • Test restore: Clone repo on different machine
  • Create tar backup script for VM disks

Phase 5: Offsite Rotation (Week 3)

  • Buy second external HDD (2-4TB)
  • Create initial offsite sync: rsync -av /mnt/storage/ /mnt/external/
  • Label HDDs clearly: "HDD-1 Server Backup Week X"
  • Take HDD-1 to offsite location
  • Setup automated sync for HDD-2

Phase 6: Automation & Monitoring (Week 4)

  • Create SnapRAID runner script with email alerts
  • Setup daily SnapRAID diff/sync (2am cron)
  • Setup weekly SnapRAID scrub (Sunday 3am)
  • Create monitoring script for drive health: smartctl -a /dev/sdX
  • Setup email alerts for failures
  • Document restore procedures

8. Cost Breakdown

Item Cost Purpose
Already Own €0 6x drives + Google One
External 4TB HDD #2 €70 Offsite rotation
Total Initial €70
Future Costs
Additional data drives €60-120/each Expansion when full
Parity drive upgrade €80 If parity disk fails
Google One (keep) €100/year Daily cloud access

Comparison if using cloud backup (NOT recommended):

  • Backblaze B2: 2TB = $10/month = $120/year
  • Total with B2: €220/year ongoing 😱

Your solution: €70 one-time + €100/year Google (already paying)


9. Maintenance Schedule

Daily (Automated)

  • ✅ rclone sync Google Drive → server (2am)
  • ✅ rclone sync Google Photos → server (3am)
  • ✅ Git commit server configs (4am)
  • ✅ SnapRAID diff check (5am)

Weekly (Automated)

  • ✅ SnapRAID full sync (Sunday 2am)
  • ✅ SnapRAID scrub 8% of data (Sunday 4am)
  • ✅ Snapshot to offsite HDD (when connected)
  • ✅ Email status report

Monthly (Manual - 15 min)

  • 🔍 Review SnapRAID scrub reports
  • 🔍 Check disk health: sudo smartctl -a /dev/sd*
  • 🔍 Verify offsite HDD integrity
  • 🔍 Review Google sync logs
  • 🔍 Test restore one random file

Quarterly (Manual - 30 min)

  • 🔧 Update SnapRAID, rclone, mergerfs
  • 🔧 Review storage usage, plan expansion
  • 🔧 Rotate offsite HDDs
  • 🔧 Test full config restore from Git

Yearly (Manual - 2 hours)

  • 🧹 Clean up old snapshots (keep 1/month after 1 year)
  • 🧹 Review and delete unnecessary data
  • 🧹 Full drive diagnostics
  • 🧹 Document any infrastructure changes

10. Disaster Recovery Procedures

Scenario 1: Single Data Drive Fails

  1. Remove failed drive
  2. Mount replacement drive
  3. Add to mergerfs pool: mergerfs /mnt/disk1:/mnt/disk2:/mnt/diskNEW
  4. Restore from SnapRAID: snapraid fix -d dX
  5. Rebuild parity: snapraid sync

Downtime: Minutes (mergerfs keeps running), rebuild overnight
Data loss: None (SnapRAID recovery)


Scenario 2: Parity Drive Fails

  1. Replace parity drive
  2. Update /etc/snapraid.conf
  3. Full sync: snapraid sync (may take 6-12 hours)

Downtime: None (data still accessible)
Data loss: None (parity only)


Scenario 3: Multiple Drives Fail (>1)

  1. If >1 drive fails, SnapRAID can't recover
  2. Restore critical data from offsite HDD
  3. Re-sync Google Drive/Photos from cloud

Downtime: Hours to days
Data loss: Only data on failed drives not on offsite backup


Scenario 4: Complete Server Failure

  1. Install Proxmox on new hardware
  2. Clone config Git repo
  3. Restore docker-compose files
  4. Attach old data drives (ext4 readable on any Linux)
  5. Re-setup mergerfs pool

Downtime: 4-8 hours
Data loss: None (if drives intact)


Scenario 5: House Fire/Theft (Total Loss)

  1. Retrieve offsite HDD from parent's house
  2. Buy new hardware
  3. Restore critical configs from offsite HDD
  4. Re-sync Google Drive/Photos from cloud (still in Google)
  5. Accept loss of: Jellyfin media (redownload), recent snapshots

Downtime: Days
Data loss:

  • ❌ Media library (not critical)
  • ❌ Last 1-2 weeks of changes (between offsite rotations)
  • ✅ All critical configs (on offsite)
  • ✅ Archives (on offsite)
  • ✅ Google data (still in cloud)

11. Pros and Cons Summary

Pros:

  • Use existing drives as-is - no reformatting
  • Mixed sizes supported - 4TB + 1TB + 1TB + 250GB all usable
  • Add drives anytime - no rebuild needed
  • Individual access - if mergerfs fails, access drives directly
  • Parity protection - survive 1 drive failure (or 2 with 2nd parity)
  • No cloud costs - one-time €70 for extra HDD
  • Flexible - stop using anytime, no data lock-in
  • Low power - only spin disks when accessed
  • Simple restore - configs in Git, data on ext4 drives
  • Future expansion - can migrate to ZFS later without breaking this

Cons:

  • ⚠️ Not real-time parity - SnapRAID is snapshot-based (run daily)
  • ⚠️ Manual offsite rotation - need to physically swap HDDs
  • ⚠️ If >1 drive fails simultaneously - data loss (rare)
  • ⚠️ Relies on Google - if Google account banned, need offsite HDD
  • ⚠️ Command-line heavy - no fancy GUI (but stable once set up)

Alternative: ZFS RAIDZ

Pros:

  • ✅ Real-time parity
  • ✅ Snapshots, compression, dedup
  • ✅ Self-healing on scrub

Cons:

  • Can't use your mixed drives - need uniform sizes
  • Expansion painful - must replace all disks in vdev
  • RAM hungry - 1GB per TB recommended
  • Complex - harder to recover if things break
  • All or nothing - if pool breaks, harder to access data

When to reconsider: If you buy 3+ identical drives in future


12. Quick Reference Commands

Daily Operations

# Check SnapRAID status
snapraid status

# Check mergerfs mount
df -h /mnt/storage

# Manual Google Drive sync
rclone sync gdrive:/ /mnt/storage/google-drive-backup --progress

# Check disk health
sudo smartctl -H /dev/sda

Emergency

# Restore single file from SnapRAID
snapraid fix -f /mnt/disk2/path/to/file

# Check which drive has file
find /mnt/disk* -name "filename"

# Manual offsite sync
rsync -av --progress /mnt/storage/ /mnt/offsite-backup/

Expansion

# Add new drive to mergerfs (no downtime)
# 1. Mount new drive: /mnt/diskN
# 2. Update mergerfs mount in /etc/fstab
# 3. Remount: sudo mount -a
# 4. Update SnapRAID config: data dN /mnt/diskN
# 5. Rebuild parity: snapraid sync

13. Additional Resources

Official Documentation

Community Resources

  • /r/DataHoarder: Best practices for home storage
  • /r/homelab: Server setup discussions
  • /r/selfhosted: Docker/service configs

Tools


Conclusion

Your setup is ideal for mergerfs + SnapRAID:

  • Mixed drive sizes ✅
  • Future expansion needs ✅
  • Budget-conscious ✅
  • No desire for more cloud services ✅

Start with:

  1. mergerfs pool of your 4TB + 2x1TB drives
  2. SnapRAID parity on 4TB external USB
  3. rclone daily Google snapshots
  4. Git repo for critical configs
  5. Buy one more external HDD for offsite rotation

Total cost: €70 one-time

Time investment:

  • Setup: 1 weekend
  • Maintenance: 15 min/month
  • Offsite rotation: 10 min every 2 weeks

Peace of mind: Priceless 🎯


Research compiled January 23, 2026
Tools verified as actively maintained and production-ready