Резервное копирование (бэкап)
Резервное копирование — создание копии данных, из которой можно восстановить сайт или систему после сбоя, ошибки или взлома. Классическое правило 3-2-1: три копии, на двух типах носителей, одна вне площадки.
Содержание
- 01Что такое резервное копирование и чем бэкап отличается от синхронизации
- 02Полный, инкрементный и дифференциальный: три вида копий
- 03Правило 3-2-1 и его продолжение для защиты от шифровальщиков
- 04Что копировать на сайте: файлы, база данных и настройки
- 05Как собрать план резервного копирования и посчитать цену потери
- 06Проверка восстановления: копия, которую не разворачивали, не считается
- 07Частые вопросы
Что такое резервное копирование и чем бэкап отличается от синхронизации
Резервное копирование (бэкап, от англ. backup) — создание копии данных, из которой можно восстановить сайт или систему после сбоя, ошибки сотрудника, взлома или вируса-шифровальщика. Копия фиксирует состояние на конкретный момент, поэтому можно вернуться к версии «до того, как всё сломалось».
Бэкап путают с тремя соседями. Синхронизация и зеркалирование (RAID, облачные папки) повторяют каждое изменение, включая ошибочное: удалили файл в одном месте, он исчез и в другом. Архив нужен для долгого хранения данных, которые уже не используются в работе. Реплика базы данных защищает от отказа оборудования, но не от удаления таблицы. Если копия умеет только повторять текущее состояние, это не бэкап.
Качество копирования описывают двумя показателями. RPO (recovery point objective) — сколько данных вы готовы потерять, то есть максимальный интервал между копией и аварией. RTO (recovery time objective) — за какое время нужно вернуть систему в работу. От них зависят частота копий и способ хранения.
Полный, инкрементный и дифференциальный: три вида копий
| Вид | Что копируется | Создание | Восстановление |
|---|---|---|---|
| Полный | Все данные целиком | Долго, много места | Быстрое, нужна одна копия |
| Дифференциальный | Изменения с момента последней полной копии | Средне, размер растёт к концу цикла | Полная копия плюс последняя дифференциальная |
| Инкрементный | Изменения с момента последней копии любого вида | Быстро, мало места | Дольше: полная копия плюс все инкрементные по порядку |
Посчитаем на условных цифрах. Сайт занимает 10 ГБ, каждый день добавляется 0,2 ГБ новых данных. Ежедневные полные копии за неделю при таком росте займут около 74 ГБ. Схема «полная в понедельник и инкрементные остальные дни» уместится в 10 + 6 × 0,2 = 11,2 ГБ. Дифференциальная схема займёт 10 + 0,2 + 0,4 + 0,6 + 0,8 + 1,0 + 1,2 = 14,2 ГБ, зато при аварии нужны только две копии вместо семи. Чем больше экономите место, тем сложнее и дольше восстановление.
Правило 3-2-1 и его продолжение для защиты от шифровальщиков
Стандарт хранения копий формулируется так: не меньше трёх копий данных, на двух разных типах носителей, одна из них хранится вне основной площадки. Цель проста: ни один отдельный сбой, будь то диск, сервер или пожар в дата-центре, не должен уничтожить всё сразу.
| Цифра | Что означает | Пример для сайта |
|---|---|---|
| 3 копии | Оригинал и две резервные | Рабочий сервер, копия на соседнем диске, копия в облачном хранилище |
| 2 типа носителей | Разные технологии хранения | Диск сервера и объектное хранилище, а не два диска одной машины |
| 1 копия вне площадки | Другой дата-центр или город | Хранилище у другого провайдера, а не на том же хостинге |
Для защиты от шифровальщиков в отраслевой практике правило дополняют до 3-2-1-1-0 (единого стандарта нет): одна копия неизменяемая или отключённая от сети, при проверке ноль ошибок. Смысл в том, что вредоносная программа с доступом к серверу способна добраться и до подключённых к нему копий.
Что копировать на сайте: файлы, база данных и настройки
Копия сайта состоит из нескольких частей, и пропуск любой делает её бесполезной.
- Файлы: код, шаблоны, загруженные пользователями изображения и документы. Папка с загрузками обычно самая большая и самая ценная.
- База данных: заказы, пользователи, тексты. Её копируют дампом, а не копированием рабочих файлов СУБД, иначе копия может оказаться повреждённой.
- Настройки: конфигурация сервера, переменные окружения, задания по расписанию, записи DNS, доступы к сторонним сервисам.
Файлы и базу копируют вместе, в один момент. Если база из понедельника попала в пару к файлам из пятницы, CMS может не запуститься: в базе нет записей о новых файлах или, наоборот, ссылки ведут на несуществующие. Копии с персональными данными защищают так же строго, как рабочую базу; если вы отправляете их в облако за границей, сверьтесь с требованиями 152-ФЗ.
Автоматические копии на хостинге удобны, но их срок хранения ограничен, и хранятся они в той же инфраструктуре. На VPS и VDS бэкап вообще остаётся на вашей стороне, пока вы сами его не настроите.
Как собрать план резервного копирования и посчитать цену потери
Допустим, интернет-магазин получает около 40 заказов в сутки при среднем чеке 3 000 ₽. Единственная копия базы снимается ночью. Если сервер выйдет из строя вечером, потеряются данные почти за сутки, то есть до 40 заказов на 120 000 ₽, которые придётся собирать по почте и звонкам. При RPO в один час потери не превысили бы двух заказов. Вот последовательность:
- Определите RPO и RTO: сколько данных и времени допустимо потерять.
- Настройте автоматическое копирование базы и файлов; базу магазина снимайте чаще, чем статичные файлы.
- Храните несколько версий, например 7 ежедневных, 4 еженедельные и 3 ежемесячные: ошибку можно заметить не сразу.
- Положите хотя бы одну копию вне площадки.
- Раз в квартал разворачивайте копию на тестовом стенде и замеряйте время.
Настройку копирования закладывают на этапе разработки сайта, а регулярное резервное копирование и восстановление из копии — в поддержку сайта.
Проверка восстановления: копия, которую не разворачивали, не считается
Самая неприятная находка: копии создавались годами, а в день аварии выяснилось, что архив повреждён, пароль шифрования утерян или в нём нет папки с изображениями. Единственный способ узнать об этом заранее — разворачивать копию на отдельной площадке и открывать сайт.
- Проверяйте целостность архивов контрольными суммами.
- Настройте уведомление об ошибке копирования: молчание не означает, что всё в порядке.
- Запишите пошаговую инструкцию восстановления, чтобы по ней мог действовать не только автор настроек.
- Замеряйте время: если разворачивание занимает 8 часов, а допустимый RTO составляет 2, план не работает.
Частые вопросы
Что такое бэкап простыми словами?
Это запасная копия данных сайта, программы или компьютера, из которой можно восстановить всё после поломки, взлома или случайного удаления. Бэкап фиксирует состояние на определённый момент, поэтому можно вернуться к версии до аварии. Копия, которая лежит на том же диске, что и оригинал, от сбоя диска не спасёт.
Чем полный бэкап отличается от инкрементного?
Полный бэкап копирует все данные целиком: создаётся долго и занимает много места, зато восстановление быстрое. Инкрементный сохраняет только изменения с момента предыдущей копии: делается быстро и занимает мало, но для восстановления нужна полная копия и вся цепочка инкрементных. Обычно виды комбинируют.
Как часто нужно делать бэкап сайта?
Зависит от того, сколько данных вы готовы потерять. Для сайта-визитки, который правят раз в месяц, достаточно еженедельной копии. Для интернет-магазина с заказами базу копируют ежедневно или чаще, вплоть до каждого часа. Полезный ориентир — RPO: если потеря суточных данных недопустима, копировать нужно чаще раза в сутки.
Что такое правило 3-2-1?
Правило хранения копий: не менее трёх копий данных, на двух разных типах носителей, одна из них вне основной площадки. Оригинал и две резервные дают запас на случай сбоя, разные носители защищают от общего дефекта, а удалённая копия переживёт пожар или аварию в дата-центре. Для защиты от шифровальщиков добавляют неизменяемую копию.
Где хранить резервные копии?
Не на том же сервере, где работает сайт: при его отказе или взломе пропадёт и оригинал, и копия. Лучше сочетать хранилище у другого провайдера или в другом дата-центре и дополнительную копию, недоступную с рабочего сервера для записи. Так шифровальщик не сможет зашифровать вместе с сайтом и резервы.
Как проверить, что бэкап рабочий?
Развернуть его на тестовой площадке и открыть сайт: проверить, что страницы грузятся, база читается, изображения на месте, заказы последнего дня видны. Также сверьте контрольные суммы архивов и замерьте время восстановления. Если проверка не проходила ни разу, считайте, что рабочей копии у вас пока нет.