Desmistificando o Cluster (Parte I)
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
Comments
Anonymous
January 01, 2003
Muito bom o post Artur, esclareceu muito as minhas dúvidas sobre Cluster, estou com as idéias esclarecidas agora. Abraços.Anonymous
March 09, 2010
Post muito bom Arthur! Conteúdo interessante e de fácil entendimento. Grandes abraços!Anonymous
March 09, 2010
Muito bom o post, estava com algumas dúvidas em relação a cluster NLB e HPC, este post me ajudou muito, mostra uma visão geral por onde começar a desenvolver uma solução. Abraços.