Sistemas Distribuídos - STD29006 Engenharia de...

Post on 14-Nov-2018

220 views 0 download

Transcript of Sistemas Distribuídos - STD29006 Engenharia de...

Sistemas DistribuídosSTD29006 – Engenharia de Telecomunicações

Prof. Emerson Ribeiro de Mello

http://docente.ifsc.edu.br/mello/std

01 DE AGOSTO DE 2018

Objetivo da disciplinaApresentar uma visão geral sobre conceitos de sistemas distribuídos epropiciar aos alunos meios para desenvolver aplicações distribuídas

Carga horária: 36h teóricas + 18h práticas09:40 – 11:30 - quarta-feira09:40 – 11:30 - sexta-feira (semana alternada)

LocalLab. Sistemas Digitais e Sala 12

Atendimento paralelo13:30 - 15:20 – quarta-feira

Notas de aulas e interaçãoSIGAA – https://sigaa.ifsc.edu.br

1/25

Avaliação

Avaliação escrita (AE) (individual e sem consulta)Quantidade: 01Peso: 50%Recuperação: Avaliação escrita substitutiva no final do semestreabrangendo todo o conteúdo da disciplina

Projeto prático (PP) (grupo com até 2 pessoas)Quantidade: 02Peso: 50%Recuperação: Dedução de 10% do valor total da nota para cada dia deatraso após o prazo de entrega

Conceito final (CF)CF = bAE × 0,5+

∑2i=1 PPi × 0,25e, CF ∈ N

Critérios para aprovação na disciplinaMínimo 75% de presença e CF ≥ 6

2/25

Relação com outras unidades curriculares

Laboratórios com Linux, C, Java e Python

3/25

Conteúdo programático

1 Introdução aos sistemas distribuídos2 Arquitetura de sistemas distribuídos3 Comunicação em sistemas distribuídos4 Serviço de nomes5 Sincronismo em sistemas distribuídos6 Tolerância a faltas7 Segurança

4/25

Bibliografia

TANENBAUM, ANDREW S.; STEEN, MAARTEN VANSISTEMAS DISTRIBUIDOS: PRINCÍPIOS E PARADIGMASCOULOURIS, GEORGE; KINDBERG, TIM; DOLLIMORE, JEANSISTEMAS DISTRIBUÍDOS: CONCEITOS E PROJETOTANENBAUM, ANDREW S.SISTEMAS OPERACIONAIS MODERNOS

5/25

Motivação para distribuição

Como ter uma área de armazenamento confiável e adequada ademanda?

Um único disco

Área total de armazenamento éfixaTudo funciona ou tudo falha

6/25

Como ter uma área de armazenamento confiável e adequada ademanda?

Simples!

Adicione mais discos e useLVM!

Não há muito espaço para HD:-(

6/25

Como ter uma área de armazenamento confiável e adequada ademanda?

Simples!

Adicione mais discos e useLVM!Não há muito espaço para HD:-(

6/25

Como ter uma área de armazenamento confiável e adequada ademanda?

Network Attached Storage – NAS

6/25

Como ter uma área de armazenamento confiável e adequada ademanda?

Usar vários discos com LVM nos permite aumentar a área dearmazenamento para se adequar com a demanda

O que acontece se um disco falhar e estivermos somente com LVM?

Todos os dados serão perdidos

Alguma ideia melhor?

Redundant Array of Independent Disks – RAID

7/25

Como ter uma área de armazenamento confiável e adequada ademanda?

Usar vários discos com LVM nos permite aumentar a área dearmazenamento para se adequar com a demanda

O que acontece se um disco falhar e estivermos somente com LVM?

Todos os dados serão perdidos

Alguma ideia melhor?

Redundant Array of Independent Disks – RAID

7/25

Como ter uma área de armazenamento confiável e adequada ademanda?

Usar vários discos com LVM nos permite aumentar a área dearmazenamento para se adequar com a demanda

O que acontece se um disco falhar e estivermos somente com LVM?Todos os dados serão perdidos

Alguma ideia melhor?

Redundant Array of Independent Disks – RAID

7/25

Como ter uma área de armazenamento confiável e adequada ademanda?

Usar vários discos com LVM nos permite aumentar a área dearmazenamento para se adequar com a demanda

O que acontece se um disco falhar e estivermos somente com LVM?Todos os dados serão perdidos

Alguma ideia melhor?

Redundant Array of Independent Disks – RAID

7/25

Como ter uma área de armazenamento confiável e adequada ademanda?

Usar vários discos com LVM nos permite aumentar a área dearmazenamento para se adequar com a demanda

O que acontece se um disco falhar e estivermos somente com LVM?Todos os dados serão perdidos

Alguma ideia melhor?Redundant Array of Independent Disks – RAID

7/25

RAID – redundância e desempenho

Blocos são distribuídos por todos os discos

Oferece melhor desempenho de leitura

Se um disco falhar, tudo estará comprometido

8/25

RAID – redundância e desempenho

Os blocos são espelhados em múltiplos discos

Oferece um desempenho ruim e redução da capacidade dearmazenamento

Se um disco falhar, ainda assim é possível recuperar a informação

8/25

RAID – redundância e desempenho

Desempenho próximo do RAID-0, porém permite recuperar ainformação

Blocos de paridade são distribuídos pelo conjunto de discos

Requer no mínimo 3 discos

8/25

RAID – redundância e desempenho

RAID 1+0 - dados distribuídos em dois conjuntos primários

Desempenho do RAID 0 e proteção do RAID 1

Perda de informação se 2 discos do mesmo conjunto falharem

Requer no mínimo 4 discos

8/25

RAID – redundância e desempenho

8/25

RAID – redundância e desempenho

RAID 5 + disco extra

Disco pronto para ser sincronizado caso um dos discos do RAIDvenha a falhar

8/25

O que prefere?

A facilidade de ter um único disco e aceitando a limitação

A robustez da distribuição por múltiplos discos e aceitando acomplexidade para sua implantação

9/25

Introdução aos Sistemas Distribuídos

Introdução aos Sistemas Distribuídos

TANENBAUM, Andrew S.; STEEN, Maarten vanÉ uma coleção de computadores independentes que para os usuários seapresentam como um único sistema

COULOURIS, George; KINDBERG, Tim; DOLLIMORE, JeanÉ um sistema cujo componentes estão espalhados em computadoresdistintos que usam a rede para se comunicarem e coordenarem suasações

Leslie LamportVocê sabe que tem um sistema distribuído quando a falha de umcomputador, que se quer sabia de sua existência, torna seu própriocomputador inútil

10/25

Introdução aos Sistemas Distribuídos

TANENBAUM, Andrew S.; STEEN, Maarten vanÉ uma coleção de computadores independentes que para os usuários seapresentam como um único sistema

COULOURIS, George; KINDBERG, Tim; DOLLIMORE, JeanÉ um sistema cujo componentes estão espalhados em computadoresdistintos que usam a rede para se comunicarem e coordenarem suasações

Leslie LamportVocê sabe que tem um sistema distribuído quando a falha de umcomputador, que se quer sabia de sua existência, torna seu própriocomputador inútil

10/25

Introdução aos Sistemas Distribuídos

TANENBAUM, Andrew S.; STEEN, Maarten vanÉ uma coleção de computadores independentes que para os usuários seapresentam como um único sistema

COULOURIS, George; KINDBERG, Tim; DOLLIMORE, JeanÉ um sistema cujo componentes estão espalhados em computadoresdistintos que usam a rede para se comunicarem e coordenarem suasações

Leslie LamportVocê sabe que tem um sistema distribuído quando a falha de umcomputador, que se quer sabia de sua existência, torna seu própriocomputador inútil

10/25

Exemplo de Sistemas DistribuídosAplicações Web

11/25

Exemplo de Sistemas DistribuídosAplicações Web

11/25

Exemplo de Sistemas DistribuídosAplicações Web

Após digitar a URL o que acontece por debaixo? Como a página apareceno navegador?

Passos

1 Resolver nome para IPConsultar servidorDNSDiversos IP podemestar associados

2 Conectar no IPHTTP GET e POST

3 Processar HTML

12/25

Exemplo de Sistemas DistribuídosAplicações Web

Após digitar a URL o que acontece por debaixo? Como a página apareceno navegador?

Passos

1 Resolver nome para IPConsultar servidorDNSDiversos IP podemestar associados

2 Conectar no IPHTTP GET e POST

3 Processar HTML

12/25

Exemplo de Sistemas DistribuídosDatacenter distribuídos

13/25

Exemplo de Sistemas DistribuídosDatacenter distribuídos

13/25

Exemplo de Sistemas DistribuídosComputação distribuída

Grande quantidade de informação a ser processadaSupercomputadores são caros, combinar milhares de computadores é asaída mais barata

SETI@HOMEUse o tempo ocioso do teu CPU para buscar ETshttp://setiathome.berkeley.edu

Folding@HOMESimulação de enrolamento de proteínas para entender doenças com omal de Alzheimerhttp://folding.stanford.edu

Renderização de animações (p.e. Monstros S.A)Fazenda de renderização com 3.500 processadores

A renderização de cada quadro de Sullivan demorou 12horas

14/25

Exemplo de Sistemas DistribuídosComputação distribuída

Grande quantidade de informação a ser processadaSupercomputadores são caros, combinar milhares de computadores é asaída mais barata

Em 1994 a NASA constrói o primeiro cluster Beowulf, usando 1.024computadores comuns com sistema operacional Linuxinterconectados através de uma rede de computadores local (altavelocidade e baixa latência) e compartilhando um sistema dearquivosHoje você pode construir o teu cluster Beowulf a partir de 2computadores comuns e com distribuições Linux liveCD

14/25

Exemplo de Sistemas DistribuídosAviação

15/25

Por que Sistemas Distribuídos? – Evolução nas taxas detransmissão

Taxas de transmissão LAN1976 2.94Mbps1985 10Mbps1991 10BaseT – 10Mbps1995 100Mbps1998 1Gbps2001 10Gbps2010 100Gbps

Taxas de transmissão WAN1958 110bps1984 2400bps1991 14.4Kbps1994 28.8Kbps1996 33.6Kbps2000 56Kbps2005 24Mbps (ADSL2+)

16/25

Por que Sistemas Distribuídos? – Evolução dos computadores

1945 Computadores caros e grandes

1974 Intel 8080 – 2Mhz

2004 Intel Pentium4 – 3.6Ghz

2011 Intel Xeon 10-core – 3.33Ghz

2013 Intel i7 4-core – 3.0Ghz

Não conseguimos mais aumentar a velocidade do processadorSolução: Criar vários núcleos em um processador – Sistemas paralelosem um chip

17/25

Por que Sistemas Distribuídos? – Evolução dos computadores

1945 Computadores caros e grandes

1974 Intel 8080 – 2Mhz

2004 Intel Pentium4 – 3.6Ghz

2011 Intel Xeon 10-core – 3.33Ghz

2013 Intel i7 4-core – 3.0Ghz

Não conseguimos mais aumentar a velocidade do processadorSolução: Criar vários núcleos em um processador – Sistemas paralelosem um chip

17/25

Sistemas paralelos: Multiprocessadores simétricos (SMP)Todos CPUs conectados em um barramento

Memória compartilhadaRelógio compartilhadoTudo ou nada falha

18/25

Sistemas paralelos: Multiprocessadores simétricos (SMP)Todos CPUs conectados em um barramento

Memória compartilhadaRelógio compartilhadoTudo ou nada falha

18/25

Sistemas paralelos: Multiprocessadores simétricos (SMP)Todos CPUs conectados em um barramento

Memória compartilhadaRelógio compartilhadoTudo ou nada falha

18/25

Comunicação com múltiplos computadores

Não existe memória compartilhadaToda comunicação é através da rede de dados

Tráfego é bem menor se comparado com o acesso a memória

19/25

O que é um Sistema Distribuído

TANENBAUM, Andrew S.; STEEN, Maarten vanÉ uma coleção de computadores independentes que para os usuários seapresentam como um único sistema

Sem memória compartilhada e sem relógio compartilhadoUsuário imagina que está interagindo com um único sistemaComputadores autônomos que colaboram

Como estabelecer esta colaboração é o principal ponto dodesenvolvimento dos sistemas distribuídos

20/25

Vantagens e dificuldades de um Sistema Distribuído

Sistema continua operando mesmo diante da falha de um de seusintegrantes (isolamento físico)

O isolamento físico implica que nenhum nó terá conhecimento doestado global

Como garantir a consistência da informação nos nós diante deatrasos ou perda de mensagens?

21/25

O que é um Sistema Distribuído – middleware

Permite a comunicação entre aplicaçõesEsconde das aplicações as diferenças de hardware e sistemasoperacionais

22/25

Por que Sistemas Distribuídos?

Sistemas com multiprocessadores não são escaláveisDesempenho vs Custo

Renderização do Sullivan precisaria de um computador com 3.500CPU.

Algumas aplicações são nativamente distribuídasNavegação web, sistemas de monitoramento, sistemas de controle

Algumas aplicações são críticasDeverá continuar funcionando, mesmo diante de uma falha (p.e. emum computador)

Sistemas Distribuídos na Eng. de Telecomunicações

Desenvolvimento de produtos na área necessariamente envolverádesenvolvimento de software

Sistemas de telecomunicações são distribuídos por natureza

23/25

Por que Sistemas Distribuídos?

Sistemas com multiprocessadores não são escaláveisDesempenho vs Custo

Renderização do Sullivan precisaria de um computador com 3.500CPU.

Algumas aplicações são nativamente distribuídasNavegação web, sistemas de monitoramento, sistemas de controle

Algumas aplicações são críticasDeverá continuar funcionando, mesmo diante de uma falha (p.e. emum computador)

Sistemas Distribuídos na Eng. de Telecomunicações

Desenvolvimento de produtos na área necessariamente envolverádesenvolvimento de software

Sistemas de telecomunicações são distribuídos por natureza23/25

Resumo: características e dificuldades

DistribuiçãoConcorrênciaComunicaçãoTempoCoordenaçãoFalhasSegurança

Como tratar problemas de comunicação, coordenação e segurança emum mundo com a presença de falhas e ausência da noção de tempocomum?

24/25

Exercício

Especifique uma solução escalável (hardware e software) para hospedaruma aplicação web e seu banco de dados. O principal requisito nãofuncional para solução é: menor custo inicial possível

1 Explique como sua solução oferecerá a escalonamento vertical(scale up)

2 Explique como sua solução oferecerá a escalonamento horizontal(scale out)

3 Das soluções apresentadas para as questões 1 e 2, quaisnecessariamente são sistemas distribuídos?

Entrega: Discussão em sala na próxima aula

25/25