Você está na página 1de 29

Universidade Federal do Rio de Janeiro Informtica DCC/IM

Arquitetura de Computadores II
Clusters

Gabriel P. Silva

Clusters
Um cluster um tipo de sistema de processamento paralelo que consiste de uma coleo de computadores independentes interconectados atravs de uma rede, trabalhando cooperativamente como um nico e integrado recurso computacional. Um cluster tpico:

Rede mais rpida e prxima do que uma rede local; Protocolos de comunicao de baixa latncia; Conexo mais frouxa que um SMP.
Gabriel P. Silva

Clusters
Se voc tiver dois ou mais computadores, as chances so de que em um determinado instante, pelo menos um deles no esteja fazendo nada. Infelizmente, quando voc realmente precisar de capacidade de processamento, voc vai precisar de toda disponvel e provavelmente no vai ser suficiente. A idia por trs do uso de clusters espalhar essas cargas entre todos os computadores disponveis, usando recursos que esto livres nas outras mquinas.
Gabriel P. Silva

Clusters
A unidade bsica de cluster um nico computador, tambm chamado de n. Os cluster podem aumentar de tamanho pela adio de outras mquinas. O cluster como um todo ser mais poderoso quanto mais rpidos forem os seu computadores individualmente e quanto mais rpida for a rede de interconexo que os liga.

Gabriel P. Silva

Clusters
Alm disso, o sistema operacional de um cluster deve fazer o melhor uso do hardware disponvel em resposta s mudanas de condies da computao. Isto ser um grande desafio se o cluster for composto de diferentes tipos de computador (um cluster heterogneo) , se um grande nmero de mquinas deixar e entrar no cluster aleatoriamente e se as cargas no puderem ser previstas com antecipao.
Gabriel P. Silva

Tipos de Clusters
Basicamente existem 3 tipos de clusters:

Tolerante falhas Balanceamento de Carga Computao de Alto Desempenho

Clusters Tolerantes Falhas consistem


de dois ou mais computadores conectados em rede com um softwate de monitorao (heartbeat) instalado entre os dois.
Gabriel P. Silva

Tipos de Clusters
Assim que uma mquina falhar, as outras mquinas tentam assumir o trabalho. Cluster com Balanceamento de Carga utilizam o conceito de, por exemplo, quando um pedido chega para um servidor Web, o cluster verifica qual a mquina menos carregada e envia o pedido para esta mquina. Na realidade na maioria das vezes um cluster com balanceamento de carga tambm um cluster tolerante falha com a funcionalidade extra de balanceamento de carga e um nmero maior de ns.
Gabriel P. Silva

Tipos de Clusters
A ltima variao de cluster o de alto desempenho: as mquinas so configuradas especialmente para oferecer o maior desempenho possvel. Estes tipos de clusters tambm tem algumas funcionalidades para balanceamento de carga, j que eles tentam espalhar os processos por mquinas diferentes para obter maior desempenho. Mas o que ocorre normalmente que um processo paralelizado e que as rotinas (ou threads) que podem executar em paralelo em mquinas diferentes.
Gabriel P. Silva

Clusters
Os supercomputadores tradicionais foram construdos por um pequeno nmero de fabricantes, com um alto oramento destinado ao projeto. Muitas universidades no podem arcar com os custos de um supercomputador, ento o uso de clusters se torna um alternativa interessante. Com o uso de hardware mais barato e disponvel no mercado, sistemas com desempenho similar aos supercomputadores podem ser construdos.
Gabriel P. Silva

Clusters
O desempenho dos componentes dos PCs e estaes de trabalho prximo do desempenho daqueles usados nos supercomputadores:

Microprocessadores Redes de Interconexo Sistemas Operacionais Ambientes de Programao Aplicaes

A taxa de melhoria de desempenho dos componentes ao longo do tempo muito alta.


Gabriel P. Silva

Evoluo

Gabriel P. Silva

Exemplo

Gabriel P. Silva

Hardware
Plataformas

PCs (Intel x86) Estaes de Trabalho (Alpha) SMPs Clusters de Clusters

Redes de Interconexo

Ethernet (10Mbps)/Fast Ethernet (100Mbps) Gigabit Ethernet (1Gbps) SCI (Dolphin MPI 12 us latncia) ATM Myrinet (1,2 Gbps) Digital Memory Channel Gabriel P. Silva FDDI

Cluster SMP c/ 8 processadores

Gabriel P. Silva

Cluster SMP c/ 2 processadores

Gabriel P. Silva

Cluster baseado em Monoprocessadores

Gabriel P. Silva

Software de Comunicao
As facilidades dos S.O.s tradicionais tambm suportada (mas so pesadas devido ao protocolo de processamento):

Soquetes (TCP/IP), Pipes, etc.

Protocolos mais leves so mais adequados (Comunicao no nvel de usurio):


Active Messages (AM) (Berkeley) Fast Messages (Illinois) U-net (Cornell) XTP (Virginia) Virtual Interface Architecture (padro Gabriel P. Silva industrial)

Arquitetura de um Cluster

Gabriel P. Silva

Maiores Desafios
Escalabilidade Fsica (fsica e de aplicao) Disponibilidade (gerenciamento de falhas) Imagem nica do Sistema (parece ao usurio como um nico sistema) Comunicao Rpida (redes e protocolos de comunicao)
Gabriel P. Silva

Maiores Desafios
Balanceamento de Carga (CPU, Rede, Memria, Discos) Segurana e Encriptao (clusters de clusters) Gerenciabilidade (admin. e controle) Programabilidade (API simples) Aplicabilidade (aplicaes voltadas para o cluster)
Gabriel P. Silva

Cluster Middleware
Reside ente o S.O. e aplicaes e oferece infraestrutura para suportar:

Imagem nica do Sistema (SSI) Disponibilidade do Sistema (SA)

O SSI faz uma coleo de mquinas parecer como um recurso nico (viso globalizadas dos recursos do sistema). O SA so pontos de verificao e migrao de processos.
Gabriel P. Silva

Cluster Middleware
Sistemas Operacionais:

Solaris MC Unixware MOSIX Sistemas em Execuo (software DSM, PFS, etc.) Gerenciamento de Recursos e Despacho (RMS): CODINE, CONDOR, LSF, PBS, NQS, etc
Gabriel P. Silva

Sistemas em Execuo

Ambientes de Programao
Threads (PCs, SMPs, NOW..)

POSIX Threads Java Threads http://www-unix.mcs.anl.gov/mpi/ http://www.epm.ornl.gov/pvm

MPI

PVM

Software DSMs (Shmem)

Gabriel P. Silva

Ferramentas
Compiladores

C/C++/Java/

Depuradores Ferramentas de Anlise de Desempenho Ferramentas de Visualizao

Gabriel P. Silva

Aplicaes
Podem ser seqenciais, quando se beneficiam do balanceamento de carga. Podem ser paralelas /distribudas, quando se utilizam dos ambientes de programao existentes. Data-mining Servidores Web Grandes Desafios:

Previso de tempo Qumica Quntica Modelagem de Biologia Molecular Anlise de Engenharia (CAD/CAM) Modelagem de Oceanos Gabriel P. Silva

OpenMosix
Pacote de software que transforma computadores em rede rodando Linux em um cluster. Tipo: Cluster de Alto Desempenho Facilidades:

No h necessidade de recompilao ou integrao com outras bibliotecas. Um novo n pode ser adicionado enquanto o cluster est funcionando.

Cria uma plataforma confivel, rpida e de baixo custo usada como um supercomputador.
Gabriel P. Silva

OpenMosix
Extenso ao ncleo (kernel) do Linux. Cluster com Imagem nica do Sistema (SSI)

Algoritmo adaptativo de balanceamento de carga. Migrao dinmica de processo para balanceamento de carga. Sistema de Arquivos em Cluster. Totalmente transparente para usurios e aplicaes.

Licena de Pblica Geral (GPL)


Gabriel P. Silva

O que OpenMosix
O OpenMosix um pacote de software que transforma computadores ligados em rede rodando Linux/GNU em um cluster. Ele balanceia automaticamente a carga entre diferentes ns do cluster e ns podem entrar ou deixar o cluster sem interrupo do servio. A carga espalhada entre ns diferentes do cluster de acordo com sua velocidade de processamento e de interconexo. Como o OpenMosix uma parte do ncleo e mantm total compatibilidade com o Linux, um programa de usurio ir funcionar como antes, sem nenhuma modificao.
Gabriel P. Silva

O que OpenMosix
O usurio mais distrado no vai perceber a diferena entre o Linux e o sistema OpenMosix. Para ele o todo o cluster ir funcionar com um nico (e rpido) sistema Linux. O OpenMosix um remendo para o ncleo do linux que prov total compatibilidade com as plataformas Linux para arquitetura Intel 32 bits. O algoritmo interno de balanceamento de carga transparentemente migra os processos para os outros ns do cluster.

Gabriel P. Silva

O que OpenMosix
A vantagem um melhor balanceamento de carga entre os ns. Esta facilidade de migrao transparente de processos faz o cluster parecer com um GRANDE sistema SMP com tanto processadores quanto forem os ns disponveis no cluster. O OpenMosix tambm prov um poderoso sistema de arquivos otimizado (oMFS) que, ao contrrio do NFS, prov consistncia de cache, link e tempo.
Gabriel P. Silva

Cluster SSI
Mesma escalabilidade e overhead para 2 e para 200 ns. Usurios no enxergam os ns individualmente. Programas no precisam ser modificados para obter vantagem do cluster (ao contrrio do PVM, MPI, etc.) Sempre com balanceamento de carga automtico. Fcil de gerenciar.
Gabriel P. Silva

Tecnologia OpenMosix
Migrao preemptiva de processos (PPM) transparente

Processos podem migrar enquanto esto executando:


Contexto de Usurio (remoto) Contexto de Sistema (deputado)

Compartilhamento Adaptativo de Recursos (balanceamento de carga)

Migrao rpida, apenas a pilha do processador, registradores e apontador de instrues so efetivamente migrados. Paginao sob demanda, apenas as pginas que sofrem falha so enviadas atravs da Gabriel P. Silva rede.

Tecnologia OpenMosix

Memory ushering, migra processos de um n que est prestes a ficar sem memria para prevenir o swap das pginas. Parallel File I/O, traz o processo para o servidor, faz o direct file I/O dos processos migrados. Direct File System Access (DFSA)

Acesso aos Arquivos

No h nenhuma relao master/slave.

Gabriel P. Silva

Como o OpenMosix funciona?


Processo Local Migrao de Processo Processo em Migrao Espao Usurio Rede Camada de Ligao Kernel Linux deputado Espao Usurio Remoto Camada de Ligao Kernel Linux

N 1
Gabriel P. Silva

N 2

Arquitetura Mquina de Busca


Repositrio de Pginas Anlise dos Links Indexador Estrutura Crawlers Controle dos Crawlers Mquina Questo
Gabriel P. Silva
Questo?

Armazenagem de Documentos

Ranking

Extrao Snippet
Resultados

Texto

Arquitetura Servidor
Google Google Web Web Server Server

Spell checker Ad server

Index server Index server Index server Index server Mais de 15,000 PCs comerciais

Document server Document server Document server Document server Document server

Barroso, Barroso, Dean, Hlzle, Hlzle, Web Web Search For A Planet: The Google Cluster Architecture, , IEEE Architecture April-March 2003 Gabriel P. Silva Micro, April-

Vida de uma Busca no


2. 1. O usurio entra com uma busca no formulrio enviado pelo Servidor Web do Google. 3. A correlao enviada para o cluster de Servidor de Documentos, o qual retira os documentos para gerar os resumos e cpias que sero cacheadas. O servidor web envia a busca para o cluster de Servidor de Indexao, que correlaciona a pergunta aos documentos. 4. A lista, com os resumos, mostrada pelo Servidor Web para o usurio, ordenada (usando uma frmula secreta envolvendo pesos para as pginas).

Gabriel P. Silva

Projeto
A maior preocupao no projeto da arquitetura do Google foi utilizar computadores com uma excelente relao custo/desempenho. Isto no significa, necessariamente, o computador com processador mais avanado para um dado momento. A confiabilidade provida a nvel de software e no no hardware. O projeto procurou paralelizar os pedidos individuais como forma de obter o melhor throughput agregado.
Gabriel P. Silva

Projeto
Ao fazer uma pergunta para o Google, o navegador do usurio deve primeiro fazer a converso do DNS para um endereo IP em particular. Para fazer frente quantidade de trfico, o servio Google consiste de diversos clusters espalhados geograficamente. Um sistema de balanceamento escolhe um cluster levando em conta a sua proximidade geogrfica do usurio com cada cluster. Um balanceador de carga em cada cluster monitora a disponibilidade do servidores e realiza balaceamento local de carga.
Gabriel P. Silva

Projeto
Uma execuo de uma resposta se d em duas fases:

Os servidores de ndice consultam uma tabela invertida que mapeia cada palavra da pergunta para uma lista de documentos correspondentes. Os servidores de ndice determinam um conjunto de documentos relevantes pela interseo das listas individuais de cada palavra da pergunta e computam um ndice de relevncia para cada documento.
Gabriel P. Silva

Projeto
A busca dos ndices paralelizada dividindo-o em partes chamadas index shards, cada uma contendo um subconjunto de documentos do ndice completo. Existem vrias cpias de cada shard espalhadas pelo cluster, com um conjunto especfico de mquinas servindo a cada uma delas. Cada pedido escolhe uma mquina dentro de um conjunto usando um balanceador de carga intermedirio. Em outras palavras, cada pedido vai para uma mquina (ou um subconjunto) atribudo a cada shard.
Gabriel P. Silva

Servidores de Indexao
Shard: indexao de um subconsubconjunto da coleo. coleo.
Servidor Servidor Web Web Google Google

Servidor Servidor de de Indexao Indexao 1 1

Servidor Servidor de de Indexao Indexao N N

Balanc. Balanc. de de Carga Carga

Balanc. Balanc. De De Carga Carga

Balanc. Balanc. de de Carga Carga

PC

PC

PC

PC

PC

PC

PC

PC

PC

Cluster servindo shard 1

Cluster servindo shard 2


Gabriel P. Silva

Cluster servindo shard n

Projeto
O resultado final da primeira fase de busca uma lista ordenada de identificadores de documentos (docids). A segunda fase da computao envolve pegar a lista de docids e computar a URL e o ttulo real de cada um desses documentos. Os servidores de documentos (docservers) realizam esta fase da computao. A estratgia utilizada tambm a de dividir o processamento em diversas etapas.

Gabriel P. Silva

Projeto
Distribuindo aleatoriamente os documentos em shards menores. Tendo multiplas cpias de servidores responsveis para cada shard. Roteando pedidos atravs de um balanceador de carga. O cluster de servidor de documentos deve ter acesso on-line e de baixa latncia a uma cpia com o contedo de toda a Web.

Gabriel P. Silva

Projeto
Em realidade existem diversas cpias do contedo da Web nos servidores Google por uma questo de desempenho e disponibilidade. Em todo o processo o mximo de paralelismo explorado pela subdiviso das tarefas atravs de diversos servidores do cluster. No final do processo, o servidor GWS monta a pgina HTML que visualizada pelo usurio.

Gabriel P. Silva

Princpos de Projeto
Confiabilidade por software No feito o uso de fontes de alimentao redundantes, nem de RAIDs, nem de componentes de alta qualidade. Uso de replicao para melhor throughput e disponibilidade Cada um dos servios replicado em muitas mquinas Preo/desempenho acima do desempenho de pico So compradas geraes de CPU que no momento oferecem o melhor desempenho por unidade de preo, ao invs do maior desempenho absoluto. PCs de mercado reduzem o custo da computao Como resultado podem ser utilizados mais recursos computacionais para Gabriel P. Silva cada pedido.

Configurao dos Racks


Cada rack consiste de 40 a 80 servidores X86 montados em ambos os lados de um rack personalizado. Em dez/2002 havia diversas geraes de processadores em servio, desde Celerons de 500 Mhz at servidores duais com Pentium III de 1.4 Ghz. Cada servidor contm um ou mais discos IDE de 80 Gb e 2 GB de memria. Os servidores em ambos os lados do rack se interconectam via um switch ethernet de 100 Mbits, que se conecta via um ou dois links a um switch gigabit que interconecta todos os racks entre si.
Gabriel P. Silva

Arquitetura

Gabriel P. Silva

Arquitetura

Gabriel P. Silva

Arquitetura

Gabriel P. Silva

Configurao dos Racks


O critrio final para a seleo o custo por pedido, expressado pela soma de capital dispendido mais os custos de operao dividido pelo desempenho. O custo do equipamento deve ser amortizado em dois ou trs, pois ao final deste perodo ele j estar obsoleto. Por exemplo, o custo total de um rack era de U$ 280.000,00 em dez/2002. Isto de traduz em custo mensal de capital de U$ 7.700 por rack ao longo de trs anos. Por conta disto, o uso de placas mes com 4 processadores foi descartado, assim com discos SCSI, pois este custo se elevaria demasiadamente.Gabriel P. Silva

Consumo dos Racks


Um rack com 80 servidores consome cerca de 10 KW, ou 120 W por servidor. Considerando que um rack ocupa 2,3 m2, resulta em uma densidade de potncia de 4,3 KW/m2. Com o uso de servidores de alto desempenho este valor pode subir para cerca de 7,6 KW/m2. Mas o custo de energia relativamente barato, cerca de U$ 1500,00/ms, bem menor do que o custo de depreciao de U$ 7.700,00 /ms.
Gabriel P. Silva

Dados sobre o
3 bilhes de pginas da Web 22 milhes de arquivos PDF 700 milhes de mensagens de grupos 425 milhes de imagens indexadas Serve + de 150 milhes pesquisas/dia. http://labs.google.com/os

Gabriel P. Silva

Curiosidades
No ano de 2000 o Google serviu 1000 pedidos por segundo. O Google busca a web inteira uma vez por ms. Em dezembro de 2000 (quatro anos atrs) Google usava 6000 processadores e 12000 discos totalizando 1 Petabyte de dados, distribudos em 3 centros de servios nos EUA. As buscas tm crescido a uma taxa de 90% a cada ano no Google. Estima-se hoje que o Google tenha cerca de 100.000 servidores distribudos por uma dzia de centros em todo o mundo.
Gabriel P. Silva

Curiosidades
Software o elo fraco a maior parte das fontes de falha so de software. Cerca de 20 mquinas devem ser reiniciadas por dia. Cerca de 80 mquinas quebram por dia. A reiniciao deve ser feita manualmente 2-3% dos PCs devem ser substitudos todo ano. Discos e Memria respondem por 95% das falhas.
Gabriel P. Silva

Curiosidades
http://www.google.com/press/zeitgeist.html
Lnguas utilizadas no Google (Maro 2001 Janeiro 2003) Pases de Origem (Outubro 2001)

Gabriel P. Silva

Curiosidades

(abril/2004)

Gabriel P. Silva

Concluses
Cluster hoje so uma realidade. Oferecem crescimento incremental e cabem no oramento. Novas tendncias tecnolgicas em hardware e software permitiro aos clusters parecer cada vez mais com um nico sistema. Supercomputadores baseados em clusters podero ser uma soluo computacional para pases como o Brasil.
Gabriel P. Silva

Você também pode gostar