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

Microsoft Cluster Service

Microsoft Cluster Service (MSCS) — это компонент операционных систем семейства Windows Server, предназначенный для объединения нескольких независимых серверов (узлов) в отказоустойчивый кластер. Основная цель MSCS — обеспечение высокой доступности (high availability) приложений и служб за счёт автоматического переключения нагрузки (failover) с вышедшего из строя узла на работающий, что минимизирует время простоя критически важных сервисов. MSCS является частью более широкой платформы Windows Server Failover Cluster (WSFC), которая в современных версиях Windows Server включает в себя также функции балансировки нагрузки и масштабирования.

История

Первая версия Microsoft Cluster Service была представлена в 1997 году в составе Windows NT 4.0 Enterprise Edition. Изначально кластер поддерживал не более двух узлов и работал в конфигурации «активный-пассивный» (один узел обрабатывает запросы, второй находится в режиме ожидания). Решение было ориентировано на небольшие и средние предприятия, которым требовалась отказоустойчивость для файловых серверов и баз данных.

В Windows 2000 Advanced Server и Datacenter Server поддержка кластеризации была расширена: появилась возможность создавать кластеры до четырёх узлов, а также была добавлена поддержка конфигурации «активный-активный» (несколько узлов одновременно обрабатывают запросы, каждый со своей нагрузкой). В Windows Server 2003 MSCS получил улучшенную интеграцию с Active Directory и возможность использования общей шины SCSI для хранения данных.

Значительные изменения произошли в Windows Server 2008, где MSCS был переименован в Windows Server Failover Cluster (WSFC) и стал частью единой платформы управления кластеризацией. В этой версии появилась поддержка кластеров с числом узлов до 16, улучшенная поддержка виртуальных машин Hyper-V, а также возможность использования файлового сервера (SMB) в качестве общего хранилища. В Windows Server 2012 и 2016 были добавлены возможности автоматического восстановления после сбоев, поддержка кластеров с несколькими доменами и улучшенная интеграция с облачными сервисами Azure.

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

Узлы кластера

Каждый узел кластера — это отдельный физический или виртуальный сервер под управлением Windows Server (начиная с версии 2008, поддерживаются редакции Standard, Datacenter и Enterprise). Узлы соединены между собой через выделенную сеть (heartbeat network) для обмена служебными сигналами о состоянии. Для хранения данных кластер использует общее хранилище, доступное всем узлам, — это может быть Fibre Channel SAN, iSCSI, SMB-файловый сервер или Storage Spaces Direct (S2D).

Кворум

Кворум (quorum) — это механизм, обеспечивающий согласованность решений в кластере. Он предотвращает ситуацию «разделения мозга» (split-brain), когда из-за потери связи между узлами каждый из них считает себя единственным работоспособным. В MSCS/WSFC используются несколько моделей кворума:

  • Кворум на основе диска — используется общий диск (witness disk), на котором хранится копия конфигурации кластера.
  • Кворум на основе файлового сервера — роль свидетеля выполняет файловый сервер (file share witness).
  • Кворум без свидетеля — большинство узлов (majority node set) — используется в кластерах с нечётным числом узлов.
  • Кворум с облачным свидетелем (Cloud Witness) — в Windows Server 2012 R2 и новее, используется объект Blob в Azure для хранения копии кворума.

Роли и ресурсы

Кластер управляет набором ролей (ранее назывались «кластерные группы» или «приложения»). Каждая роль представляет собой логическую единицу, состоящую из одного или нескольких ресурсов (IP-адрес, диск, сетевое имя, служба, приложение). Ресурсы могут быть зависимыми друг от друга (например, приложение SQL Server зависит от диска и IP-адреса). При сбое узла все ресурсы роли автоматически перемещаются на другой узел в рамках процесса failover.

Сеть кластера

Для работы кластера требуется как минимум две сети:

  • Сеть для обмена данными (client network) — для доступа клиентов к приложениям.
  • Сеть для служебного обмена (heartbeat network) — для передачи сигналов о состоянии узлов. Обычно используется выделенная гигабитная Ethernet-сеть.

Применение

Высокая доступность приложений

MSCS (WSFC) традиционно используется для обеспечения отказоустойчивости таких критических приложений, как:

  • Microsoft SQL Serverкластеризация экземпляров SQL Server (Always On Failover Cluster Instances).
  • Microsoft Exchange Server — кластеризация почтовых ящиков и транспортных служб.
  • Файловые серверы — обеспечение непрерывного доступа к сетевым папкам (File Server for General Use).
  • Hyper-V — кластеризация виртуальных машин (Guest Clustering) и самих хостов Hyper-V.

Масштабирование

В конфигурации «активный-активный» кластер может распределять нагрузку между несколькими узлами, что позволяет увеличить общую производительность сервиса. Например, в кластере SQL Server Always On каждый узел может обслуживать свои базы данных, а при сбое одного узла его нагрузка перераспределяется между оставшимися.

Поддержка виртуализации

С выходом Windows Server 2012 и 2016 кластеризация стала ключевым компонентом платформы Hyper-V. Кластеры Hyper-V позволяют:

  • автоматически перезапускать виртуальные машины на других узлах при сбое хоста;
  • выполнять «живую миграцию» (Live Migration) виртуальных машин без простоев;
  • использовать Storage Spaces Direct для создания отказоустойчивого хранилища на локальных дисках узлов.

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

По конфигурации

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

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

  • Кластер с общей шиной (Shared Storage) — все узлы имеют доступ к одному и тому же массиву дисков (SAN, iSCSI, Fibre Channel).
  • Кластер с локальным хранилищем (Storage Spaces Direct) — данные реплицируются между узлами через сеть, без использования общего дискового массива. Поддерживается в Windows Server 2016 и новее.

Критика и ограничения

Сложность настройки

MSCS/WSFC требует тщательной настройки сетевой инфраструктуры, хранилища и служб Active Directory. Ошибки в конфигурации могут привести к неработоспособности кластера или к ситуации «разделения мозга». Для корректной работы кластера необходимо, чтобы все узлы были в одном домене Active Directory, имели одинаковую версию операционной системы и обновлений.

Зависимость от общего хранилища

Традиционные кластеры MSCS требуют общего хранилища (SAN, iSCSI), что увеличивает стоимость и сложность инфраструктуры. Хотя Storage Spaces Direct снижает эту зависимость, он требует высокоскоростных сетевых соединений (10 Гбит/с и выше) и большого количества дисков.

Ограничения по числу узлов

Максимальное количество узлов в кластере WSFC зависит от версии Windows Server:

  • Windows Server 2008 R2 — до 16 узлов.
  • Windows Server 2012 R2 — до 64 узлов.
  • Windows Server 2016 и новее — до 64 узлов (для кластеров Hyper-V — до 64 узлов, для файловых серверов — до 8 узлов).

Время переключения

Хотя failover происходит автоматически, процесс может занимать от нескольких секунд до нескольких минут, в зависимости от сложности приложения и объёма данных. Для некоторых критических систем (например, телекоммуникационного оборудования) это время может быть неприемлемым.

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

  • MSCS был одним из первых коммерческих решений для кластеризации на платформе Windows, появившись ещё до выхода Windows 2000.
  • В Windows Server 2012 была добавлена возможность использования кластеров с несколькими доменами Active Directory, что упростило миграцию между доменами.
  • Microsoft Cluster Service поддерживает не только отказоустойчивость, но и балансировку нагрузки (Network Load Balancing, NLB), хотя NLB является отдельным компонентом и не входит в состав WSFC.
  • В Windows Server 2022 была добавлена поддержка кластеров с использованием протокола SMB over QUIC, что позволяет подключать узлы через интернет с шифрованием.

Источники

  • Microsoft Docs: «Failover Clustering Overview» (Windows Server)
  • «Windows Server 2016: Failover Clustering» — Microsoft Press
  • «Windows Server 2012 R2: Failover Clustering» — Microsoft Press
  • «Windows NT 4.0: Enterprise Edition» — Microsoft Knowledge Base
  • «Storage Spaces Direct Overview» — Microsoft Docs
  • «SQL Server Always On Failover Cluster Instances» — Microsoft Docs

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

На главную BFOmetr →