Cluster Introdução • Cluster pode ser definido como um sistema onde dois ou mais computadores trabalham de maneira conjunta para realizar processamento pesado. • Em outras palavras, os computadores dividem as tarefas de processamento e trabalham como se fossem um único computador. O que é cluster e como funciona • Cluster é o nome dado a um sistema montado com mais de um computador, cujo objetivo é fazer com que todo o processamento da aplicação seja distribuído aos computadores. • Mas de forma que pareça com que eles sejam um computador só. • Com isso, é possível realizar processamentos que até então somente computadores de alta performance seriam capazes de fazer. O que é cluster e como funciona • Cada computador de um cluster é denominado nó ou nodo. • Todos devem ser interconectados, de maneira a formarem uma rede, de qualquer topologia. • Essa 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. • O sistema operacional usado nos computadores deve ser de um mesmo tipo, ou seja, ou somente Windows, ou somente Linux, ou somente BSD, etc. • Isso porque existe particularidades em cada sistema operacional que poderiam impedir o funcionamento do cluster. O que é cluster e como funciona • Independente do sistema operacional usado, é preciso usar um software que permita a montagem do cluster em si. • Esse software vai ser responsável, entre outras coisas, pela distribuição do processamento. Esse é um ponto crucial na montagem de um cluster. • É preciso que o software trabalhe de forma que erros e defeitos sejam detectados, oferecendo meios de providenciar reparos, mas sem interromper as atividades do cluster. • Obviamente, esse tipo de necessidade pode ser controlada através de um equipamento específico, ou seja, não depende apenas do software. O que é cluster e como funciona • Para que exista, um cluster precisa de pelo menos dois computadores. • Evidentemente, quanto mais computadores existir no cluster, maiores serão os custos de implementação e manutenção. • Isso não se deve apenas ao preço dos computadores, mas também pelos equipamentos (switches, cabos, hubs, nobreaks, etc). • Mas ainda assim, os custos costumam ser menores do que a aquisição/manutenção de computadores poderosos e algumas vezes o processamento é até mais eficiente (rápido). cluster de servidor • Executado no – Windows Server 2003, – Enterprise Edition e – Datacenter Edition. • Um cluster de servidor é um grupo de servidores independentes que trabalham em conjunto como um único sistema para oferecer alta disponibilidade de serviços para os clientes. • Quando ocorre uma falha em um computador de um cluster, os recursos são redirecionados e a carga de trabalho é redistribuído para outro computador no cluster. cluster de servidor • Você pode usar clusters de servidores para garantir que os usuários tenham acesso constante a importantes recursos baseados em servidor. • Os clusters de servidor são projetados para aplicações que têm estado de longa duração em memória ou dados atualizados com frequência. • Os usos típicos para clusters de servidor incluem servidores de arquivos, servidores de impressão, servidores de banco de dados e servidores de mensagens. Network Load Balancing (NLB) • Não exige um dispositivo de armazenamento e pode ser configurado em qualquer versão do Windows Server 2003. • É uma implementação de cluster e balanceamento de carga que se destina a fornecer alta disponibilidade e alta confiabilidade, bem como alta escalabilidade. • NLBS é destinado a aplicações com conjuntos de dados relativamente pequenos, que raramente mudam e não têm estados de longa duraçãoem-memória (um exemplo seria páginas da web). • Esses tipos de aplicativos normalmente incluem Web, File Transfer Protocol (FTP), e rede privada virtual (VPN). Network Load Balancing (NLB) • Cada solicitação do cliente para uma aplicação sem estado é uma transação separada, por isso é possível distribuir as solicitações entre vários servidores para equilibrar a carga. • Vantagem: os servidores em um cluster monitorar uns aos outros para localizar pontos de falhas. • No Windows Server 2003 , NLBS não suporta a remoção automática de um servidor com falha de um cluster – A menos que o servidor é completamente off-line, ou se o seu serviço de NLBS está parado. • Por exemplo, se um servidor web está retornando uma página de erro, em vez de conteúdo correto, ainda é percebido como "vivo" por NLBS. Aplicações para Clusters • Os clusters podem ser usados para uma infinidade de aplicações. Basicamente, para qualquer uma que exija processamento pesado. • Como exemplos de aplicações, temos previsão meteorológica (previsão do tempo e condições climáticas), simulações geotérmicas (ou seja, simulação de eventos no solo), renderização de efeitos especiais (muito usado em filmes), simulações financeiras, distribuição de carga, etc. Aplicações para Clusters • Basicamente, qualquer tipo de aplicação crítica, ou seja, aplicações que não podem parar de funcionar ou não podem perder dados (como os sistemas de bancos, por exemplo), podem utilizar as tecnologias de cluster, desde que devidamente configurados para não serem sujeitas a falhas graves. • Assim, o cluster deve contar com nobreaks ou geradores que garantam o funcionamento do sistema mesmo nos casos de queda de energia, além de meios de manutenção e detecção de falhas eficientes. Cluster Beowulf • Esse tipo de cluster, voltado à computação paralela. • Foi fundamentado em 1994, pela NASA, com a finalidade de processar as informações espaciais que a entidade recolhia. • Desde então, grandes empresas (como HP e IBM) e universidades (como a brasileira Unesp) vêm construindo clusters deste tipo e como cada vez mais nós! Cluster Beowulf • O que distingue o Cluster Beowulf dos outros tipos são as seguintes características (que são aplicadas de acordo com a finalidade do cluster): - A conexão dos nós pode ser feita por redes do tipo Ethernet (mais comum); - Existe um servidor responsável por controlar todo o cluster, principalmente quanto a distribuição de tarefas e processamento (pode haver mais de um servidor, dedicado a tarefas específicas, como monitoração de falhas). Este servidor é chamado de Front-end; - O sistema operacional é baseado Linux, sendo necessário que ele contenha todos os programas para cluster; - Pode-se usar computadores comuns, inclusive modelos considerados obsoletos; - Não é necessário usar equipamentos próprios para clusters. Basta equipamentos comuns à redes e os tradicionais PCs. Cluster Beowulf Cluster Beowulf • De maneira generalizada, o Cluster Beowulf permite a construção de sistemas de processamento que podem alcançar altos valores de gigaflops (um gigaflop equivale a 1 bilhão de instruções de ponto flutuante executadas por segundo). • Isso tudo com o uso de computadores comuns e de um sistema operacional com código-fonte livre, ou seja, além de gratuito, pode ser melhorado para a sua finalidade. • Tais características fizeram do Cluster Beowulf um tema muito explorado em universidades, podendo se aplicado para vários fins. Cluster Beowulf • Entre os requisitos para o sistema operacional de um Cluster Beowulf, estão a necessidade de se ter as bibliotecas para Parallel Virtual Machine (PVM) ou para Message Passing Interface (MPI). • Ambos os tipos são usados para a troca de mensagens entre os nós do cluster. • O MPI é mais avançado que o PVM, pois pode trabalhar com mensagens para todos os computadores ou para apenas um determinado grupo (por exemplo, quando somente este grupo vai realizar determinada tarefa). Cluster Beowulf Tipos de cluster • Cluster para Alta Disponibilidade • Cluster para Balanceamento de Carga • Cluster Combo Clusters de Alta Disponibilidade • Cluster pode ser definido como um sistema onde dois ou mais computadores trabalham de maneira conjunta para realizar processamento pesado. • Em outras palavras, os computadores dividem as tarefas de processamento e trabalham como se fossem um único computador. Cluster para Balanceamento de Carga • Balanceamento de Carga se refere à distribuição equilibrada de processamento aos nós do cluster. • É muito usado na Internet, em servidores de e-mail, comércio eletrônico e em sistemas de lojas. • Neste tipo de cluster, é necessário que haja monitoração constante da comunicação e mecanismos de redundância. Caso contrário, qualquer falha pode interromper o funcionamento do cluster; Cluster Combo • Este tipo combina as características dos clusters De Alta Disponibilidade e de Balanceamento de Carga. Cluster MOSIX • MOSIX é a sigla para Multicomputer Operating System for UnIX. • Trata-se de um conjunto de ferramentas de cluster para Linux, voltado ao tipo Balanceamento de Carga. • Uma de suas principais características é a não necessidade de aplicações e recursos de software voltados ao cluster, como acontece com o Beowulf. • O MOSIX é eficiente na tarefa de distribuição dinâmica de processamento entre os computadores do cluster. Cluster MOSIX • Esse tipo, assim como o Beowulf, é muito utilizado por universidades em pesquisas e projetos. Por ser baseado em Linux, sua implementação é transparente, além de ser relativamente fácil de instalar. • De maneira generalizada, O MOSIX é uma extensão para Linux (ou sistemas baseados em Unix) de um sistema de cluster que trabalha como se fosse um único supercomputador, por meio de conceitos de Distribuição de Processos e Balanceamento de Carga. Finalizando • As tecnologias de Clustering possibilitam a solução de diversos problemas que envolvem grande volume de processamento. • As aplicações que um cluster pode ter são diversas, indo desde a simples melhora no desempenho de um determinado sistema ou a hospedagem de um site, até o processo de pesquisas científicas complexas. • O que realmente chama a atenção, é que todo o processamento pode ser feito de maneira que pareça ser um único computador dotado de alta capacidade. • Assim, é possível que determinadas aplicações sejam implementadas em custer, mas sem interferir no funcionamento de outras aplicações que estejam relacionadas. Finalizando • Empresas especializadas, centros de pesquisas e universidades costumam estudar este assunto a fundo. • Como consequência, existem clusters com até milhares de nós. Finalizando • Um exemplo no Brasil, é um cluster que foi desenvolvido em 2003 por um aluno da Universidade Estadual Paulista (Unesp), de São Paulo. • Baseado no tipo Beowulf, este cluster ficou bastante conhecido, por ajudar na pesquisa de medicamentos para o tratamento da tuberculose. • O valor gasto neste projeto foi 60 mil reais. Se tivesse sido utilizado um supercomputador de capacidade equivalente, os gastos seriam até 17 vezes maior. • Só por este exemplo, é possível ver os vários benefícios do Clustering. • Processamento eficiente, custo baixo, ampla gama de aplicações, enfim. Muito Obrigado!