Post on 01-Dec-2020
SistemasDistribuídosSTD29006 – Engenharia de Telecomunicações
Prof. Emerson Ribeiro de Mello
http://docente.ifsc.edu.br/mello/std
17 DE NOVEMBRO DE 2020
Licenciamento
cb
Estes slides estão licenciados com uma Licença Creative Commons“Atribuição 4.0 Internacional”.
1/21
Escalonamento vertical
Adiciona mais recursos (memória,cpu, disco) em um único nó parapermitir que atenda o aumento dademanda
2/21
Escalonamento horizontal
Capacidade de processamento e armazenamento é aumentada pormeio de adição de novos nós no cluster
Escalabilidade horizontal é a opção mais barata e flexível, porém possuiuma maior complexidade
Sistema centralizado vs sistema distribuído
3/21
Escalonamento horizontal
Capacidade de processamento e armazenamento é aumentada pormeio de adição de novos nós no cluster
Escalabilidade horizontal é a opção mais barata e flexível, porém possuiuma maior complexidade
Sistema centralizado vs sistema distribuído
3/21
Fonte: HP
4/21
Fonte: HP
4/21
Fonte: HP
4/21
Fonte: HP 4/21
Introdução aos Sistemas DistribuídosMetas para construir um SD
1 Tornar os recursos acessíveis
2 Transparência
3 Ser aberto
4 Escalabilidade
5 Concorrência
5/21
Tornar os recursos acessíveis
Dar acesso a recursos de forma fácil, eficiente e controlada para osusuários (pessoas ou aplicações)
impressoras, computadores, storage, arquivos, etc.
O compartilhamento de recursos antes isolados, traz agorapreocupações com a segurança
Acesso indevido, abuso de recursos, privacidade dos usuários
6/21
Transparência
Esconder dos usuários o fato que o processamento e os recursos estãofisicamente distribuídos por diversos computadores
O usuário deve enxergar como um único sistemaA Internet é uma caixa preta? – http://goo.gl/d8stLV
TipoAcessoLocalizaçãoDesempenhoMobilidadeReplicaçãoConcorrênciaFalhas
7/21
Transparência
Esconder dos usuários o fato que o processamento e os recursos estãofisicamente distribuídos por diversos computadores
O usuário deve enxergar como um único sistemaA Internet é uma caixa preta? – http://goo.gl/d8stLV
TipoAcessoLocalizaçãoDesempenhoMobilidadeReplicaçãoConcorrênciaFalhas
7/21
Transparência
Esconder dos usuários o fato que o processamento e os recursos estãofisicamente distribuídos por diversos computadores
O usuário deve enxergar como um único sistemaA Internet é uma caixa preta? – http://goo.gl/d8stLV
TipoAcessoLocalizaçãoDesempenhoMobilidadeReplicaçãoConcorrênciaFalhas
Esconder as diferenças para representação dosdados
Como os dados serão representados emdiferentes arquiteturas de máquinas esistemas operacionaisEx: Convenções para nomes de arquivos, bemcomo sua manipulação em diferentessistemas operacionais
Usuários e aplicações não precisam terciência disto
7/21
Transparência
Esconder dos usuários o fato que o processamento e os recursos estãofisicamente distribuídos por diversos computadores
O usuário deve enxergar como um único sistemaA Internet é uma caixa preta? – http://goo.gl/d8stLV
TipoAcessoLocalizaçãoDesempenhoMobilidadeReplicaçãoConcorrênciaFalhas
Esconder a localização dos recursosUsuário não consegue determinar onde umrecurso está localizado fisicamente nosistemaEx: http://docente.ifsc.edu.br/mello
Onde está localizado o servidor web do IFSC?
7/21
Transparência
Esconder dos usuários o fato que o processamento e os recursos estãofisicamente distribuídos por diversos computadores
O usuário deve enxergar como um único sistemaA Internet é uma caixa preta? – http://goo.gl/d8stLV
TipoAcessoLocalizaçãoDesempenhoMobilidadeReplicaçãoConcorrênciaFalhas
Permitir que o sistema seja reconfigurado paramelhorar o desempenho de acordo com a carga
Novos servidores web poderiam seragregados para ajudar no balanceamento decarga em períodos críticosEx: Dia do resultado do ENEM
7/21
Transparência
Esconder dos usuários o fato que o processamento e os recursos estãofisicamente distribuídos por diversos computadores
O usuário deve enxergar como um único sistemaA Internet é uma caixa preta? – http://goo.gl/d8stLV
TipoAcessoLocalizaçãoDesempenhoMobilidadeReplicaçãoConcorrênciaFalhas
Esconder a mudança de localização enquanto osrecursos estão sendo acessados
Ex: Quando você ouve, sem interrupções, suarádio on-line no celular pela rede WiFi durantesua movimentação pelo câmpus
7/21
Transparência
Esconder dos usuários o fato que o processamento e os recursos estãofisicamente distribuídos por diversos computadores
O usuário deve enxergar como um único sistemaA Internet é uma caixa preta? – http://goo.gl/d8stLV
TipoAcessoLocalizaçãoDesempenhoMobilidadeReplicaçãoConcorrênciaFalhas
Esconder que os recursos são replicadosRecursos podem ser replicados para aumentara disponibilidade ou desempenhoEx: Quando acessa a página do google, emqual servidor está se conectando? No maispróximo do teu computador ou no servidor noEUA?
7/21
Transparência
Esconder dos usuários o fato que o processamento e os recursos estãofisicamente distribuídos por diversos computadores
O usuário deve enxergar como um único sistemaA Internet é uma caixa preta? – http://goo.gl/d8stLV
TipoAcessoLocalizaçãoDesempenhoMobilidadeReplicaçãoConcorrênciaFalhas
Esconder que o recurso pode estar sendocompartilhado de forma concorrente com outrosusuários
Dois usuários estão no mesmo momentoacessando a mesma tabela no Banco deDadosO sistema deverá garantir o acessoconcorrente ao mesmo tempo que garante aconsistência dos dados (geralmenteprotegidos por locks)
7/21
Transparência
Esconder dos usuários o fato que o processamento e os recursos estãofisicamente distribuídos por diversos computadores
O usuário deve enxergar como um único sistemaA Internet é uma caixa preta? – http://goo.gl/d8stLV
TipoAcessoLocalizaçãoDesempenhoMobilidadeReplicaçãoConcorrênciaFalhas
Esconder as falhas de um recurso, bem como suarecuperação
Servidor web possui 3 réplicas para melhorar odesempenhoSe uma réplica falhar, o serviço continuaacessívelQuando a réplica que falhou for recuperada,nada muda na forma de acesso para o usuário
7/21
Transparência
É impossível prover um sistema distribuído completamentetransparente
Impossível esconder a latência na transmissão pela Internet
Nem sempre será possível esconder falhas do sistema
Em alguns casos é desejável que o usuário tenha ciênciaEx: O usuário precisa saber onde está a impressora para ondemandou o trabalho
8/21
Ser aberto
Permitir ser estendido ou implementado de diferentes formas
Exemplos:Computador pessoal – Periféricos de diferentes fabricantes
Rede TCP/IP – computadores com diferentes arquiteturas e sistemasoperacionais conseguem interagir sem problema
Especificações abertas dos protocolos – www.ietf.org
Sistema Distribuído Aberto
Faz uso de mecanismos de comunicação padronizados e tornapúblico interfaces para acesso aos recursos compartilhados
Pode ser construído com hardware e software heterogêneos,possivelmente de diferentes fabricantes
9/21
Ser aberto
Permitir ser estendido ou implementado de diferentes formas
Exemplos:Computador pessoal – Periféricos de diferentes fabricantes
Rede TCP/IP – computadores com diferentes arquiteturas e sistemasoperacionais conseguem interagir sem problema
Especificações abertas dos protocolos – www.ietf.org
Sistema Distribuído Aberto
Faz uso de mecanismos de comunicação padronizados e tornapúblico interfaces para acesso aos recursos compartilhados
Pode ser construído com hardware e software heterogêneos,possivelmente de diferentes fabricantes
9/21
Sistema Distribuído Aberto
É desejado que o sistema seja organizado como uma coleção decomponentes que possam ser facilmente adaptados ousubstituídos
Deve-se publicar definições de interfaces de alto nível (vistas pelosusuários) e também de interfaces internas (vistas pelas partesinternas do sistema)
A separação das políticas dos mecanismos garante uma maiorflexibilidade aos sistemas abertos
mecanismo: cache do navegador web
política: usuário indica o que salvar e por quanto tempo
10/21
Escalabilidade
Sistemas centralizados não são escaláveisEx: Um único servidor de arquivos centralizado
Aumento no número de usuários e recursos demandará maior poder deprocessamento, armazenamento e taxa de transferência paracomunicação
Se os usuários estão espalhados pelo globo, logo resultará em umagrande latência na comunicação com o servidor
Um sistema é dito escalável se continuar efetivo mesmo diante deum aumento no número de recursos e usuários
Pode ser medido em três dimensões:tamanho – número de usuários e/ou recursos
dispersão geográfica – distância entre os nós
administração – número de domínios administrativos
11/21
Escalabilidade
Sistemas centralizados não são escaláveisEx: Um único servidor de arquivos centralizado
Aumento no número de usuários e recursos demandará maior poder deprocessamento, armazenamento e taxa de transferência paracomunicação
Se os usuários estão espalhados pelo globo, logo resultará em umagrande latência na comunicação com o servidor
Um sistema é dito escalável se continuar efetivo mesmo diante deum aumento no número de recursos e usuários
Pode ser medido em três dimensões:tamanho – número de usuários e/ou recursos
dispersão geográfica – distância entre os nós
administração – número de domínios administrativos
11/21
Escalabilidade
Qual topologia é mais escalável?
12/21
Desafios para projetar um sistema distribuído escalável
Gerenciar o custo dos recursos físicosSer possível estender o sistema com um custo aceitável para atendernova demanda
Gerenciar a perda de desempenhoEstruturas hierárquicas (ex: DNS) são escaláveis, mas implicam emuma perda de desempenho se comparada com uma estrutura plana
Comunicação síncrona só é adequada para redes locais (confiáveis)Redes de longa distância (WAN) requerem comunicação assíncrona
Prevenir que os recursos de software se esgotemNúmero de IPs da versão 4 é um exemplo de recurso que se esgotou
Prever a demanda com base em um crescimento futuro é algocomplicado
Evitar gargalosUso de algoritmos descentralizados (ex: DNS)
13/21
Técnicas para projetar sistema distribuído escalávelOcultar a latência inerente da comunicação
Comunicação síncrona – o cliente só prossegue em sua execuçãoapós receber a resposta de seu pedido enviado ao servidor
Client
Request Reply
ServerProvide service Time
Wait for result
Comunicação assíncrona – evita bloquear o cliente enquantoaguarda pela resposta do servidor
Call local procedure
Call remoteprocedure
Returnfrom call
Client
RequestAcceptrequest
ServerTime
Wait foracceptance
Interrupt client
Returnresults Acknowledge
Call client withone-way RPC
14/21
Técnicas para projetar sistema distribuído escalávelOcultar a latência inerente da comunicação
Comunicação síncrona – o cliente só prossegue em sua execuçãoapós receber a resposta de seu pedido enviado ao servidor
Client
Request Reply
ServerProvide service Time
Wait for result
Comunicação assíncrona – evita bloquear o cliente enquantoaguarda pela resposta do servidor
Call local procedure
Call remoteprocedure
Returnfrom call
Client
RequestAcceptrequest
ServerTime
Wait foracceptance
Interrupt client
Returnresults Acknowledge
Call client withone-way RPC
14/21
Técnicas para projetar sistema distribuído escalávelOcultar a latência inerente da comunicação
Comunicação assíncrona não é adequada para aplicaçõesinterativas, onde o usuário aguarda por uma resposta rápida
Mover para o cliente a maior parte possível de tarefas deprocessamento, reduzirá carga no servidor
MA
AR
TE
N
MAARTEN
MAARTEN
STEEN@CS.VU.NL
STEEN@CS.VU.NL
VAN STEEN
VAN STEEN
FIRST NAME
FIRST NAME
LAST NAME
LAST NAME
Server
Server
Client
Client
Check form
Check form
Process form
Process form
MAARTENVAN STEENSTEEN@CS.VU.NL
(a)
(b)
É preferível enviaruma únicamensagem grande,do que váriasmensagenspequenas
15/21
Técnicas para projetar sistema distribuído escalávelDistribuição das responsabilidades
Divida um componente em diversas pequenas partes e as espalhepelo sistema
Cada parte fica com uma pequena responsabilidade de todo osistema
int com edu gov mil org net jp us nl
sun
eng
yale
eng
ai linda
robot
acm
jack jill
ieee
keio
cs
cs
pc24
co
nec
csl
oce vu
cs
flits fluit
ac
Generic Countries
Z1
Z2
Z3
16/21
Técnicas para projetar sistema distribuído escalávelReplicação dos componentes
Aumentar disponibilidade e balancear cargaRéplicas poderiam estar mais próximas dos clientes, melhorandotambém o desempenho
A forma que servidores DNS fazem uso do cache é considerado umtipo de replicação
Na primeira consulta do cliente, o servidor vai em busca da resposta esalva no cache
Consultas subsequentes o servidor só busca no cache
A consistência dos dados nas diferentes réplicas é a principaldificuldade
Cache do DNS x tempo de validade dos registros
17/21
Concorrência
Em um sistema distribuído os recursos podem estar espalhados pordiversas máquinas
Existe a possibilidade de diversos clientes tentarem acessar ummesmo recurso no mesmo instante
Deve-se garantir a consistência dos dados nas múltiplas réplicas ediante de múltiplos acessos
Operações devem ser sincronizadas e ordenadas
Vocês já viram isto com “semáforos nos sistemas operacionais”
18/21
Resumo
Compartilhamento de recursos é o principal fator motivador para SD
A transparência permite esconder do usuário que o processamentoe recursos estão distribuídos
Ser construído de forma modular e sobre uma base deespecificações e padrões abertos
Torna mais fácil estender ou substituir componentes
Garante a interoperabilidade entre implementações de diferentesfabricantes
Distribuição das responsabilidades e replicação dos componentessão propriedades para um SD ser escalável
Deve-se garantir a consistência mesmo diante de concorrência
Redes de longa distância são diferentes das redes locaissegurança, confiabilidade, latência, heterogeneidade, taxa detransferência e administração
19/21
Questoes
Questões
1 Por qual motivo você deveria projetar um sistema como um sistemadistribuído?
2 Liste as desvantagens de um sistema distribuído quandocomparado com um sistema centralizado.
3 Explique o significado da transparência em sistemas distribuídos eapresente alguns exemplos para os diferentes tipos detransparência.
20/21
Aulas baseadas em
TANENBAUM, ANDREW S.; STEEN, MAARTEN VANSISTEMAS DISTRIBUIDOS: PRINCÍPIOS E PARADIGMAS
Veja Capítulo 1 do livro Distributed Systems 3rd edition
21/21