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

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

Совет

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

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

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

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

Предварительные требования

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

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

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

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

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

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

Важно!

30 сентября 2025 г. номер SKU "Базовый" для Azure Load Balancer будет прекращен. Дополнительные сведения см. в официальном объявлении. Если вы используете базовый Load Balancer, выполните обновление до Load Balancer (цен. категория до даты прекращения использования. Инструкции см. в статье Обновление Load Balancer.

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

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

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

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

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

    • Подписка: Вашу подписку Azure.
    • Группа ресурсов. Группа ресурсов, которая содержит ваши виртуальные машины.
    • Name (Имя). Имя, определяющее подсистему балансировки нагрузки.
    • Регион. Расположение Azure, которое содержит ваши виртуальные машины.
    • SKU: Стандартный.
    • Тип: Public или Internal. Доступ к внутренней подсистеме балансировки нагрузки можно получить из виртуальной сети. Большинство приложений 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. В разделе Конфигурация серверного пула выберите NIC.

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

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

    Добавьте только основной 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 = "<AG Listener 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}

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

Переменная Значение
ClusterNetworkName Имя отказоустойчивого кластера Windows Server для сети. Выберите Диспетчер отказоустойчивости кластеров>Сети, щелкните сеть правой кнопкой мыши и выберите Свойства. Правильное значение указано в поле Имя на вкладке Общие.
IPResourceName Имя ресурса для IP-адреса прослушивателя группы доступности. Выберите Диспетчер отказоустойчивости кластеров>Роли. Для роли группы доступности в разделе Имя сервера щелкните правой кнопкой мыши ресурс IP-адреса и выберите Свойства. Правильное значение указано в поле Имя на вкладке Общие.
ILBIP IP-адрес внутренней подсистемы балансировки нагрузки. Этот адрес настраивается в портал Azure в качестве внешнего адреса внутренней подсистемы балансировки нагрузки. Используйте тот же IP-адрес, что и для группы доступности. Его можно найти в диспетчере отказоустойчивости кластеров на той же странице свойств, где находится значение для 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 yourListenerName | Set-ClusterParameter RegisterAllProvidersIP 0  
Get-ClusterResource yourListenerName|Set-ClusterParameter HostRecordTTL 300 

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

Совет

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

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

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

  1. Откройте SQL Server Management Studio и подключитесь к прослушивателю группы доступности.
  2. В обозреватель объектов разверните узел Always On группа доступности.
  3. Щелкните правой кнопкой мыши группу доступности и выберите Отработка отказа.
  4. Следуйте подсказкам мастера, чтобы выполнить отработку отказа группы доступности с помощью вторичной реплики.

Отработка отказа успешно выполняется, когда обе реплики переключают роли и синхронизируются.

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

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

Примечание

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

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

После создания виртуальной сети рассмотрите возможность оптимизации параметров кластера для SQL Server виртуальных машин.

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