Стратегия бэкапов для домашнего сервера

После того как потерял данные из-за сбоя диска, серьёзно подошёл к вопросу бэкапов.

Правило 3-2-1

  • 3 копии данных
  • 2 разных типа носителей
  • 1 копия в другом месте

Реализация

Копия 1: Основной сервер

NVMe SSD на домашнем сервере. Быстро, но не надёжно.

Копия 2: Локальный NAS

Synology DS220+ с двумя HDD в RAID 1. Автоматический rsync каждую ночь.

Копия 3: Облако

Backblaze B2 для критичных данных. Шифрование на стороне клиента.

Скрипт бэкапа

#!/bin/bash
# Локальный бэкап на NAS
rsync -avz --delete /srv/cloudnest/ nas:/backups/cloudnest/

# Бэкап БД
sqlite3 /srv/cloudnest/cloudnest.db ".backup /tmp/db_backup.sqlite"

# Облачный бэкап
rclone copy /srv/cloudnest/files b2:cloudnest-backup/files
rclone copy /tmp/db_backup.sqlite b2:cloudnest-backup/

Запускается по cron каждый день в 3:00.

Восстановление

Тестировал восстановление из бэкапа — занимает 10 минут.

Стоимость

  • NAS: 25 000 руб (разовые)
  • Backblaze: ~150 руб/мес за 50 ГБ

Спокойствие: бесценно.