Настройка Azure Load Balancer для VNN FCI — SQL Server на виртуальных машинах Azure

Область применения: SQL Server на виртуальной машине Azure

Совет

Существует множество методов развертывания группы доступности. Упрощение развертывания и устранение необходимости использования Azure Load Balancer или распределенного сетевого имени (DNN) для группы доступности AlwaysOn путем создания виртуальных машин SQL Server в нескольких подсетях в одной виртуальной сети Azure. Если вы уже создали группу доступности в одной подсети, ее можно перенести в среду с несколькими подсетами.

На виртуальных машинах Azure кластеры используют балансировщик нагрузки для хранения IP-адреса, который должен находиться на одном узле кластера в определенный момент времени. В этом решении подсистема балансировки нагрузки содержит IP-адрес для имени виртуальной сети (VNN), который кластеризованный ресурс использует в Azure.

В этой статье описывается, как настроить подсистему балансировки нагрузки с помощью службы "Azure Load Balancer". Подсистема балансировки нагрузки перенаправит трафик к экземпляру отказоустойчивого кластера с SQL Server на виртуальных машинах Azure для обеспечения высокой доступности и аварийного восстановления (HADR).

Для альтернативного варианта подключения для SQL Server 2019 CU2 и более поздних версий вместо этого рассмотрите распределенное сетевое имя (DNN). DNN предлагает упрощенную конфигурацию и улучшенную отработку отказа.

Необходимые компоненты

Чтобы выполнить действия, описанные в этой статье, необходимо следующее:

Создание подсистемы балансировки нагрузки

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

  • Внутренний: к внутренней подсистеме балансировки нагрузки можно получить доступ только из частных ресурсов, которые являются внутренними в сети. При настройке внутренней подсистемы балансировки нагрузки и ее правил используйте IP-адрес FCI в качестве внешнего IP-адреса.

  • Внешний: внешний подсистема балансировки нагрузки может направлять трафик из общедоступного трафика в внутренние ресурсы. При настройке внешней подсистемы балансировки нагрузки нельзя использовать общедоступный IP-адрес, например IP-адрес FCI.

    Чтобы использовать внешнюю подсистему балансировки нагрузки, логически выделяет IP-адрес в той же подсети, что и FCI, который не конфликтует с любым другим IP-адресом. Используйте этот адрес в качестве внешнего IP-адреса для правил балансировки нагрузки.

Создание балансировщика нагрузки

  1. В портал Azure перейдите в группу ресурсов, содержащую виртуальные машины.

  2. Выберите Добавить. Выполните поиск в Azure Marketplace для подсистемы балансировки нагрузки. Выберите Load Balancer.

  3. Нажмите кнопку создания.

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

    • Подписка. Ваша подписка Azure.
    • Группа ресурсов. Группа ресурсов, которая содержит ваши виртуальные машины.
    • Имя. Имя, определяющее балансировщик нагрузки.
    • Регион. Расположение Azure, которое содержит ваши виртуальные машины.
    • Номер SKU: Стандартный.
    • Тип: общедоступный или внутренний. Доступ к внутренней подсистеме балансировки нагрузки можно получить из виртуальной сети. Большинство приложений Azure могут использовать внутреннюю подсистему балансировки нагрузки. Если приложению требуется доступ к SQL Server непосредственно через Интернет, используйте открытую подсистему балансировки нагрузки.
    • Уровень: региональный.

    Снимок экрана: портал Azure, на котором показана страница базовых сведений о подсистеме балансировки нагрузки.

  5. Нажмите кнопку "Далее" — интерфейсная IP-конфигурация.

  6. Выберите " Добавить интерфейсную IP-конфигурацию".

    Снимок экрана: портал Azure, на котором показана кнопка добавления интерфейсной IP-конфигурации.

  7. Настройте внешний IP-адрес с помощью следующих значений:

    • Имя: имя, определяющее конфигурацию внешнего IP-адреса.
    • Виртуальная сеть. Виртуальная сеть, в которой находятся виртуальные машины.
    • Подсеть. Подсеть, в которой находятся виртуальные машины.
    • Назначение: статическое.
    • IP-адрес: IP-адрес, назначенный кластеризованному сетевому ресурсу.
    • Зона доступности: необязательная зона доступности для развертывания IP-адреса.

    Снимок экрана: портал Azure, на котором показана страница настройки внешнего IP-адреса.

  8. Нажмите кнопку "Добавить ", чтобы создать внешний IP-адрес.

  9. Нажмите кнопку "Проверка и создание", чтобы создать подсистему балансировки нагрузки.

Настройка внутреннего пула

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

  2. Выберите серверные пулы и нажмите кнопку +Добавить.

  3. В поле "Имя" укажите имя внутреннего пула.

  4. Для конфигурации внутреннего пула выберите сетевой адаптер.

  5. Выберите "Добавить ", чтобы связать внутренний пул с группой доступности, содержащей виртуальные машины.

  6. В разделе "Виртуальная машина" выберите виртуальные машины, которые будут участвовать в качестве узлов кластера. Не забудьте включить все виртуальные машины, на которых будут размещаться FCI.

    Добавьте только основной IP-адрес каждой виртуальной машины. Не добавляйте вторичные IP-адреса.

  7. Выберите "Добавить", чтобы добавить виртуальные машины в внутренний пул.

  8. Нажмите кнопку "Сохранить", чтобы создать внутренний пул.

Настройка пробы работоспособности

  1. На панели подсистемы балансировки нагрузки выберите пробы работоспособности.

  2. В области добавления пробы работоспособности задайте следующие параметры:

  3. Выберите Добавить.

Задание правил балансировки нагрузки

  1. На панели подсистемы балансировки нагрузки выберите правила балансировки нагрузки.

  2. Выберите Добавить.

  3. Задайте следующие параметры:

    • Имя: имя правила балансировки нагрузки.
    • Внешний IP-адрес: IP-адрес, заданный при настройке внешнего интерфейса.
    • Серверный пул: внутренний пул, содержащий виртуальные машины, предназначенные для подсистемы балансировки нагрузки.
    • Порты высокой доступности. Включает балансировку нагрузки на всех портах для протоколов TCP и UDP.
    • Протокол: TCP.
    • Порт. TCP-порт SQL Server. Значение по умолчанию — 1433.
    • Серверный порт. Используется тот же порт, что и для значения Порт при включении параметра Плавающий IP-адрес (прямой ответ от сервера).
    • Проверка работоспособности. Используйте проверку работоспособности, настроенную ранее.
    • Сохраняемость сеанса: нет.
    • Время ожидания простоя (минуты): 4.
    • Плавающий IP-адрес (прямой ответ от сервера). Включено.
  4. Выберите Сохранить.

Настройка пробы кластера

Задайте параметр порта пробы кластера в PowerShell.

Обновите переменные в следующем скрипте со значениями из вашей среды. Удалите из скрипта угловые скобки (< и >).

$ClusterNetworkName = "<Cluster Network Name>"
$IPResourceName = "<SQL Server FCI IP Address Resource Name>" 
$ILBIP = "<n.n.n.n>" 
[int]$ProbePort = <nnnnn>

Import-Module FailoverClusters

Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"=$ProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}

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

Переменная Value
ClusterNetworkName Имя отказоустойчивого кластера Windows Server для сети. Выберите Диспетчер отказоустойчивости кластеров>Сети, щелкните сеть правой кнопкой мыши и выберите Свойства. Правильное значение указано в поле Имя на вкладке Общие.
IPResourceName Имя ресурса для IP-адреса FCI SQL Server. Выберите Диспетчер отказоустойчивости кластеров>Роли. Для роли экземпляра отказоустойчивого кластера SQL Server в разделе Имя сервера щелкните правой кнопкой мыши ресурс IP-адреса и выберите Свойства. Правильное значение указано в поле Имя на вкладке Общие.
ILBIP IP-адрес внутренней подсистемы балансировки нагрузки. Этот адрес настраивается в портал Azure в качестве внешнего адреса внутренней подсистемы балансировки нагрузки. Это также IP-адрес FCI SQL Server. Его можно найти в диспетчере отказоустойчивости кластеров на той же странице свойств, где находится значение.IPResourceName
ProbePort Порт пробы, настраиваемый в пробе работоспособности подсистемы балансировки нагрузки. Допускается любой неиспользуемый TCP-порт.
SubnetMask Маска подсети для параметра кластера. Он должен быть адресом широковещательной трансляции TCP/IP: 255.255.255.255

После настройки пробы кластера все параметры кластера можно просмотреть в PowerShell. Выполните следующий скрипт:

Get-ClusterResource $IPResourceName | Get-ClusterParameter

Изменение строка подключения

Для клиентов, поддерживающих его, добавьте MultiSubnetFailover=True в строка подключения. MultiSubnetFailover Хотя параметр подключения не является обязательным, он обеспечивает преимущество более быстрой отработки отказа подсети. Это связано с тем, что драйвер клиента пытается открыть сокет TCP для каждого IP-адреса параллельно. Драйвер клиента ожидает, пока первый IP-адрес будет отвечать успешно. После успешного ответа драйвер клиента использует этот IP-адрес для подключения.

Если клиент не поддерживает MultiSubnetFailover параметр, можно изменить RegisterAllProvidersIP параметры и HostRecordTTL параметры, чтобы предотвратить задержки подключения при отработки отказа.

Используйте PowerShell для изменения RegisterAllProvidersIp и HostRecordTTL параметров:

Get-ClusterResource yourFCIname | Set-ClusterParameter RegisterAllProvidersIP 0  
Get-ClusterResource yourFCIname | Set-ClusterParameter HostRecordTTL 300 

Дополнительные сведения см. в документации по времени ожидания подключения прослушивателя в SQL Server.

Совет

  • MultiSubnetFailover Задайте параметр true в строка подключения, даже для решений HADR, охватывающих одну подсеть. Этот параметр поддерживает будущий охват подсетей без необходимости обновлять строка подключения.
  • По умолчанию клиенты кэшируют DNS-записи кластера на 20 минут. HostRecordTTLСокращая время жизни (TTL) для кэшированных записей. Устаревшие клиенты могут повторно подключаться быстрее. Таким образом, уменьшение HostRecordTTL параметров может увеличить трафик на DNS-серверах.

Тестовая отработка отказа

Проверьте отработку отказа кластеризованного ресурса для проверки функциональности кластера:

  1. Подключитесь к одному из узлов кластера SQL Server с помощью протокола удаленного рабочего стола (RDP).
  2. Откройте диспетчер отказоустойчивости кластеров. Выберите Роли. Обратите внимание, какой узел является владельцем роли SQL Server FCI.
  3. Щелкните правой кнопкой мыши роль SQL Server FCI.
  4. Выберите Переместить, а затем выберите Лучший возможный узел.

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

Проверка подключения

Чтобы проверить подключение, войдите на другую виртуальную машину в той же виртуальной сети. Откройте SQL Server Management Studio и подключитесь к экземпляру отказоустойчивого кластера SQL Server.

Примечание.

При необходимости можно скачать SQL Server Management Studio.

Следующие шаги

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