SlideShare uma empresa Scribd logo
Clusters
Mateus Victorio Zagonel1, Cristian Cleder Machado2
1Aluno do Curso de Ciência da Computação – Universidade Regional Integrada (URI)
Caixa Postal 709 – 98.400-000 – Frederico Westphalen – RS – Brasil
2Professor do Curso de Ciência da Computação – Universidade Regional Integrada
(URI)
Caixa Postal 709 – 98.400-000 – Frederico Westphalen – RS – Brasil.
inf16755@uri.edu.br,cristian@cristian.com.br
Abstract. This article deals with the Cluster architecture, an architecture that
is used for plays that require high processing power and large data availability.
This architecture was created in order to be a viable alternative to
supercomputers, because it has a simpler architecture and better cost x benefit
when it comes toprocessing parallel. Shall explain throughout the article a brief
definition of Cluster architecture used, types of Cluster and Applications.
Resumo. O presente artigo trata da arquitetura Cluster, que é utilizada para
execuções que demandam de grande poder de processamento ou grande
disponibilidade de dados. Esta arquitetura foi criada com o objetivode ser uma
alternativa viável em relação aos supercomputadores, pois apresenta uma
arquitetura mais simples e melhor custo x beneficio em se tratando de
processamento paralelo (simultâneo) e distribuído. Explanarei no decorrer do
artigo uma breve definição de Cluster, bem como a arquitetura utilizada e os
tipos de Cluster de acordo com a aplicação.
1. Introdução
Com a evolução da computação na década de 80 e devido aos supercomputadores terem
um preço nada acessível, surgiram os clusters que correspondem a duas ou mais máquinas
interconectadas pela rede e coordenadas por um software chamado Middleware,
utilizados para execuções que demandam de grande poder de processamento.
Os cientistas da época não se conformavam com a ideia de ter que investir em um
supercomputador específico (que era absurdamente caro), então pensaram na seguinte
questão: Por que não agrupar os computadores disponíveis através de um software e
coordenar o processamento? A ideia deu tão certo que hoje a maioria dos quinhentos
maiores computadores do mundo utiliza a arquitetura de Cluster.
Atualmente os Clusters não são utilizados apenas para grande processamento, mas para
outras tarefas como alta disponibilidade de dados e balanceamento de carga que tratarei
com mais detalhes no título quatro do presente artigo.
2. Definição
De acordo com Pitanga (2003): quanto a uma definição de 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
tenhama impressão que somente um único sistema responde para eles, criando
assim uma ilusão de um recurso único (computador virtual).”
Não devemos confundir um Cluster com um Supercomputador, pois um cluster pode ser
formado com máquinas comuns de diferentes configurações, projetadas para uma
infinidade de tarefas e interconectadas pela rede (fracamente acoplados). Por outro lado
um supercomputador é formado por um conjunto de núcleos idênticos, dispostos em um
mesmo circuito (fortemente acoplados) se comunicando por meio de um barramento e
memória compartilhada, implementados para uma tarefa especifica que necessite de
grande poder de processamento. (Zem e Brito, 2006; Morimoto, 2002);
Os clusters são extremamente mais baratos e apresentam maior custo x beneficio em
relação aos supercomputadores, estes por sua vez custam milhares de dólares e para as
tarefas especificas a que foram projetados terão na maioria dos casos um desempenho
maior que um cluster. (Zem e Brito, 2006; Morimoto, 2002);
3. Arquitetura de Clusters
A arquitetura de um Cluster é composta por um conjunto de máquinas interligadas por
rede através de troca de mensagens. A comunicação utilizará uma estrutura de rede e seu
respectivo conjunto de protocolos.
Um Cluster deve ser transparente ao usuário, ou seja, o usuário não poderá identificar a
quantidade de máquinas interconectadas nem mesmo ter ideia da arquitetura utilizada e
sim apenas ver o sistema como um todo. Para que ocorra transparência os Clusters
utilizam um software chamado Middleware que coordena as aplicações passando a ideia
de que se trata apenas de um computador. (Zem e Brito, 2006);
Outro ponto importante de acordo com Zem e Brito (2006) é com relação à configuração
das máquinas, pois em um cluster podem haver computadores com as mais variadas
configurações, porém todas devem conseguir se comunicar pela rede.
Para melhor entendimento utilizarei a figura 1, abaixo, em que há um desenho com uma
arquitetura de um cluster, seguida de uma breve descrição de cada componente da mesma.
Figura 1 - Exemplo da Arquitetura de um Cluster
BackBone ou Rede de Comunicação: Corresponde a forma de comunicação empregada,
mais precisamente a arquitetura que a rede irá utilizar, podendo ser uma rede Gigabit
Ethernet, Fast Ethernet ou até um barramento externo.
Interface de Rede: Correspondem aos adaptadores de rede que estão fisicamente em cada
máquina. Devem ter suporte ao Backbone.
Protocolo de Comunicações: São as regras que serão utilizadas para que ocorra a
comunicação.
Nó ou Máquina: Qualquer máquina que faça parte do Cluster. (Zem e Brito, 2006);
Middleware: Software executado no Sistema Operacional responsável por “esconder” a
arquitetura que é utilizada no Cluster e mostrar ao usuário o sistema como se funcionasse
com apenas um computador.
Ambiente de Programação Paralela: Ambiente para criação de novas aplicações paralelas
que utilizem o poder de processamento de um Cluster.
Aplicativos Paralelos: Programas paralelos com granularidade grossa, que são os
programas com instruções que demandam de grande processamento. Os programas
paralelos serão executados em cada nó do cluster obtendo o paralelismo.
Aplicativos Sequenciais: Programas sequenciais que não utilizarão o poder de
processamento paralelo de um Cluster. São necessários, pois nem todas as aplicações
podem ser paralelizadas e mesmo as aplicações paralelizadas em algum momento serão
sequenciais, normalmente no inicio e no final da execução. (Zem e Brito, 2006);
4. Tipos de Clusters
Neste título tratarei de três tipos de cluster, cada um dos três tipos de Cluster é projetado
para atender a uma necessidade específica, variando a arquitetura de acordo com a
aplicação. Também serão tratados mais dois exemplo de Cluster muito comuns, que são:
o Cluster Beowulf que se encaixa na arquitetura dos Clusters de Alto Desempenho e o
Cluster Mosix que se encaixa no grupo de Clusters de Balanceamento de Carga.
4.1. Cluster de Alto Desempenho
Esse tipo de Cluster é utilizado para tarefas que necessitem de grande processamento, ou
seja, programas com granularidade grossa. Os clusters de alto desempenho seguem o
principio de dividir uma grande tarefa em inúmeras tarefas menores e são utilizados para
computação cientifica, análises financeiras, pesquisas climáticas e simulações. (Zem e
Brito, 2006; Salles ET AL, 2009);
Sua arquitetura é a mesma usada por um cluster Beowulf, conforme nos mostra a Figura
2 abaixo, pois utilizam um nó controlador que envia as tarefas para os demais nós Back-
End de forma que a execução seja paralelizada.(Salles ET AL, 2009);
Figura 2 - Exemplo de um Cluster de Alto Desempenho
4.1.1. Cluster BeoWulf
O Cluster Beowulf é assim chamado devido a um herói inglês que tinha que derrotar um
monstro, em se tratando de computação o seu adversário é o alto processamento. O
Cluster Beowulf está inserido dentro do grupo dos Clusters de Alto desempenho.
(Alecrim 2004; Salles ET AL, 2009);
A arquitetura do Beowulf conforme nos mostra a Figura 3 abaixo, é composta por um nó
controlador ou front-end, que possui a função de controlar o cluster distribuindo as tarefas
de acordo com a ociosidade dos demais nós escravos ou Back-end’s. Os nós escravos por
sua vez são responsáveis por executar as tarefas paralelamente e responder ao nó
controlador. Eles não necessitam de teclados e monitores e podem ser acessados por
acesso remoto (telnet ou ssh). (Salles ET AL, 2009);
Figura 3 - Exemplo da Arquitetura de um Cluster Beowulf
O nó controlador também funcionará como um gateway, pois permite que se necessário
os nós escravos se comuniquem com uma rede externa. (Salles ET AL, 2009);
Os Clusters Beowulf geralmente são projetados com hardware desktop, utilizam a
tecnologia ethernet para comunicação e o sistema operacional Linux. Outro detalhe
importante é que esse tipo de cluster é centralizado, pois o nó controlador vai gerenciar o
cluster e os demais nós apenas irão processar de maneira passiva o que nó controlador
determinar. (Zem e Brito, 2006);
Quanto às aplicações, os cluster Beowulf não são utilizados para aplicações em tempo
real, mas sim para processar informações que necessitam de grande processamento como
renderização de imagens e efeitos especiais para filmes, podendo alcançar altos valores
de gigaflops. (Salles ET AL, 2009);
4.2. Cluster de Alta Disponibilidade
Os Clusters de Alta Disponibilidade tem a função de garantir que um serviço esteja ativo
em mais de uma máquina. Para que isso seja possível, utilizam replicações dos dados ou
serviços. (Pitanga, 2003);
Conforme nos mostra a figura 4 abaixo, imagine, por exemplo, um usuário acessando um
banco de dados por meio da rede pública, sua requisição é enviada para o servidor ttisrv1,
porém esse servidor está em manutenção. Para que o usuário tenha sua solicitação
atendida à mesma é redirecionada para o servidor ttisrv2 que possui exatamente as
mesmas informações que o servidor ttisrv1 e atenderá a requisição. Mas como o servidor
ttisrv2 sabe que o servidor ttisrv1 está em manutenção? Existe uma técnica denominada
heartbeat, em que através de uma rede privada, os integrantes do cluster trocam
mensagens sinalizando que estão ativos. (Zem e Brito, 2006);
Poderiam ser usados inúmeros servidores e não apenas dois, o número de servidores
depende da necessidade/importância do serviço.
Figura 4 - Exemplo de Cluster de Alta Disponibilidade
4.3. Cluster de Balanceamento de Carga
Tem por função distribuir as solicitações entre os nós do Cluster. Diferentemente dos
Clusters de alta disponibilidade, os cluster de balanceamento de carga são apenas
responsáveis por distribuir as requisições, portanto não possuem “cópias” dos dados em
todos os servidores, pois funcionam como redirecionadores de solicitações. (Prado e Silva
2010 apud Batista 2007);
São utilizados em serviços de Comércio Eletrônico, Provedores de Internet e sistemas que
possuem grandes quantidades de acessos/requisições e necessitam de processamento em
tempo real. (Pitanga, 2003);
Na figura 5, abaixo, em vermelho temos a estrutura de balanceamento de carga com três
servidores integrando o cluster. O usuário envia uma requisição e está passa pelo cluster,
então um dos nós do Cluster assume a mesma e por meio de algoritmos de escalonamento
a envia para o servidor de dados.
Figura 5 - Exemplo de um Cluster de Balanceamento de Carga
Os algoritmos de escalonamento mais comuns são:
*Least Connections: Servidor com menos requisições assume a solicitação.
*Round Robin: Envia a requisição para o próximo servidor seguindo uma ordem circular.
*Weighted Fair: Envia requisição para o servidor que possui melhor desempenho.
(Pitanga, 2003);
Os Clusters de Balanceamento de Carga solucionaram problemas de requisições serem
atendidas por dois servidores ao mesmo tempo, pois com o processamento distribuído
não há sobrecarga e é definido qual integrante do Cluster irá atender a requisição.
(Pitanga, 2003);
Os integrantes do Cluster de Balanceamento de Carga, assim como nos Clusters de Alta
disponibilidade, devem possuir comunicação para que uma requisição não seja enviada
para um servidor que está inativo. (Pitanga, 2003);
4.3.1. Cluster Mosix
Um Cluster Mosix (Multicompute Operating system for UNIX) é um exemplo de Cluster
de Balanceamento de Carga em que o nó que estiver com menos processamento receberá
mais requisições para otimizar o desempenho fazendo com o cluster não fique ocioso.
Esse balanceamento de carga é feito de forma dinâmica através de algoritmos que
determinam qual nó atenderá a requisição analisando a memória disponível, o uso da CPU
e a rede.
Nesse tipo de Cluster não existe um nó principal (caso do Cluster Beowulf) o que garante
boa escalabilidade, pois pode-se incluir ou retirar um nó do Cluster a qualquer momento.
Sua implementação é baseada em Linux e totalmente transparente ao usuário, quanto as
aplicações é utilizado em centros de pesquisa e universidades. (Salles ET AL, 2009);
4.4. Cluster de Alta Disponibilidade e Balanceamento de Carga
Esse tipo de Cluster combina as características dos Clusters de Alta Disponibilidade e de
Balanceamento de carga. São utilizados por sistemas que independente da situação
garantem o acesso às informações.
A ideia desse tipo de cluster é redirecionar as solicitação dos nós com falhas para os nós
reservas e garantir os serviços com maior agilidade, pois com o balanceamento de carga
o processamento é distribuído de forma que o servidor que estiver com menos
processamento receberá solicitações. (Pitanga, 2003);
Na figura 6, abaixo, temos um exemplo de combinação de Cluster de Alta Disponibilidade
e Balanceamento de Carga (em Vermelho na Figura 6). Por exemplo, um usuário acessa
a internet, então a requisição é enviada ao servidor com que é escolhido por meio de
escalonamento e este por sua vez envia a solicitação para um servidor de banco de dados
que estiver ativo e disponível.
Figura 6 - Exemplo de Cluster de Alta Disponibilidade e Balanceamento de
Carga
5. Conclusão
Os Clusters correspondem a uma alternativa viável para supercomputação e para
formação de sistema distribuídos, pois projetar um cluster não necessita de grande
complexidade, em comparação com um supercomputador, devido ao hardware não
necessitar ser idêntico para todos os “integrantes” do cluster e computadores comuns
serem uma boa opção.
Atualmente empresas de médio porte e universidades já possuem clusters para
balanceamento de carga e disponibilidade, que são os modelos mais utilizados.
Independente da situação, que pode ser, por exemplo, grandes quantidades de acessos em
um vestibular para visualização de uma nota, ou uma pane em um servidor de banco de
dados, com esses tipos de cluster pode-se garantir a funcionalidade de um sistema de
forma distribuída e segura.
A grande dificuldade na área de clusters não é com relação à arquitetura física, mas sim
a criação de softwares que gerenciem um cluster e que utilizem a capacidade máxima de
cada nó da estrutura, pois os programas devem ser paralelizados dinamicamente e o
Middleware deve distribuir as tarefas de forma inteligente de acordo com o
processamento de cada nó.
A área de computação em Clusters corresponde a uma área de fundamental importância,
pois está em expansão principalmente para sistemas de grande porte. As grandes empresas
têm duas opções atualmente, ou constroem seu próprio cluster, ou contratam um serviço
de Cloud Computing (Computação em Nuvem) que curiosamente é formada por Clusters.
Cabe aos administradores realizarem um estudo se é mais viável criar uma estrutura de
Cluster e contratar um administrador competente ou contratar um serviço de Cloud
Computing, de certa forma “abrindo mão” do gerenciamento de suas informações.
6. Referências
Prado, C. L. e Silva, J. M. A. (2010). Sobre Clusters de Computadores. Em Aplicação de
Cluster Beowulf em Instituições de Ensino, páginas 23-41. Publicado na Internet em
Portallivre.
Zem, J. L. e Brito, S. H. B. (2006). Sobre Arquitetura de Clusters. Em Monitoramento
Distribuído de Clusters e Grids Computacionais utilizando o Ganglia, páginas 1-6.
Publicado na I Jornada Científica da Universidade Brasileira de Tecnologia, Recife
(PE).
Salles, D. ET AL (2009). Sobre Clusters de Alta Performance. Em Cluster HPC – High
Performance Computing, 1-5. Publicado na FCT - Faculdade de Ciências e
Tecnologia.
Pitanga, M. (2003) “Computação em Cluster”,
http://www.clubedohardware.com.br/artigos/153, Setembro.
Morimoto, C. E. (2002) “Supercomputadores e Clusters”,
http://www.hardware.com.br/livros/hardware-manual/supercomputadores-
clusters.html, Setembro.
Alecrim, E. (2004) “Cluster: Principais Conceitos”,
http://www.infowester.com/cluster.php, Setembro.

Mais conteúdo relacionado

PDF
Sistemas Distribuídos - Clusters
PDF
Sistemas Distribuídos - Aspectos de Projeto
PDF
Sistemas Distribuídos - Grids Computacionais
PDF
Aula 2 introdução a sistemas distribuídos
PDF
ACII - SL07 - Introducao aos sistemas distribuidos
PDF
desafios na implementacao de sistemas distribuidos
PPT
Sistemas operacionais sistemas-distribuidos
PDF
Caracterizacao de sistemas distribuidos
Sistemas Distribuídos - Clusters
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Grids Computacionais
Aula 2 introdução a sistemas distribuídos
ACII - SL07 - Introducao aos sistemas distribuidos
desafios na implementacao de sistemas distribuidos
Sistemas operacionais sistemas-distribuidos
Caracterizacao de sistemas distribuidos

Mais procurados (20)

PDF
Introdução a Sistemas Distribuídos
PDF
Apresentação Sistemas Distribuídos - Conceito
PDF
Introcucao aos Sistemas Distribuidos
PDF
Sistemas Distribuídos - Computação Distribuída e Paralela
PDF
Introdução aos Sistemas Distribuídos
PDF
Sistemas Distribuídos - Comunicação Distribuída – Middleware
PPTX
Sistemas distribuídos aula 1
PDF
SI - Introdução a Sistemas Distribuidos
PPTX
Introdução aos sistemas distribuidos
PPT
Sistemas distribuídos e de tempo real
PDF
SI - Comunicação
PDF
P2P - Sistemas Distribuídos
PDF
SI - Arquiteturas
PDF
SI - SAD - Sistemas de Arquivos Distribuídos
PDF
SI - Sistemas Distribuídos - Apresentação da disciplina
PDF
Introdução à sistemas distribuídos
PDF
Apresentação da Disciplina de Sistemas Distribuídos
PPSX
Processamento paralelo
PDF
Processamento paralelo
PDF
WebServices
Introdução a Sistemas Distribuídos
Apresentação Sistemas Distribuídos - Conceito
Introcucao aos Sistemas Distribuidos
Sistemas Distribuídos - Computação Distribuída e Paralela
Introdução aos Sistemas Distribuídos
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas distribuídos aula 1
SI - Introdução a Sistemas Distribuidos
Introdução aos sistemas distribuidos
Sistemas distribuídos e de tempo real
SI - Comunicação
P2P - Sistemas Distribuídos
SI - Arquiteturas
SI - SAD - Sistemas de Arquivos Distribuídos
SI - Sistemas Distribuídos - Apresentação da disciplina
Introdução à sistemas distribuídos
Apresentação da Disciplina de Sistemas Distribuídos
Processamento paralelo
Processamento paralelo
WebServices
Anúncio

Destaque (7)

PDF
PPTX
Cluster e Alta Disponibilidade na Prática com JBoss AS 7
PDF
Highly available Drupal on a Raspberry Pi cluster
PPTX
Conjunto de instruções mips - introdução
PPT
19 elaboração da metodologia
PPT
Cluster e replicação em banco de dados
PPT
19 elaboração da metodologia
Cluster e Alta Disponibilidade na Prática com JBoss AS 7
Highly available Drupal on a Raspberry Pi cluster
Conjunto de instruções mips - introdução
19 elaboração da metodologia
Cluster e replicação em banco de dados
19 elaboração da metodologia
Anúncio

Semelhante a Clusters, o que é? (20)

PDF
Cluster ha com banco de dados
DOC
Cluster individual
PDF
Tecnologia front end back-end
DOCX
PPTX
Aula 7 (clouter)
PPT
Apresentação Monografia
PPTX
Computação de alta performance
PDF
Arquitetura paralela
PDF
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...
PDF
Distributed Systems - Exercises
PDF
REDE LOCAL - COMPLETO
PPTX
164519997 curso-de-redes-laercio-vasconcelos-capitulo-01
PDF
O_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdf
PDF
Alta Disponibilidade
PDF
164519997 curso-de-redes-laercio-vasconcelos-capitulo-01-141027091745-convers...
PDF
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
PPTX
Curso Completo de Redes para aplicacion de Windows
PDF
Desempenho de um Servidor Web em Ambientes de Computação Isolados
DOCX
Multithreaded tecnologia
Cluster ha com banco de dados
Cluster individual
Tecnologia front end back-end
Aula 7 (clouter)
Apresentação Monografia
Computação de alta performance
Arquitetura paralela
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...
Distributed Systems - Exercises
REDE LOCAL - COMPLETO
164519997 curso-de-redes-laercio-vasconcelos-capitulo-01
O_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdf
Alta Disponibilidade
164519997 curso-de-redes-laercio-vasconcelos-capitulo-01-141027091745-convers...
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
Curso Completo de Redes para aplicacion de Windows
Desempenho de um Servidor Web em Ambientes de Computação Isolados
Multithreaded tecnologia

Último (20)

PDF
[Slides] A Literatura no ENEM 2017 (1).pdf
PPTX
Programa Nacional de Saúde do Adulto.pptx
PDF
Combate a Incêndio - Iluminação de Emergência e Sinalização de Segurança por ...
PDF
Historia da Gastronomia Mundial por Daianna Marques dos Santos
PPTX
5. A cultura do mundo virtual - globalidade.pptx
DOCX
PLANEJAMENTO QUINZENAL - 18.08.2025 à 29.08.2025 - 2ºANO - PROFESSORA PATRÍCI...
PDF
manual-orientacao-asb_5a8d6d8d87160aa636f63a5d0.pdf
PPT
Caderno de Boas Práticas dos Professores Alfabetizadores.ppt
PDF
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
PPT
1ª Telefonia Fixa Padrao Novo Jailton 2012_22.ppt
PDF
O retorno a origem (islã Islamismo)
PDF
EXPRESSÕES IDIOMÁTICAS - LÍNGUA PORTUGUESA
PPT
YY2015MM3DD6HH12MM42SS3-Organiza__o do Estado ILP.ppt
PDF
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
PPTX
Ocupação e transformação dos territórios.pptx
PPTX
BIÓTICOS E ABIOTICOS CADEIA ALIMENTAR.pptx
PDF
Combate a Incêndio - Estratégias e Táticas de Combate a Incêndio por Francis...
PPTX
2. A Cultura do Salão - o fim das trevas.pptx
PDF
Pecados desdenhados por muita gente (islamismo)
DOC
PPP 2024 (2) (2) feito EM REELABORAÇÃO MORENA ( ABRIL 2024).doc
[Slides] A Literatura no ENEM 2017 (1).pdf
Programa Nacional de Saúde do Adulto.pptx
Combate a Incêndio - Iluminação de Emergência e Sinalização de Segurança por ...
Historia da Gastronomia Mundial por Daianna Marques dos Santos
5. A cultura do mundo virtual - globalidade.pptx
PLANEJAMENTO QUINZENAL - 18.08.2025 à 29.08.2025 - 2ºANO - PROFESSORA PATRÍCI...
manual-orientacao-asb_5a8d6d8d87160aa636f63a5d0.pdf
Caderno de Boas Práticas dos Professores Alfabetizadores.ppt
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
1ª Telefonia Fixa Padrao Novo Jailton 2012_22.ppt
O retorno a origem (islã Islamismo)
EXPRESSÕES IDIOMÁTICAS - LÍNGUA PORTUGUESA
YY2015MM3DD6HH12MM42SS3-Organiza__o do Estado ILP.ppt
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
Ocupação e transformação dos territórios.pptx
BIÓTICOS E ABIOTICOS CADEIA ALIMENTAR.pptx
Combate a Incêndio - Estratégias e Táticas de Combate a Incêndio por Francis...
2. A Cultura do Salão - o fim das trevas.pptx
Pecados desdenhados por muita gente (islamismo)
PPP 2024 (2) (2) feito EM REELABORAÇÃO MORENA ( ABRIL 2024).doc

Clusters, o que é?

  • 1. Clusters Mateus Victorio Zagonel1, Cristian Cleder Machado2 1Aluno do Curso de Ciência da Computação – Universidade Regional Integrada (URI) Caixa Postal 709 – 98.400-000 – Frederico Westphalen – RS – Brasil 2Professor do Curso de Ciência da Computação – Universidade Regional Integrada (URI) Caixa Postal 709 – 98.400-000 – Frederico Westphalen – RS – Brasil. inf16755@uri.edu.br,cristian@cristian.com.br Abstract. This article deals with the Cluster architecture, an architecture that is used for plays that require high processing power and large data availability. This architecture was created in order to be a viable alternative to supercomputers, because it has a simpler architecture and better cost x benefit when it comes toprocessing parallel. Shall explain throughout the article a brief definition of Cluster architecture used, types of Cluster and Applications. Resumo. O presente artigo trata da arquitetura Cluster, que é utilizada para execuções que demandam de grande poder de processamento ou grande disponibilidade de dados. Esta arquitetura foi criada com o objetivode ser uma alternativa viável em relação aos supercomputadores, pois apresenta uma arquitetura mais simples e melhor custo x beneficio em se tratando de processamento paralelo (simultâneo) e distribuído. Explanarei no decorrer do artigo uma breve definição de Cluster, bem como a arquitetura utilizada e os tipos de Cluster de acordo com a aplicação. 1. Introdução Com a evolução da computação na década de 80 e devido aos supercomputadores terem um preço nada acessível, surgiram os clusters que correspondem a duas ou mais máquinas interconectadas pela rede e coordenadas por um software chamado Middleware, utilizados para execuções que demandam de grande poder de processamento. Os cientistas da época não se conformavam com a ideia de ter que investir em um supercomputador específico (que era absurdamente caro), então pensaram na seguinte questão: Por que não agrupar os computadores disponíveis através de um software e coordenar o processamento? A ideia deu tão certo que hoje a maioria dos quinhentos maiores computadores do mundo utiliza a arquitetura de Cluster. Atualmente os Clusters não são utilizados apenas para grande processamento, mas para outras tarefas como alta disponibilidade de dados e balanceamento de carga que tratarei com mais detalhes no título quatro do presente artigo. 2. Definição De acordo com Pitanga (2003): quanto a uma definição de 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
  • 2. tenhama impressão que somente um único sistema responde para eles, criando assim uma ilusão de um recurso único (computador virtual).” Não devemos confundir um Cluster com um Supercomputador, pois um cluster pode ser formado com máquinas comuns de diferentes configurações, projetadas para uma infinidade de tarefas e interconectadas pela rede (fracamente acoplados). Por outro lado um supercomputador é formado por um conjunto de núcleos idênticos, dispostos em um mesmo circuito (fortemente acoplados) se comunicando por meio de um barramento e memória compartilhada, implementados para uma tarefa especifica que necessite de grande poder de processamento. (Zem e Brito, 2006; Morimoto, 2002); Os clusters são extremamente mais baratos e apresentam maior custo x beneficio em relação aos supercomputadores, estes por sua vez custam milhares de dólares e para as tarefas especificas a que foram projetados terão na maioria dos casos um desempenho maior que um cluster. (Zem e Brito, 2006; Morimoto, 2002); 3. Arquitetura de Clusters A arquitetura de um Cluster é composta por um conjunto de máquinas interligadas por rede através de troca de mensagens. A comunicação utilizará uma estrutura de rede e seu respectivo conjunto de protocolos. Um Cluster deve ser transparente ao usuário, ou seja, o usuário não poderá identificar a quantidade de máquinas interconectadas nem mesmo ter ideia da arquitetura utilizada e sim apenas ver o sistema como um todo. Para que ocorra transparência os Clusters utilizam um software chamado Middleware que coordena as aplicações passando a ideia de que se trata apenas de um computador. (Zem e Brito, 2006); Outro ponto importante de acordo com Zem e Brito (2006) é com relação à configuração das máquinas, pois em um cluster podem haver computadores com as mais variadas configurações, porém todas devem conseguir se comunicar pela rede. Para melhor entendimento utilizarei a figura 1, abaixo, em que há um desenho com uma arquitetura de um cluster, seguida de uma breve descrição de cada componente da mesma. Figura 1 - Exemplo da Arquitetura de um Cluster
  • 3. BackBone ou Rede de Comunicação: Corresponde a forma de comunicação empregada, mais precisamente a arquitetura que a rede irá utilizar, podendo ser uma rede Gigabit Ethernet, Fast Ethernet ou até um barramento externo. Interface de Rede: Correspondem aos adaptadores de rede que estão fisicamente em cada máquina. Devem ter suporte ao Backbone. Protocolo de Comunicações: São as regras que serão utilizadas para que ocorra a comunicação. Nó ou Máquina: Qualquer máquina que faça parte do Cluster. (Zem e Brito, 2006); Middleware: Software executado no Sistema Operacional responsável por “esconder” a arquitetura que é utilizada no Cluster e mostrar ao usuário o sistema como se funcionasse com apenas um computador. Ambiente de Programação Paralela: Ambiente para criação de novas aplicações paralelas que utilizem o poder de processamento de um Cluster. Aplicativos Paralelos: Programas paralelos com granularidade grossa, que são os programas com instruções que demandam de grande processamento. Os programas paralelos serão executados em cada nó do cluster obtendo o paralelismo. Aplicativos Sequenciais: Programas sequenciais que não utilizarão o poder de processamento paralelo de um Cluster. São necessários, pois nem todas as aplicações podem ser paralelizadas e mesmo as aplicações paralelizadas em algum momento serão sequenciais, normalmente no inicio e no final da execução. (Zem e Brito, 2006); 4. Tipos de Clusters Neste título tratarei de três tipos de cluster, cada um dos três tipos de Cluster é projetado para atender a uma necessidade específica, variando a arquitetura de acordo com a aplicação. Também serão tratados mais dois exemplo de Cluster muito comuns, que são: o Cluster Beowulf que se encaixa na arquitetura dos Clusters de Alto Desempenho e o Cluster Mosix que se encaixa no grupo de Clusters de Balanceamento de Carga. 4.1. Cluster de Alto Desempenho Esse tipo de Cluster é utilizado para tarefas que necessitem de grande processamento, ou seja, programas com granularidade grossa. Os clusters de alto desempenho seguem o principio de dividir uma grande tarefa em inúmeras tarefas menores e são utilizados para computação cientifica, análises financeiras, pesquisas climáticas e simulações. (Zem e Brito, 2006; Salles ET AL, 2009); Sua arquitetura é a mesma usada por um cluster Beowulf, conforme nos mostra a Figura 2 abaixo, pois utilizam um nó controlador que envia as tarefas para os demais nós Back- End de forma que a execução seja paralelizada.(Salles ET AL, 2009);
  • 4. Figura 2 - Exemplo de um Cluster de Alto Desempenho 4.1.1. Cluster BeoWulf O Cluster Beowulf é assim chamado devido a um herói inglês que tinha que derrotar um monstro, em se tratando de computação o seu adversário é o alto processamento. O Cluster Beowulf está inserido dentro do grupo dos Clusters de Alto desempenho. (Alecrim 2004; Salles ET AL, 2009); A arquitetura do Beowulf conforme nos mostra a Figura 3 abaixo, é composta por um nó controlador ou front-end, que possui a função de controlar o cluster distribuindo as tarefas de acordo com a ociosidade dos demais nós escravos ou Back-end’s. Os nós escravos por sua vez são responsáveis por executar as tarefas paralelamente e responder ao nó controlador. Eles não necessitam de teclados e monitores e podem ser acessados por acesso remoto (telnet ou ssh). (Salles ET AL, 2009); Figura 3 - Exemplo da Arquitetura de um Cluster Beowulf O nó controlador também funcionará como um gateway, pois permite que se necessário os nós escravos se comuniquem com uma rede externa. (Salles ET AL, 2009); Os Clusters Beowulf geralmente são projetados com hardware desktop, utilizam a tecnologia ethernet para comunicação e o sistema operacional Linux. Outro detalhe importante é que esse tipo de cluster é centralizado, pois o nó controlador vai gerenciar o cluster e os demais nós apenas irão processar de maneira passiva o que nó controlador determinar. (Zem e Brito, 2006); Quanto às aplicações, os cluster Beowulf não são utilizados para aplicações em tempo real, mas sim para processar informações que necessitam de grande processamento como renderização de imagens e efeitos especiais para filmes, podendo alcançar altos valores de gigaflops. (Salles ET AL, 2009);
  • 5. 4.2. Cluster de Alta Disponibilidade Os Clusters de Alta Disponibilidade tem a função de garantir que um serviço esteja ativo em mais de uma máquina. Para que isso seja possível, utilizam replicações dos dados ou serviços. (Pitanga, 2003); Conforme nos mostra a figura 4 abaixo, imagine, por exemplo, um usuário acessando um banco de dados por meio da rede pública, sua requisição é enviada para o servidor ttisrv1, porém esse servidor está em manutenção. Para que o usuário tenha sua solicitação atendida à mesma é redirecionada para o servidor ttisrv2 que possui exatamente as mesmas informações que o servidor ttisrv1 e atenderá a requisição. Mas como o servidor ttisrv2 sabe que o servidor ttisrv1 está em manutenção? Existe uma técnica denominada heartbeat, em que através de uma rede privada, os integrantes do cluster trocam mensagens sinalizando que estão ativos. (Zem e Brito, 2006); Poderiam ser usados inúmeros servidores e não apenas dois, o número de servidores depende da necessidade/importância do serviço. Figura 4 - Exemplo de Cluster de Alta Disponibilidade 4.3. Cluster de Balanceamento de Carga Tem por função distribuir as solicitações entre os nós do Cluster. Diferentemente dos Clusters de alta disponibilidade, os cluster de balanceamento de carga são apenas responsáveis por distribuir as requisições, portanto não possuem “cópias” dos dados em todos os servidores, pois funcionam como redirecionadores de solicitações. (Prado e Silva 2010 apud Batista 2007); São utilizados em serviços de Comércio Eletrônico, Provedores de Internet e sistemas que possuem grandes quantidades de acessos/requisições e necessitam de processamento em tempo real. (Pitanga, 2003); Na figura 5, abaixo, em vermelho temos a estrutura de balanceamento de carga com três servidores integrando o cluster. O usuário envia uma requisição e está passa pelo cluster, então um dos nós do Cluster assume a mesma e por meio de algoritmos de escalonamento a envia para o servidor de dados.
  • 6. Figura 5 - Exemplo de um Cluster de Balanceamento de Carga Os algoritmos de escalonamento mais comuns são: *Least Connections: Servidor com menos requisições assume a solicitação. *Round Robin: Envia a requisição para o próximo servidor seguindo uma ordem circular. *Weighted Fair: Envia requisição para o servidor que possui melhor desempenho. (Pitanga, 2003); Os Clusters de Balanceamento de Carga solucionaram problemas de requisições serem atendidas por dois servidores ao mesmo tempo, pois com o processamento distribuído não há sobrecarga e é definido qual integrante do Cluster irá atender a requisição. (Pitanga, 2003); Os integrantes do Cluster de Balanceamento de Carga, assim como nos Clusters de Alta disponibilidade, devem possuir comunicação para que uma requisição não seja enviada para um servidor que está inativo. (Pitanga, 2003); 4.3.1. Cluster Mosix Um Cluster Mosix (Multicompute Operating system for UNIX) é um exemplo de Cluster de Balanceamento de Carga em que o nó que estiver com menos processamento receberá mais requisições para otimizar o desempenho fazendo com o cluster não fique ocioso. Esse balanceamento de carga é feito de forma dinâmica através de algoritmos que determinam qual nó atenderá a requisição analisando a memória disponível, o uso da CPU e a rede. Nesse tipo de Cluster não existe um nó principal (caso do Cluster Beowulf) o que garante boa escalabilidade, pois pode-se incluir ou retirar um nó do Cluster a qualquer momento. Sua implementação é baseada em Linux e totalmente transparente ao usuário, quanto as aplicações é utilizado em centros de pesquisa e universidades. (Salles ET AL, 2009); 4.4. Cluster de Alta Disponibilidade e Balanceamento de Carga Esse tipo de Cluster combina as características dos Clusters de Alta Disponibilidade e de Balanceamento de carga. São utilizados por sistemas que independente da situação garantem o acesso às informações.
  • 7. A ideia desse tipo de cluster é redirecionar as solicitação dos nós com falhas para os nós reservas e garantir os serviços com maior agilidade, pois com o balanceamento de carga o processamento é distribuído de forma que o servidor que estiver com menos processamento receberá solicitações. (Pitanga, 2003); Na figura 6, abaixo, temos um exemplo de combinação de Cluster de Alta Disponibilidade e Balanceamento de Carga (em Vermelho na Figura 6). Por exemplo, um usuário acessa a internet, então a requisição é enviada ao servidor com que é escolhido por meio de escalonamento e este por sua vez envia a solicitação para um servidor de banco de dados que estiver ativo e disponível. Figura 6 - Exemplo de Cluster de Alta Disponibilidade e Balanceamento de Carga 5. Conclusão Os Clusters correspondem a uma alternativa viável para supercomputação e para formação de sistema distribuídos, pois projetar um cluster não necessita de grande complexidade, em comparação com um supercomputador, devido ao hardware não necessitar ser idêntico para todos os “integrantes” do cluster e computadores comuns serem uma boa opção. Atualmente empresas de médio porte e universidades já possuem clusters para balanceamento de carga e disponibilidade, que são os modelos mais utilizados. Independente da situação, que pode ser, por exemplo, grandes quantidades de acessos em um vestibular para visualização de uma nota, ou uma pane em um servidor de banco de dados, com esses tipos de cluster pode-se garantir a funcionalidade de um sistema de forma distribuída e segura. A grande dificuldade na área de clusters não é com relação à arquitetura física, mas sim a criação de softwares que gerenciem um cluster e que utilizem a capacidade máxima de cada nó da estrutura, pois os programas devem ser paralelizados dinamicamente e o Middleware deve distribuir as tarefas de forma inteligente de acordo com o processamento de cada nó. A área de computação em Clusters corresponde a uma área de fundamental importância, pois está em expansão principalmente para sistemas de grande porte. As grandes empresas têm duas opções atualmente, ou constroem seu próprio cluster, ou contratam um serviço de Cloud Computing (Computação em Nuvem) que curiosamente é formada por Clusters.
  • 8. Cabe aos administradores realizarem um estudo se é mais viável criar uma estrutura de Cluster e contratar um administrador competente ou contratar um serviço de Cloud Computing, de certa forma “abrindo mão” do gerenciamento de suas informações. 6. Referências Prado, C. L. e Silva, J. M. A. (2010). Sobre Clusters de Computadores. Em Aplicação de Cluster Beowulf em Instituições de Ensino, páginas 23-41. Publicado na Internet em Portallivre. Zem, J. L. e Brito, S. H. B. (2006). Sobre Arquitetura de Clusters. Em Monitoramento Distribuído de Clusters e Grids Computacionais utilizando o Ganglia, páginas 1-6. Publicado na I Jornada Científica da Universidade Brasileira de Tecnologia, Recife (PE). Salles, D. ET AL (2009). Sobre Clusters de Alta Performance. Em Cluster HPC – High Performance Computing, 1-5. Publicado na FCT - Faculdade de Ciências e Tecnologia. Pitanga, M. (2003) “Computação em Cluster”, http://www.clubedohardware.com.br/artigos/153, Setembro. Morimoto, C. E. (2002) “Supercomputadores e Clusters”, http://www.hardware.com.br/livros/hardware-manual/supercomputadores- clusters.html, Setembro. Alecrim, E. (2004) “Cluster: Principais Conceitos”, http://www.infowester.com/cluster.php, Setembro.