Tipos de Sistemas Distribuídos (Cluster e Grid) Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI – Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Sistemas Distribuídos – 8º Período Objetivos • Nesta aula iremos apresentar os tipos de Sistemas Distribuídos. Serão abordados os tipos de sistemas em Cluster, Grid e Pervasivos. Ao final desta apresentação o aluno poderá entender e discutir sobre os variados tipos de sistemas distribuídos encontrados no dia a dia. Sistemas Distribuídos – 8º Período Plano de Aula • Tipos de Sistemas Distribuídos: Computação – Sistemas em Cluster – Sistemas em Grid – Sistemas Pervarsivos Sistemas Distribuídos – 8º Período Sistema de Computação: Cluster • Um cluster é um conjunto de computadores independentes conectados por rede que formam um sistema único através do uso de software. – Um cluster, ou aglomerado de computadores, é formado por um conjunto de computadores, que utiliza um tipo especial de sistema operacional classificado como sistema distribuído; – Muitas vezes é construído a partir de computadores convencionais (personal computers), os quais são ligados em rede e comunicam-se através do sistema, trabalhando como se fossem uma única máquina de grande porte; – Há diversos tipos de cluster. Um tipo famoso é o cluster da classe Beowulf, constituído por diversos nós escravos gerenciados por um só computador. Sistemas Distribuídos – 8º Período Sistema de Computação: Cluster • Por que um Cluster é interessante ? – Supercomputadores, qual o valor de um ? (Link) – Renderização: é o processo pelo qual pode-se obter o produto final de um processamento digital qualquer (modelagem 2D e 3D), vídeo e áudio; – O processo de tratamento digital de imagens e sons consome muitos recursos dos processadores, e pode tornar-se pesado de forma que sua realização em tempo real fica inviável. Sistemas Distribuídos – 8º Período Sistema de Computação: Cluster • Um pouco da História dos Cluster – No final de 1993, Donald Becker e Thomas Sterling iniciaram um esboço de um sistema de processamento distribuído construído a partir de hardware convencional como uma medida de combate aos custos dos supercomputadores. – No início de 1994, trabalhando no CESDIS, com o patrocínio do projeto HTPCC/ESS, criaram o primeiro cluster desse tipo, o projeto Beowulf. – O protótipo inicial era um cluster de 16 processadores DX4 ligados por dois canais Ethernet acoplados. – A máquina foi um sucesso instantâneo e esta ideia rapidamente se espalhou pelos meios acadêmicos, pela NASA e por outras comunidades de pesquisa. Sistemas Distribuídos – 8º Período Sistema de Computação: Cluster • Tipos de Cluster – Cluster de Alto Desempenho: Também conhecido como cluster de alta performance, ele funciona permitindo que ocorra uma grande carga de processamento com um volume alto de gigaflops em computadores comuns e utilizando sistema operacional; – Cluster de Alta Disponibilidade: São clusters os quais seus sistemas conseguem permanecer ativos por um longo período de tempo e em plena condição de uso. Estes conseguem detectar erros se protegendo de possíveis falhas; – Cluster para Balanceamento de Carga: Esse tipo de cluster tem como função controlar a distribuição equilibrada do processamento. Requer um monitoramento constante na sua comunicação e em seus mecanismos de redundância; Sistemas Distribuídos – 8º Período Sistema de Computação: Cluster • O Cluster Beowulf – Cluster Beowulf são clusters de desempenho escaláveis, baseados numa infraestrutura de hardware comum, rede privada e software 'open source' (Linux); – O 'hardware comum' pode ser qualquer tipo de computador, significando que não é necessário usar equipamentos próprios para cluster, bastando utilizar equipamentos comuns a redes tradicionais e PCs; – Para Clusters Beowulf, existe um servidor responsável por controlar todo o cluster, principalmente quanto à distribuição de tarefas e processamento; – Como utiliza computadores comuns, o desempenho pode melhorar de acordo com as máquinas (nós) que o desenvolvedor acrescentar; Sistemas Distribuídos – 8º Período Sistema de Computação: Cluster • O Cluster Beowulf – O processamento é feito paralelamente; – Ou seja, a tarefa a ser processada é separada em partes independentes, distribuídas nos vários nós que estão na estrutura do cluster, nos quais as informações são processadas pela máquina que é designada como servidor do sistema. – Resumindo: O cluster Beowolf é um cluster baseado em Linux, em que cada cluster consiste em um conjunto de nós de computação controlados e acessados por meio de um único nó mestre. As tarefas típicas do mestre são manipular a alocação de nós a um determinado programa paralelo, manter uma fila de jobs apresentados e proporcionar uma interface para os usuários do sistema. Sistemas Distribuídos – 8º Período Sistema de Computação: Cluster • O Cluster Beowulf Um cluster Beowulf é um cluster voltado para desempenho,normalmente utilizado para processamento científico, ou seja,processamento em larga escala. Sistemas Distribuídos – 8º Período Sistema de Computação: Grade • Um pouco da história da Computação em Grade – Inspirados pelo sistema de energia elétrica, no meio da década de 90, os cientistas da computação começaram a explorar o projeto e o desenvolvimento de uma nova infraestrutura computacional pelo acoplamento de recursos distribuídos geograficamente como bases de dados, servidores de armazenamento, redes de alta velocidade, supercomputadores e aglomerados para solucionar problemas de grande escala, levando ao termo popularmente conhecido como Computação em Grade. – No uso da energia elétrica, você usuário não quer saber das complexidades inerentes (origem da energia, malhas de linhas de transmissão e distribuição), simplesmente ligamos o aparelho em uma tomada. Sistemas Distribuídos – 8º Período Sistema de Computação: Grade • Um pouco da história da Computação em Grade – Uma grade computacional, portanto, seria uma rede na qual o individuo se conecta para obter poder computacional: – Ciclos de processador; – Armazenamento; – Software; – Periféricos, etc. Sistemas Distribuídos – 8º Período Sistema de Computação: Grade • Um pouco da história da Computação em Grade Sistemas Distribuídos – 8º Período Sistema de Computação: Grade • A Formação da Computação em Grade – Processamento Paralelo: A pesquisa em processamento paralelo sempre procurou extrair o máximo de desempenho computacional por meio da criação de máquinas dedicadas com múltiplos processadores, redes especiais de alta velocidade, memórias compartilhadas e processamento vetorial. A exemplo temos: NEC Earth Simulator e o IBM Blue Gene; – Sistemas Distribuídos: preocupou-se mais com aspectos ligados à comunicação, heterogeneidade e compartilhamento de recursos computacionais, principalmente informações por meio de arquivos. Com a Internet e a Web, os sistemas distribuídos atingiram uma escala global propiciando a criação do comércio eletrônico, redes de troca de arquivos, etc. Sistemas Distribuídos – 8º Período Sistema de Computação: Grade • A Formação da Computação em Grade – Como resultado da união destas duas importantes áreas da computação (Processamento Paralelo e os Sistemas Distribuídos), surgiu o conceito de grade computacional; – Portanto, as grades computacionais estão preocupadas em agregar supercomputadores distribuídos geograficamente para o processamento de grandes massas de dados, enquanto redes P2P procuram compartilhar arquivos distribuídos geograficamente. Sistemas Distribuídos – 8º Período Sistema de Computação: Grade • Características – Alto grau de heterogeneidade: nenhuma premissa é adotada em relação a hardware, sistemas operacionais, redes, domínios administrativos, políticas de segurança e assim por diante; – Outra característica fundamental em um sistema de computação em grade é que recursos de diferentes organizações são reunidos para permitir a colaboração de um grupo de pessoas ou instituições (organização virtual). Sistemas Distribuídos – 8º Período Sistema de Computação: Grade • Arquitetura Grid Applications: as aplicações em grade são tipicamente desenvolvidas usando ambientes de programação de grade, serviços de descoberta, interfaces e escalonamento de serviços providos por um middleware de nível de usuário. Sistemas Distribuídos – 8º Período Sistema de Computação: Grade • Arquitetura User-Level Grid: esta camada é composta de middlewares que utilizam interfaces que fornecem abstrações e serviços de alto nível. Isto inclui ambientes de desenvolvimento de aplicações, ferramentas de programação e resource brokers para gerenciamento de recursos e escalonamento de aplicações. Sistemas Distribuídos – 8º Período Sistema de Computação: Grade • Arquitetura Core Grid: esta camada é composta de middlewares que oferecem serviços tal como gerenciamento remoto de processos, co-alocação de recursos, acesso de armazenamento, registro e descoberta de informações, segurança e aspectos de QoS. Esta camada abstraem a complexidade e heterogeneidade da Grid Fabric; Sistemas Distribuídos – 8º Período Sistema de Computação: Grade • Arquitetura Grid Fabric: esta camada consiste de recursos distribuídos tal como computadores, redes de interconexão, dispositivos de armazenamento e instrumentos científicos. Os recursos computacionais representam múltiplas arquiteturas tal como aglomerados, supercomputadores, servidores e PCs que executam diferentes sistemas operacionais. Sistemas Distribuídos – 8º Período Sistema de Computação: Grade • Arquitetura Grid Fabric: Os instrumentos científicos, tal como telescópios e redes de sensores, provém dados em tempo real que podem ser transmitidos diretamente a sites de computação ou armazenadas em uma base de dados. Sistemas Distribuídos – 8º Período Sistema de Computação: Grade • Modelo Operacional – Em um ambiente de computação em grade, na visão do usuário da grade computacional, existe uma modelo operacional com etapas comuns para a execução de uma aplicação: 1. O usuário programa a sua aplicação distribuída utilizando ferramentas de desenvolvimento de aplicações; 2. O usuário especifica os seus requisitos de QoS e submete sua aplicação ao escalonador de aplicação da grade; 3. O escalonador de aplicação de recursos da grade realiza uma descoberta de recursos e suas características usando o serviço de informação da grade; 4. O escalonador de aplicação de recursos identifica os preços e/ou a disponibilidade dos recursos por meio de uma busca em um diretório de mercado da grade; Sistemas Distribuídos – 8º Período Sistema de Computação: Grade • Modelo Operacional – Continuação: 5. O escalonador de aplicação de recursos identifica uma lista de fornecedores de dados ou réplicas e recurso computacionais que fornecem os serviços ou características necessários pela aplicação, por meio dos escalonadores de recursos. Então ele seleciona os melhores fornecedores; 6. O escalonador de aplicação escalona e envia as tarefas para os escalonadores de recursos que são responsáveis pelos recursos escolhidos para a execução das aplicações; 7. O agente local do usuário no recurso executa e monitora a tarefa e retorna os resultados para o escalonador. Enquanto o escalonador de aplicação monitora a grade pra lidar com eventuais falhas nos recursos e mudanças de configurações da grade; Sistemas Distribuídos – 8º Período Sistema de Computação: Grade • Modelo Operacional O escalonador de aplicação coleta os resultados e repassa para o usuário Sistemas Distribuídos – 8º Período Comparação entre Cluster e Grade Sistemas Distribuídos – 8º Período Dúvidas Página do Professor Mauro: http://www.dai.ifma.edu.br/~mlcsilva Sistemas Distribuídos – 8º Período Próxima Aula • Tipos de Sistemas Distribuídos: Pervasivos Sistemas Distribuídos – 8º Período