Desmistificando o Cluster (Parte I)

4408818910_6cf1c93e7c_o[1]

https://www.flickr.com/photos/fenchurch/ / CC BY-NC-ND 2.0

Quem nunca sentiu um frio na barriga em instalar um cluster pela primeira vez que atire a primeira pedra. A tecnologia de cluster mudou bastante desde o primeiro cluster server da Microsoft, que tinha o codenome de "Wolfpack" é era parte do Windows NT 4.0 Server Enterprise Edition.

Curiosamente, ainda existem vários mitos, conceitos defasados ou até mesmo errados em relação a implemetação de cluster nos dia de hoje. Por esse motivo, decidimos criar uma série de posts sobre o assunto. Cada post vai ser escrito por um especialista e vai trazer conceitos, melhores práticas, ferramentas e links com maiores informações sobre o assunto.

Mas o que é um cluster do ponto de vista tecnológico? De acordo com o mercado, cluster é um grupo de computadores e de dispositivos de armazenamento que trabalham em conjunto e são acessados como um único sistema. O cluster pode prover:

  • distribuição da carga de processamento
  • recuperação automática de falha de um ou mais componentes do cluster

As arquiteturas de cluster mais comuns na indústria podem ser categorizadas em quatro tecnologias.

  • Clusters de alta disponibilidade (HA) – são projetados para fornecer maior tempo de disponibilidade para um ou mais serviços.
  • Clusters de balanceamento de carga – Os recursos entre os servidores normalmente não são compartilhados entre eles. Esse tipo de cluster é usado para balancear a carga e também são conhecidos como servers farms.
  • Cluster de Alto desempenho (HPC) – Conhecidos também como clusters Beowulf.  Os High Performance Cluster são projetados dividir o processamento entre os servidores do cluster. Nesse tipo de cluster é utilizado o conceito de computação paralela entre vários servidores, entretanto, o cluster atua como uma única entidade computacional. Os HPC são usados principalmente nas comunidades científicas, médicas e acadêmicas.
  • Clusters de computação de grade (Grid) – Os Grid são semelhantes aos HPC, no entanto, os servidores não estão tão diretamente ligados e não funcionam como uma única entidade computacional. Cada servidor participante do Grid executam o trabalho independente para o resto do cluster.

Os principais benefícios em utilizar a tecnologia de cluster estão diretamente ligadas a disponibilidade e  escalabilidade.

  • Disponibilidade: é a quantidade de tempo que um componente ou sistema realiza sua função especificada. Mede a porcentagem de tempo que o sistema está em seu estado operacional.
  • Escalabilidade: Quando a carga global excede as capacidades dos sistemas, recursos adicionais podem ser adicionados sem a necessidade de alterar a arquitetura inicial planejada.

Um ponto importante é que o preço da alta disponibilidade nem sempre é visivel para o cliente, pois um cluster de alta disponibilidade ou de balanceamento de carga permite que sistemas continuem a operar adequadamente mesmo após falhas em alguns de seus componentes. Entretanto, deve ser observado também a redundância de hardware e componentes de rede, mecanismos de prevenção/controle de queda de energia elétrica, instalação rotineira de atualizações de segurança e antivírus, monitoramento e ambiente físico adequado para as os equipamentos servidores.

Um ambiente com alta-disponibilidade requer uma maturidade operacional da organização com documentos de SLA/OLA dos serviços, para que o nível adequado de alta disponibilidade possa ser adotado.

Em resumo, a tecnologia de cluster por sí só não garante a alta disponibilidade de um serviço, mas é parte integrante para alcança-la.

No próximo post mais detalhes sobre o MSCS – Microsoft Cluster Services

por Artur Rodrigues