У меня есть кластер Windows (2016) с четырьмя узлами (по 3 сетевых адаптера). Когда я пытаюсь перезапустить любой из узловых серверов кластера, весь кластер выходит из строя, а другие узлы случайным образом выходят из строя.
Когда я зарегистрировал случай в Microsoft, они сказали, что это из-за устаревших маршрутов в таблице NETFT, которая не очищается во время перезапуска, и дали мне обходной путь для перезапуска всех узлов для запуска кластера.
Я чувствую, что потребуется много времени, прежде чем я перезапущу свои физические серверы и включу свой кластер. У меня соглашение об уровне обслуживания, которое может нарушиться.
Есть ли какое-нибудь полезное решение?
Из cluster.log
, проблема связана с устаревшими маршрутами на NetFT.sys
.
(Ниже сообщения об ошибках продолжались на всех 4 узлах кластера, на примере одного из этих случаев :)
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'
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'
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'
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, чтобы выгрузить журнал кластера, и увидел точно такие же записи. После перезагрузки снова запустили, и они пропали.