Настройка подсистемы балансировки нагрузки 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 предлагает упрощенную конфигурацию и улучшенную отработку отказа.
Предварительные требования
Чтобы выполнить действия, описанные в этой статье, необходимо следующее:
- принятие решения о том, что Azure Load Balancer является подходящей возможностью подключения для группы доступности;
- установка последней версии PowerShell.
Создание подсистемы балансировки нагрузки
Вы можете создать подсистемы балансировки нагрузки любого из следующих типов:
Внутренняя. Доступ к внутренней подсистеме балансировки нагрузки можно получить только из частных ресурсов, которые являются внутренними в сети. При настройке внутренней подсистемы балансировки нагрузки и ее правил используйте тот же IP-адрес, что и прослушиватель группы доступности для внешнего IP-адреса.
Внешний. Внешняя подсистема балансировки нагрузки может направлять трафик из общедоступного ресурса во внутренние. При настройке внешней подсистемы балансировки нагрузки нельзя использовать тот же IP-адрес, что и прослушиватель группы доступности, так как IP-адрес прослушивателя не может быть общедоступным.
Чтобы использовать внешнюю подсистему балансировки нагрузки, логически выделите IP-адрес в той же подсети, что и группа доступности, которая не конфликтует с любым другим IP-адресом. Используйте этот адрес в качестве внешнего IP-адреса для правил балансировки нагрузки.
Важно!
30 сентября 2025 г. номер SKU "Базовый" для Azure Load Balancer будет прекращен. Дополнительные сведения см. в официальном объявлении. Если вы используете базовый Load Balancer, выполните обновление до Load Balancer (цен. категория до даты прекращения использования. Инструкции см. в статье Обновление Load Balancer.
Создание балансировщика нагрузки
В портал Azure перейдите к группе ресурсов, содержащей виртуальные машины.
Выберите Добавить. Поиск Azure Marketplace подсистемы балансировки нагрузки. Выберите Load Balancer.
Нажмите кнопку создания.
В разделе Создание подсистемы балансировки нагрузки на вкладке Основные сведения настройте подсистему балансировки нагрузки, используя следующие значения:
- Подписка: Вашу подписку Azure.
- Группа ресурсов. Группа ресурсов, которая содержит ваши виртуальные машины.
- Name (Имя). Имя, определяющее подсистему балансировки нагрузки.
- Регион. Расположение Azure, которое содержит ваши виртуальные машины.
- SKU: Стандартный.
- Тип: Public или Internal. Доступ к внутренней подсистеме балансировки нагрузки можно получить из виртуальной сети. Большинство приложений Azure могут использовать внутреннюю подсистему балансировки нагрузки. Если приложению требуется доступ к SQL Server непосредственно через Интернет, используйте открытую подсистему балансировки нагрузки.
- Уровень: региональный.
Выберите Далее: интерфейсная IP-конфигурация.
Выберите Добавить интерфейсную IP-конфигурацию.
Настройте внешний IP-адрес, используя следующие значения:
- Имя: имя, идентифицирующее интерфейсную IP-конфигурацию.
- Виртуальная сеть. Виртуальная сеть, в которой находятся виртуальные машины.
- Подсеть. Подсеть, в которой находятся виртуальные машины.
- Назначение: статическое.
- IP-адрес: IP-адрес, назначенный кластеризованному сетевому ресурсу.
- Зона доступности. Необязательная зона доступности для развертывания IP-адреса.
Выберите Добавить , чтобы создать внешний IP-адрес.
Выберите Просмотр и создание , чтобы создать подсистему балансировки нагрузки.
Настройка серверного пула
Вернитесь в группу ресурсов Azure с виртуальными машинами и найдите новую подсистему балансировки нагрузки. Возможно, потребуется обновить представление в группе ресурсов. Выберите подсистему балансировки нагрузки.
Выберите Серверные пулы, а затем нажмите кнопку +Добавить.
В поле Имя укажите имя серверного пула.
В разделе Конфигурация серверного пула выберите NIC.
Выберите Добавить , чтобы связать серверный пул с группой доступности, содержащей виртуальные машины.
В разделе Виртуальная машина выберите виртуальные машины, которые будут участвовать в качестве узлов кластера. Не забудьте включить все виртуальные машины, на которых будет размещаться группа доступности.
Добавьте только основной IP-адрес каждой виртуальной машины. Не добавляйте дополнительные IP-адреса.
Выберите Добавить , чтобы добавить виртуальные машины во внутренний пул.
Нажмите кнопку Сохранить , чтобы создать внутренний пул.
Настройка пробы работоспособности
На панели подсистемы балансировки нагрузки выберите Пробы работоспособности.
В области Добавление пробы работоспособности задайте следующие параметры:
- Name (Имя). Имя для проверки работоспособности.
- Протокол: TCP.
- Порт. Порт, созданный в брандмауэре для пробы работоспособности. В этой статье в примере используется TCP-порт 59999.
- Интервал: 5 секунд.
Выберите Добавить.
Задание правил балансировки нагрузки
На панели подсистемы балансировки нагрузки выберите Правила балансировки нагрузки.
Выберите Добавить.
Задайте следующие параметры:
- Имя: имя правила балансировки нагрузки.
- Внешний IP-адрес: IP-адрес, заданный при настройке внешнего интерфейса.
- Внутренний пул. Внутренний пул, содержащий виртуальные машины, предназначенные для подсистемы балансировки нагрузки.
- Порты высокой доступности. Включает балансировку нагрузки на всех портах для протоколов TCP и UDP.
- Протокол: TCP.
- Порт. TCP-порт SQL Server. Значение по умолчанию — 1433.
- Серверный порт. Используется тот же порт, что и для значения Порт при включении параметра Плавающий IP-адрес (прямой ответ от сервера) .
- Зонд работоспособности. Проба работоспособности, настроенная ранее.
- Сохраняемость сеанса: нет.
- Время ожидания простоя (в минутах):4.
- Плавающий IP-адрес (прямой ответ от сервера) . Включено.
Щелкните Сохранить.
Настройка пробы кластера
Задайте параметр порта пробы кластера в 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-серверам.
Тестовая отработка отказа
Протестируйте отработку отказа кластеризованного ресурса для проверки функциональности кластера:
- Откройте SQL Server Management Studio и подключитесь к прослушивателю группы доступности.
- В обозреватель объектов разверните узел Always On группа доступности.
- Щелкните правой кнопкой мыши группу доступности и выберите Отработка отказа.
- Следуйте подсказкам мастера, чтобы выполнить отработку отказа группы доступности с помощью вторичной реплики.
Отработка отказа успешно выполняется, когда обе реплики переключают роли и синхронизируются.
Проверка подключения
Чтобы проверить подключение, войдите на другую виртуальную машину в той же виртуальной сети. Откройте SQL Server Management Studio и подключитесь к прослушивателю группы доступности.
Примечание
При необходимости можно скачать SQL Server Management Studio.
Дальнейшие действия
После создания виртуальной сети рассмотрите возможность оптимизации параметров кластера для SQL Server виртуальных машин.
Дополнительные сведения см. на следующих ресурсах: