Фейловер (failover) — автоматическое переключение трафика и рабочей нагрузки с отказавшего узла на резервный при обнаружении сбоя. В отличие от ручного переключения, фейловер происходит без участия оператора — система сама обнаруживает проблему и перенаправляет запросы, минимизируя даунтайм.
Как работает фейловер
Три этапа автоматического фейловера:
- Обнаружение сбоя. Компоненты системы обмениваются heartbeat-сигналами — короткими пакетами каждые 1-10 секунд. Если узел не ответил за установленное время (timeout), он помечается как недоступный.
- Принятие решения. Кластерное ПО или балансировщик нагрузки определяет, что произошёл сбой, и выбирает резервный узел. Для предотвращения «split-brain» (когда оба узла считают друг друга мёртвыми) используют кворум или выделенный арбитр.
- Переключение. Трафик перенаправляется на резервный VPS-узел. В зависимости от архитектуры это занимает от нескольких секунд до 1-2 минут.
Для обеспечения единого IP-адреса при переключении используют VRRP (Virtual Router Redundancy Protocol) или CARP — виртуальный IP «плавает» между узлами.
Схемы фейловера
| Схема | Описание | Использование ресурсов |
|---|---|---|
| Active-Passive | Один узел активен, второй в горячем резерве | Резерв простаивает |
| Active-Active | Оба узла обслуживают запросы; при сбое одного нагрузка перераспределяется | Оба работают |
| N+1 | N активных узлов + 1 резервный на всю группу | Эффективно при многих узлах |
Active-Active совмещает фейловер с балансировкой нагрузки: при выходе одного узла из строя оставшиеся принимают дополнительный трафик.
История
Концепция failover возникла в 1960-х в телекоммуникационных системах и военных вычислительных центрах, где отказоустойчивость была критически важна. В 1990-х с ростом интернет-коммерции автоматический фейловер начали применять для веб-серверов и баз данных. Первые Linux-кластеры высокой доступности (Heartbeat проект, 1999) сделали технологию доступной для open-source сообщества. Сегодня фейловер — стандартная функция любого Enterprise-кластера и облачной платформы.
Фейловер на уровне хостинга
Провайдеры предлагают фейловер на разных уровнях:
- DNS failover — при сбое основного IP DNS автоматически возвращает резервный. Время переключения зависит от TTL записей (обычно 60-300 секунд).
- IP failover — виртуальный IP переходит между серверами за 5-30 секунд через VRRP/CARP.
- Database failover — репликация с автоматическим promote реплики в master (PostgreSQL Patroni, MySQL MHA).
- Container failover — Kubernetes перезапускает упавшие поды на других узлах.
На что обращать внимание
Фейловер не заменяет резервное копирование: при повреждении данных переключение на реплику перенесёт повреждённые данные. Проверяй, поддерживает ли провайдер мониторинг с автофейловером или требует ручного включения резерва. Тестируй фейловер в нагрузочных тестах — «пожарные учения» раз в квартал позволяют обнаружить проблемы до реального сбоя.