Определение простыми словами
Backup — это страховка от потери данных. Жёсткие диски сыпятся, RAID не спасает от удаления, шифровальщик за минуту делает бесполезной всю файловую систему, а сотрудник может случайно удалить важную таблицу. Резервная копия — отдельная, желательно недоступная для записи с боевого сервера, к которой можно вернуться, если что-то пошло не так.
Канон индустрии — правило 3-2-1: минимум три копии данных, на двух разных типах носителей (например, диск + облако), и одна копия за пределами основной площадки. Без выноса наружу любая авария дата-центра, пожар или массовое шифрование уничтожит и оригинал, и бэкап.
Сравнение
| Тип бэкапа | Объём | Время восстановления | Когда использовать |
|---|---|---|---|
| Full | 100% данных | Быстро, из одного архива | Раз в неделю/месяц как база |
| Incremental | Только новые/изменённые | Дольше: цепочка копий | Ежедневно поверх Full |
| Differential | Изменения с последнего Full | Среднее: Full + 1 архив | Компромисс между Full и Incremental |
| Snapshot | Указатель на блоки | Мгновенное | Защита от ошибки в БД, не от потери диска |
| Репликация | 100% непрерывно | Мгновенное | HA, но не защищает от удаления |
Кейсы использования
- Сайт на VPS. Ежедневный rsync + БД-дамп в S3-хранилище и недельный полный архив на отдельный диск.
- База 1С. Холодный бэкап раз в день + горячий лог транзакций каждые 15 минут — RPO 15 минут.
- Личный ноутбук. Time Machine на NAS + шифрованный Restic в облако.
- Корпоративная инфраструктура. Veeam или Proxmox Backup Server для виртуалок, отдельная площадка для DR-копий.
- Когда «бэкап» не бэкап: RAID, репликация и snapshot — не защита от удаления и шифровальщика. Удалили базу — она реплицируется и удалится на втором узле. Snapshot живёт на том же диске и пропадёт вместе с ним.
Технические детали
Простой rsync-скрипт с ротацией для VPS:
#!/bin/bash
DATE=$(date +%Y-%m-%d)
mysqldump --all-databases | gzip > /backup/db-$DATE.sql.gz
rsync -aH --delete /var/www /backup/www/
restic -r s3:s3.amazonaws.com/my-bucket backup /backup
restic -r s3:s3.amazonaws.com/my-bucket forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
find /backup -name "db-*.sql.gz" -mtime +14 -delete
Главное правило: бэкап считается рабочим только после успешного теста восстановления. Раз в квартал разворачивайте копию на отдельной машине и проверяйте, что данные читаются и сервис стартует. Под удалённое хранение подойдёт storage-VPS или объектное S3, под локальное — VPS на HDD с большим диском.
🔥 Где это применяется
Частые вопросы
Чем бэкап отличается от RAID?
RAID защищает от поломки одного диска, но не от удаления файла, ошибки админа, шифровальщика или сбоя файловой системы. Бэкап — копия в отдельном месте, к которой можно откатиться. Это разные задачи, нужны оба.
Как часто делать бэкап?
Зависит от RPO — сколько данных не страшно потерять. Сайт-визитка — раз в неделю. Активный блог — ежедневно. Интернет-магазин — каждые 1–4 часа. Боевая 1С — каждые 15 минут с журналом транзакций.
Где хранить резервные копии?
Минимум на двух носителях: один — рядом для быстрого восстановления (storage-VPS), второй — географически удалённо (S3, отдельный ДЦ, домашний NAS). Хранение бэкапа на том же сервере — это не бэкап.
Что такое RTO и RPO?
RTO (Recovery Time Objective) — за сколько вы готовы поднять сервис после аварии. RPO (Recovery Point Objective) — сколько последних минут/часов данных можно потерять. Оба параметра задают частоту и тип бэкапов.