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

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

Совет

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

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

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

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

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

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

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

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

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

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

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

Внимание

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

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

  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. В разделе "Виртуальная машина" выберите виртуальные машины, которые будут участвовать в качестве узлов кластера. Не забудьте включить все виртуальные машины, на которых будет размещаться группа доступности.

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

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

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

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

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

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

    • Имя. Имя для проверки работоспособности.
    • Протокол: TCP.
    • Порт: порт, созданный в брандмауэре для пробы работоспособности. В этом примере используется TCP-порт 59999.
    • Интервал: 5 секунд.
  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}

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

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

Внесенные изменения не вступают в силу до тех пор, пока ресурс IP-адреса не будет отключен и снова подключен к сети. Выполните отработку отказа группы доступности, чтобы это изменение ввело в силу. После настройки пробы кластера все параметры кластера можно просмотреть в 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Сокращая время жизни (TTL) для кэшированных записей. Устаревшие клиенты могут повторно подключаться быстрее. Таким образом, уменьшение HostRecordTTL параметров может увеличить трафик на DNS-серверах.

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

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

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

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

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

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

Примечание.

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

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

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

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