Archive

Posts Tagged ‘Computação Distribuida’

Um estudo sobre Grids Computacionais.. (Final – Projeto OurGrid)

February 1st, 2009 No comments


O OurGrid, é um projeto peer-to-peer que está em produção desde 2004. Esse projeto tem como objetivo principal viabilizar a implementação da arquitetura de uma Grid Computacional abstraindo o usuário de como todo o processo da Grid é feito, tornando assim, o compartilhamento de recursos inativos para a execução de aplicações paralelas o mais transparente possível.

É um software estável, de código fonte livre e sob a licença GPL, este software ataca aplicações Bag-of-Tasks, ou seja, aplicações que tem tarefas independentes e que podem ser executadas em qualquer ordem.

Componentes do OurGrid


Para que o OurGrid funcione é necessário ter os componentes necessários para que a estrutura a seguir seja montada. Veja a Figura com os componentes do OurGrid.

Ourgrid

Peer (Somente Plataforma Linux)

Corepeer (Plataforma Linux)

Swan (Plataforma Linux)

MyGrid (Somente Plataforma Linux)


User Agent (Plataforma Linux e Windows)

Peer


Como foi dito anteriormente uma das características do Grid é que existem vários domínios administrativos. O Peer é o responsável por centralizar o controle do domínio e fazer conexões com outros domínios possibilitando as máquinas de um domínio utilizar os recursos ociosos de máquinas de outros domínios.

User Agente



O User agente é um componente que funciona em cada estação da Grid, ele que vai fornecer o acesso a cada máquina, fornece uma sustentação básica para a manipulação de erros e combinado com um peer ele fornece acesso a máquinas em redes privadas, mesmo os domínios sendo diferentes ou estando atrás de um firewall com o User Agente é possível uma conexão.

MyGrid

Este é o componente central da GRID, age como coordenador da grid, controla toda a execução das tarefas fazendo toda a transferência de dados ele que submete o JOB, cada JOB tem suas tarefas e essas tarefas são replicadas para as outras máquinas da Grid, cada replica tem seu estado como mostra a Figura 5 e cada tarefa também tem seu estado como mostra a Figura 6.

Figura 5 - Estado da Replica

Figura 5 - Estado da Replica

Figura 6 - Estado da Tarefa

Figura 6 - Estado da Tarefa

Swan

Como já foi dito a grande dificuldade em Grid é a falta de conhecimento dos processos que serão executados na Grid, e a segurança para poder acessar terminais em domínios desconhecidos. O Swan faz a segurança da Grid com dois níveis de segurança, o primeiro nível é o nível do GUM, ou seja, as máquinas confiam no nível de segurança do Sistema Operacional ou o que o administrador do sistema configurou. O segundo nível é o nível é através de uma máquina virtual. Todas as aplicações rodam dentro de um ambiente restrito impedindo que um software malicioso execute no ambiente do GRID. Esse segundo nível usa o Xen como monitor virtual.


Corepeer

Corepeer é o responsável por organizar a rede de peers, ele faz toda a inteligência de redirecionamento de processos caso uma Grid não suporte o processamento. O Corepeer que interliga a rede de Peers fazendo assim, os vários domínios administrativos se comunicarem.

E assim finalizo o estudo que fiz sobre grids computacionais. Um projeto bem interessante de ser desenvolvido é a criação de um software que automatize a inclusão de jobs em uma grid.

Até o próximo post.

Um estudo sobre Grids Computacionais.. (Parte 2)

January 23rd, 2009 No comments

Grids Computacionais

Continuando o post sobre grid computing, vamos falar um pouco mais sobre a computação em grid, alguns conceitos e aspectos de uma grid.

  • Computação em Grid

Muitas questões devem ser levadas em consideração no tocante ao desenvolvimento de uma Grid, tais como modelo de programação e balanceamento de carga e devido o grid ter uma ampla distribuição, grande escala, alta heterogeneidade e múltiplos domínios administrativos, novas questões são levantadas, tais como o escalonamento de aplicações, autenticação, segurança, disponibilidade e tempo de resposta.

  • Escalonamento de Aplicação

O escalonador nada mais é que um controlador dos recursos. Não é possível utilizar os recursos de um sistema operacional sem que o escalonador permita. Ele recebe as solicitações de vários recursos e decide quem vai ser executado primeiro [2].

Escalonamento de recursos ou de tarefas em grid é algo complexo de ser tratado, já que temos uma estrutura com vários domínios administrativos com grande escala e ampla distribuição. O escalonamento das tarefas se torna algo complexo, pois os administradores dos recursos normalmente não abrem mão do controle de seus recursos. Escalonar tarefas que sofrem interferências externas se torna algo complexo e de baixa eficiência.

Então, como existem vários domínios têm-se vários escalonadores de recursos, ou seja, alguém tem que dizer que recurso será utilizado para que seja enviada para o escalonador correto, para que essa aplicação seja executada corretamente, e isso é uma tarefa do escalonador de aplicação.

Escalonadores de aplicação não controlam os recursos que usam, eles só obtêm acesso aos recursos submetendo solicitações aos escalonadores que controlam os recursos [2].

  • Autenticação

A ampla distribuição e a existência de múltiplos domínios administrativos dificultam a autenticação no Grid. Em Grid é necessária uma forma de acesso para cada recurso [2], garantido a autenticação de cada usuário, pois, caso contrário, os administradores não aceitaram o uso de tal recurso.

  • Segurança

A figura a seguir mostra a arquitetura de uma grade computacional, e o serviço de segurança é responsável por três tarefas principais.

Arquitetura de uma Grid Computacional

Arquitetura de um Grid

  • Proteger os recursos compartilhados contra aplicações maliciosas.

  • Gerenciar a identidade dos usuários, permitindo relações de confiança.

  • Proteger as trocas de informações entre a grade, provendo confidencialidade e integridade.

Tendo em vista que no Grid tem um número bem maior de usuários, recursos e aplicações sendo executados e administrados por diferentes domínios administrativos, vemos que os riscos e vulnerabilidades para sistemas desenvolvidos para a grade se ampliam em relação aos sistemas tradicionais, logo, medidas de segurança estão sendo tomadas no tocante ao processo de autenticação e autorização.

Deve-se garantir, com boas políticas de segurança, que os recursos não sejam providos por um usuário mal intencionado que busca apenas obter privilégios de super usuário.

Realizar auditoria na grade também é um requisito importante. Já que estamos em um ambiente com vários domínios administrativos, nem sempre é possível prever todas as ameaças. Então, disponibilizar meios de rastrear possíveis erros ou ameaças seria uma boa prática no que diz respeito à segurança.

Mecanismos que impeçam a modificação ou obtenção de dados na grid, ou seja, que garantam a confidencialidade e a integridade dos dados é um requisito muito importante em um ambiente de grade computacional.

Levando em consideração as principais formas de prevenir possíveis problemas de segurança em uma grade computacional, observamos que a viabilidade de utilizar essa arquitetura para o processo de demanda de processamento é bastante interessante.