Копия, которую ни разу не восстанавливали, резервной копией не считается. Рабочая стратегия отвечает на три вопроса: что копировать, куда складывать копии и как часто это делать.
Правило 3-2-1
Правило 3-2-1 — основа любой стратегии резервного копирования: три копии данных, на двух разных типах носителей, одна из копий хранится вне основной площадки. Рабочая копия на сервере не считается резервной — это первая из трёх.
Два разных носителя защищают от отказа конкретного оборудования: если один диск или один сервер выходит из строя, вторая копия лежит на другом устройстве и не пострадает вместе с ним. Копия вне площадки защищает от событий, которые затрагивают весь сервер целиком или весь дата-центр: пожар, кража оборудования, ошибка администратора, затронувшая основную систему хранения.
Что именно копировать
Список того, что нужно включить в схему, шире, чем кажется на первый взгляд — забытая часть обычно всплывает уже во время восстановления.
| Что копировать | Как часто | Почему именно так |
|---|---|---|
| Файлы сайта | После каждого значимого изменения | Код и медиафайлы меняются редко, но критичны целиком |
| База данных | Чаще, чем файлы | Заказы, комментарии и записи пользователей меняются постоянно |
| Конфигурация сервера | После каждой настройки | Без неё восстановленный сайт не заработает как раньше |
| Письма и почтовые ящики | По расписанию, отдельно от сайта | Почта хранится отдельно и легко выпадает из схемы |
| Сертификаты и ключи | При выпуске или смене | Без них придётся перевыпускать сертификат заново |
Полная, инкрементная и дифференциальная копия
Эти три вида копий по-разному используют место на диске и по-разному ведут себя при восстановлении — выбор между ними определяет, сколько времени займёт откат назад.
| Тип копии | Что хранит | Скорость создания | Скорость восстановления | Риск |
|---|---|---|---|---|
| Полная | Все данные целиком | Медленная | Быстрая | Низкий |
| Инкрементная | Изменения с прошлой копии любого типа | Быстрая | Медленная | Цепочка ломается при потере одного звена |
| Дифференциальная | Изменения с последней полной копии | Средняя | Средняя | Растёт в размере между полными копиями |
Два числа, которые задают всю схему
Вся стратегия строится вокруг двух вопросов, и ответ на них определяет частоту копирования и выбор места хранения.
Первый — сколько данных не жалко потерять, если сбой случится прямо сейчас. Чем больше изменений происходит между копиями, тем больше теряется в худшем случае, а значит, копировать нужно чаще. Второй — сколько времени есть на восстановление, пока сайт недоступен. Если время ограничено, выбирают более быстрый способ отката, даже если он сложнее в настройке.
Где копию держать нельзя
Три места кажутся резервным хранилищем, но каждое из них разделяет судьбу оригинала хотя бы в одном сценарии сбоя.
- На том же диске, что и оригинал — повреждение диска уничтожает обе копии одновременно.
- На том же сервере в соседней папке — сбой операционной системы или взлом сервера задевает и копию тоже.
- Только в панели управления провайдера — это удобный способ, но не замена независимому хранилищу вне основной инфраструктуры.
Проверка восстановлением
Копия, которую никогда не пробовали развернуть, может оказаться повреждённой, неполной или несовместимой с текущей версией системы — и это выясняется в худший момент. Проверку стоит делать отдельной задачей в календаре, а не считать её частью создания копии.
Для самого копирования удобно использовать готовые инструменты: подробности о дедупликации и инкрементных снимках — в статье restic и BorgBackup, а про перенос файлов между серверами — в статье rsync.
Частые вопросы
Что такое бэкап сервера?
Бэкап сервера — это копия данных сервера, файлов и настроек, сохранённая отдельно от рабочей системы для восстановления после сбоя, взлома или ошибки. Сама по себе копия не защищает, пока её не проверили восстановлением хотя бы раз, иначе она остаётся недоказанным предположением.
Как часто делать резервные копии?
Частота зависит от того, сколько данных не жалко потерять при сбое: сайт с ежедневными заказами копируют чаще, чем статичную визитку. База данных обычно копируется чаще файлов сайта, а конфигурация сервера — после каждого значимого изменения настроек.
Сколько копий хранить?
Правило 3-2-1 задаёт минимум: три копии на двух разных носителях, одна из которых вне основной площадки. Большее число версий во времени позволяет откатиться на более раннюю точку, если повреждение обнаружили не сразу, а спустя время.
Достаточно ли снимков виртуальной машины?
Снимок виртуальной машины — это ещё не вторая независимая копия, если он лежит на том же хранилище, что и сама машина. Снимки удобны для быстрого отката, но схему 3-2-1 заменить не могут: нужна копия вне площадки, где развёрнута машина.
С чего начать, если копий нет вовсе
Начинать стоит не с выбора инструмента, а с ответа на вопрос, что именно нельзя потерять: файлы, база данных или то и другое сразу. Дальше — одна копия вне сервера и один пробный запуск восстановления, чтобы убедиться, что схема вообще работает.