Отказоустойчивая кластеризация (failover cluster) – объединение нескольких серверов в группу или кластер. В случае отказа одного из серверов, его задачи будут перераспределены на другие части кластера.

Помимо предотвращения угрозы непредвиденного выхода из строя, отказоустойчивые кластеры удобно использовать в случаях, когда нужно отключить один из серверов для проведения технического обслуживания или других регламентных работ.  

Что нужно для построения отказоустойчивых кластеров? Преимущественно, решения с ними базируются на Windows Server.

1. Избыточная производительность.

Для перераспределения задач на другие серверы необходимы свободные мощности. В кластере максимальная нагрузка должна быть ниже, чем доступные ресурсы. Например, если в группу объединены 12 серверов, она не может превышать рабочие возможности 11-ти из них. Это позволит перераспределить задачи отключенного узла без потери производительности.

2. Совместный доступ к данным каждого узла.

Без него невозможно организовать отказоустойчивый кластер. При выходе из строя одного сервера задачи должны мгновенно распределиться между остальными. При этом необходимо обеспечить точно такой же (или предусмотреть резервный) канал к базе данных и к конечным пользователям.

3. Соответствие программного обеспечения.

Ещё на стадии разработки приложений надо учитывать возможность их использования в отказоустойчивых кластерах. Приложения должны уметь работать с общим распределенным хранилищем данных, и перезапускаться на другом узле в состоянии, при котором были в момент шатдауна, сбоя, отсечения сервера внутри кластера.

Независимо от распределения ролей и служб между серверами, кластеризация может базироваться на четырех технологиях:
- Hyper-V,
- файловые службы,
- Exchange,
- и SQL.  

Основные схемы построения отказоустойчивых кластеров

Active/active

Наиболее современная и востребованная схема функционирования failover cluster. Нагрузка отключенного сервера распределяется между другими активными узлами, которые должны быть идентичны по программному и аппаратному обеспечению.

A+A

Наиболее затратная и надежная схема. Каждому активному узлу соответствует один временно незадействованный (пассивный), который при выходе из строя активного узла, а также на время его ремонта и обслуживания, сразу же его заменит.  

A+1

Один резервный незадействованный сервер в кластере при необходимости заменяет вышедший из строя. После выполнения своей задачи снова переходит в статус резервного. От схемы Active/active, А+1 отличается возможностью использования в кластерах с разнородными потоками задач, когда узлы выполняют разные функции, и резервный должен заменить любой из них в случае необходимости.  

A+B

В кластере есть несколько резервных серверов. Отличается от схемы A+1 тем, что один сервер не может из-за несовместимости или недостатка мощности заменить любой из узлов.

Photo by Leonardo Iheme / Unsplash

Балансировка нагрузки

Балансировка нагрузки может работать одновременно с отказоустойчивой кластеризацией. При использовании большого числа серверов важно распределять задачи таким образом, чтобы все узлы были загружены примерно одинаково. Иначе одни будут перегружены и не справятся с потоком задач, а другие – наоборот, будут простаивать.

Балансировка нагрузки возможна при использовании схемы кластеризации Active/active.  

Горизонтальное масштабирование файлового сервера

Развертывание отказоустойчивого кластера осложняется при работе с открытыми или непрерывно изменяемыми файлами. Чтобы избежать отсекания отключенных узлов, используется горизонтально-масштабируемый файловый сервер (SOFS, Scale-Out File Server). В случае, если он выходит из строя, кластер продолжает полноценно функционировать.

Отказоустойчивая кластеризация может применяться на уровне приложений, на уровне хоста, а также одновременно на обоих уровнях.  

Photo by Jon Moore / Unsplash

Защита кластеров

Внутри кластера серверы обмениваются информацией по протоколу Server Message Block (SMB) с использованием сертификатов. Аутентификация NTLM, как правило, не применяется. Поэтому отказоустойчивые кластеры с базовыми параметрами безопасности могут функционировать полноценно.