Failover Clustering (IV)

 

Configurações dos Nós do Cluster


O tamanho mais vulgar para um cluster de alta disponibilidade é um cluster de dois nós, já que esse é o mínimo necessário para garantir redundância, mas muitos clusters consistem de muitos mais, às vezes dezenas de nós e essas configurações podem ser categorizados num dos seguintes modelos:

Cluster Activo/Passivo


Numa configuração Activo/Passivo (ou assimétrica), as aplicações são executadas num servidor primário, ou mestre. Um servidor redundante dedicado está presente para o substituir em caso de falha mas, para além disso, não está configurado para desempenhar qualquer outra função. Assim, a qualquer momento, um dos nós é activo e o outro é passivo. Esta configuração fornece uma instância totalmente redundante de cada nó, que só é colocada online quando o seu nó primário associado falhar.

O cluster activo/passivo geralmente contém dois nós idênticos. As instâncias das aplicações de base de dados são instaladas em ambos os nós, mas a base de dados está localizada no armazenamento partilhado. Durante a operação normal, a instância da aplicação de base de dados é executada somente no nó activo. No caso de uma falha do sistema activo principal, o software de clustering vai transferir o controlo do subsistema de disco para o sistema secundário. Como parte do processo de failover, a instância da aplicação de base de dados no nó secundário é iniciada, retomando assim o serviço.
 
Cluster Activo/Passivo
 
Esta configuração é mais simples e mais fiável, mas normalmente exige mais hardware extra.

Failover Clustering (III)

 

Configurações de Quórum do Cluster


Em termos simples, o quórum de um cluster é o número de elementos que devem estar online para que o cluster continue em funcionamento. Os servidores de um cluster necessitam de um recurso de quórum para funcionarem e este, como qualquer outro recurso, é um recurso que só pode ser possuído por um servidor de cada vez e pelo qual os servidores podem negociar a sua posse. Com efeito, cada elemento pode lançar um "voto" para determinar se o cluster continua a funcionar. Os elementos votantes são nós ou, nalguns casos, um disco testemunha ou ficheiro partilhado testemunha. O recurso de quórum é usado para armazenar a cópia definitiva da configuração do cluster de modo que, independentemente de qualquer sequência de falhas, a configuração do cluster será sempre consistente. Cada elemento votante (com excepção do ficheiro partilhado testemunha) contém uma cópia da configuração do cluster e o serviço de cluster trabalha de modo a manter todas as cópias constantemente sincronizadas.

Quando ocorrem problemas de rede, estes podem interferir na comunicação entre os nós do cluster. Um pequeno grupo de nós pode ser capaz de comunicar em conjunto através de uma parte da rede mas não ser capaz de comunicar com outro grupo diferente de nós noutra parte da rede. Isso pode causar problemas sérios. Nesta situação dividida, pelo menos um dos conjuntos de nós deve parar de funcionar como um cluster.A negociação pelo recurso de quórum permite que os servidores do cluster evitem situações de divisão (split-bain) em que os servidores estão activos e julguem que os outros servidores estão em baixo.

Para evitar os problemas que são causados por uma divisão no cluster, o software do cluster exige que qualquer conjunto de nós a funcionar como um cluster tem que usar um algoritmo de votação para determinar se, num dado momento, esse conjunto tem quórum. Como um determinado cluster tem um conjunto específico de nós e uma configuração de quórum específica, o cluster saberá quantos "votos" constitui uma maioria (ou seja, um quórum). Se o número cair abaixo da maioria, o cluster pára de funcionar. Os nós continuarão a ouvir a presença de outros nós, no caso de outro nó aparecer novamente na rede, mas os nós não começarão a funcionar como um cluster até que o quórum exista novamente.

Failover Clustering (II)

O mecanismo de failover


No cluster, os recursos partilhados podem ser vistos por todos os computadores, ou nós. Cada detecta automaticamente se outro nó no cluster falhou e os processos em execução no nó que falhou continuam a ser executados num que fica operacional. Para o utilizador, o failover é normalmente transparente. Retratado na figura seguinte está um cluster de dois nós em que ambos têm discos locais e existem recursos partilhados disponíveis para ambos os computadores. A ligação de heartbeat permite que os dois computadores comuniquem e detecta quando um falha; se o Nó 1 falhar, o software do cluster irá transferir todos os serviços de forma transparente para o Nó 2.
 
O mecanismo de failover
 
O serviço do Windows associado ao serviço de cluster, chamado Cluster Service, tem alguns componentes:
  • Processador de eventos;
  • Gestor de Base de Dados;
  • Gestor de Nó;
  • Actualizador Geral;
  • Gestor de Comunicações;
  • Gestor de Recursos ou de Failover.
O gestor de recursos comunica directamente com um monitor de recursos que utiliza uma DLL específica que torna uma aplicação apropriada para ser utilizada num cluster (cluster-aware). O gestor de comunicações fala directamente com o Winsock do Windows (um componente do nível de rede do Windows).
 
O processo de failover é o seguinte: