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