Computação em cluster



Documentos relacionados
05/08/2013. Sistemas Distribuídos Cluster. Sistemas Distribuídos Cluster. Agenda. Introdução

SEGURANÇA DE REDE DE COMPUTADORES E SEGURANÇA E AUDITORIA DE SISTEMAS

Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters

Supercomputadores dominavam o mercado

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Entendendo como funciona o NAT

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

SISTEMAS DISTRIBUÍDOS

XDOC. Solução otimizada para armazenamento e recuperação de documentos

PARANÁ GOVERNO DO ESTADO

1

GESTÃO DE SISTEMAS OPERACIONAIS II

Cluster HPC High Performance Computing.

Administração de Sistemas de Informação Gerenciais

Tipos de Sistemas Distribuídos (Cluster e Grid)

Estudo e implementação de redundância em serviços da rede do IME

EAGLE TECNOLOGIA E DESIGN CRIAÇÃO DE SERVIDOR CLONE APCEF/RS

Servidores Virtuais. Um servidor à medida da sua empresa, sem investimento nem custos de manutenção.

Administração de Sistemas de Armazenamento Linux. Rodrigo Caetano Filgueira

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Arquitetura dos Sistemas de Informação Distribuídos

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

Sistemas Distribuídos Aula 2

Arquitetura de Rede de Computadores

Soluções Completas. Fundada em 1991, a.compos é pioneira na área de soluções em tecnologia, atuando nas áreas de:

Introdução a Computação

Tipos de Clusters. Introdução. Introdução 21/03/12

Sistemas Operacionais. Prof. André Y. Kusumoto

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Novidades no Q-flow 3.02

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

Infraestrutura: devo usar a nuvem? Prof. Artur Clayton Jovanelli

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

SERVICE DESK MANAGER SDM. Manual do Sistema - DPOI

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

Sistemas Cliente-Servidor

Projeto de Desenvolvimento Institucional de. Gestão Documental

Engenharia de Requisitos Estudo de Caso

Projeto Você pede, eu registro.

UFF-Fundamentos de Sistemas Multimídia. Redes de Distribuição de Conteúdo (CDN)

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes

DELEGAÇÃO REGIONAL DO ALENTEJO CENTRO DE FORMAÇÃO PROFISSIONAL DE ÉVORA REFLEXÃO 3

Gerência de Redes. Arquitetura de Gerenciamento.

Sistema de Controle de Solicitação de Desenvolvimento

Balanceamento de carga em GNU/Linux

TRABALHO COM GRANDES MONTAGENS

Catálogo de Serviços de Tecnologia da Informação. Versão 0.2

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Universidade Federal de Goiás UFG Campus Catalão CAC Departamento de Engenharia de Produção. Sistemas ERP. PCP 3 - Professor Muris Lage Junior

Acordo de Nível de Serviço (SLA)

REGISTRANDO DOMÍNIOS, COMO PUBLICAR UM SITE? DIRECIONANDO O DNS. Professor Carlos Muniz

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE INCIDENTE

MINICURSO WINDOWS SERVER 2008 UTILIZANDO O VMWARE PLAYER

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Desenvolvendo Websites com PHP

SISTEMA DE MONITORAMENTO DE CONDIÇÕES CLIMÁTICAS

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Profs. Deja e Andrei

Registro e Acompanhamento de Chamados

Escrito por Daniel Donda Ter, 17 de Fevereiro de :32 - Última atualização Sáb, 03 de Julho de :34

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

Objetivos: i) Verificar o impacto de loops em redes locais ii) Configurar o protocolo STP para remover loops da rede

Resumo. Introdução Cluster Cluster Beowulf Curiosidades Conclução

Sistemas Operacionais

Alta Disponibilidade na IPBRICK

Servidor Proxy armazenamento em cache.

Guia de Conectividade Worldspan Go Res! A V A N Ç A D O

Sistemas Distribuídos

Gerência e Administração de Redes

Escolha seu serviço Cloud O melhor do Cloud

CONSULTORIA E SERVIÇOS DE INFORMÁTICA

A partir do XMon é possível:

Universidade Paulista

APOSTILA DE REDES DE COMPUTADORES PARTE - I I

A consolidação de servidores traz uma séria de vantagens, como por exemplo:

Computação nas Nuvens

Relatorio do trabalho pratico 2

ADMINISTRAÇÃO DE SISTEMA OPERACIONAL DE REDE (AULA 4)

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA

Comparação SDs X Scs

Introdução ao Active Directory AD

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Fundamentos de Sistemas Operacionais

O que é Grid Computing

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

O QUE VOCÊ PRECISA SABER SOBRE DOMÍNIOS

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

Sistemas Operacionais Introdução. Professora: Michelle Nery

Anexo IV PLANILHA DESCRITIVA DE ESPECIFICAÇÕES TÉCNICAS

Edital 012/PROAD/SGP/2012

Transcrição:

Computação em cluster Por Marcos Pitanga em 30 de maio de 2003 Introdução Este artigo tem por finalidade dar ao leitor uma visão mais integrada do que vem a ser a computação em cluster e como esta a cada dia vem crescendo no mercado mundial, espero que seja do seu inteiro agrado e que ajude na percepção da importância desta tecnologia. O que é um Cluster? 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. Tipos de Clusters Alta Disponibilidade (High Availability (HA) and Failover), estes 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. Balanceamento de carga (Load Balancing), 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). Combinação HA & Load Balancing, como o próprio nome diz combina as características dos dois tipos de cluster, 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 ou Processamento Paralelo, 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. Razões para utilização de um Cluster 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. 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. High-Availability (HA) ou Failover Clusters Figura 1: Cluster de Alta Disponibilidade. 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. 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. 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. Cluster de Balanceamento de Carga

O balanceamento de carga entre servidores faz parte de uma solução abrangente em uma explosiva e crescente utilização 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 comércio eletrônico. Mas não se pode ficar com as idéias presas de que isso é só para provedores, devemos aproveitar as suas características 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 requisições provenientes dos clientes sejam distribuídas de maneira equilibrada entre os nodos. Os sistemas não trabalham junto em um único processo, mas redirecionando as requisições de forma independente assim que chegam baseados em um escalonador e um algoritmo próprio. Este tipo de cluster é especialmente utilizado em serviços de comércio eletrônico e provedores de internet que necessitam de resolver diferenças de carga provenientes de múltiplas requisições de entrada em tempo real. Adicionalmente, para que um cluster seja escalável, tem que assegurar que cada servidor seja utilizado completamente. Quando não fazemos o balanceamento de carga entre servidores que possuem a mesma capacidade de resposta a um cliente, começamos a ter problemas, pois um ou mais servidores podem responder a requisição feita e a comunicação fica prejudicada. Por isso devemos colocar o elemento que fará o balanceamento entre os servidores e os usuários e configurá-lo para isso, entretanto podemos colocar múltiplos servidores de um lado que, para os clientes, eles parecerão ser somente um endereço. Um exemplo clássico seria o Linux Virtual Server, ou simplesmente preparar um load balancer de DNS. O elemento de balanceamento terá um endereço, por onde os clientes tentarão fazer contato, chamado de Virtual Server (VS), que redirecionará o tráfego 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 implementação em um ambiente de sucesso com balanceamento de carga nos servidores: O algoritmo usado para o balanceamento de carga, levando-se em consideração como é feito o balanceamento entre os servidores e quando um cliente fizer uma requisição para o endereço virtual (VS), todo o processo de escolha do servidor e resposta do servidor deve ocorrer de modo transparente e imperceptível para o usuário como se não existisse o balanceamento. Criar um método usado para checar se os servidores estão vivos e funcionando, vital para que a comunicação não seja redirecionada para um servidor que acabou de ter uma falha (keepalive). Um método usado para se ter certeza que um cliente acessar o mesmo servidor quando quiser. Balanceamento de carga é mais que um simples redirecionamento do tráfego dos clientes para outros servidores. Para implementação correta, o equipamento que fará o balanceamento precisa ter características como verificação permanente da comunicação, checagem dos servidores e redundância. Todos esses itens são necessários para que suporte a escalabilidade do volume de tráfego das redes sem vir a se tornar um gargalo ou um ponto único de falha. Os algoritmos para balanceamento são um dos fatores de maior importância neste contexto, vamos então explanar três métodos básicos: Least Connections Esta técnica redireciona as requisições para o servidor baseado no menor número de requisições/conexões. Por exemplo, se o servidor 1 está controlando atualmente 50 requisições/conexões, e o servidor 2 controla 25 requisições/conexões, a próxima requisição/conexão será automaticamente direcionado para o servidor 2, desde que atualmente o servidor tenha um número menor de requisições/conexões ativas. Round Robin Este método usa a técnica de sempre direcionar as requisições para o próximo servidor disponível de uma forma circular. Por exemplo, as conexões de entrada são dirigidas para o servidor 1, depois servidor 2 e finalmente servidor 3 e depois retorna ao servidor 1.

Weighted Fair Esta técnica dirige os pedidos para os servidores baseados na carga de requisições de cada um e na capacidade de resposta dos mesmos (performance) Por exemplo, se o servidor 1 é quatro vezes mais rápido 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 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 caracteristicas desta plataforma: Redirecionamento dos pedidos aos nós falhas para os nós reservas; Melhoria na qualidade dos níveis de serviço para as aplicações típicas de rede; Transparente integração para as aplicações stand-alone e não- cluster juntos em uma única rede virtual; Disponibilizar uma arquitetura de framework altamente escalável. Figura 2: Solução HA + LB. Beowulf Cluster

O que é um 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). A verdade é que o mercado de PCs é maior que o mercado de workstations, permitindo que o preço de um PC decresça, enquanto sua performance aumenta substancialmente, sobrepondo, em muitos casos, a performance de estações 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 construírem sistemas computacionais poderosos e economicamente viáveis. Claro que a evolução constante do desempenho dos processadores tem colaborado e muito na aproximação entre PCs e Workstations, a diminuição do custos das tecnologias de rede e dos próprios 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 característica 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 estão instaladas as diversas ferramentas que viabilizam o processamento paralelo, como é o caso das API s MPI e PVM. Isto se permitiu fazer alterações no sistema operacional Linux para dotá-lo de novas características que facilitaram a implementação para aplicações paralelas. Como o Beowulf trabalha? O sistema é dividido em um nodo controlador denominado front-end (particularmente denomino de nó mestre), cuja função é controlar o cluster, monitorando e distribuindo as tarefas, atua como servidor de arquivos e executa o elo entre os usuários e o cluster. Grandes sistemas em cluster podem distribuir diversos servidores de arquivos, nó de gerencia pela rede para não sobrecarregar o sistema. Os demais nós são conhecidos como clientes ou backends (bem eu denomino nós escravos), e são exclusivamente dedicados para processamento das tarefas enviadas pelo nó controlador, e não existe a necessidade de teclados e monitores, e eventualmente até sem a utilização de discos rígidos (boot remoto), e podem ser acessadas via login remoto (telnet ou ssh). Figura 3: Cluster Beowulf. O Beowulf é um projeto bem sucedido. A opção feita por seus criadores de usar hardware popular e software aberto tornou-o fácil de se replicar e modificar, a prova disso é a grande quantidade de sistemas construídos à moda Beowulf em diversas universidades, empresas americanas e européias e até residenciais. Mais do que um experimento foi obtido um sistema de uso prático que continua sendo aperfeiçoado constantemente. Originalmente em http://www.clubedohardware.com.br/artigos/computacao-em-cluster/153

1996-2013, Clube do Hardware. Todos os direitos reservados. É expressam ente proibida a reprodução total ou parcial do conteúdo deste site e dos textos disponíveis, seja através de mídia eletrônica, impressa, ou qualquer outra forma de distribuição. Os infratores serão indiciados e punidos com base na lei nº 9.610 de 19/02/1998. Não nos responsabilizamos por danos materiais e/ou morais de qualquer espécie promovidos pelo uso das informações contidas no Clube do Hardware.