Демо · резервирование и переключение

Упал сервер. Сколько минут и сколько заявок?

Настройки резервирования обычно обсуждают словами — «ежечасная репликация», «монитор 60 секунд». Но решение принимается не по словам, а по двум числам: сколько данных потеряется и сколько сайт пролежит. Покрутите параметры и посмотрите, как они превращаются в потерянные заявки и минуты простоя.

1. Ваши параметры

Потеря данных, худший случай—
Простой сайта—
Потеряно заявок за аварию—

2. Та же авария по шагам

Отсчёт от момента, когда основной сервер перестал отвечать.

3. Три ловушки Active-Passive, о которых узнают в день аварии

Бэкап рядом с сайтом — это не бэкап

Резервный сервер спасает от падения железа и не спасает от шифровальщика, взлома и ошибочного «удалить всё»: репликация послушно повторит удаление на резервном через час. Поэтому бэкапы кладутся на третье хранилище, с которого сайт не может ничего стереть — доступ только на запись, удаление по ротации делает само хранилище. Это единственная часть схемы, которую нельзя удешевить.

Автоматический failback и «мигающий» сервер

Если основной сервер не умер, а мигает — поднялся, упал, поднялся, — автовозврат без задержки будет гонять трафик туда-сюда. Посмотрите, что получается при ваших настройках:

Сценарий за часПереключенийЧем это кончится

Лечится задержкой на возврат и проверкой, что база на основном догнала резервную. Возврат без проверки отставания — это потеря заказов, принятых резервным сервером, причём тихая.

Фоновые службы в двух экземплярах

Задача «при переключении на резервном автоматически запускаются все фоновые службы» имеет обратную сторону: если они запустятся, а на основном не остановятся, рассылки и задания уйдут дважды. Клиент получит два письма, бухгалтерия — два документа. Поэтому службы на пассивном сервере не просто выключены, а связаны общей блокировкой: работает тот, кто сейчас принимает трафик, и только он.

4. Что я сделаю обязательно, даже если не просили

Учебное переключение при вас. Схема, которую ни разу не проверяли под нагрузкой, в день аварии не работает — это самое частое, что я вижу. Мы гасим основной сервер в оговорённое время, смотрим на секундомер и сверяем, сошлись ли числа с расчётными.

Проверка восстановления из бэкапа. Бэкап, который ни разу не разворачивали, — это папка файлов, а не бэкап. Разворачиваем последний на чистый сервер и убеждаемся, что сайт поднимается и база целая.

Уведомление о переключении. Автоматика не должна быть молчаливой: о переходе на резервный вы узнаёте сообщением, а не от клиента. Туда же — отчёт, что репликация отстала или остановилась, потому что сломанная репликация не падает с ошибкой, она просто перестаёт обновлять данные.