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