Бэкап-стратегия 3-2-1 для домашнего сервера
Не «поставлю borg и забуду», а полноценная схема с тремя копиями, двумя типами носителей и одной offsite.
Правило 3-2-1 простое: три копии данных, на двух разных типах носителей, одна — вне домашней площадки. Звучит банально, но у большинства домашних серверов из этого соблюдается максимум «один».
Схема
| Копия | Носитель | Где | Как часто |
|---|---|---|---|
| 1. Рабочая | SSD на сервере | дома | непрерывно |
| 2. Локальный бэкап | HDD в NAS | дома, в соседней комнате | ежечасно |
| 3. Offsite | Object Storage (S3-совместимый) | другой город | ежедневно |
Софт
На рабочей копии — borgbackup. Инкрементальные, дедуплицированные, шифрованные на стороне клиента. На NAS — тот же borg, плюс снапшоты ZFS (на всякий случай). Offsite — restic в S3 с включённым шифрованием.
Почему два инструмента: borg быстрее на локальной сети (дедупликация на уровне чанков), restic удобнее для S3 (нативная поддержка, нет необходимости поднимать borg-сервер).
Что я бэкаплю
- /etc, /var/lib (конфиги и состояние)
- PostgreSQL — pg_dump каждый час, плюс WAL раз в 5 минут
- /home/photos — основной массив, синхронизация по сети
- docker volumes — через compose-down -> tar -> borg -> compose-up. Делается в maintenance-окно в 4 утра.
Что не бэкаплю
Кэши, логи, /tmp, /var/cache/apt. Восстанавливать их не нужно — проще переустановить пакет или дождаться пересборки.
Регулярная проверка
Раз в месяц вручную разворачиваю бэкап на отдельный ноутбук и сверяю с продом. Если расходятся — это сигнал, что-то сломалось в пайплайне.
Звучит как много возни, но после того, как я один раз потерял коллекцию фотографий за пять лет из-за умершего диска — это вообще не обсуждается.