Tipos de Clusters Prof. Msc. André Luiz Nasserala Pires nassserala@gmail.com! Cluster pode ser definido como um sistema onde dois ou mais computadores trabalham de maneira conjunta para realizar processamento pesado.! Segundo Tanembaun:! Clusters: Homogêneo;! Grid: Heterogêneo;! Midleware: Camada de software cujo objetivo é mascarar a heterogeneidade e fornecer um modelo de programação conveniente para os programadores de aplicativos.! Seguindo esse raciocínio sobre midleware, podemos dizer que cluster e grids, dependendo do contexto, podem representar arquiteturas heterogenias de hardware e software, assim a homogeneidade fica representada pela camada do midleware.! Isso quer dizer que clusters e grids são a mesma coisa então?! R: Não!!!! A homogeneidade de midleware é que vai ditar isso. 1
! Ex1:! Sistema de correio eletrônico( Cluster ou Grid)?! R: Grid. Pois a implementação dos protocolos POP3 e SMTP é diferente em cada servidor que compõe o SD:! Microsoft Exchange(Windows Server);! Postfix(Linux);! Sendmail(Linux);! O midleware nesse caso é heterogêneo, apesar de garantir como aspecto a transparência.! Ex2:! A rede WWW(WEB)?! R: Grid, pelo mesmo motivo anterior, ou seja, o midleware não é homogenio.! Apache(Windows e Linux);! IIS(Windows);! IBM HTTP Server(Unix).! Ex3:! A rede MSN?! R: Cluster, sendo esse protocolo proprietário da familia windows, teremos sempre seus servidores com mesmo software gerencial e assim teremos homogeniedade no midleware.! Obs: Não confunda a versão do software cliente MSN Messenger com midleware, como o próprio nome diz esses são clientes que usam o midleware para entrar na rede. 2
! Finalizando: Tipos de Clusters! Na sua forma mais básica um cluster é um sistema que compreende dois ou mais computadores ou sistemas (denominados nodos) na qual trabalham em conjunto para executar aplicações ou realizar outras tarefas, de tal forma para que os usuários que os utilizam tenham a impressão que somente um único sistema responde para eles, criando assim uma ilusão de um recurso único (computador virtual).! Este conceito é denominado transparência do sistema. Como características fundamentais para a construção destas plataformas inclui- se elevação da: confiança, distribuição de carga e performance. Alta Disponibilidade (HA)! Esses modelos de clusters são construídos para prover uma disponibilidade de serviços e recursos de forma ininterruptas através do uso da redundância implícitas ao sistema.! A idéia geral é que se um nó do cluster vier a falhar (failover), aplicações ou serviços possam estar disponíveis em outro nó.! Estes tipos de cluster são utilizados para base de dados de missões críticas, correio, servidores de arquivos e aplicações. 3
Alta Disponibilidade (HA) Balanceamento de carga (LB)! Este modelo distribui o tráfego entrante ou requisições de recursos provenientes dos nodos que executam os mesmos programas entre as máquinas que compõem o cluster.! Todos os nodos estão responsáveis em controlar os pedidos.! Se um nó falhar, as requisições são redistribuídas entre os nós disponíveis no momento.! Este tipo de solução é normalmente utilizado em fazendas de servidores de web (web farms). Balanceamento de carga (LB) 4
Clusters HA & Load Balancing! Como o próprio nome diz combina as características dos d o i s t i p o s d e c l u s t e r, aumentando assim a disponibilidade e escalabilidade de serviços e recursos.! Este tipo de configuração de cluster é bastante utilizado em servidores de web, mail, news ou ftp. Processamento Distribuído! Este modelo de cluster aumenta a disponibilidade e performance para as aplicações, particularmente as grandes tarefas computacionais.! Uma grande tarefa computacional pode ser dividida em pequenas tarefas que são distribuídas ao redor das estações (nodos), como se fosse um supercomputador massivamente paralelo.! É comum associar este tipo de cluster ao projeto Beowulf da NASA. Estes clusters são usados para computação cientifica ou análises financeiras, tarefas típicas para exigência de alto poder de processamento. Processamento Distribuído 5
Razões para uso de Clusters! Clusters ou combinações de clusters são usados quando os conteúdos são críticos ou quando os serviços têm que estar disponíveis e/ou processados o quanto mais rápido possível.! Internet Service Providers (provedores de Internet) ou sites de comércio eletrônico freqüentemente requerem alta disponibilidade e balanceamento de carga de forma escalável.! Os clusters paralelos têm uma importante participação na indústria cinematográfica para renderização de gráficos de altíssima qualidade e animações, relembrando que o Titanic foi renderizado dentro desta plataforma nos laboratórios da Digital Domain. Razões para uso de Clusters! Os clusters Beowulf são usados na ciência, engenharia e finanças para atuarem em projetos de desdobramento de proteínas, dinâmica de fluídos, redes neurais, analise genética, estatística, economia, astrofísica dentre outras.! Pesquisadores, organizações e empresas estão utilizando os clusters porque necessitam de incrementar sua escalabilidade, gerenciamento de recursos, disponibilidade ou processamento a nível supercomputacional a um preço disponível. Mercado: Clusters HA?! Os computadores possuem uma forte tendência a parar quando menos você espera, principalmente num momento em que você mais necessita dele.! É raro não encontrar um administrador que nunca recebeu um telefonema no meio da madrugada com a triste notícia que o sistema de missão critica ficou fora ar, ou seja, não tem jeito você tem que ir e resolver o problema.! A Alta Disponibilidade está ligada diretamente a nossa crescente dependência aos computadores, pois agora eles possuem um papel crítico principalmente em empresas cuja maior funcionalidade é exatamente a oferta de algum serviço computacional, como e- business, notícias, sites web, banco de dados, dentre outros. 6
Mercado: Clusters HA?! Um cluster de Alta Disponibilidade visa manter a disponibilidade dos serviços prestados por um sistema computacional replicando serviços e servidores, através da redundância de hardware e reconfiguração de software.! Vários computadores juntos agindo como um só, cada um monitorando os outros e assumindo seus serviços caso algum deles venham a falhar.! A complexidade do sistema deve estar no software que deve se preocupar em monitorar outras máquinas de uma rede, saber que serviços estão sendo executados, quem os está executando, e o que como proceder em caso de uma falha. Mercado: Clusters HA?! Perdas na performance ou na capacidade de processamento são normalmente aceitáveis; o objetivo principal é não parar.! Existem algumas exceções, como sistemas de tempo real e de missão crítica.! A tolerância a falhas é conseguida através de hardware, como sistemas raid, fontes e placas redundantes, sistemas rede totalmente ligados para prover caminhos alternativos na quebra de um link. Referências:! TANENBAUM, Andrew S. Sistemas Distribuídos: princípios e prática. 2. ed. São Paulo: Bookman, 2007.! http://www.clubedohardware.com.br/artigos/153, pesquisado em 01 de março de 2011.! http://www.infowester.com/cluster.php, pesquisado em 01 de março de 2011. 7