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

Активно-активная схема

Активно-активная схема (англ. active-active configuration) — это архитектура компьютерной системы, в которой два или более узла (сервера, контроллера, сетевых устройства) одновременно находятся в рабочем состоянии и обрабатывают запросы, распределяя нагрузку между собой. В отличие от активно-пассивной схемы, где резервный узел простаивает до момента отказа основного, в активно-активной конфигурации все узлы являются равноправными и постоянно участвуют в обслуживании. Основная цель такой архитектуры — повышение производительности, отказоустойчивости и доступности сервисов за счёт параллельной обработки и взаимного резервирования.

Принцип работы

В активно-активной схеме каждый узел имеет собственные вычислительные ресурсы (процессор, память, дисковое пространство) и сетевое подключение. Все узлы одновременно принимают и обрабатывают входящие запросы от клиентов. Для обеспечения целостности данных и согласованности состояний между узлами используется механизм синхронизации, который может быть реализован на уровне приложения, базы данных или файловой системы.

Распределение запросов между узлами осуществляется с помощью балансировщика нагрузки (load balancer), который может быть как аппаратным, так и программным. Балансировщик анализирует текущую загрузку каждого узла, время отклика или другие метрики и направляет запрос на наименее загруженный или наиболее подходящий узел. При отказе одного из узлов балансировщик автоматически перенаправляет трафик на оставшиеся рабочие узлы, что обеспечивает непрерывность обслуживания.

Классификация и виды

Активно-активные схемы классифицируются по способу синхронизации данных и по уровню реализации.

По способу синхронизации данных

  • С разделяемым хранилищем (shared storage). Все узлы подключаются к общему дисковому массиву (SAN, NAS) через высокоскоростную сеть. Синхронизация данных не требуется, так как все узлы работают с одними и теми же физическими данными. Однако возникает проблема управления блокировками и согласованием доступа к файлам.
  • С репликацией данных (data replication). Каждый узел имеет собственную копию данных, которые синхронизируются между узлами в реальном времени или асинхронно. Репликация может быть синхронной (каждое изменение подтверждается на всех узлах) или асинхронной (изменения передаются с задержкой). Синхронная репликация обеспечивает более высокую согласованность, но снижает производительность из-за задержек на подтверждение.
  • Без общего хранилища (shared-nothing). Каждый узел полностью независим и обрабатывает только свою часть данных. Для обеспечения целостности используется сегментирование (sharding) — данные распределяются между узлами по определённому ключу (например, по идентификатору пользователя). Запросы направляются на узел, который хранит соответствующий сегмент.

По уровню реализации

  • Аппаратная активно-активная схема. Реализуется на уровне контроллеров дисковых массивов, сетевых коммутаторов или маршрутизаторов. Оба контроллера одновременно обрабатывают запросы ввода-вывода и управляют трафиком.
  • Программная активно-активная схема. Реализуется на уровне операционной системы, кластерного ПО или приложения. Примеры: кластеры баз данных (Oracle RAC, PostgreSQL с Patroni), веб-серверы (Nginx, Apache в кластерной конфигурации), системы управления контейнерами (Kubernetes).
  • Гибридная активно-активная схема. Сочетает аппаратные и программные компоненты. Например, кластер из двух серверов с общим дисковым массивом, где балансировка нагрузки осуществляется программным балансировщиком.

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

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

  • Высокая производительность. За счёт параллельной обработки запросов суммарная пропускная способность системы приближается к сумме производительностей всех узлов.
  • Отказоустойчивость. При отказе одного узла нагрузка перераспределяется на оставшиеся, и система продолжает работу без прерывания обслуживания (если остаётся хотя бы один узел).
  • Масштабируемость. Добавление новых узлов позволяет увеличить производительность без замены существующего оборудования (горизонтальное масштабирование).
  • Эффективное использование ресурсов. В отличие от активно-пассивной схемы, где резервный узел простаивает, в активно-активной все узлы загружены работой.

Недостатки

  • Сложность реализации. Требуется настройка механизмов синхронизации, балансировки нагрузки, управления блокировками и разрешения конфликтов.
  • Риск рассинхронизации. При асинхронной репликации или при сбоях может возникнуть расхождение данных между узлами, что потребует восстановления согласованности.
  • Сетевые задержки. Синхронизация и обмен служебной информацией между узлами увеличивают сетевой трафик и могут снижать производительность.
  • Стоимость. Требуется дополнительное оборудование (сетевые коммутаторы, балансировщики, системы хранения) и лицензии на специализированное ПО.

Применение

Активно-активные схемы широко применяются в различных областях информационных технологий.

Базы данных

Кластерные системы управления базами данных (СУБД), такие как Oracle Real Application Clusters (RAC), IBM Db2 pureScale, Microsoft SQL Server с Always On Availability Groups, позволяют нескольким экземплярам СУБД одновременно работать с одной базой данных. Это обеспечивает высокую доступность и масштабирование производительности для критически важных приложений, например, в банковской сфере, на биржах и в системах электронной коммерции.

Веб-серверы и приложения

Веб-серверы (Nginx, Apache) и серверы приложений (Tomcat, WildFly) могут быть объединены в активно-активный кластер с помощью балансировщика нагрузки. Такая архитектура используется для обеспечения отказоустойчивости и высокой производительности веб-сайтов с большим трафиком, включая крупные интернет-магазины, социальные сети и государственные порталы.

Системы хранения данных (СХД)

Современные дисковые массивы (например, NetApp, Dell EMC, Hitachi) поддерживают активно-активные контроллеры, которые одновременно обрабатывают запросы ввода-вывода. Это повышает производительность и отказоустойчивость систем хранения, используемых в корпоративных центрах обработки данных (ЦОД).

Телекоммуникационное оборудование

Маршрутизаторы, коммутаторы и контроллеры базовых станций могут работать в активно-активной конфигурации для обеспечения бесперебойной работы сетей связи. Например, в архитектуре ядра сети LTE (4G) используется активно-активное резервирование для обработки трафика абонентов.

Облачные вычисления

Платформы облачных вычислений, такие как OpenStack, VMware vSphere, Microsoft Azure Stack, поддерживают активно-активные кластеры для управления виртуальными машинами и контейнерами. Это позволяет провайдерам облачных услуг обеспечивать высокую доступность и масштабируемость своих сервисов.

Отличие от активно-пассивной схемы

Основное отличие активно-активной схемы от активно-пассивной заключается в том, что в активно-пассивной конфигурации один узел (активный) обрабатывает все запросы, а второй (пассивный) находится в режиме ожидания и включается только при отказе активного. В активно-активной схеме оба узла работают постоянно. Активно-пассивная схема проще в настройке и не требует синхронизации данных, но менее эффективно использует ресурсы и имеет меньшую производительность.

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

  • Oracle RAC — кластерная технология Oracle, позволяющая нескольким серверам одновременно работать с одной базой данных через общее хранилище. Используется в крупных корпоративных системах, в том числе в российских банках и государственных учреждениях.
  • PostgreSQL с Patroni — решение для создания активно-активного кластера PostgreSQL с использованием репликации и автоматического переключения при сбоях. Широко применяется в российских IT-компаниях для обеспечения отказоустойчивости.
  • Kubernetes — система оркестрации контейнеров, которая по умолчанию реализует активно-активную схему для управления подсистемами (подами). Несколько реплик приложения могут одновременно обрабатывать запросы, распределяемые встроенным балансировщиком.
  • Active Directory — служба каталогов Microsoft, где контроллеры домена могут работать в активно-активной конфигурации, реплицируя данные между собой. Это обеспечивает отказоустойчивость и доступность аутентификации в корпоративных сетях.

Источники

  • Книга: «Архитектура высоконагруженных систем» — разделы о кластеризации и отказоустойчивости.
  • Документация Oracle: «Oracle Real Application Clusters Administration and Deployment Guide».
  • Документация Microsoft: «Always On Availability Groups (SQL Server)».
  • Статья: «Active-Active vs Active-Passive Clustering» — технический блог компании NetApp.
  • Материалы курса «Администрирование Linux. Кластерные системы» — учебное пособие для вузов.

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

На главную BFOmetr →