IaaS с SQL Server — настройка пороговых значений сети отказоустойчивого кластера

В этой статье представлены решения по настройке порогового значения сетей отказоустойчивого кластера.

Симптом

При запуске узлов отказоустойчивого кластера Windows в IaaS с группой доступности Sql Server AlwaysOn рекомендуется изменить параметр кластера на более расслабленное состояние мониторинга. Параметры кластера из поля ограничены и могут привести к ненужным сбоям. Параметры по умолчанию предназначены для высоко настроенных локальных сетей и не учитывают возможность индуцированной задержки, вызванной мультитенантной средой, такой как Microsoft Azure (IaaS).

Отказоустойчивая кластеризация Windows Server постоянно отслеживает сетевые подключения и работоспособность узлов в кластере Windows. Если узел недоступен по сети, действие восстановления выполняется для восстановления и подключения приложений и служб к сети на другом узле в кластере. Задержка в взаимодействии между узлами кластера может привести к следующей ошибке:

Ошибка 1135 (системный журнал событий)

Узел кластера 1 был удален из активного членства в отказоустойчивом кластере. Возможно, служба кластера на этом узле остановлена. Это также может быть связано с тем, что узел потерял связь с другими активными узлами в отказоустойчивом кластере. Запустите мастер проверки конфигурации, чтобы проверить конфигурацию сети. Если условие сохраняется, проверьте наличие ошибок оборудования или программного обеспечения, связанных с сетевыми адаптерами на этом узле. Кроме того, проверьте наличие сбоев в других сетевых компонентах, к которым подключен узел, например концентраторы, коммутаторы или мосты.

Cluster.log пример:

0000ab34.00004e64::2014/06/10-07:54:34.099 DBG   [NETFTAPI] Signaled NetftRemoteUnreachable event, local address 10.xx.x.xxx:3343 remote address 10.x.xx.xx:3343
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO  [IM] got event: Remote endpoint 10.xx.xx.xxx:~3343~ unreachable from 10.xx.x.xx:~3343~
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO  [IM] Marking Route from 10.xxx.xxx.xxxx:~3343~ to 10.xxx.xx.xxxx:~3343~ as down
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO  [NDP] Checking to see if all routes for route (virtual) local fexx::xxx:5dxx:xxxx:3xxx:~0~ to remote xxx::cxxx:xxxd:xxx:dxxx:~0~ are down
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO  [NDP] All routes for route (virtual) local fxxx::xxxx:5xxx:xxxx:3xxx:~0~ to remote fexx::xxxx:xxxx:xxxx:xxxx:~0~ are down
0000ab34.00007328::2014/06/10-07:54:34.099 INFO  [CORE] Node 8: executing node 12 failed handlers on a dedicated thread
0000ab34.00007328::2014/06/10-07:54:34.099 INFO  [NODE] Node 8: Cleaning up connections for n12.
0000ab34.00007328::2014/06/10-07:54:34.099 INFO  [Nodename] Clearing 0 unsent and 15 unacknowledged messages.
0000ab34.00007328::2014/06/10-07:54:34.099 INFO  [NODE] Node 8: n12 node object is closing its connections
0000ab34.00008b68::2014/06/10-07:54:34.099 INFO  [DCM] HandleNetftRemoteRouteChange
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO  [IM] Route history 1: Old: 05.936, Message: Response, Route sequence: 150415, Received sequence: 150415, Heartbeats counter/threshold: 5/5, Error: Success, NtStatus: 0 Timestamp: 2014/06/10-07:54:28.000, Ticks since last sending: 4
0000ab34.00007328::2014/06/10-07:54:34.099 INFO  [NODE] Node 8: closing n12 node object channels
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO  [IM] Route history 2: Old: 06.434, Message: Request, Route sequence: 150414, Received sequence: 150402, Heartbeats counter/threshold: 5/5, Error: Success, NtStatus: 0 Timestamp: 2014/06/10-07:54:27.665, Ticks since last sending: 36
0000ab34.0000a8ac::2014/06/10-07:54:34.099 INFO  [DCM] HandleRequest: dcm/netftRouteChange
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO  [IM] Route history 3: Old: 06.934, Message: Response, Route sequence: 150414, Received sequence: 150414, Heartbeats counter/threshold: 5/5, Error: Success, NtStatus: 0 Timestamp: 2014/06/10-07:54:27.165, Ticks since last sending: 4
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO  [IM] Route history 4: Old: 07.434, Message: Request, Route sequence: 150413, Received sequence: 150401, Heartbeats counter/threshold: 5/5, Error: Success, NtStatus: 0 Timestamp: 2014/06/10-07:54:26.664, Ticks since last sending: 36
0000ab34.00007328::2014/06/10-07:54:34.100 INFO    <realLocal>10.xxx.xx.xxx:~3343~</realLocal>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO    <realRemote>10.xxx.xx.xxx:~3343~</realRemote>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO    <virtualLocal>fexx::xxxx:xxxx:xxxx:xxxx:~0~</virtualLocal>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO    <virtualRemote>fexx::xxxx:xxxx:xxxx:xxxx:~0~</virtualRemote>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO    <Delay>1000</Delay>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO    <Threshold>5</Threshold>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO    <Priority>140481</Priority>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO    <Attributes>2147483649</Attributes>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO  </struct mscs::FaultTolerantRoute>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO   removed
0000ab34.0000a7c0::2014/06/10-07:54:38.433 ERR   [QUORUM] Node 8: Lost quorum (3 4 5 6 7 8)
0000ab34.0000a7c0::2014/06/10-07:54:38.433 ERR   [QUORUM] Node 8: goingAway: 0, core.IsServiceShutdown: 0
0000ab34.0000a7c0::2014/06/10-07:54:38.433 ERR   lost quorum (status = 5925)

Причина

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

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

Пороговое значение . Это определяет количество пульса, которые отсутствуют до того, как кластер примет действие восстановления. Пороговое значение — это число пульсов. В одном кластере могут быть разные пороговые значения между узлами в одной подсети и между узлами, которые находятся в разных подсетях.

По умолчанию Windows Server устанавливает значение SameSubnetThreshold на 10 и SameSubnetDelay значение 1000 мс. Например, если мониторинг подключения завершается сбоем в течение 10 секунд, порог отработки отказа достигается в результате недоступности удаления узла из членства в кластере. Это приводит к перемещению ресурсов на другой доступный узел в кластере. Будут сообщаться об ошибках кластера, включая ошибку кластера 1135 (выше).

Разрешение

Чтобы устранить эту проблему, расслабьте параметры конфигурации сети кластера. Ознакомьтесь с пульсом и пороговым значением.

Ссылки

Дополнительные сведения о настройке параметров конфигурации сети кластера Windows см. в разделе "Настройка пороговых значений сети отказоустойчивого кластера".

Сведения об использовании cluster.exe для настройки параметров конфигурации сети кластера Windows см. в статье "Настройка кластерных сетей для отказоустойчивого кластера".