Di seguito vediamo un caso molto particolare di evict automatico di un nodo da un cluster senza apparentemente alcuna spiegazione.

Lo scenario è formato da 2 nodi collegati tra di loro ad un rete di heartbeat condivisa tra più cluster.

Se gli indirizzi IP delle schede di rete non sono configurate correttamente oppure esiste un altro cluster con lo stesso nome collegato sulla rete, c’è il rischio di incorrere nell’evict automatico del nodo!

Se analizziamo il cluster log di un nodo che ha avuto questo problema, troveremo:

Date-Time WARN [JOIN] Attempting join with sponsor 192.168.222.23.
Date-Time INFO [NMJOIN] Beginning cluster join process.
Date-Time ERR [NMJOIN] Unable to begin join, status 5893.
Date-Time WARN [JOIN] NmJoinCluster failed, status 5893.

L’errore 5893 corrisponde a “ERROR_CLUSTER_INSTANCE_ID_MISMATCH” in cui appunto si fa riferimento al fatto che il nodo che ha provato a fare il join al cluster già esistente aveva un ID diverso e che non corrispondeva a quello condiviso nel quorum.

Gli eventi successivi indicano l’avvio della rimozione completa del nodo:

Date-Time INFO [INIT] Cleaning up failed join attempt.
Date-Time INFO [INIT]
Leaving cluster
Date-Time INFO [NM] Interface cleanup starting...
Date-Time INFO [NM] Network interface cleanup complete
Date-Time INFO [NM] Network cleanup starting...
Date-Time INFO [NM] Network cleanup complete
Date-Time INFO [NM] Node cleanup starting...
Date-Time INFO [NM] Node cleanup complete
Date-Time WARN [NM] Shutdown of the Cluster Network driver failed, status 21
Date-Time INFO [INIT] Deregistering RPC endpoints & interfaces.
Date-Time WARN [INIT]
This node has been evicted from the cluster when it was unavailable. Initiating cleanup.

Dopo questo evento il servizio cluster è completamente disinstallato dal server e non è più presente nell’elenco dei servizi attivi. La sequenza si conclude con questi eventi:

Date-Time ERR [CS] ClusterInitialize failed 5893
Date-Time WARN [INIT] The cluster service is shutting down.
Date-Time INFO [EVT] EvShutdown
Date-Time WARN [FM] Shutdown: Failover Manager requested to shutdown groups.
Date-Time INFO [FM] FmpCleanupGroups: Entry
Date-Time INFO [FM] FmpCleanupGroups: Exit
Date-Time INFO [Dm] DmShutdown
Date-Time INFO [DM] DmpShutdownFlusher: Entry
Date-Time INFO [DM] DmpShutdownFlusher: Setting event
Date-Time INFO [DM] DmpRegistryFlusher: got 0
Date-Time INFO [DM] DmpRegistryFlusher: exiting
Date-Time WARN [MM] MMLeave is called when rgp=NULL.
Date-Time ERR [CS] Service Stopped. exit code = 5893

Da questo momento in avanti, il nodo è tornato a far parte dei member server e non appartiene più al cluster.

Per poter risolvere il problema è necessario innanzitutto capire la causa del problema e risolverla quanto prima perché questo può causare altri “clean up” dei nodi involontari e ovviamente la perdita di ridondanza dei servizi clusterizzati.

Una volta risolto il problema, si può procedere con il join del nodo al cluster esistente in modo da poter ripristinare la situazione originale.

Maggiori informazioni e approfondimenti:

Daniele Maso
Senior Support Engineer
Microsoft Enterprise Platforms Support