Sistemas de Informação Sistemas Distribuídos prof. Rhyan Ximenes Faculdade Instituto Educare - FIED Curso: Sistemas de Informação 8º Semestre Disciplina: Sistemas Distribuídos Prof.: Rhyan Ximenes E-mail: [email protected] Blog: rxbrito.wordpress.com Sistemas de Computação de Alto Desempenho Aplicações: Sistemas meteorológicos; Ferramentas de mapeamento genético; Simuladores geotérmicos; Programas de renderização de imagens tridimensionais; Computação em Nuvens, necessidade de ter uma infraestrutura tecnológica respondendo a vários clientes simultaneamente maneira remota, por exemplo; Aplicações crítica - que não pode parar de funcionar ou não podem perder dados (os sistemas bancários, por exemplo); Entre tantos outros. de O que é cluster? Sistema que relaciona dois ou mais computadores para que estes trabalhem de maneira conjunta no intuito de processar uma tarefa. Estas máquinas dividem entre si as atividades de processamento e executam este trabalho de maneira simultânea. Como funciona? Cada computador que faz parte do cluster recebe o nome de nó (ou node); Não há limite máximo de nós; Mas o cluster deve ser "transparente", ou seja, ser visto pelo usuário ou por outro sistema que necessita deste processamento como um único computador. Sistemas de Computação de Cluster É necessário alguma padronização? Os nós do cluster devem ser interconectados, preferencialmente, por uma tecnologia de rede conhecida, para fins de manutenção e controle de custos, como a Ethernet; É importante que o padrão adotado permita a inclusão ou a retirada de nós com o cluster em funcionamento, do contrário, o trabalho de remoção e substituição de um computador que apresentar problemas, por exemplo, faria a aplicação como um todo parar. De que é composto os nós? Na computação em cluster os nós podem até mesmo ser compostos por computadores simples, como PCs de desempenho mediano; Finalidade Configura um sistema de processamento com capacidade suficiente para dar conta de determinadas aplicações que, se fossem atendidas por supercomputadores ou servidores sofisticados, exigiriam investimentos muito maiores. Não é necessário haver um conjunto de hardware exatamente igual em cada nó; É importante que todas as máquinas utilizem o mesmo sistema operacional, de forma a garantir que o software que controla o cluster consiga gerenciar todos os computadores que o integram. Resumindo Conjunto de estações de trabalho ou PC semelhantes conectados por meio de uma rede local de alta velocidades, constituindo um ambiente para super computação; Maior homogeneidade (mesmo S.O, etc.); Baixo custo (tecnologia de prateleira). Sistemas Distribuídos Faculdade Ieducare – Tianguá - CE 1 Sistemas de Informação Sistemas Distribuídos prof. Rhyan Ximenes Tipos de clusters Cluster de Alto Desempenho (High Performance Computing Cluster) Cluster de Alta Disponibilidade (High Availability Computing Cluster) Cluster para Balanceamento de Carga (Load Balancing) Combinação de tipos de clusters Cluster de Alto Desempenho (High Performance Computing Cluster) São direcionados a aplicações bastante exigentes no que diz respeito ao processamento; Onde são utilizados? Em sistemas utilizados em pesquisas científicas, onde há a necessidade de analise uma grande variedade de dados rapidamente e realizar cálculos bastante complexos. Qual o foco deste tipo de cluster? O processamento direcionado à aplicação forneça resultados satisfatórios em tempo hábil, mesmo que haja grande volume de dados a serem analisados e processados por segundo. Cluster de Alta Disponibilidade (High Availability Computing Cluster) Qual o foco desse tipo de cluster? Sempre manter a aplicação em pleno funcionamento; Não é aceitável que o sistema pare de funcionar, se acontecer, a paralisação deve ser a menor possível. Que recursos são utilizados para atingirem o objetivo? Ferramentas de monitoramento que identificam nós defeituosos ou falhas na conexão, Replicação (redundância) de sistemas e computadores para substituição imediata de máquinas com problemas, Uso de geradores para garantir o funcionamento em caso de queda de energia, entre outros. Observação: É tolerável que o sistema apresente algum grau de perda de desempenho, especialmente quando esta situação é consequência de algum esforço para manter a aplicação em atividade. Cluster para Balanceamento de Carga (Load Balancing) As tarefas de processamento são distribuídas o mais uniformemente possível entre os nós; Cada computador recebe e atende a uma requisição e não, necessariamente, divide uma tarefa com outras máquinas. Por exemplo: Imagine que um grande site na internet receba por volta de mil visitas por segundo e que um cluster formado por 20 nós tenha sido desenvolvido para atender a esta demanda. Como se trata de uma solução de balanceamento de carga, estas requisições são distribuídas igualmente entre as 20 máquinas, de forma que cada uma receba e realize, em média, 50 atendimentos a cada segundo. Obs1.: Não basta ao cluster de balanceamento de carga ter um mecanismo meramente capaz de distribuir as requisições; É necessário que este procedimento seja executado de forma a garantir um "equilíbrio" na aplicação; Como é feito? Monitoramento constante dos nós para verificar, por exemplo, qual máquina está lidando com a menor quantidade de tarefas e direcionar uma nova requisição para esta. Obs2.: O balanceamento de carga pode ser utilizado em vários tipos de aplicações; Uso comum na internet. Sistemas Distribuídos Faculdade Ieducare – Tianguá - CE 2 Sistemas de Informação Sistemas Distribuídos prof. Rhyan Ximenes Combinação de tipos de clusters Conforme a necessidade; Como é feito? Combinando características de tipos diferentes no intuito de atender plenamente à aplicação; Por exemplo: Uma loja na internet pode utilizar um cluster de alta disponibilidade para garantir que suas vendas possam ser realizadas 24 horas por dia e, ao mesmo tempo, aplicar balanceamento de carga para suportar um expressivo aumento eventual no número de pedidos causados por uma promoção. Funcionamento básico dos cluster Cada computador de um cluster é denominado nó ou nodo; Todos devem ser interconectados, de maneira a formarem uma rede, de qualquer topologia; A rede precisa ser criada de uma forma que permita o acréscimo ou a retirada de um nó (em casos de danos, por exemplo), mas sem interromper o funcionamento do cluster; Sistema operacional usado nos computadores deve ser de um mesmo tipo; Isso porque existe particularidades em cada sistema operacional que poderiam impedir o funcionamento do cluster. Cluster Beowulf O Beowulf padrão de clustering disponibilizado pela NASA (National Aeronautics and Space ) em 1994 e amplamente adotado desde então. Origem do nome: Nome de um poema extenso e bastante antigo, cujo manuscrito foi encontrado no século XI; A obra descreve os atos de um herói de mesmo nome que se destaca por sua força descomunal e que, portanto, enfrenta um perigoso monstro para salvar um reino; A história serviu de inspiração para que os pesquisadores Thomas Sterling e Donald Becker, da NASA, batizassem o projeto de cluster no qual trabalhavam de Beowulf. Define-se, basicamente, pela ênfase nas seguintes características: - Entre os nós, deve haver pelo menos um que atue como mestre para exercer o controle dos demais; Máquinas mestres são chamadas de front-end; as demais, de back-end; Possibilidade de existir mais de um nó no front-end para que cada um realize tarefas específicas, como monitoramento. Como funciona? Cluster Beowulf Comunicação entre os nós pode ser feita por redes do tipo Ethernet, mais comuns e mais baratas; Não é necessário o uso de hardware exigente, nem específico; A ideia é a de se aproveitar componentes que possam ser encontrados facilmente. Até mesmo PCs considerados obsoletos podem ser utilizá-los; O sistema operacional deve ser de código aberto, razão pela qual o Linux e outras variações do Unix são bastante utilizados em cluster Beowulf; Os nós devem se dedicar exclusivamente ao cluster; Deve-se fazer uso de uma biblioteca de comunicação apropriada, como a PVM (Parallel Virtual Machine) ou a MPI (Message Passing Interface); Ambas são direcionadas à troca de mensagens entre os nós. Vantagens Cluster Beowulf Solução consideravelmente mais barata e menos complexa que um supercomputador. Construção de um cluster "poderoso" ; Poupar gastos com equipamentos; Licenças de software; Manutenção. Curiosidade: O cluster montado por Thomas Sterling e Donald Becker para a NASA, por exemplo, era composto por 16 PCs com processador Intel 486 DX4 e sistema operacional Linux conectados por uma rede Ethernet de 10 Mb/s; Sistemas Distribuídos Faculdade Ieducare – Tianguá - CE 3 Sistemas de Informação Sistemas Distribuídos prof. Rhyan Ximenes Vantagens de Desvantagens de Cluster Pode-se obter resultados tão bons quanto ou até superiores que um servidor sofisticado a partir de máquinas mais simples e mais baratas (ótima relação custo-benefício); Não é necessário depender de um único fornecedor ou prestador de serviço para reposição de componentes; A configuração de um cluster não costuma ser trivial, mas fazer um supercomputador funcionar poder ser muito mais trabalhoso e exigir pessoal especializado; É possível aumentar a capacidade de um cluster com a adição de nós ou remover máquinas para reparos sem interromper a aplicação; Há opções de softwares para cluster disponíveis livremente, o que facilita o uso de uma solução do tipo em universidades, por exemplo; Computação em grade É uma rede de computadores na qual os recursos do computador são compartilhados com todo e qualquer computador no sistema; O que pode ser partilhado? Poder de processamento; Memória; Armazenamento de dados; Visão sobre Computação em Grade Pode ser tão simples quanto uma coleção de computadores parecidos rodando no mesmo sistema operacional; Podem ser tão complexo quanto sistemas de redes múltiplas que abrangem todas as plataformas de computador possamos imaginar. É um tipo especial de computação distribuída. Diferentes dos sistemas baseados em Clusters, os sistemas de computação em Grid tem um alto grau de heterogeneidades, diferentes hardwares, S.Os, redes, etc. Usuários e recursos de diferentes organizações são interligados, permitindo total colaboração, criando uma Organização Virtual (V.O. = Virtual Organization). Os membros das V.O. tem total acesso a um conjunto comum de recursos (por exemplo, os sistemas da polícia americana, do FBI e de outras agencias formam um grid). Camadas do modelo de Grid Computing: 1. Camada de Coletiva (Collective layer): Manipula o acesso a múltiplos recursos, normalmente consiste em serviços para descoberta de recursos, alocação e escalonamento de tarefas. 2. Camada de Conectividade (Connectivity layer): Consiste em protocolos de comunicação para suportar transações da grade que abranjam a utilização de múltiplos recursos. 3. Camada de Recurso (Resource layer): Gerencia um único recurso, como criar um processo ou ler um dado. 4. Camada Base (Fabric layer): Fornece interfaces para recursos locais em um site específico. Sistemas para Processamento de Transações Propriedades características das transações: • Atômicas: para o mundo exterior, a transação acontece como se fosse indivisível. • Consistentes: a transação não viloa as invariantes do sistema. • Isoladas: transações interferem umas com as outras. • Duráveis : uma vez terminada uma transação as alterações são permanentes. Integração de Aplicações Comerciais Vários pacotes de middleware e protocolos de comunicação são usados para dar suporte as aplicações comerciais, entre eles: • CORBA (Common Object Request Broker Architecture) • DCOM (Distributed Component Object Management) • RPC (Remote Procedure Call) • RMI (Remote Method Invocation) Sistemas Embarcados Distribuídos Requisitos para aplicações embarcadas: Sistemas Distribuídos Faculdade Ieducare – Tianguá - CE 4 Sistemas de Informação Sistemas Distribuídos prof. Rhyan Ximenes • Adotar mudanças contextuais (significa que um dispositivo deve estar ciente do fato de seu ambiente pode mudar o tempo todo). • Incentivar composição ad hoc (usos diferentes para usuários diferentes, por exemplo os PDA podem ter diferentes usos). • Reconhecer compartilhamento como padrão (isso requer meios para ler, armazenar gerenciar e compartilhar informações com facilidade). EXERCÍCIOS PROPOSTOS 1-) Com relação aos sistemas de computação de alto desempenho cite algumas aplicações para a mesma. 2-) O que é um cluster? 3-) Como funciona um cluster? 4-) Nos cluster é necessário alguma padronização. Justifique sua resposta. 5-) De que é composto os nós em um cluster? 6-) Qual a principal finalidade de um cluster? 7-) Cite alguma características de um sistema cluster. 8-) Cite alguns tipos de cluster. 9-) Para que tipo de aplicações os cluster de alto desempenho são direcionados? 10-) Qual o foco desse tipo de cluster? 11-) Cluster de Alta Disponibilidade. Que recursos são utilizados para atingirem os seus objetivos. 12-) Como funciona o cluster para balanceamento de carga. Cite algum exemplo. 13-) Com relação a combinação de cluster. Como é feito? 14-) Explique como funciona um cluster. Funcionamento básico de um cluster. 15-) Como funciona o cluster Beowulf? 16-) Quais as vantagens do cluster beowulf? 17-) O que é a computação em grade? 18-) O que pode ser compartilhado na computação em grade? 19-) Quantas e quais são as camadas do modelo de computação em grade. 20) O que é um sistema distribuído? 21) O que significa stand-alone? 22) Como se tornou possível o surgimento dos sistemas distribuídos? 23) Cite algumas vantagens dos sistemas distribuídos. 24) Cite algumas desvantagens dos sistemas distribuídos. 25) Enumere algumas características dos sistemas distribuídos. 26) Defina sistemas distribuídos. 27) Enumere algumas metas quando projeta-se um sistema distribuído. 28) Fale sobre a escalabilidade nos sistemas distribuídos, nos três níveis: Tamanho, geográfica e administrativa. 29) Cite algumas problemas que podem ser enfrentados na escalabilidade. 30) Que cuidados devem ser tomados para não cair nas ciladas dos sistemas distribuídos? 31) Com relação aos tipos de sistemas distribuídos cite algumas deles. 32) Onde podemos encontrar a aplicabilidade para a computação em alto desempenho. Sistemas Distribuídos Faculdade Ieducare – Tianguá - CE 5