57
OurGrid O que são Grids? Walfredo Cirne [email protected] Laboratório de Sistemas Distribuídos - LSD Universidade Federal de Campina Grande - UFCG

Grids Computacionais

Embed Size (px)

DESCRIPTION

O que são Grids? Walfredo Cirne [email protected] Laboratório de Sistemas Distribuídos - LSD Universidade Federal de Campina Grande - UFCG. Grids Computacionais. A metáfora da Rede Elétrica. Grid Computacional (fonte de serviços e recursos). Para que serve um Grid?. - PowerPoint PPT Presentation

Citation preview

Page 1: Grids Computacionais

OurGrid

O que são Grids?

Walfredo [email protected]

Laboratório de Sistemas Distribuídos - LSDUniversidade Federal de Campina Grande - UFCG

Page 2: Grids Computacionais

2

Grids Computacionais• A metáfora da Rede Elétrica

Grid Computacional(fonte de serviços e

recursos)

Page 3: Grids Computacionais

3

Para que serve um Grid?

Page 4: Grids Computacionais

4

Para que serve um Grid?

Page 5: Grids Computacionais

5

Para que serve um Grid?

Page 6: Grids Computacionais

6

Para que serve um Grid?

Page 7: Grids Computacionais

7

O Impacto de Grids

VR Simul

Grid Auditing

MegaCiclos

Databank Inc.

Mastercard

Embratel

Page 8: Grids Computacionais

8

Histórico de Grids

• A idéia de Grid surgiu na comunidade de Computação de Alto Desempenho há pouco menos de 10 anos– Agora os primeiros Grids para Alto Desempenho

começam a entrar em produção

• Há 3 anos, o mainstream da computação percebeu a possibilidade de usar tecnologia Grid para transformar computação em serviço– A tecnologia Grid está se fundindo com Web Services

• Grids para Alto Desempenho = Grids de Serviço + Serviço de Execução Remota

Page 9: Grids Computacionais

9

Agenda

• Histórico

• Grids de Serviços– Aspectos Fundamentais

• Grids para Alto Desempenho– Desafios adicionais

Page 10: Grids Computacionais

10

Serviços Computacionais

• Definição de Serviço– Mercadoria imaterial provida por uma entidade

legal para satisfazer as necessidades de outra entidade

• Arquiteturas Orientadas a Serviços (SOA)• Já existiam tecnologias para SOA

– Ex.: CORBA, RMI, etc...

• Interoperabilidade é muito importante– Padronização– Fraco acoplamento– Web Services

Page 11: Grids Computacionais

11

Grids de Serviços

• Infra-estrutura de Serviços sob Demanda

• Características– Heterogeneidade– Dispersão– Controle Distribuído– Vários Domínios Administrativos

• Interoperabilidade– Padronização

Page 12: Grids Computacionais

12

Aspectos Fundamentais

• Descoberta de Serviços

• Autenticação e Autorização

• Auditoria de Serviços

• Composição de Serviços

• Padronização

Page 13: Grids Computacionais

13

Descoberta de Serviços

• Fundamental para Serviços sob Demanda

• Uma visão simples da arquitetura“Catálogo”

Cliente Provedor de Serviços

requisição

resposta

publicaconsulta

Page 14: Grids Computacionais

14

Descoberta de Serviços

• Universal Description, Discovery and Integration (UDDI)

Page 15: Grids Computacionais

15

MDS

• Monitoring and Discovery System– Index Service– Trigger Service– Aggregator Service

• Utilização – Escalonamento e seleção de réplicas– Avaliar estado dos serviços– Notificação sobre a situação de serviços e

recursos

• Globus Toolkit 4 (MDS4)

Page 16: Grids Computacionais

16

Aspectos Fundamentais

• Descoberta de Serviços

• Autenticação e Autorização

• Auditoria de Serviços

• Composição de Serviços

• Padronização

Page 17: Grids Computacionais

17

Autenticação e Autorização

• Com vários domínios administrativos, como se dá a autenticação e autorização?

• Idealmente gostaríamos de ter um login único

• Segurança é um aspecto muito importante

• Algumas especificações– WS-Security

• Mensagens SOAP assinadas e criptografadas

– WS-SecureConversation• Contexto seguro para troca de mensagens

– WS-Policy• Define políticas de uso do serviço

Page 18: Grids Computacionais

18

Autenticação e Autorização

• Globus GSI – Grid Security Infrastructure– Transport-level security

• Privacidade no canal de comunicação

– Message-level security• Proteção das mensagens SOAP

• Autenticação baseada em:– Certificados X.509 / Login

• Autorização baseada em:– grid-mapfile – SAML – Security Association Markup

Language

Page 19: Grids Computacionais

19

Aspectos Fundamentais

• Descoberta de Serviços

• Autenticação e Autorização

• Auditoria de Serviços

• Composição de Serviços

• Padronização

Page 20: Grids Computacionais

20

Auditoria de Serviços

• Clientes e Provedores desejam garantias

• SLA – Service Level Agreements (contrato)

• Falta de confiabilidade entre as partes– Provedor pode não fornecer o serviço como

prometido no contrato– Cliente pode não cumprir o contrato de

utilização do serviço

• Mecanismos de Auditoria

• Monitoração de Serviços e Clientes

Page 21: Grids Computacionais

21

Aspectos Fundamentais

• Descoberta de Serviços

• Autenticação e Autorização

• Auditoria de Serviços

• Composição de Serviços

• Padronização

Page 22: Grids Computacionais

22

Composição de Serviços

• Construção de novos serviços através da agregação de funcionalidades

• Novos serviços baseados em serviços mais básicos

• Uma agência de turismo fornece o serviço de venda de pacotes de viagens compondo serviços de reserva em hotéis, locadora de carros, consulta em administradoras de cartões de crédito, etc...

Page 23: Grids Computacionais

23

Composição de Serviços

• Vantagens– Abstração da Complexidade– Reutilização de funcionalidades

• Linguagens para composição– Definem um fluxo para integração de serviços– XLANG, WSFL, BPEL– BPEL = WSFL (IBM) + XLANG (Microsoft)

Page 24: Grids Computacionais

24

Aspectos Fundamentais

• Descoberta de Serviços

• Autenticação e Autorização

• Auditoria de Serviços

• Composição de Serviços

• Padronização

Page 25: Grids Computacionais

25

Padronização

• Open Grid Services Architecture – OGSA– Define padrões arquiteturais e requisitos para a

infra-estrutura– OGSA = O que?

• Open Grid Services Infrastructure – OGSI– Define o comportamento e relacionamento dos

componentes da arquitetura– OGSI = Como?– Globus Toolkit 3

• Alinhamento com Web Services– Web Service Resource Framework - WSRF

Page 26: Grids Computacionais

26

WSRF• Stateless ou Stateful• OGSI define:

– Stateful Web Services = Grid Services

• WSRF evoluiu de OGSI– Stateful Web Services = Web Service + Stateful

Resources– Introdução do conceito WS Resource– Quem possui estado agora é um “Recurso” controlado

pelo Serviço– Padronização no gerenciamento de estados– Recurso tem uma conotação diferente daquela usada

pela comunidade de Alto Desempenho, o que torna esta discussão um pouco confusa

Page 27: Grids Computacionais

27

Padronização ainda complexa

ASAP (Asynchronous Service Access Protocol), BPEL4WS (Business Process Execution Language), ebSOA TC (Electronic Business Service Oriented Architecture), ebXML (Electronic Business XML), International Health Continuum TC, oBIX TC , SAML (Security Assertion Markup Language), SOAP (Simple Object Access Protocol), SOAP MTOM (SOAP Message Transmission Optimization Mechanism), ranslation WS TC , UBL (Universal Business Language), UDDI (Universal Description, Discovery, and Integration), WS-Addressing, WS-AtomicTransaction, WSBPEL (Business Process Execution Language), WS-CAF (WS Composite Application Framework ), WS-CF (WS Coordination Framework), WS-Choreography , WS-CDL (Web Services Choreography Description Language), WS-Coordination, WS-CTX, WS Context, WS-Discovery (Web Services Dynamic Discovery), WSDL (WS Description Language), WSDM (WS Distributed Management), WS-Enumeration, WS-Eventing, WS-Federation (Web Services Federation Language), WSIL (WS Inspection Language), WS-Manageability, WS-MetadataExchange (Web Services Metadata Exchange), WS-MessageDelivery, WS-Notification, WS-Policy, WS-Provisioning, WS-Reliability, WS Reliable Messaging, WS-RF (WS-Resource Framework), WS-Reliablemessaging , WSRP (WS Remote Portals), WS-Security, WS-SecureConversation, WS-SecurityPolicy, WS Security Services TC, WS-TM (WS Transaction Management), WS-Transfer, WS-Trust, XML-Encryption, XML-Signature, CDDLM (Configuration Description, Deployment, and Lifecycle Management)

Page 28: Grids Computacionais

28

Agenda

• Histórico

• Grids de Serviços– Aspectos Fundamentais

• Grids para Alto Desempenho– Desafios Adicionais

Page 29: Grids Computacionais

29

Grids para Alto Desempenho

• Grids surgiram como plataformas de execução de aplicações paralelas– São os grids para alto desempenho

• Grids para alto desempenho necessitam do serviço de execução remota– Maior flexibilidade

• Serviço pode ser convertido em qualquer outro

– Maior complexidade• Segurança• Escalonamento

Page 30: Grids Computacionais

30

Plataformas de Execução de Aplicações Paralelas

• SMPs acoplamento

• MPPs

• NOWs

• Grids distribuição

Page 31: Grids Computacionais

31

SMP: Symmetric MultiProcessor

Memória

CPU

CPU

...

CPU

Page 32: Grids Computacionais

32

MPP: Massive Parallel Processor

CPU

Mem.

CPU

Mem.

CPU

Mem.

...

Escalonador

requisições

Page 33: Grids Computacionais

33

NoW: Network of Workstations

CPU

Mem.

CPU

Mem.

CPU

Mem.

...

requisições requisições requisições

Page 34: Grids Computacionais

34

Grids

CPU

Mem.

CPU

Mem.

CPU

Mem.

...

Internet

Page 35: Grids Computacionais

35

Características das Plataformas de Execução

  SMPs MPPs NOWs Grids

Conectividade excelente muito boa boa média/ruim

Heterogeneidade nula baixa média alta

Compartilhado não não sim sim

Imagem única comum comum múltipla

Escala 10 1.000 1.000 100.000

Page 36: Grids Computacionais

36

Grids podem diferir bastante

• TeraGrid – 4 centros de supercomputação norte-americanos

– Cada centro com milhares de processadores dedicados ao TeraGrid

– Canais de altíssima velocidade (40 GBits/s)

– Poder agregado de 13,6 TeraFlops

• SETI@home– Ciclos ociosos de 3.6 milhões de processadores

espalhados em 224 países

– Computa em média a uma velocidade de 14 Teraflops

Page 37: Grids Computacionais

37

Desafios Adicionais em Grids para Alto Desempenho• Execução Remota e Identidade Local

• Imagem do Sistema

• Proteção dos Recursos e das Aplicações

• Escalonamento

Page 38: Grids Computacionais

38

Globus GRAM e GSI

• Mapeamento seguro da identificação GSI global para um userid local– Global: C=US, O=University of California San

Diego, OU=Grid Computing Lab, CN=Walfredo Cirne

– Local: walfredo (em thing1), u15595 (em bh)

• Submissão e controle de tarefas via GRAM– Independência do escalonador de recurso– Proxy para delegação de autenticação

Page 39: Grids Computacionais

39

Imagem do Sistema

• Imagem do sistema são as abstrações que nos permite lidar com um sistema computacional– Arquivo, diretório, processo, usuário, grupo, etc

• Com vários domínios administrativos, a imagem do sistema é heterogênea– Complica tremendamente o uso do Grid

• Soluções– Imagem do sistema implementada a nível de usuário

[exemplo: Condor]

– Novas abstrações para se lidar com o Grid [exemplo: MyGrid]

Page 40: Grids Computacionais

40

Redirecionamento de System Calls do Condor

Page 41: Grids Computacionais

41

Abstrações OurGrid

• Máquina base máquina do grid

• Tarefa = inicial + remota + final– inicial e final rodam na máquina do grid– remota roda na máquina do grid

• Armazenamento– Playpen– Storage– Transferência de arquivos/Espelhamento

Page 42: Grids Computacionais

42

Fatorando com OurGrid

task:init: put ./Fat.class $PLAYPENremote: java Fat 3 18655 34789789799 output-$TASKfinal: get $PLAYPEN/output-$TASK results

task:init: put ./Fat.class $PLAYPENremote: java Fat 18656 37307 34789789799 output-$TASKfinal: get $PLAYPEN/output-$TASK results

task:init: put ./Fat.class $PLAYPENremote: java Fat 37308 55968 34789789799 output-$TASKfinal: get $PLAYPEN/output-$TASK results

....

Page 43: Grids Computacionais

43

Segurança

• Autenticação e Autorização– Requisito de qualquer grid, porém insuficiente

quando há execução remota

• Proteção do Recurso– Recurso roda código de terceiros

• Proteção da Aplicação– Aplicação roda em recurso de terceiros

• Privacidade dos Dados– Dado é processado em recurso de terceiros– Problema muito complexo!!

Page 44: Grids Computacionais

44

Proteção ao Recurso

• Política por aplicação através de interceptação de system call– Fácil de instalar, suporta qualquer linguagem,

difícil de configurar para garantir segurança

• Virtualização específica: Java– Fácil de instalar, suporta linguagem específica,

fácil de configurar

• Virtualização geral: VMWare, Virtual PC, Xen– Difícil de instalar, suporta qualquer linguagem,

fácil de configurar

Page 45: Grids Computacionais

45

GridBox: Interceptação de System Call

• Interceptação pela substituição de shared libraries

• Define política de acesso por aplicação#Allow read-write access#to "input.txt"and "output.txt"rule fopen allow input.txtrule fopen allow output.txt#Allow read-only access to#/etc/hosts filerule fopen readonly /etc/hosts#Disable all other accessesrule fopen deny *#Limit maximum file sizelimit FILE_SIZE 1000000

#Allow connections to trusted machinesrule connect allow 200.18.98.120:80rule connect allow 200.18.98.132:80rule connect allow 200.18.99.221:80#Allow SSH connectionrule connect allow 200.18.98.22:22#Disallow any other connectionrule connect deny *:*

Page 46: Grids Computacionais

46

SWAN: Segurança no OurGrid

• Aplicações Bag-of-Tasks só precisarem se comunicar para receber a entrada e devolver a saída – Isto é feito pelo próprio OurGrid

• A tarefa remota roda dentro de uma máquina virtual Xen, sem acesso a rede, e com acesso a disco limitado “por hardware” a uma partição especifica

Page 47: Grids Computacionais

47

Escalonamento de Aplicação

• Não é possível ter um escalonador controlando o Grid– Tamanho e dispersão– Múltiplos domínios administrativos

• Escalonadores de recurso– Controlam alguns recursos no Grid

• Escalonadores de aplicação– Escolhem quais recursos usar– Particionam o trabalho da aplicação

Page 48: Grids Computacionais

48

Escalonamento de Aplicação

...

Application Scheduler

Application Scheduler

Resource Scheduler

...

...

Resource Scheduler

Resource Scheduler

...

Escalonador de Aplicação

Escalonador de Aplicação

Escalonador de Recurso

Escalonador de Recurso

Escalonador de Recurso

Page 49: Grids Computacionais

49

Escalonador de Aplicação

• Necessita de informações sobre o Grid– Sistemas de monitoramento: NWS, Remos– Informações de monitoração são usadas em

previsões de performance

• Necessita de um modelo de performance da aplicação– Portanto, funciona apenas para uma classe de

aplicações

Page 50: Grids Computacionais

50

Distribuição de Trabalho Jacobi para um MPP

Page 51: Grids Computacionais

51

Jacobi AppLeS• Escalonador pioneiro para Jacobi 2D

• Escolhe quais processadores usar

• Distribui o trabalho entre os processadores escolhidos

• Usa predições NWS

• Usa um modelo de performance de Jacobi– Ti = Ai Pi + Ci, onde:

– Ti é o tempo para o processador i executar uma iteração

– Ai é a área da submatriz alocada ao processador i

– Pi é o tempo que o processador i leva para computar um elemento

– Ci é o tempo que o processador i leva para comunicar suas

fronteiras

Page 52: Grids Computacionais

52

Distribuição de Trabalho AppLeS Jacobi

Page 53: Grids Computacionais

53

Work Queue with Replication

• Solução de escalonamento para aplicações Bag of Tasks

• Não depende de informação sobre o Grid ou sobre as tarefas

• Envia uma tarefa para cada máquina disponível

• Quando não há mais tarefas para enviar, as ainda em execução são replicadas

• Eficiente, mas desperdiça ciclos • Escalonador do OurGrid

Page 54: Grids Computacionais

54

Desempenho do WRQ

Page 55: Grids Computacionais

57

Conclusões e Tendências

• Grids de Alta Performance estão se consolidando

• Grids de Serviços fazem parte do futuro da computação distribuída– Interoperabilidade e Padronização são

palavras de ordem

Page 56: Grids Computacionais

58

Algumas Referências

• http://www.ourgrid.org

• http://www.globus.org

• http://www.cs.wisc.edu/condor/

• http://ggf.org

• http://gridcafe.web.cern.ch/gridcafe/

Page 57: Grids Computacionais

59

Fim