Escolar Documentos
Profissional Documentos
Cultura Documentos
O que é um Cluster?
Tipos de Clusters
1/28
Razões para utilização de um Cluster
2/28
É 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.
3/28
Adicionalmente, para que um cluster seja escalável, tem que assegurar que
cada servidor seja utilizado completamente.
4/28
Least Connections
Round Robin
Weighted Fair
Esta solução combinada visa prover uma solução de alta performance aliada a
possibilidade da não existência de paradas críticas. Este cluster combinado é
uma solução perfeita para ISP e aplicações de rede nas quais a continuidade
de suas operações é muito crítica. Algumas características desta plataforma:
5/28
Figura 2: Solução HA + LB.
Beowulf Cluster
Um dos mais notáveis avanços tecnológicos dos dias atuais, tem sido o
crescimento da performance computacional dos PCs (Computadores Pessoais).
6/28
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 construírem sistemas computacionais poderosos e
economicamente viáveis.
7/28
Figura 3: Cluster Beowulf.
8/28
Supercomputadores Caseiros: Construindo Clusters com o Linux
Metodologia
9/28
A melhor solução seria utilizar a própria estrutura de uma rede de
computadores, um sistema operacional de distribuição gratuita e um conjunto
enorme de ferramentas de programas gratuitos disponíveis que transforma
esta rede de computadores em um supercomputador de baixo custo, para
execução de programação paralela.
Você pode construir um na sua própria casa para colocar em prática seus
estudos em programação paralela sem gastar muito dinheiro ou perder seu
precioso tempo deslocando-se para instituições de ensino (normalmente
universidades federais) para testar seus programas.
Neste tipo de filosofia entra o projeto Multipingüim, que vem a demonstrar nos
laboratórios da UNESA este tipo de implementação com todas as suas
vantagens e a possibilidade de abertura de cursos inéditos em uma
universidade particular em computação paralela.
Construindo o Multipingüim
10/28
Figura 2: Cluster Beowulf típico.
Servidor RARP;
Resolução de nomes via arquivo hosts - evita latência não utilizando assim o
serviço de DNS;
Acesso remoto aos nós através de rlogin, ssh, ftp, rsh, rwho, rwall;
Gerência dos nós através de duas aplicações: bWatch, SCMS (Smile Cluster
Management System);
11/28
Escalonadores de tarefas: SQMS, MAUI;
Computador Mestre
Dual Pentium III 550 MHz
512 KB de memória cachê
384MB de SDRAM PC-133
Gravador de CD HP 9100c
Placa Mãe com chipset Intel810
2 (duas) placas de rede 3Com 3c509
Host SCSI on-board Adaptec
Disco rígido de 9,1 GB SCSI Ultra Wide
2 (dois) Discos rígidos de 4,3 GB SCSI
Monitor de 17” SVGA Hansol
Mouse Microsoft PS/2
Teclado de 102 teclas
Computadores Escravos
Quantidade: 02 (dois)
Processador Pentium III 600 EB
Placa de Rede 3Com 3C509 PCI
Placa de Rede on-board SIS900 (utilizado para monitoramento remoto)
Floppy Disk de 1,44 MB
Placa mãe Pcchips modelo M756+
12/28
Testes de Desempenho
Conclusão
13/28
O QUE É UM CLUSTER ?
14/28
Figura 1: Um sistema em Cluster.
15/28
O Cluster OpenMosix
16/28
Estes algoritmos são descentralizados, ou seja, não existe a existe a
configuração de Controlador Mestre e nós escravos como ocorre no Cluster
Beowulf para computação paralela. Cada nó é um mestre para os processos
que são criados localmente, e um servidor para processos remotos, migrados
de outros nós do cluster.
Grandes compilações.
As desvantagens do OpenMosix
17/28
Processos com baixa computação, como aplicativos com alta comunicação
interprocessos.
Não se ganha desempenho quando se roda um único processo, tal como seu
browser.
Programas em Java usando threads nativas não migram desde que eles
utilizem memória compartilhada. Green Threads JVMs, entretanto, podem ser
migradas porque cada thread Java é um processo separado.
Portanto será bem interessante ao leitor executar testes com uma infinidade
de aplicações que se beneficiariam ou não com este cluster, para criarmos um
banco de dados sobre este assunto. Por isso aguardem minha nova publicação.
OpenMOSIXVIEW
18/28
O OpenMosixview é um conjunto de cinco ferramentas utilizadas para
administração e monitoramento do Cluster OpenMosix. São eles:
19/28
Computação em Grade - Uma Visão Introdutória
John MacCarty do MIT em 1961 já previa o que hoje temos como grid. “Se os
computadores do tipo que eu imagino, se tornarem os computadores do
futuro, então a computação poderá algum dia ser organizada como um serviço
público, assim como a telefonia o é... Esse serviço poderá se tornar a base da
nova e importante indústria”.
20/28
Os sistemas em cluster são caracterizados em uma interligação física
localizada, construídos para resolver os problemas de uma forma mais rápida
possível por meio de aplicações paralelas e distribuídas. E isso já foram
explicados em artigos posteriores.
Já começam a ser consideradas que algumas aplicações já não podem ser mais
resolvidas dentro de um ambiente de cluster e podem necessitar o uso de
recursos em localidades remotas. O uso dos ciclos fracamente acoplado de
computadores dispersos em uma Wan pode representar um ambiente muito
interessante para processamento de alto desempenho. Com isso um usuário
acessaria via estação de trabalho uma aplicação dentre um conjunto de
aplicações disponíveis e submeter suas tarefas para serem executados nesse
ambiente. Seria de responsabilidade do próprio sistema cuidar de questões
como sincronização de tarefas, disponibilidade de recursos (processadores,
armazenamento, compartilhamento de dados), transferências de informações,
protocolos de comunicação, troca de mensagens e segurança, fossem
resolvidos de forma transparente ao usuário.
21/28
O Grid Computing é um novo conceito que explora as potencialidades das
redes de computadores, com o objetivo específico de disponibilizar camadas
virtuais que permitem a um usuário ter acesso a aplicações altamente
exigentes, bem como aderir a comunidades virtuais de grande escala, com
uma grande diversidade de recursos de computação e de repositórios de
informações. A diferença existente entre a computação distribuída e
computação em grade de dá pelo fato de que a computação distribuída é um
conceito que vem dos anos 80 e 90, e consiste na possibilidade de resolver um
determinado problema computacional através da utilização de diferentes
recursos distribuídos geograficamente.
O nome Grid foi idealizado baseado nas malhas de interligação dos sistemas de
energia elétrica (power-grids), em que um usuário utiliza a eletricidade sem ao
menos saber em que local ele foi gerada, sendo totalmente transparente aos
seus usuários.
Na verdade o conceito é antigo, mas com uma nova dinâmica, em que se pode
utilizar a capacidade de computação (ex. Storage/CPU) sem ter que se
preocupar de onde vem, como é mantida, fazendo uma metáfora às redes
elétricas.
22/28
A tecnologia de Grids Computing possibilita agregar recursos computacionais
variados e dispersos em um único supercomputador virtual, acelerando a
execução de várias aplicações paralelas. Grids se tornaram possíveis nos
últimos anos, devido a grande melhoria em desempenho e redução de custo,
tanto de redes de computadores quanto de microprocessadores”.
23/28
Os centros de pesquisa são ligados a conexões em rede cerca de 20 vezes
mais rápidas do que as conexões de banda largas normais, são equipadas com
sistemas de armazenamento capazes de lidar com vastos arquivos de dados e
com computadores de alta performance. O Grid Computing é um conceito
sobre o qual existe ainda uma grande expectativa e que poderá evoluir em
diferentes direções, mas que é já hoje entendido como a próxima geração da
Web para a comunidade científica.
Para o Grid Computing, as aplicações leves são as ideais pois estas requisitam
relativamente menos das redes. Mesmo tendo máquinas com uma alta
conexão, estas redes com baixo fluxo de dados constitui uma espécie de
gargalo ao requisito fundamental para aplicações pesadas. A multiplicidade das
velocidades das diversas redes implica em alguns pontos de gargalo, e que
compromete a performance do nosso supercomputador virtual. Para
sacramentarmos Grid x Cluster, utilizaremos a referência do Prof Buyya. “Se
acontece o compartilhamento de recursos gerenciado por um único sistema
global sincronizado e centralizado, então é um cluster. Em um cluster, todos os
nós trabalham cooperativamente em um objetivo comum e o objetivo é a
alocação de recursos executada por um gerente centralizado e global. Em Grid,
cada nó, possuí seu próprio gerente recursos e política de alocação".
24/28
Benefícios de um Grid
1. Organizações podem agregar recursos - a computação em Grid permite que
as organizações possam agregar recursos com toda a infra-estrutura dos ITs,
não importando localização global. Isso elimina situações onde um site esteja
sendo executado com sua capacidade máxima, enquanto outros tenham ciclos
disponíveis.
25/28
A padronização da tecnologia de Grid já vem ocorrendo a bastante tempo,
sendo que, devido ao uso de diversas empresas, os esforços passaram a ter
uma prioridade muito maior nesses últimos três anos. Principais Projetos de
Grid
Globus
O projeto Globus foi iniciado em 1997, e é considerado o padrão de fato para a
computação em Grid. Seus objetivos de baseiam no desenvolvimento e
promoção de protocolos padrões para permitir interoperabilidade entre infra-
estruturas. Obteve uma grande atenção por parte da mídia, inclusive atraindoa
atenção de empresas (exemplo: IBM). O Globus Toolkit é um conjunto de
ferramentas de código aberto baseados por bibliotecas escritas em C e que
atualmente só rodam sobre plataforma Unix, desenvolvidos por Ian Forster,
cientista sênior do Laboratório Nacional Argonne, Carl Kesselman, diretor do
Centro para Tecnologias de Grade do Instituto de Ciências da Informação, da
Universidade do Sul da Califórnia e Steve Tuecke da U. of Chicago, financiados
principalmente pelo governo americano, com subvenção do Departamento de
Energia, da Fundação Nacional de Ciência, da Nasa e da Agência de Projetos de
Pesquisa Avançada da Defesa, e tem como objetivo facilitar a computação em
grade por meio de APIs e SDKs.
Legion
Legion é um sistema de grade computacional que foi desenvolvido pela
Universidade de Virginia. Um dos pioneiros em computação em grade, o
desenvolvimento do Legion começou em 1993. Em 2001, seus idealizadores
fundaram a Avaki, uma empresa que atualmente desenvolve e comercializa
sistemas que utilizam a tecnologia do Legion.
26/28
Objetos comunicam-se por chamadas de métodos assíncronas, e as interfaces
são definidas por um tipo de IDL. As classes possuem responsabilidades de
sistema como: criação de objetos, ativação/desativação e agendamento da
execução.
Por fim, aplicações legadas que não utilizem nenhuma das bibliotecas ou
linguagens acima podem ser encapsuladas dentro de objetos Legion. Basta o
usuário registrar o programa legado com o comando legion_register_program
e o sistema constrói um objeto Legion que encapsula o programa legado e,
automaticamente, ele se torna elegível para ser executado pelo sistema.
Conclusão
27/28
As dificuldades encontradas são muitas, e os estudos são incessantes nessas
áreas, destacando-se:
28/28