Você está na página 1de 7

O que um Cluster?

? Na sua forma mais bsica um cluster um sistema que compreende dois ou mais computadores ou sistemas (denominados nodos) na qual trabalham em conjunto para executar aplicaes ou realizar outras tarefas, de tal forma para que os usurios que os utilizam tenham a impresso que somente um nico sistema responde para eles, criando assim uma iluso de um recurso nico (computador virtual). Este conceito denominado transparncia do sistema. Como caractersticas fundamentais para a construo destas plataformas inclui-se elevao da: confiana, distribuio de carga e performance. Os clusters de servidor podem ser definidos de acordo com um dos trs diferentes tipos de configurao de modelo de cluster:

Clusters de servidor de n nico podem ser configurados com ou sem dispositivos externos de armazenamento de cluster. Em clusters de n nico sem dispositivo externo de armazenamento de cluster, o disco local configurado como um dispositivo de armazenamento de cluster.

Clusters de servidor de dispositivo de quorum nico possuem dois ou mais ns e so configurados de forma que cada n conectado a um ou mais dispositivos de armazenamento de cluster. Os dados de configurao do cluster so armazenados em um dispositivo de armazenamento de n nico.

Clusters de servidor de conjunto de ns principais possuem dois ou mais ns que podem ou no estar conectados a um ou mais dispositivos de armazenamento de cluster. Os dados de configurao do cluster so armazenados em vrios discos em todo o cluster e o servio Cluster assegura que a coerncia desses dados seja mantida nos diversos discos.

recomendvel compreender as vantagens e as limitaes dos diferentes modelos de cluster antes de configurar o cluster de servidor. Por exemplo, um cluster de conjunto de ns principais pode suportar menos falhas de n simultneas do que um cluster de dispositivo de quorum nico equivalente. Tipos de Clusters Alta Disponibilidade (High Availability (HA) and Failover), estes modelos de clusters so construdos para prover uma disponibilidade de servios e recursos de forma ininterruptas atravs do uso da redundncia implcitas ao sistema. A idia geral que se um n do cluster vier a falhar (failover), aplicaes ou servios possam estar disponveis em outro n. Estes tipos de cluster so utilizados para base de dados de misses crticas, correio, servidores de arquivos e aplicaes. Balanceamento de carga (Load Balancing), este modelo distribui o trfego entrante ou requisies de recursos provenientes dos nodos que executam os mesmos programas

entre as mquinas que compem o cluster. Todos os nodos esto responsveis em controlar os pedidos. Se um n falhar, as requisies so redistribudas entre os ns disponveis no momento. Este tipo de soluo normalmente utilizado em fazendas de servidores de web (web farms). Combinao HA & Load Balancing, como o prprio nome diz combina as caractersticas dos dois tipos de cluster, aumentando assim a disponibilidade e escalabilidade de servios e recursos. Este tipo de configurao de cluster bastante utilizado em servidores de web, mail, news ou ftp. Processamento Distribudo ou Processamento Paralelo, este modelo de cluster aumenta a disponibilidade e performance para as aplicaes, particularmente as grandes tarefas computacionais. Uma grande tarefa computacional pode ser dividida em pequenas tarefas que so distribudas ao redor das estaes (nodos), como se fosse um supercomputador massivamente paralelo. comum associar este tipo de cluster ao projeto Beowulf da NASA. Estes clusters so usados para computao cientifica ou anlises financeiras, tarefas tpicas para exigncia de alto poder de processamento.
Razes para utilizao de um Cluster Clusters ou combinaes de clusters so usados quando os contedos so crticos ou quando os servios tm que estar disponveis e/ou processados o quanto mais rpido possvel. Internet Service Providers (provedores de Internet) ou sites de comrcio eletrnico freqentemente requerem alta disponibilidade e balanceamento de carga de forma escalvel. Os clusters paralelos tm uma importante participao na indstria cinematogrfica para renderizao de grficos de altssima qualidade e animaes, relembrando que o Titanic foi renderizado dentro desta plataforma nos laboratrios da Digital Domain. Os clusters Beowulf so usados na cincia, engenharia e finanas para atuarem em projetos de desdobramento de protenas, dinmica de fludos, redes neurais, analise gentica, estatstica, economia, astrofsica dentre outras. Pesquisadores, organizaes e empresas esto utilizando os clusters porque necessitam de incrementar sua escalabilidade, gerenciamento de recursos, disponibilidade ou processamento a nvel supercomputacional a um preo disponvel. Os computadores possuem uma forte tendncia a parar quando menos voc espera, principalmente num momento em que voc mais necessita dele. raro no encontrar um administrador que nunca recebeu um telefonema no meio da madrugada com a triste notcia que o sistema de misso critica ficou fora ar, ou seja, no tem jeito voc tem que ir e resolver o problema. A Alta Disponibilidade est ligada diretamente a nossa crescente dependncia aos computadores, pois agora eles possuem um papel crtico principalmente em empresas cuja maior funcionalidade exatamente a oferta de algum servio computacional, como e-business, notcias, sites web, banco de dados, dentre outros.

Um cluster de Alta Disponibilidade visa manter a disponibilidade dos servios prestados por um sistema computacional replicando servios e servidores, atravs da redundncia de hardware e reconfigurao de software. Vrios computadores juntos agindo como um s, cada um monitorando os outros e assumindo seus servios caso algum deles venham a falhar. A complexidade do sistema deve estar no software que deve se preocupar em monitorar outras mquinas de uma rede, saber que servios esto sendo executados, quem os est executando, e o que como proceder em caso de uma falha. Perdas na performance ou na capacidade de processamento so normalmente aceitveis; o objetivo principal no parar. Existem algumas excees, como sistemas de tempo real e de misso crtica. A tolerncia a falhas conseguida atravs de hardware, como sistemas raid, fontes e placas redundantes, sistemas rede totalmente ligados para prover caminhos alternativos na quebra de um link. Cluster de Balanceamento de Carga O balanceamento de carga entre servidores faz parte de uma soluo abrangente em uma explosiva e crescente utilizao da rede e da Internet. Provendo um aumento na capacidade da rede, melhorando a performance. Um consistente balanceamento de carga mostra-se hoje, como parte integrante de todo o projeto de Web Hosting e comrcio eletrnico. Mas no se pode ficar com as idias presas de que isso s para provedores, devemos aproveitar as suas caractersticas e trazermos para dentro das empresas esse modo de usar a tecnologia para atendermos os clientes internos das empresas. Os sistemas de cluster baseado em balanceamento de carga integram seus nodos para que todas as requisies provenientes dos clientes sejam distribudas de maneira equilibrada entre os nodos. Os sistemas no trabalham junto em um nico processo, mas redirecionando as requisies de forma independente assim que chegam baseados em um escalonador e um algoritmo prprio. Este tipo de cluster especialmente utilizado em servios de comrcio eletrnico e provedores de internet que necessitam de resolver diferenas de carga provenientes de mltiplas requisies de entrada em tempo real. Adicionalmente, para que um cluster seja escalvel, tem que assegurar que cada servidor seja utilizado completamente.

Quando no fazemos o balanceamento de carga entre servidores que possuem a mesma capacidade de resposta a um cliente, comeamos a ter problemas, pois um ou mais servidores podem responder a requisio feita e a comunicao fica prejudicada. Por isso devemos colocar o elemento que far o balanceamento entre os servidores e os usurios e configur-lo para isso, entretanto podemos colocar mltiplos servidores de um lado que, para os clientes, eles parecero ser somente um endereo. Um exemplo clssico seria o Linux Virtual Server, ou simplesmente preparar um load balancer de DNS. O elemento de balanceamento ter um endereo, por onde os clientes tentaro fazer contato, chamado de Virtual Server (VS), que redirecionar o trfego para um servidor do pool de servidores. Esse elemento dever ser um software dedicado a fazer todo esse gerenciamento, ou poder ser um equipamento de rede que combine performance do hardware e software para fazer a passagem dos pacotes e o balanceamento de carga em um s equipamento. Devemos salientar alguns pontos principais para que uma implementao em um ambiente de sucesso com balanceamento de carga nos servidores:

O algoritmo usado para o balanceamento de carga, levando-se em considerao como feito o balanceamento entre os servidores e quando um cliente fizer uma requisio para o endereo virtual (VS), todo o processo de escolha do servidor e resposta do servidor deve ocorrer de modo transparente e imperceptvel para o usurio como se no existisse o balanceamento. Criar um mtodo usado para checar se os servidores esto vivos e funcionando, vital para que a comunicao no seja redirecionada para um servidor que acabou de ter uma falha (keepalive). Um mtodo usado para se ter certeza que um cliente acessar o mesmo servidor quando quiser.
Balanceamento de carga mais que um simples redirecionamento do trfego dos clientes para outros servidores. Para implementao correta, o equipamento que far o balanceamento precisa ter caractersticas como verificao permanente da comunicao, checagem dos servidores e redundncia. Todos esses itens so necessrios para que suporte a escalabilidade do volume de trfego das redes sem vir a se tornar um gargalo ou um ponto nico de falha. Os algoritmos para balanceamento so um dos fatores de maior importncia neste contexto, vamos ento explanar trs mtodos bsicos:

Least Connections Esta tcnica redireciona as requisies para o servidor baseado no menor nmero de requisies/conexes. Por exemplo, se o servidor 1 est controlando atualmente 50 requisies/conexes, e o servidor 2 controla 25 requisies/conexes, a prxima requisio/conexo ser automaticamente direcionado para o servidor 2, desde que atualmente o servidor tenha um nmero menor de requisies/conexes ativas. Round Robin Este mtodo usa a tcnica de sempre direcionar as requisies para o prximo servidor disponvel de uma forma circular. Por exemplo, as conexes de entrada so dirigidas para o servidor 1, depois servidor 2 e finalmente servidor 3 e depois retorna ao servidor 1. Weighted Fair Esta tcnica dirige os pedidos para os servidores baseados na carga de requisies de cada um e na capacidade de resposta dos mesmos (performance) Por exemplo, se o servidor 1 quatro vezes mais rpido no atendimento aos pedidos do que o servidor 2, o administrador coloca um peso maior de trabalho para o servidor 1 do que o servidor 2. Cluster Combinado Alta Disponibilidade e Balanceamento de Carga Esta soluo combinada visa prover uma soluo de alta performance aliada a possibilidade da no existncia de paradas crticas. Este cluster combinado uma soluo perfeita para ISP e aplicaes de rede nas quais a continuidade de suas operaes muito crtica. Algumas caracteristicas desta plataforma:

Redirecionamento dos pedidos aos ns falhas para os ns reservas; Melhoria na qualidade dos nveis de servio para as aplicaes tpicas de rede; Transparente integrao para as aplicaes stand-alone e no-cluster juntos em uma nica rede virtual; Disponibilizar uma arquitetura de framework altamente escalvel.

Beowulf Cluster O que um Beowulf Cluster? Um dos mais notveis avanos tecnolgicos dos dias atuais, tem sido o crescimento da performance computacional dos PCs (Computadores Pessoais). A verdade que o mercado de PCs maior que o mercado de workstations, permitindo que o preo de um PC decresa, enquanto sua performance aumenta

substancialmente, sobrepondo, em muitos casos, a performance de estaes de trabalho dedicadas. O cluster Beowulf foi idealizado pelos seus desenvolvedores com o objetivo de suprir a crescente e elevada capacidade de processamento em diversas reas cientificas com o objetivo de construrem sistemas computacionais poderosos e economicamente viveis. Claro que a evoluo constante do desempenho dos processadores tem colaborado e muito na aproximao entre PCs e Workstations, a diminuio do custos das tecnologias de rede e dos prprios processadores e o sistema operacional aberto e gratuito, como o GNU/Linux em muito influenciam as pesquisas para melhoria desta nova filosofia de processamento de alto desempenho em clusters. Uma caracterstica chave de um cluster Beowulf, o software utilizado, que de elevado desempenho e gratuito na maioria de suas ferramentas, como exemplo podemos citar os sistemas operacionais GNU/Linux e FreeBSD sobre os quais esto instaladas as diversas ferramentas que viabilizam o processamento paralelo, como o caso das APIs MPI e PVM. Isto se permitiu fazer alteraes no sistema operacional Linux para dot-lo de novas caractersticas que facilitaram a implementao para aplicaes paralelas. Como o Beowulf trabalha? O sistema dividido em um nodo controlador denominado front-end (particularmente denomino de n mestre), cuja funo controlar o cluster, monitorando e distribuindo as tarefas, atua como servidor de arquivos e executa o elo entre os usurios e o cluster. Grandes sistemas em cluster podem distribuir diversos servidores de arquivos, n de gerencia pela rede para no sobrecarregar o sistema. Os demais ns so conhecidos como clientes ou backends (bem eu denomino ns escravos), e so exclusivamente dedicados para processamento das tarefas enviadas pelo n controlador, e no existe a necessidade de teclados e monitores, e eventualmente at sem a utilizao de discos rgidos (boot remoto), e podem ser acessadas via login remoto (telnet ou ssh). O Beowulf um projeto bem sucedido. A opo feita por seus criadores de usar hardware popular e software aberto tornou-o fcil de se replicar e modificar, a prova disso a grande quantidade de sistemas construdos moda Beowulf em diversas universidades, empresas americanas e europias e at residenciais. Mais do que um experimento foi obtido um sistema de uso prtico que continua sendo aperfeioado constantemente.

Você também pode gostar