Кластеризация нескольких подсетей SQL Server

Область применения:SQL Server

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

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

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

Схема, показывающая архитектуру с несколькими подсетями с MultiSubnetFailover.

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

Ниже приведены некоторые примеры sql Server FCIs, которые используют несколько подсетей:

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

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

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

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

    Примечание.

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

Соображения, касающиеся ресурсов IP-адресов

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

Примечание.

В версиях SQL Server, предшествующих SQL Server 2012 (11.x), в многосайтовых кластерных конфигурациях использовалась технология stretch VLAN для предоставления единого IP-адреса для аварийного переключения между площадками. Теперь, когда SQL Server может кластеризовывать узлы в разных подсетях, можно настроить отказоустойчивые кластеры SQL Server на нескольких сайтах без реализации технологии stretch V-LAN.

Аспекты ресурса IP-адресов или зависимости от него

Возможно, вам потребуется рассмотреть следующее поведение отработки отказа, если задать зависимость ORресурса IP-адреса следующим образом:

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

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

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

Задержка восстановления клиента при аварийном переключении

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

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

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

Примечание.

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