A resposta já dada é de fato um método de "manualmente" mover grupos em seu cluster.
No entanto, para responder à pergunta:
Is it possible to achieve failover in case of network failure?
Sim, isso é possível, mas deixe-me explicar um aspecto do Cluster de Failover.
O Failover Cluster tem muitos "métodos de detecção de falhas" e um deles é implementado pelo chamado método IsAlive / LooksAlive executado pelo RHS.exe (Subsistema do Host de Recursos) do cluster.
Basicamente (a menos que os padrões tenham sido alterados), o RHS está chamando um "LooksAlive" em todos os recursos a cada 5 segundos. Este é um teste "pequeno" para determinar que o recurso "parece que ainda está vivo".
Se este teste "LooksAlive" estiver falhando: ele [RHS] executará um teste "IsAlive" no recurso. Este seria um teste mais "completo", que determina se o recurso está funcionando.
Ele [o RHS] também está executando "IsAlive" a cada 30 segundos, independentemente do "LooksAlive" ter êxito ou não.
Se um "IsAlive" estiver falhando, ele [cluster] publicará um "Evento 1069" no log de eventos do sistema, indicando que o recurso falhou.
Depois de falhar, o Cluster de Failover tomará uma decisão sobre o que fazer com o recurso com falha. E isso se baseará em alguns fatores:
- Qual é o limite de reinicialização do recurso: ele pode ou não tentar reiniciar o recurso para ver se ele fica on-line (sem falha)
- Se esgotou o limite de reinicialização: ele determinará se a falha do recurso deve afetar o "grupo" (por padrão, isso ocorre)
- Se, de fato, o limite estiver esgotado e o recurso afetar o grupo, ele [cluster] fará uma decisão de failover (mova o grupo para outro nó, se disponível)
Eu vou deixar lá, há muitas outras áreas funcionais que devemos discutir para entender completamente as decisões dos clusters
Então, para "testar" um "failover automático", precisamos entender o que esse teste "IsAlive / LooksAlive" está realmente fazendo.
Precisamos ter certeza de que temos pelo menos um recurso de "endereço IP" no grupo de aplicativos do cluster, para garantir que o cluster esteja verificando isso, para capturar a falha da rede.
Se você estiver executando "Serviços genéricos", seu grupo deverá ficar assim:
Application-Group
- Generic Service
|- Physical disk (only if your app needs it)
|- Network Name
|- IP address
O "IsAlive / LooksAlive", que "pega" uma falha de rede, está no "endereço IP", a definição pode ser vista aqui - > Este artigo foi escrito para o Windows 2003, mas ainda é verdadeiro em relação ao seu conteúdo, e até mesmo citado em uma excelente artigo sobre o Cluster de Failover escrito por um membro da equipe da equipe de Cluster de Failover da Microsoft.
A partir disso, sabemos que o "IsAlive" é implementado da mesma forma que "LooksAlive" em relação a um recurso de "endereço IP". Basicamente, verifica se o endereço IP está vinculado à NIC apropriada na pilha TCP / IP do sistema operacional. (que você pode ver se você executa ipconfig
)
Para testar esse failover, você tem algumas opções:
- No Gerenciador de Cluster de Failover, clique com o botão direito do mouse no recurso de endereço IP em seu Grupo de Aplicativos e escolha "Simular falha". Talvez seja necessário fazer isso duas vezes, pois o cluster tentará reiniciar o recurso antes de tomar decisões de failover (conforme explicado acima).
- (como você fez) desative a NIC no sistema operacional. Apenas certifique-se de que é realmente a NIC que o endereço IP (do "recurso de endereço IP" do grupo real que contém seu Serviço Genérico) está realmente vinculado antes de desabilitar. Você pode verificar isso executando
ipconfig
na linha de comando. (o cluster tentará reiniciar, mas a reinicialização falhará, pois a NIC está desativada)
- puxe o cabo da NIC física. Apenas certifique-se de que é realmente a NIC que o endereço IP (do "recurso de endereço IP" do grupo real que contém seu Serviço Genérico) está vinculado antes de puxar o cabo. Você pode verificar isso executando
ipconfig
na linha de comando. (o cluster tentará reiniciar, mas a reinicialização falhará, quando o cabo NIC for puxado)
Quando você tem um grupo de aplicativos adequado, com dependências adequadas, com um endereço IP, você testará com êxito o failover.
Espero que isso explique sua situação.