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.
Esta configuração é mais simples e mais fiável, mas normalmente exige mais hardware extra.
Cluster Activo/Activo
Nesta configuração (por vezes referido como simétrica), cada servidor está configurado para executar uma determinada aplicação ou serviço e fornecer redundância para o seu par. Neste exemplo, cada servidor executa um grupo de serviços de aplicações e a ocorrência de uma falha, o servidor sobrevivente aloja ambos os grupos de aplicativos.
Nestes clusters, cada nó é capaz de assumir a carga de trabalho adicional, os serviços que falharam a partir de outro nó e tráfego destinado ao nó que falhou ou são passados para um nó existente ou sofrem balanceamento de carga entre os restantes nós. Isto normalmente só é possível quando os nós utilizam uma configuração de software homogénea, ou seja, diferentes aplicações podem correr no mesmo servidor sem que interfiram umas com as outras.
Um cluster activo/activo tem uma infra-estrutura de hardware idêntica à de um cluster activo/passivo. No entanto, as instâncias de base de dados são executadas simultaneamente em ambos os servidores e acedem à mesma base de dados que está localizada no armazenamento partilhado. As instâncias devem comunicar umas com as outras para negociar o acesso aos dados partilhados na base de dados. Em caso de uma falha no servidor, o servidor remanescente pode continuar a processar a carga de trabalho e até sessões interrompidas podem ser restabelecidas.
As configurações simétricas aparentam ser mais eficiente em termos de utilização do hardware, mas isso não é forçosamente verdade em todos os cenários. No exemplo assimétrico, o servidor redundante requer apenas tanta potência de processamento quanto o seu par e, em caso de failover, o desempenho permanece o mesmo. Mas há um constante desperdício de um servidor que está sempre parado. No exemplo simétrico, o servidor redundante exige poder de processamento suficiente para executar as aplicações existentes e novas aplicações que assume em caso de falha do outro nó. A vantagem de um cluster activo/activo sobre um cluster activo/passivo é que, durante o processamento normal, a carga de trabalho pode ser partilhada entre ambos os servidores no cluster minimizando o desperdício de poder de processamento.
Cluster N para 1
Esta configuração permite que o nó em espera se torne activo temporariamente, até que o nó original possa ser restaurado e novamente colocado online, altura em que os serviços ou instâncias devem fazer failback de volta a ele a fim de ser restaurada a alta disponibilidade.
Num cluster de vários nós cada servidor em espera ou passivo pode ser alvo de failover para mais que um dos servidores activos. Por exemplo, uma empresa com três aplicações críticas pode executá-las num cluster de quatro nós com três servidores activos (A, B e C), cada um dos quais falha para o mesmo servidor passivo (D). O servidor passivo está normalmente parado, pois só se torna activo quando outro servidor no cluster falhar. N representa o número de servidores activos e 1 representa o nó de espera ou de reserva.
Esta é uma opção atraente porque, no exemplo anterior, com uma arquitectura activo/passivo, seriam necessários seis servidores (três activos, três passivos). Isso significa que três dos seis servidores estão parados o que implica um excesso de hardware de 100%! Com a arquitectura de quatro nós, o excesso é apenas 33%.
Uma configuração de failover N-para-1 reduz o custo de redundância de hardware e ainda fornece um servidor de reserva dedicado. Esta configuração é baseada no conceito de que múltiplas e simultâneas falhas nos servidores são improváveis, portanto, um único servidor redundante pode proteger múltiplos servidores activos.
O problema com esta abordagem é a questão do failback. O servidor de reserva dedicado e passivo tem que voltar ao seu estado original para que ele possa voltar a estar disponível para quaisquer failovers subsequentes de outros servidores. No modelo N-para-1, assim que um servidor falhado volta a estar online, a sua carga de trabalho também deve ser trazida de volta a partir do servidor para o qual foi transferida no failover.
Noutras palavras, a configuração do cluster deve ser restaurada de volta para a forma original, com o servidor especificado como a reserva dedicada voltando a ser o servidor passivo, tal como foi originalmente configurado para ser. Para os administradores, isso é apenas mais tempo de inactividade e mais trabalho e para as aplicações e os seus utilizadores, pode ser outra falha nos serviços para restaurar o cluster com a configuração original.
Cluster N + 1
Esta configuração fornece um único nó extra que é colocado online para assumir o papel do nó que falhou. No caso de configurações de software heterogéneas em cada nó principal, o nó extra deve ser universalmente capaz de assumir qualquer uma das funções sob a responsabilidade dos nós primários. Isso ocorre normalmente em clusters que têm múltiplos serviços a ser executados simultaneamente. Nno caso de se tratar de um único serviço, esta configuração degenera para Activo/Passivo.
Nesta configuração já não necessária a existência de um servidor redundante dedicado. Em configurações N +1 avançadas, um servidor extra no cluster é apenas capacidade de reserva. Quando um servidor falha, as aplicações são reiniciadas no servidor de reserva mas o servidor falhado torna-se ele próprio o de reserva, depois de ter sido reparado. Esta configuração elimina a necessidade de nova paragem das aplicações para regressarem novamente ao sistema principal. Com este arranjo, qualquer servidor no cluster pode actuar como reserva para qualquer outro servidor, e as aplicações não têm que voltar ao servidor de onde vieram.
Isto permite disfrutar de todas as vantagens da configuração assimétrica, com uma reserva totalmente disponível, sem preocupações com o desempenho ou a interoperabilidade, e a economia do N-para-1, sem qualquer das suas limitações. Os clusters N+1 são muito mais rentáveis do ponto de vista do servidor que as configurações activo/passivo ou mesmo activo/activo do passado, e não tem as desvantagens dos clusters N-to-1 descritas acima.
Cluster N + M
Nos casos em que um único cluster está a gerir muitos serviços, ter apenas um nó de failover dedicado não pode oferecer redundância suficiente.
Em tais casos, mais do que um (M) servidores em espera estão incluídos e disponíveis.
O número de servidores em espera é um equilíbrio entre custo e requisitos de fiabilidade.
Cluster N para N
Esta configuração é uma combinação de Activo/Activo e N+M. Os clusters N para N redistribuem os serviços ou instâncias do nó com falha entre os restantes nós activos, eliminando assim (como nos Activo/Activo) a necessidade de um nó de reserva, mas introduzindo a necessidade de capacidade extra em todos os nós activos.
Esta é a mais complexa das configurações de failover, e é normalmente utilizada numa arquitectura altamente disponível que suporta múltiplas aplicações num ambiente de consolidação de servidores. Uma configuração N-para-N refere-se a grupos de múltiplos serviços em execução em vários servidores, com cada grupo de serviços capaz de fazer failover para diferentes servidores no cluster. Por exemplo, imagine um cluster de 4 nós, com cada nó a suportar três instâncias de base de dados críticas. Se algum nó falhar, cada instância é iniciada num nó diferente, garantindo que nenhum único nó fica sobrecarregado.
Esta configuração é uma evolução lógica da N + 1 pois proporciona ao cluster uma capacidade de reserva em vez de apenas um servidor de reserva.