Бэкап домашней лаборатории по правилу 3-2-1
Правило 3-2-1 звучит банально: три копии данных, на двух разных носителях, одна — вне дома. Проблемы начинаются на практике, когда надо это автоматизировать и, главное, проверять, что копии вообще рабочие.
Базу я строю на restic — он делает дедуплицированные шифрованные снапшоты и умеет в кучу бэкендов. Локальная копия идёт на отдельный диск:
restic -r /mnt/backup/restic backup /srv /home/data \
--exclude-file=/etc/restic/excludes.txt
Вторая, удалённая копия уезжает через rclone в облачное хранилище. restic умеет писать прямо в rclone-remote, так что отдельный шаг синхронизации не нужен:
restic -r rclone:b2:my-homelab-backup backup /srv /home/data
Чистка старых снапшотов по политике хранения — чтобы хранилище не пухло бесконечно:
restic forget --keep-daily 7 --keep-weekly 4 \
--keep-monthly 6 --prune
Самое важное и самое забываемое — проверка восстановления. Бэкап, который ни разу не разворачивали, нельзя считать бэкапом. Раз в неделю по cron гоняю проверку целостности и пробное восстановление случайного файла во временный каталог:
restic check --read-data-subset=5%
Грабли: первый удалённый бэкап по медленному каналу шёл почти сутки, и я чуть не убил его на середине. Лучше сразу запускать первичную заливку в tmux или через systemd-сервис, а не из живой сессии.
Итог: три копии, две площадки, шифрование, и — что важнее всего — регулярная автоматическая проверка, что из этого добра реально можно восстановиться.
← К записям