Общие сведения о кворуме кластеров и пулов

Область применения: Azure Stack HCI, версии 21H2 и 20H2; Windows Server 2022, сервер Windows

Windows отказоустойчивой кластеризации серверов обеспечивает высокий уровень доступности для рабочих нагрузок, работающих в Azure Stack HCI и Windows кластерах серверов. Эти ресурсы считаются высокодоступными, если узлы, на которых размещены ресурсы; однако кластеру обычно требуется более половины запущенных узлов, что называется кворумом.

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

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

В Azure Stack HCI и Windows Server 2019 есть два компонента системы, которые имеют собственные механизмы кворума:

  • Кворум кластера. Это работает на уровне кластера (т. е. вы можете потерять узлы и сохранить кластер).
  • Кворум пула: это работает на уровне пула (т. е. вы можете потерять узлы и диски и остаться в пуле). служба хранилища пулы были разработаны для использования как в кластерных, так и в некластеризованных сценариях, поэтому они имеют другой механизм кворума.

Общие сведения о кворуме кластера

В приведенной ниже таблице приведен обзор результатов кворума кластера для каждого сценария:

Узлы сервера Может пережить один сбой узла сервера Может пережить один сбой узла сервера, а затем другой Может пережить два одновременных сбоя узла сервера
2 50/50 Нет Нет
2 + свидетель Да Нет Нет
3 Да 50/50 Нет
3 + свидетель Да Да Нет
4 Да Да 50/50
4 + свидетель Да Да Да
5 и выше Да Да Да

Рекомендации по кворуму кластера

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

Как работает кворум кластера

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

Но концепция большинства работает только в том случае, если общее количество узлов в кластере нечетное (например, три узла в кластере с пятью узлами). Итак, как насчет кластеров с четным числом узлов (например, с четырьмя кластерами узлов)?

Кластер может сделать общее количество голосов нечетным:

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

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

Динамический следящий сервер

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

Динамический кворум работает с динамическим свидетелем, как описано ниже.

Динамическое поведение кворума

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

Динамический кворум позволяет динамически назначать голоса узлу, чтобы избежать потери большинства голосов и позволить кластеру работать с одним узлом (известным как последний человек). Рассмотрим кластер с четырьмя узлами в качестве примера. Предположим, что кворум требует 3 голоса.

В этом случае кластер будет отключен, если вы потеряли два узла.

Diagram showing four cluster nodes, each of which gets a vote

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

Diagram showing four cluster nodes, with nodes failing one at a time, and the number of required votes adjusting after each failure.

Приведенный выше сценарий применяется к общему кластеру, который не Локальные дисковые пространства включен. Однако при включении Локальные дисковые пространства кластер может поддерживать только два сбоя узла. Это объясняется больше в разделе кворума пула.

Примеры

Два узла без следящего сервера

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

Quorum explained in the case with two nodes without a witness

  • Может выжить один сбой сервера: пятьдесят процентов шансов.
  • Может выжить один сбой сервера, а затем другой: Нет.
  • Может выжить сразу два сбоя сервера: Нет.

Два узла со следящий сервером

Оба узла голосуют, а также голоса свидетелей, поэтому большинство определяется в общей сложности из 3 голосов. Если любой узел не работает, выживший имеет 2/3, и кластер выживает.

Quorum explained in the case with two nodes with a witness

  • Может выжить один сбой сервера: да.
  • Может выжить один сбой сервера, а затем другой: Нет.
  • Может выжить сразу два сбоя сервера: Нет.

Три узла без следящего сервера

Все узлы голосуют, поэтому большинство определяется в общей сложности из 3 голосов. Если какой-либо узел не работает, выжившие будут 2/3, а кластер остается в живых. Кластер становится двумя узлами без следящего сервера. На этом этапе вы находитесь в сценарии 1.

Quorum explained in the case with three nodes without a witness

  • Может выжить один сбой сервера: да.
  • Может выжить один сбой сервера, а затем еще один: пятьдесят процентов шансов.
  • Может выжить сразу два сбоя сервера: Нет.

Три узла со следящий сервером

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

Quorum explained in the case with three nodes with a witness

  • Может выжить один сбой сервера: да.
  • Может выжить один сбой сервера, а затем другой: Да.
  • Может выжить сразу два сбоя сервера: Нет.

Четыре узла без следящего сервера

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

Quorum explained in the case with four nodes without a witness

  • Может выжить один сбой сервера: да.
  • Может выжить один сбой сервера, а затем другой: Да.
  • Может выжить сразу два сбоя сервера: пятьдесят процентов шансов.

Четыре узла со следящий сервером

Все узлы голосуют и следящий голос, поэтому большинство определяется в общей сложности из 5 голосов. После одного сбоя вы находитесь в сценарии 4. После двух одновременных сбоев перейдите к сценарию 2.

Quorum explained in the case with four nodes with a witness

  • Может выжить один сбой сервера: да.
  • Может выжить один сбой сервера, а затем другой: Да.
  • Может выжить сразу два сбоя сервера: да.

Пять узлов и за ее пределами

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

Quorum explained in the case with five nodes and beyond

  • Может выжить один сбой сервера: да.
  • Может выжить один сбой сервера, а затем другой: Да.
  • Может выжить сразу два сбоя сервера: да.

Теперь, когда мы понимаем, как работает кворум, давайте рассмотрим типы свидетелей кворума.

Типы следящего сервера кворума

Отказоустойчивая кластеризация поддерживает три типа свидетелей кворума:

  • Облако-свидетель — хранилище BLOB-объектов в Azure, доступное всеми узлами кластера. Поддерживает сведения о кластере в файле witness.log, но не хранит копии базы данных кластера.
  • Файловый ресурс-свидетель — файловый ресурс SMB, настроенный на файловом сервере под управлением Windows Server. Поддерживает сведения о кластере в файле witness.log, но не хранит копии базы данных кластера.
  • Диск-свидетель — небольшой кластеризованный диск, который находится в группе "Доступный кластер" служба хранилища. Этот диск является высокодоступным и может выполнять отработку отказа между узлами. Она содержит копию базы данных кластера. Диск-свидетель не поддерживается Локальные дисковые пространства.

Общие сведения о кворуме пула

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

В приведенной ниже таблице представлен обзор результатов кворума пула для каждого сценария:

Узлы сервера Может пережить один сбой узла сервера Может пережить один сбой узла сервера, а затем другой Может пережить два одновременных сбоя узла сервера
2 Нет Нет Нет
2 + свидетель Да Нет Нет
3 Да Нет Нет
3 + свидетель Да Нет Нет
4 Да Нет Нет
4 + свидетель Да Да Да
5 и выше Да Да Да

Принцип работы кворума пула

Если диски завершаются сбоем или когда некоторые подмножества дисков теряют контакт с другим подмножеством, выжившие диски должны убедиться, что они составляют большую часть пула, чтобы оставаться в сети. Если они не смогут убедиться, что они будут отключены. Пул — это сущность, которая переходит в автономный режим или остается в сети на основе наличия достаточного количества дисков для кворума (50 % + 1). Владелец ресурса пула (активный узел кластера) может иметь значение +1.

Но кворум пула работает по-разному от кворума кластера следующими способами:

  • Пул использует один узел в кластере в качестве следящего сервера в качестве разбиения для выживания половины дисков (этот узел является владельцем ресурса пула)
  • Пул не имеет динамического кворума
  • Пул НЕ реализует собственную версию удаления голосования

Примеры

Четыре узла с симметричным макетом

Каждый из 16 дисков имеет один голос и два узла также имеет одно голосование (так как это владелец ресурса пула). Большинство определяется в общей сложности из 16 голосов. Если узлы три и четыре идут вниз, оставшееся подмножество имеет 8 дисков и владелец ресурса пула, который составляет 9/16 голосов. Таким образом, бассейн выживает.

Pool Quorum 1

  • Может выжить один сбой сервера: да.
  • Может выжить один сбой сервера, а затем другой: да.
  • Может одновременно выдержать два сбоя сервера: да.

Четыре узла с симметричным макетом и сбоем диска

Каждый из 16 дисков имеет один голос, а узел 2 также имеет один голос (так как это владелец ресурса пула). Большинство определяется в общей сложности из 16 голосов. Во-первых, диск 7 идет вниз. Если узлы три и четыре идут вниз, выживший подмножество имеет 7 дисков и владельца ресурса пула, который составляет 8/16 голосов. Таким образом, бассейн не имеет большинства и выходит из строя.

Pool Quorum 2

  • Может выжить один сбой сервера: да.
  • Может выжить один сбой сервера, а затем другой: Нет.
  • Может выжить сразу два сбоя сервера: нет.

Четыре узла с несимметрическим макетом

Каждый из 24 дисков имеет один голос и два узла также имеет одно голосование (так как это владелец ресурса пула). Большинство определяется в общей сложности из 24 голосов. Если узлы три и четыре идут вниз, выживший подмножество содержит 8 дисков и владельца ресурса пула, который составляет 9/24 голоса. Таким образом, бассейн не имеет большинства и выходит из строя.

Pool Quorum 3

  • Может выжить один сбой сервера: да.
  • Может выжить один сбой сервера, а затем другой: зависит (не может выжить, если оба узла три и четыре будут отключены, но могут выжить во всех остальных сценариях.
  • Может выжить одновременно два сбоя сервера: зависит (не может выжить, если оба узла три и четыре будут отключены, но могут выжить во всех остальных сценариях.

Рекомендации по кворуму пула

  • Убедитесь, что каждый узел в кластере симметричен (каждый узел имеет одинаковое количество дисков).
  • Включите трехсторонние зеркальные или двойные четности, чтобы можно было допускать сбои узлов и поддерживать подключение виртуальных дисков к сети.
  • Если более двух узлов отключены или два узла и диск на другом узле отключены, тома могут не иметь доступа ко всем трем копиям данных, поэтому их можно отключить и отключить. Рекомендуется быстро вернуть или заменить диски, чтобы обеспечить наибольшую устойчивость для всех данных в томе.

Дальнейшие действия

Дополнительные сведения см. в следующих разделах: