Открыть сервис

Кластер высокой доступности

Кластер высокой доступности (High-Availability Cluster, HA-кластер) — это группа серверов (узлов), объединённых в единую систему, которая обеспечивает непрерывную работу критически важных приложений и сервисов за счёт автоматического переключения нагрузки с отказавшего узла на исправный. Основная цель HA-кластера — минимизировать время простоя (downtime) и обеспечить доступность сервиса на уровне, близком к 100 % (обычно 99,9 % и выше, что соответствует времени простоя не более 8,7 часов в год для 99,9 % или 52,6 минут для 99,99 %).

Архитектура и принципы работы

Основные компоненты

HA-кластер состоит из нескольких физических или виртуальных серверов (узлов), которые работают под управлением специального программного обеспечения — менеджера кластера (cluster manager). Ключевые элементы:

  • Узлы (nodes) — серверы, входящие в состав кластера. Минимальное количество — два узла, но для обеспечения отказоустойчивости при сбоях более чем одного узла часто используют три и более.
  • Общее хранилище (shared storage)дисковое пространство, доступное всем узлам кластера (например, SAN, NAS, распределённые файловые системы). На нём размещаются данные приложений и конфигурационные файлы.
  • Сеть управления (management network) — выделенная сеть для обмена служебными сообщениями между узлами (heartbeat-сигналы, синхронизация состояния).
  • Сеть данных (data network) — сеть, через которую клиенты обращаются к сервисам, предоставляемым кластером.
  • Виртуальный IP-адрес (VIP) — плавающий IP-адрес, который динамически назначается активному узлу. При отказе узла VIP переходит на другой узел, что позволяет клиентам продолжать работу без изменения настроек.

Механизм heartbeat

Узлы кластера постоянно обмениваются короткими сигналами (heartbeat) через сеть управления. Если один узел перестаёт получать heartbeat от другого в течение заданного тайм-аута, он считает его отказавшим и инициирует процедуру переключения (failover). Для предотвращения «разделения мозга» (split-brain), когда несколько узлов одновременно считают себя активными, используются механизмы кворума (quorum) и fencing (изоляции отказавшего узла).

Кворум и fencing

  • Кворум — минимальное количество узлов, необходимое для принятия решений в кластере. Если кластер теряет кворум (например, из-за выхода из строя более половины узлов), он останавливает работу сервисов, чтобы избежать повреждения данных. В двухузловых кластерах для обеспечения кворума часто используют внешнее устройство — witness (например, диск-свидетель или виртуальную машину).
  • Fencingпроцесс изоляции отказавшего узла от общего хранилища и сети. Может быть реализован через отключение питания (STONITH — Shoot The Other Node In The Head) или через блокировку доступа к дискам (SCSI reservation). Fencing гарантирует, что отказавший узел не сможет записывать данные в общее хранилище, что предотвращает повреждение данных.

Классификация HA-кластеров

По типу хранилища

  • Active/Passive (активный/пассивный) — один узел (активный) обрабатывает запросы, второй (пассивный) находится в режиме ожидания и не принимает трафик. При отказе активного узла пассивный берёт на себя его функции. Недостаток — неэффективное использование ресурсов (пассивный узел простаивает).
  • Active/Active (активный/активный) — все узлы одновременно обрабатывают запросы. При отказе одного узла его нагрузка распределяется между оставшимися. Требует более сложной балансировки и синхронизации данных, но обеспечивает лучшее использование ресурсов.
  • N+1 — кластер из N активных узлов и одного резервного, который может заменить любой из активных.
  • N-to-1 — один резервный узел может заменить любой из N активных, но не одновременно.

По уровню отказоустойчивости

  • Кластер с холодным резервом (cold standby) — резервный узел не включён, его запуск занимает время (минуты или часы). Простой может быть значительным.
  • Кластер с тёплым резервом (warm standby) — резервный узел включён, но не обрабатывает запросы. Переключение занимает секунды или минуты.
  • Кластер с горячим резервом (hot standby) — резервный узел полностью готов к работе, данные синхронизированы в реальном времени. Переключение происходит за секунды или доли секунды.

По программному обеспечению

  • Проприетарные — коммерческие решения, такие как Microsoft Failover Cluster (в составе Windows Server), Red Hat High Availability Add-On, Veritas Cluster Server.
  • Открытые — свободное ПО, например, Pacemaker (часто используется с Corosync), Keepalived, Linux-HA (Heartbeat), DRBD (Distributed Replicated Block Device) для репликации данных.

Применение

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

  • Базы данных — обеспечение непрерывной работы СУБД (Oracle, MySQL, PostgreSQL). Например, кластеры на основе Galera для MariaDB или Patroni для PostgreSQL.
  • Веб-серверы и приложения — отказоустойчивый хостинг, системы управления контентом (CMS), корпоративные порталы. Часто используются в связке с балансировщиками нагрузки (например, HAProxy, Nginx).
  • Файловые серверы — обеспечение доступа к данным в сетях хранения (NAS) и облачных хранилищах. Пример — кластеры на основе GlusterFS или Ceph.
  • Виртуализация — отказоустойчивые платформы виртуализации, такие как VMware vSphere HA, Proxmox VE, oVirt. При отказе физического сервера виртуальные машины автоматически перезапускаются на других узлах.
  • Телекоммуникации — обеспечение работы телефонных станций (VoIP), систем биллинга, управления сетями.
  • Финансовый сектор — банковские системы, платёжные шлюзы, биржевые терминалы, где требования к доступности достигают 99,999 % (так называемый «пять девяток»).
  • Государственные информационные системы — порталы госуслуг, системы электронного документооборота, реестры.

Преимущества и недостатки

Преимущества

Недостатки

  • Сложность настройки — требуется квалифицированное администрирование, глубокое понимание сетевых протоколов, хранилищ и механизмов синхронизации.
  • Высокая стоимость — необходимость в дополнительном оборудовании (серверы, сети, хранилища), лицензиях на ПО, а также в обучении персонала.
  • Риск «разделения мозга» — при неправильной настройке fencing или кворума возможна ситуация, когда несколько узлов одновременно считают себя активными, что может привести к повреждению данных.
  • Избыточность ресурсов — в конфигурациях Active/Passive часть оборудования простаивает, что снижает экономическую эффективность.

Примеры реализации

Pacemaker + Corosync (Linux)

Один из самых распространённых открытых стеков для построения HA-кластеров. Pacemaker — менеджер ресурсов, Corosync — служба обмена сообщениями и кворума. Используется в дистрибутивах Red Hat Enterprise Linux, SUSE Linux Enterprise Server, Debian. Поддерживает различные типы ресурсов: IP-адреса, файловые системы, сервисы (Apache, MySQL, PostgreSQL).

Microsoft Failover Cluster

Встроенное решение в Windows Server. Позволяет создавать кластеры для приложений, баз данных (SQL Server), файловых серверов. Использует общее хранилище (iSCSI, Fibre Channel) или репликацию Storage Spaces Direct. Поддерживает кворум через диск-свидетель или облачный witness (Azure).

Keepalived

Лёгкое решение для балансировки нагрузки и отказоустойчивости на основе протокола VRRP (Virtual Router Redundancy Protocol). Часто используется для обеспечения высокой доступности веб-серверов (Nginx, HAProxy) и виртуальных IP-адресов. Не предоставляет управления сложными ресурсами, но прост в настройке.

Интересные факты

  • Термин «пять девяток» (99,999 %) означает, что сервис может быть недоступен не более 5 минут 15 секунд в год. Достижение такого уровня требует не только HA-кластера, но и резервирования всех компонентов (электропитание, сеть, охлаждение).
  • В некоторых критических системах (например, в авиадиспетчерских службах) используются кластеры с тройным резервированием (Triple Modular Redundancy), где три узла выполняют одинаковые вычисления, а результат определяется голосованием.
  • Крупные облачные провайдеры (Amazon Web Services, Microsoft Azure, Яндекс.Облако) предоставляют услуги HA-кластеров как часть своей инфраструктуры, позволяя клиентам не заботиться о физическом оборудовании.

Источники

  • «High Availability: Design, Techniques, and Processes» — Floyd Piedad, Michael Hawkins
  • «Linux High Availability Clustering» — Alan Robertson
  • Документация Red Hat High Availability Add-On (Red Hat, Inc.)
  • Документация Microsoft Failover Cluster (Microsoft Corporation)
  • Статья «Pacemaker: A High-Availability Cluster Resource Manager» — ClusterLabs

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →