Кластеры SQL Server с несколькими подсетями [SQL Server]

Применимо к:SQL Server

Отказоустойчивый кластер с узлами в нескольких подсетях SQL Server представляет собой конфигурацию, в которой узлы отказоустойчивого кластера подключены к разным подсетям или разным наборам подсетей. Эти подсети могут находиться в одном месте или на географически распределенных сайтах. Кластеры географически распределенных сайтов иногда называют растянутыми. Поскольку не существует общедоступного для всех узлов хранилища, существует необходимость в репликации данных между хранилищами данных, расположенных в разных подсетях. При репликации данных в наличии имеется несколько копий данных. Поэтому, отказоустойчивый кластер с узлами, расположенными в нескольких подсетях, обеспечивает не только высокий уровень доступности, но и является решением для аварийного восстановления данных.

Отказоустойчивый кластер SQL Server с несколькими подсетями (2 узла, 2 подсети)

На следующем рисунке показан экземпляр отказоустойчивого кластера SQL Server, состоящий из двух узлов в двух подсетях.

Архитектура с несколькими подсетями с MultiSubnetFailover

Конфигурации экземпляров отказоустойчивых кластеров с несколькими подсетями

Далее представлено несколько примеров экземпляров отказоустойчивых кластеров SQL Server , узлы которых располагаются в разных подсетях.

  • SQL Server SQLCLUST1 включает в себя Узел1 и Узел2. Узел1 подключен к Подсети1. Узел2 подключен к подсети2. SQL Server Программа установки видит эту конфигурацию как кластер с несколькими подсетями и устанавливает для зависимости ресурса IP-адреса значение OR.

  • SQL Server SQLCLUST1 включает в себя Узел1, Узел2 и Узел3. Узел1 и Узел2 подключены к Подсети1. Узел 3 подключен к подсети 2. SQL Server Программа установки видит эту конфигурацию как кластер с несколькими подсетями и устанавливает для зависимости ресурса IP-адреса значение OR. Поскольку Узел1 и Узел2 расположены в одной подсети, такая конфигурация позволяет обеспечить более высокой уровень доступности локальных ресурсов.

  • SQL Server SQLCLUST1 включает в себя Узел1 и Узел2. Узел1 находится в Подсети1. Узел 2 подключен к подсети 1 и подсети 2. SQL Server Программа установки видит эту конфигурацию как кластер с несколькими подсетями и устанавливает для зависимости ресурса IP-адреса значение OR.

  • SQL Server SQLCLUST1 включает в себя Узел1 и Узел2. Узел1 подключен к Подсети1 и Подсети2. Узел2 также подключен к Подсети1 и Подсети2. Для зависимости ресурса IP-адреса программой установки устанавливается значение AND SQL Server .

    Примечание

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

Вопросы ресурса IP-адреса

В конфигурации отказоустойчивого кластера с узлами в нескольких подсетях, IP-адреса не принадлежат всем узлам отказоустойчивого кластера, в момент запуска SQL Server не все из них могут находиться в сети. Начиная с выпуска SQL Server 2012 (11.x), можно устанавливать для зависимости ресурса IP-адреса значение OR. Это позволяет SQL Server находиться в сети, если имеется хотя бы один действительный IP-адрес, к которому можно выполнить привязку.

Примечание

  • В версиях SQL Server , более ранних, чем SQL Server 2012 (11.x), при создании кластерных конфигураций с использованием нескольких подсетей использовалась технология распределенных виртуальных ЛС, которая позволяла использовать один IP-адрес для отработки отказа на нескольких объектах. Благодаря новым возможностям SQL Server , позволяющим обеспечивать кластеризацию узлов, размещенных в разных подсетях, вы можете настраивать отказоустойчивые кластеры SQL Server на разных сайтах без внедрения технологии распределенных виртуальных ЛС.

Рекомендации по заданию зависимости ресурса IP-адреса со значением OR

Если для зависимости ресурса IP-адреса устанавливается значение OR, рекомендуется задать следующий режим отработки отказа.

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

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

Если экземпляр отказоустойчивого кластера SQL Server установлен параллельно с отдельным экземпляром компонента Компонент SQL Server Database Engine, то необходимо исключить возникновение конфликта номеров портов TCP в IP-адресах. Конфликты обычно возникают в том случае, когда два экземпляра компонента Компонент Database Engine одновременно настроены на использование стандартного порта TCP (1433). Чтобы предотвратить возникновение конфликтов, настройте один экземпляр на использование фиксированного порта, отличного от установленного по умолчанию. Обычно настройку фиксированного порта проще всего выполнить на отдельном экземпляре. Настройка компонента Компонент Database Engine на использование различных портов позволит предотвратить непредвиденные конфликты IP-адресов и TCP, которые блокируют запуск экземпляра в случае ошибки экземпляра отказоустойчивого кластера SQL Server при переходе в режим ожидания.

Задержка восстановления клиента при отработке отказа

Экземпляр отказоустойчивого кластера, содержащий несколько подсетей, по умолчанию включает ресурс кластера RegisterAllProvidersIP в качестве своего сетевого имени. В конфигурации с несколькими подсетями как подключенные, так и отключенные от сети IP-адреса сетевого имени будут зарегистрированы на сервере DNS. Затем клиентское приложение извлечет все зарегистрированные IP-адреса с сервера DNS и попытается подключиться к ним либо по порядку, либо параллельно. Это означает, что время восстановления клиента при отработке отказов в нескольких подсетях больше не зависит от задержек обновления DNS. По умолчанию клиент пытается подключиться к IP-адресам по порядку. Если клиент использует в строке подключения новый дополнительный параметр MultiSubnetFailover=True , вместо этого он попытается подключиться к IP-адресам одновременно и подключится к первому серверу, который ответит. Это поможет свести к минимуму задержку восстановления клиента при отработке отказов. Дополнительные сведения см. в разделах Подключение клиента AlwaysOn (SQL Server) и Создание или настройка прослушивателя группы доступности (SQL Server).

При устаревших клиентских библиотеках или сторонних поставщиках данных использовать параметр MultiSubnetFailover в строке подключения невозможно. Чтобы обеспечить оптимальную работу клиентского приложения с экземпляром отказоустойчивого кластера в SQL Server, содержащим несколько подсетей, попробуйте скорректировать время ожидания соединения в строке подключения клиента на 21 секунду для каждого дополнительного IP-адреса. Это позволит предотвратить окончание времени ожидания при попытке переподключения клиента до того, как будет завершен циклический перебор всех IP-адресов в экземпляре отказоустойчивого кластера, содержащего несколько подсетей.

Период ожидания соединения клиента по умолчанию для среды SQL Server Management Studio и sqlcmd составляет 15 секунд.

Примечание

  • Если вы используете несколько подсетей и статический DNS, вам нужно обновить запись DNS, связанную с прослушивателем, прежде чем выполнять отработку отказа, иначе имя сети не будет предоставляться через Интернет.

См. также

Описание содержимого Раздел
Установка отказоустойчивого кластера SQL Server Создание нового отказоустойчивого кластера SQL Server (программа установки)
Обновление существующего отказоустойчивого кластера SQL Server на месте Обновление экземпляра отказоустойчивого кластера SQL Server (программа установки)
Обслуживание существующего отказоустойчивого кластера SQL Server Добавление или удаление узлов отказоустойчивого кластера SQL Server (программа установки)
Используйте оснастку управления отказоустойчивым кластером для просмотра событий и журналов WSFC Просмотр событий и журналов для отказоустойчивого кластера
Используйте Windows PowerShell для создания файла журнала для всех узлов (или конкретного узла) в отказоустойчивом кластере WSFC Командлет Get-ClusterLog отказоустойчивого кластера