Failover Clustering (I)

 

Fundamentos do Clustering

 
Clustering é a utilização de vários computadores e ligações redundantes para formar o que parece ser um sistema único e altamente disponível. Um cluster fornece protecção contra a inactividade para  aplicações importantes ou serviços que precisam estar sempre disponíveis, distribuindo a carga entre vários computadores para que, no caso de falha num sistema, o serviço esteja disponível noutro.

O conceito básico de um cluster é fácil de entender; um cluster são dois ou mais sistemas trabalhando em conjunto para alcançar um objectivo comum. No Windows existem dois tipos principais de clustering: clusters de expansão/disponibilidade conhecidos como Network Load Balancing clusters (NLB)  e clusters estritamente baseados em disponibilidade conhecidos como Failover Clusters. A Microsoft  tem também uma variante do Windows chamada Windows Compute Cluster Server.

Quando um computador inesperadamente falha ou é deliberadamente desligado, o clustering garante que os processos e serviços a ser executados, mudam para outra máquina, ou seja, fazem "failover" no cluster. Isto acontece sem interrupção nem necessidade de intervenção imediata do administrador fornecendo uma solução de alta disponibilidade, o que significa que os dados críticos estão sempre disponíveis.
 
Failover Cluster
 

Balanceamento de Carga (V)

Balanceamento de Carga por Software


Vamos dar agora uma rápida vista de olhos às soluções de balanceamento de carga executadas sem a necessidade de hardware específico, como os ADCs já discutidos em artigos anteriores. Embora existam várias soluções de software disponíveis para o mundo Unix / Linux, vou-me concentrar principalmente nas tecnologias da Microsoft. No futuro pretendo escrever uma série de tutoriais passo a passo e então eu poderei fazê-lo também para a comunidade Linux.

Balanceamento de Carga por DNS


O balanceamento de carga por DNS é uma abordagem popular e simples para as solicitações de balanceamento de servidores e consiste basicamente na criação de múltiplas entradas DNS no registo do DNS para o domínio, ou seja, o servidor DNS autoritário contém vários registos do tipo "A" para um único host.

Imaginemos que queremos equilibrar a carga em www.meusite.com, e temos três servidores web com endereços IP 64.13.192.120, 64.13.192.121 e 64.13.192.122, respectivamente, cada um deles tem uma cópia completa do site e assim, seja para qual deles for direccionado o pedido, a resposta fornecida será sempre a mesma.

Para implementar isso, basta criar as seguintes entradas no DNS:

www.meusite.com 64.13.192.120
www.meusite.com 64.13.192.121
www.meusite.com 64.13.192.122

Quando chega um pedido de DNS para o servidor DNS resolver o nome de domínio, ele pode dar um dos endereços IP do servidor com base em diferentes critérios, como a simples rotatividade (round-robin) ou localização geográfica redireccionando assim o pedido para um dos servidores de um grupo de servidores. Uma vez que o domínio seja resolvido para um dos servidores especificados, as solicitações subsequentes dos clientes usando o mesmo servidor DNS local serão enviadas ao mesmo servidor mas as provenientes de outros DNSs locais serão encaminhadas para outro servidor. Este processo é conhecido como Round Robin DNS (RRDNS).

Balanceamento de Carga por DNS

Balanceamento de Carga (IV)

Balanceamento de Carga por hardware


 Um dispositivo de hardware para balanceamento de carga, também conhecido como um router de camada de 4-7, é uma appliance que é usada para dividir a carga da rede por vários servidores com base em factores tais como a utilização dos processadores, o número de ligações ou o desempenho geral do servidor.

O uso de uma appliance deste tipo minimiza a probabilidade de qualquer servidor ser sobrecarregado e optimiza a largura de banda disponível para cada computador ou terminal. Além disso, o uso de hardware para balancear a carga  pode minimizar quebras de rede, facilitar a priorização de tráfego, fornecer monitorização de aplicações, fornecer autenticação de utilizadores, e ajudar a proteger contra actividades maliciosas tais como ataques de negação de serviço (DoS).

O princípio básico é que o tráfego de rede é enviado para um endereço IP partilhado, chamado IP virtual (VIP) e este está atribuído ao balanceador de carga. Assim que o balanceador de carga recebe uma solicitação neste VIP terá que tomar uma decisão sobre para onde encaminhá-lo e esta decisão normalmente é controlada por um algoritmo de balanceamento de carga, uma verificação do estado do servidor ou um conjunto de regras.

O pedido é então enviado para o servidor apropriado e este produzirá uma resposta que, dependendo do tipo de balanceador utilizado, será enviada ou para o balanceador de carga, no caso de um dispositivo de Camada 7, ou, mais geralmente com um dispositivo de Camada 4, directamente para o utilizador final (normalmente através de seu default gateway).

No caso de um balanceador de carga por proxy, o pedido do servidor web pode ser retornado para o balanceador de carga e manipulado antes de ser enviado de volta para o utilizador. Esta manipulação pode envolver a substituição de conteúdo ou compressão e alguns dispositivos de topo de gama dispõem de total capacidade de processamento de scripts.


Algoritmos de Balanceamento de Carga


Os balanceadores de carga usam diversos tipos de algoritmos para controlar o tráfego com o objectivo específico de distribuir a carga de forma inteligente e / ou maximizar a utilização de todos os servidores no cluster.


Distribuição Aleatória


Numa distribuição aleatória, o tráfego é atribuído a um servidor escolhido aleatoriamente entre o grupo de servidores de destino. Neste caso, podem ser atribuídas muito mais solicitações a um dos servidores, enquanto os outros servidores estão de parados. No entanto, em média, cada servidor recebe uma quota aproximadamente igual de carga devido à selecção aleatória. Embora simples de implementar, pode levar à sobrecarga de um servidor ou mais e simultaneamente à subutilização dos outros.