У меня есть кластер Windows (2016) с четырьмя узлами (по 3 NIC в каждом). Когда я пытаюсь перезапустить любой из узловых серверов кластера, весь кластер выходит из строя, а другие узлы случайным образом выходят из строя.
Когда я зарегистрировал случай в 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, чтобы выгрузить журнал кластера, и увидел те же самые записи. После перезагрузки снова запустите его, и они исчезли.