Настройка кворума кластера для SQL Server на виртуальных машинах Azure

Применимо к:SQL Server на виртуальной машине Azure

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

Обзор

Кворум для кластера определяется количеством мажоритарных элементов, которые должны быть частью активного членства в кластере, чтобы кластер запустился должным образом или продолжал работать. Настройка ресурса кворума позволит кластеру с двумя узлами продолжать работу с единственным оставшимся в сети узлом. Отказоустойчивый кластер Windows Server — это базовая технология для параметров высокой доступности SQL Server на виртуальных машинах Azure: экземпляров отказоустойчивого кластера и групп доступности.

Диск-свидетель — это наиболее устойчивый вариант кворума, но для его использования в SQL Server на виртуальной машине Azure требуется общий диск Azure, что накладывает некоторые ограничения на решение для обеспечения высокой доступности. Поэтому диск-свидетель следует использовать при настройке экземпляра отказоустойчивого кластера с общими дисками Azure. В противном случае по возможности используйте облако-свидетель. Если вы используете Windows Server 2012 R2 или более ранней версии, которая не поддерживает облако-свидетель, можно использовать общую папку-свидетель.

Ниже перечислены варианты кворума, доступные для SQL Server на виртуальных машинах Azure.

Облако-свидетель Диск-свидетель Файловый ресурс-свидетель
Поддерживаемые ОС Windows Server 2016+ Все Все

Дополнительные сведения о кворуме см. в разделе "Обзор" статьи об отказоустойчивых кластерах Windows Server.

Облако-свидетель

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

В таблице ниже приводится дополнительная информация и рекомендации касательно облака-свидетеля:

Тип свидетеля Описание Требования и рекомендации
Облако-свидетель
  • Использует службу хранилища Azure как облако-свидетель, содержит только метку времени.
  • Идеально подходит для развертываний на нескольких сайтах, в нескольких зонах и в нескольких регионах.
  • Создает известный контейнер msft-cloud-witness в учетной записи хранения Майкрософт.
  • Записывает один файл BLOB-объекта с уникальным идентификатором соответствующего кластера, используемым в качестве имени файла BLOB-объекта в контейнере.
  • Размер по умолчанию равен 1 МБ.
  • Задайте в качестве типа учетной записи тип Общего назначения. Хранилище BLOB-объектов не поддерживается.
  • Используйте хранилище класса "Стандартный". Хранилище Azure класса Premium сейчас не поддерживается.
  • Отказоустойчивая кластеризация использует файл большого двоичного объекта в качестве точки арбитража, что требует некоторых гарантий согласованности при чтении данных. Поэтому в качестве типа для параметра Репликация нужно выбрать Локально избыточное хранилище.
  • Должен быть исключен из резервного копирования и антивирусного сканирования
  • Локальные дисковые пространства не поддерживают диск-свидетель
  • Cloud Witness использует ПРОТОКОЛ HTTPS (порт 443 по умолчанию) для установления связи с хранилищем BLOB-объектов Azure. Убедитесь, что HTTPS-порт доступен через прокси-сервер.

При настройке ресурса кворума облака-свидетеля для отказоустойчивого кластера учитывайте следующее:

  • Вместо того чтобы хранить ключ доступа, отказоустойчивый кластер создаст и будет безопасно хранить маркер SAS.
  • Созданный маркер SAS действителен, пока действителен ключ доступа. При смене первичного ключа доступа важно сначала обновить облако-свидетель (на всех кластерах, использующих эту учетную запись хранения) с помощью вторичного ключа доступа и уже потом повторно создавать первичный ключ доступа.
  • Облако-свидетель использует интерфейс REST HTTPS службы хранилища учетной записи Azure. Это значит, что порт HTTPS должен быть открыт на всех узлах кластера.

Для облака-свидетеля требуется учетная запись хранения Azure. Чтобы настроить учетную запись хранения, выполните следующие действия.

  1. Войдите на портал Azure.
  2. В меню «Концентратор» выберите Создать -> Данные + хранилище -> Учетная запись хранения.
  3. На странице "Создание учетной записи хранения" выполните следующие действия.
    1. Выберите имя для своей учетной записи хранения. Имя учетной записи хранения должно содержать от 3 до 24 символов и состоять только из цифр и строчных букв. Имя учетной записи хранения должно также быть уникальным в Azure.
    2. Для типа учетной записи выберите "Общего назначения".
    3. В разделе Производительность выберите Стандартный.
    4. В поле Репликация выберите Локально избыточное хранилище (LRS).

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

У существующей команды PowerShell Set-ClusterQuorum есть новые параметры, которые относятся к облаку-свидетелю.

Вы можете настроить облако-свидетель с помощью командлета Set-ClusterQuorum, выполнив следующую команду PowerShell:

Set-ClusterQuorum -CloudWitness -AccountName <StorageAccountName> -AccessKey <StorageAccountAccessKey>

В редких случаях, когда вам нужно использовать другую конечную точку, можно воспользоваться этой командой PowerShell:

Set-ClusterQuorum -CloudWitness -AccountName <StorageAccountName> -AccessKey <StorageAccountAccessKey> -Endpoint <servername>

Сведения о том, как найти атрибут AccessKey учетной записи хранения, см. в документации по облаку-свидетелю.

Диск-свидетель

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

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

В таблице ниже приводятся дополнительные сведения и рекомендации касательно дисков-свидетелей кворума.

Тип свидетеля Описание Требования и рекомендации
Диск-свидетель
  • Выделенный LUN, в котором хранится копия базы данных кластера
  • Оптимальный вариант для кластеров с общим (не реплицированным) хранилищем
  • Размер LUN должен быть не меньше 512 МБ
  • Должен быть выделен для кластера и не назначаться кластерной роли
  • Должен быть включен в кластерное хранилище и пройти проверочные тесты хранилища
  • Не может быть общим томом кластера (CSV)
  • Базовый диск с одним томом
  • Не нуждается в букве диска
  • Может иметь файловую систему NTFS или ReFS
  • Можно настроить аппаратную конфигурацию RAID для отказоустойчивости
  • Должен быть исключен из резервного копирования и антивирусного сканирования
  • Локальные дисковые пространства не поддерживают диск-свидетель

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

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

  1. Откройте диспетчер отказоустойчивости кластеров.
  2. Выберите пункт Диски в разделе Служба хранилища в области навигации слева.
  3. Выберите пункт Добавить диск в разделе Действия в области навигации справа.
  4. Выберите только что подключенный общий диск Azure и запишите его имя, например Cluster Disk 3.

Добавив диск в качестве кластеризованного хранилища, настройте его как диск-свидетель с помощью PowerShell:

У существующей команды PowerShell Set-ClusterQuorum есть новые параметры, которые относятся к облаку-свидетелю.

Используйте путь к общей папке как параметр для диска-свидетеля в командлете PowerShell Set-ClusterQuorum:

Set-ClusterQuorum -NodeAndDiskMajority "Cluster Disk 3"

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

Файловый ресурс-свидетель

Общая папка-свидетель — общая папка SMB, которая обычно настраивается на файловом сервере под управлением Windows Server. Поддерживает сведения о кластере в файле witness.log, но не хранит копии базы данных кластера. В Azure общую папку можно настроить на отдельной виртуальной машине.

Настройте общую папку-свидетель, если диск-свидетель или облако-свидетель недоступны или не поддерживаются в вашем окружении.

В таблице ниже приводятся дополнительные сведения и рекомендации касательно общих папок-свидетелей кворума.

Тип свидетеля Описание Требования и рекомендации
Файловый ресурс-свидетель
  • Файловый ресурс SMB, настроенный на файловом сервере с ОС Windows Server
  • Копия базы данных кластера не хранится
  • Информация о кластере хранится только в файле witness.log
  • Наиболее полезно для многосайтовых кластеров с реплицированным хранилищем
  • Свободное пространство должно быть не меньше 5 МБ
  • Должен быть выделен для одного кластера и не использоваться для хранения данных пользователей или приложений
  • Для объекта-компьютера имени кластера должны быть включены разрешения на запись

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

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

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

Set-ClusterQuorum -FileShareWitness <UNC path to file share> -Credential $(Get-Credential)

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

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

Изменение голосования кворума

Голос в кворуме узла, участвующего в отказоустойчивом кластере Windows Server, можно изменить.

При изменении параметров голоса для узла следуйте приведенным ниже рекомендациям.

Рекомендации по голосованию кворума
По умолчанию у узла не должно быть голоса. Для наличия голоса у каждого узла требуется явное обоснование.
Включите голоса для узлов кластера, в которых размещается первичная реплика группы доступности, или для предпочтительных владельцев экземпляра отказоустойчивого кластера.
Включите голоса для владельцев автоматического перехода на другой ресурс. Каждый узел, в котором в результате автоматического перехода на другой ресурс может размещаться первичная реплика или экземпляр отказоустойчивого кластера, должен иметь голос.
Если в группе доступности несколько вторичных реплик, включите голоса только для реплик с автоматическим переходом на другой ресурс.
Отключите голоса для узлов, находящихся на вторичных сайтах аварийного восстановления. Узлы на вторичных сайтах не должны участвовать в принятии решения о переводе кластера в режим "вне сети", если на первичном сайте нет проблем.
Число голосов кворума должно быть нечетным (минимум три). В кластере с двумя узлами при необходимости добавьте свидетель кворума, чтобы получить дополнительный голос.
Перераспределяйте назначение голосов после отработки отказа. Не допускайте отработку отказа с переходом на конфигурацию кластера, которая не поддерживает работоспособность кворума.

Next Steps

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