Sistemas Distribuídos

Standard

Em redes de alto tráfego e alta disponibilidade, que possuem muitos usuários ou não podem ficar fora do ar, é comum a utilização de serviços distribuídos. Serviços de rede, como servidores de arquivos ou dados são distribuídos por mais de uma máquina. Ou para garantir estabilidade e continuidade do serviço ou para dividir recursos e aumentar a capacidade de atendimento. Existem algumas técnicas específicas para efetuar esta distribuição de serviços que veremos a seguir.

Clustering

Cluster, ou agrupamento, pode ser definido como um sistema que compreende dois ou mais computadores ou sistemas, denominados nodos ou nós, os quais trabalham em conjunto para executar aplicações ou realizar outras tarefas, de maneira transparente aos usuários, ou seja, os usuários terão a impressão de estar utilizando um único sistema. Basicamente, existem quatro tipos de clusters (REIS, JÚNIOR, et al., 2010):

Alta Disponibilidade (HA – High Availability): estes modelos de clusters são construídos para prover uma disponibilidade de serviços e recursos de maneira ininterrupta, através do uso da redundância implícita ao sistema. Caso um nó do cluster vier a falhar (failover), aplicações ou serviços estarão 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 (HS- Load Balancing): 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. Em caso de falha em um nó, as requisições são redistribuídas entre os nós disponíveis no momento. Este tipo de cluster é normalmente utilizado por servidores web que demandam muito acesso, como por exemplo, as lojas virtuais.

Combinação Alta Disponibilidade e Balanceamento de carga: combina os dois clusters acima, aumentando a disponibilidade e escalabilidade dos serviços e recursos. Muito utilizado em servidores web e e-mail.

Processamento Distribuído ou Processamento Paralelo (HPC): este modelo de cluster aumenta a disponibilidade e desempenho para as aplicações, sendo utilizado em tarefas típicas em que se exige desempenho no processamento. Uma grande tarefa computacional pode ser dividida em pequenas tarefas que são distribuídas entre os nós, que ficam com a tarefa de processá-las. Este tipo de cluster é comumente associado ao projeto Beowulf (http://www.beowulf.org/). Estes clusters são usados em computação científica ou análises financeiras, tarefas típicas que exigem um alto poder de processamento.

Grids

Trata-se de uma arquitetura de rede que permite o uso, de forma cooperativa e transparente, de recursos distribuídos geograficamente. A arquitetura em Grid é uma proposta promissora para resolver as crescentes demandas da computação paralela e distribuída por transparência, desempenho e capacidade de processamento. Estes recursos e serviços fornecidos pela arquitetura de Grid podem ser de diferentes tipos, havendo grande heterogeneidade dentro de uma mesma classe de recursos.

Existem três aspectos que caracterizam Grids computacionais: Heterogeneidade: um Grid envolve uma grande diversidade de recursos diferentes e que podem estar dispersos geograficamente; Escalabilidade: um Grid pode crescer de poucos recursos para milhões; Dinamicidade ou adaptabilidade: em um Grid a falha de um recurso é a regra, e não a exceção, e cabe a estrutura suprir esta falta de forma transparente. Um ambiente de Grid ideal irá prover acesso aos recursos disponíveis de forma homogênea de tal modo que as diferenças entre máquinas, protocolos, capacidade de processamento não sejam perceptíveis pelos usuários finais.

Computação distribuída (peer to peer)

Em sistemas distribuídos, um dos modelos de distribuição de recurso é o modelo P2P (peer to peer) que consiste em uma distribuição de processamento e requisição de informação em uma rede de computadores, onde todos os componentes isolados do sistema P2P, chamado de nós, executam os serviços de cliente e servidor, distribuindo as responsabilidades de processamento e informação para muitos computadores distintos que juntos formam as redes de computadores do sistema P2P. A uma rede P2P se ligam a outras redes formando blocos, os quais estão ligados a outros blocos formando uma rede maior ainda. Um sistema distribuído P2P propõe um modelo com as seguintes características:

  • Todos os nós são usuários de serviços em potencial e são, ao mesmo tempo, provedores em potencial desses serviços.
  • Todo nó é independente.
  • Os nós são dinâmicos, podem existir e deixar de existir imprevisivelmente.

Um sistema distribuído P2P propõe um modelo com as seguintes características: Todos os nós são usuários de serviços em potencial e são, ao mesmo tempo, provedores em potencial desses serviços; Todo nó é independente; Os nós são dinâmicos, podem existir e deixar de existir imprevisivelmente (SILVA e LOVATTI, 2009).

Grid, Cluster e Peer to Peer

De forma resumida podemos comparar as funcionalidades e características de grids, clusters e da rede P2P através da tabela

Tabela 1 – Comparação entre Grid, Cluster e P2P (SILVA e LOVATTI, 2009)

Sistemas de arquivos distribuídos

Um Sistema de Arquivos Distribuído (SAD) tem o objetivo de fornecer os mesmos serviços e recursos de um sistema de arquivos convencional, pelo menos na visão dos clientes que o acessam, com a diferença que o SAD pode ser acessado de qualquer máquina dentro de uma rede (acesso remoto), de forma controlada ou não (CARVALHO, 2003).

Um sistema de arquivos distribuído, ou SAD, é um sistema de arquivos no qual os arquivos nele armazenados estão espalhados em hardwares diferentes, interconectados através de uma rede. As informações sobre a localização dos recursos compartilhados estão presentes no servidor com o serviço habilitado. A intenção é dividir a carga do sistema e aumentar a disponibilidade do mesmo dividindo os arquivos por vários dispositivos de software/hardware que podem, ou não, ter as mesmas características físicas, de forma que o usuário não perceba estas diferenças. As redes P2P podem ser consideradas exemplos de arquivos distribuídos.

Cloud Computing

Computação em nuvem é uma tendência recente de tecnologia cujo objetivo é proporcionar serviços de Tecnologia da Informação (TI), sob demanda, com pagamento baseado no uso. Tendências anteriores à computação em nuvem foram limitadas a uma determinada classe de usuários ou focadas em tornar disponível uma demanda específica de recursos de TI, principalmente de informática. Computação em nuvem pretende ser global e prover serviços para as massas que vão desde o usuário final que hospeda seus documentos pessoais na Internet até empresas que terceirizam toda infraestrutura de TI para outras empresas. Nunca uma abordagem para a utilização real foi tão global e completa: não apenas recursos de computação e armazenamento são entregues sob demanda, mas toda a pilha de computação pode ser aproveitada na nuvem (SOUSA, MOREIRA e MACHADO, 2009).

Para utilizarem os serviços, os usuários necessitam apenas ter em suas máquinas um sistema operacional, um navegador e acesso a Internet. Todos os recursos computacionais estão disponíveis na nuvem e as máquinas dos usuários não necessitam ter altos recursos computacionais, diminuindo o custo na aquisição de máquinas. Todo hardware pode ser utilizado para realizar alguma tarefa que seja adequada ao seu poder de processamento. Novos recursos de hardware podem ser adicionados a fim de aumentar o poder de processamento e cooperar com os recursos existentes (SOUSA, MOREIRA e MACHADO, 2009).

Bibliografia

CARVALHO, R. P. D. Tese: Sistemas de Arquivos Paralelos e Distribu´ıdos. Universidade de São Paulo Instituto de Matemática e Estatística Departamento de Ciência da Computação, 2003. Disponivel em: <http://www.ime.usp.br/~carvalho/quali/quali.pdf>. Acesso em: 20 setembro 2011.

REIS, A. C. D. F. et al. Cluster de Alta Disponibilidade. 1Faculdade de Tecnologia de Guaratinguetá (FATEC-GT), Guaratinguetá, SP, Brasil, Novembro 2010.

SILVA, D. F. S. D.; LOVATTI, F. R. Computação Distribuída, Web Service – um estudo de caso. CENTRO UNIVERSITÁRIO VILA VELHA CENTRO UNIVERSITÁRIO VILA VELHA, 2009. Disponivel em: <http://www.uvv.br/portais/cienciacomputacao/pdf/2009/Computa%C3%A7%C3%A3o%20Distribu%C3%ADda,%20Web%20Service.pdf>. Acesso em: 12 Setembro 2011.

SOUSA, F. R. C.; MOREIRA, L. O.; MACHADO, J. C. Computação em Nuvem: Conceitos, Tecnologias, Aplicações e Desafios. Aplicações e Desafios, 2009.