Назад | Перейти на главную страницу

Как удалить устаревшие маршруты во время перезагрузки кластера Windows?

ЗАДНИЙ ПЛАН

У меня есть кластер Windows (2016) с четырьмя узлами (по 3 сетевых адаптера). Когда я пытаюсь перезапустить любой из узловых серверов кластера, весь кластер выходит из строя, а другие узлы случайным образом выходят из строя.

Когда я зарегистрировал случай в Microsoft, они сказали, что это из-за устаревших маршрутов в таблице NETFT, которая не очищается во время перезапуска, и дали мне обходной путь для перезапуска всех узлов для запуска кластера.

Я чувствую, что потребуется много времени, прежде чем я перезапущу свои физические серверы и включу свой кластер. У меня соглашение об уровне обслуживания, которое может нарушиться.

Есть ли какое-нибудь полезное решение?

ОТВЕТ MICROSOFT

Из cluster.log, проблема связана с устаревшими маршрутами на NetFT.sys.

Анализ журнала

(Ниже сообщения об ошибках продолжались на всех 4 узлах кластера, на примере одного из этих случаев :)

HOST1

2018/09/24-18:25:01.067 INFO  [FTI][Initiator] This node (1) is initiator
2018/09/24-18:25:01.067 WARN  [FTI][Initiator] `Ignoring duplicate connection: usable route already exists`
2018/09/24-18:25:01.067 INFO  [CHANNEL 192.1.0.172:~3343~] graceful close, status (of previous failure, may not indicate problem) (0)
2018/09/24-18:25:01.068 WARN  cxl::ConnectWorker::operator (): GracefulClose(1226)' because of 'channel to remote endpoint 192.1.0.172:~3343~ is closed'

HOST2

2018/09/24-18:25:01.095 INFO  [FTI][Initiator] This node (2) is initiator
2018/09/24-18:25:01.095 WARN  [FTI][Initiator] `Ignoring duplicate connection: usable route already exists`
2018/09/24-18:25:01.095 INFO  [CHANNEL 192.1.0.172:~3343~] graceful close, status (of previous failure, may not indicate problem) (0)
2018/09/24-18:25:01.096 WARN  cxl::ConnectWorker::operator (): GracefulClose(1226)' because of 'channel to remote endpoint 192.1.0.172:~3343~ is closed'

HOST3

2018/09/24-18:25:01.057 INFO  [FTI][Follower] This node (4) is not the initiator
2018/09/24-18:25:01.057 DBG   [FTI] Stream already exists to node 1: false
2018/09/24-18:25:01.057 DBG   [CHANNEL 192.1.0.170:~62824~] Close().
2018/09/24-18:25:01.057 INFO  [CHANNEL 192.1.0.170:~62824~] graceful close, status (of previous failure, may not indicate problem) (0)
2018/09/24-18:25:01.057 INFO  [CORE] Node 4: Clearing cookie [GUID]
2018/09/24-18:25:01.057 DBG   [CHANNEL 192.1.0.170:~62824~] Not closing handle because it is invalid.
2018/09/24-18:25:01.058 WARN  mscs::ListenerWorker::operator (): GracefulClose(1226)' because of 'channel to remote endpoint 192.1.0.170:~62824~ is closed'

HOST4

2018/09/24-18:25:01.087 INFO  [FTI][Initiator] This node (3) is initiator
2018/09/24-18:25:01.087 WARN  [FTI][Initiator] `Ignoring duplicate connection: usable route already exists`
2018/09/24-18:25:01.087 INFO  [CHANNEL 192.1.0.172:~3343~] graceful close, status (of previous failure, may not indicate problem) (0)
2018/09/24-18:25:01.088 WARN  cxl::ConnectWorker::operator (): GracefulClose(1226)' because of 'channel to remote endpoint 192.1.0.172:~3343~ is closed'

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

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

Когда узел-инициатор попытался создать новое соединение, поскольку таблица маршрутизации все еще содержала старую, узлы, наконец, не смогли снова присоединиться к кластеру. NETFT - это драйвер уровня ядра, поэтому нам нужно перезагрузить узлы, чтобы обновить таблицу NETFT.

План Действий

Пожалуйста, попробуйте перезагрузить все узлы кластера одновременно, чтобы удалить устаревшие маршруты.

Я только что испытал это на выходных на двухузловом SQL AlwaysOn Cluster. Мне пришлось перезагрузить основной узел, чтобы вернуть его. Это произошло после некоторых сетевых изменений в сети вместе с обновлением Windows Update в тот же день.

Я запустил pssdiag, чтобы выгрузить журнал кластера, и увидел точно такие же записи. После перезагрузки снова запустили, и они пропали.