Um Sistema Distribuído

Propaganda
Sistemas Distribuídos
Faculdade Ieducare
8º Semestre – Sistemas de Informação
Professor: Rhyan Ximenes
Sistemas Distribuídos
1
Sistemas Operacionais Distribuídos
 O que é um sistema distribuídos?
- É uma coleção de computadores independentes que
aparenta ser um único computador aos seus usuários.
Exemplos:
Rede com estações de trabalho e processadores standalone alocados por demanda com um sistema de arquivos
unificado;
Sistema bancário com terminais espalhados
geograficamente e um único banco de dados.
Stand-alone – Programas que rodam sozinhos.
Sistemas Distribuídos
2
Sistemas Operacionais Distribuídos
 Como se tornou possível o surgimento desses
sistemas?
 Com o surgimento de computadores mais rápidos e
baratos e o surgimento de redes de computadores de
alta velocidade.
Sistemas Distribuídos
3
Vantagens de S.D sobre sistemas
centralizados.
 Lei de Grosch – O poder de computação de um
computador é proporcional ao quadrado do seu preço.
(Aplicável a mainframes);
 No caso de microprocessadores, é mais barato se
comprar vários processadores e montá-los em um
sistema multi-processador (preço);
 Em alguns casos, é teoricamente impossível de se
construir um computador centralizado que possa ser
comparado a um sistema distribuído com uma grande
quantidade de processadores (velocidade);
Sistemas Distribuídos
4
Vantagens de S.D sobre sistemas
centralizados.
 Algumas aplicações são inerentemente distribuídas -
Sistema de uma cadeia de lojas, jogos ou outras
aplicações cooperativas(distributividade inerente);
 Maior confiabilidade, útil em aplicações de alto risco
(confiabilidade);
 Crescimento incremental – acaba com necessidade da
compra de mainframes cada vez maiores, agora o
sistema pode ser trocado aos poucos (crescimento
incremental).
Sistemas Distribuídos
5
Vantagens de S.D sobre micros
independentes:
 Compartilhamento de dados (colaboração e preço);
 Compartilhamento de dispositivos (preço);
 Comunicação;
 Mistura de computadores pessoais e compartilhados
pode permitir uma distribuição de tarefas mais
eficiente (flexibilidade).
Sistemas Distribuídos
6
Desvantagens de S.D
 Software – Sistemas Operacionais, linguagens de
programação e aplicações;
 Comunicação – Tratamento e recuperação de
mensagens;
Melhoria da rede pode acarretar em custos altos.
 Segurança – Compartilhamento de dados implica em
esquemas especiais para proteção de dados sigilosos.
Sistemas Distribuídos
7
Características de S.D
 Sistema de comunicação interprocessos único,
independente se os dois processos estão localizados na
mesma máquina ou não;
 Esquema de proteção global;
 Gerenciamento de processos único, isto é, como eles
são criados, destruídos, iniciados ou parados;
Sistemas Distribuídos
8
Características de S.D
 A idéia usada nos sistemas operacionais de rede de se
estabelecer protocolos para a comunicação clienteservidor não é suficiente;
 Deve haver um único conjunto de chamadas de
sistema em todas as máquinas e as chamadas devem
ser projetadas levando em conta o ambiente
distribuído.
Sistemas Distribuídos
9
Características de S.D
 Sistema de arquivos deve ter a mesma visão e regras em
todas as máquinas.
 Segurança deve ser implementada em relação aos
usuários e não em relação as máquinas.
Sistemas Distribuídos
10
Características de S.D
 Geralmente, o mesmo núcleo (kernel) roda em todas as
máquinas, já que os mesmos implementam as mesmas
funções e chamadas;
 Cada núcleo pode ter um controle razoável sobre os
recursos locais;
- Exemplo: no gerenciamento de memória, swapping, ou
até escalonamento de processos, no caso de uma CPU
possuir mais de um processo sendo executado.
Sistemas Distribuídos
11
Sistemas Distribuídos Verdadeiro
 As vezes são chamados de sistemas operacionais
distribuídos;
 Software fortemente acoplado (tightly-coupled) em
um hardware fracamente acoplado (loosely-coupled);
Sistemas Distribuídos
12
Sistemas Distribuídos Verdadeiro
 O objetivo:
- Criação de uma ilusão para os usuários que o sistema
de multicomputadores funciona como uma grande
máquina de tempo compartilhado;
- As vezes são referenciados como sistemas de imagem
única ou uni processador virtual.
Sistemas Distribuídos
13
Sistemas Operacionais de Redes
 Loosely coupled – Comunicação é explicitamente
solicitada pelo usuário e se dá através da troca de
mensagens;
 Distribuição do sistema é clara para o usuário;
 Servidores de arquivos fornecem arquivos a máquinas
clientes;
Sistemas Distribuídos
14
Sistemas Operacionais de Redes
 Usuários diferentes tem visões diferentes do sistema,
devido a diferenças em como os sistemas de arquivo
locais estão organizados e quais dispositivos locais as
máquinas possuem, etc.
Sistemas Distribuídos
15
Sistemas Operacionais de Redes
 Máquinas podem rodar diferentes versões de um
mesmo S.O ou até diferentes S.Os desde que os
protocolos de comunicação e serviços sejam usados
por todas as máquinas;
 A “coordenação” (mínima) de serviços entre as
máquinas é feita através da aderência aos protocolos.
Sistemas Distribuídos
16
Definição de Sistema Distribuídos
Um Sistema Distribuído (SD) é:
Exemplo de S.D
Um conjunto de computadores
independentes que se apresenta
a seus usuários como um sistema
único e coerente.
Sistemas Distribuídos
17
Exemplo de S.D (2)
Sistemas Distribuídos
18
Definição de Sistema Distribuído(5)
•Um Sistema Distribuído organizado como um middleware.
•O SD oculta as diferenças de hardware e de sistemas operacionais
das aplicações distribuídas;
•A camada middleware se estende por várias máquinas e oferece a
mesma interface a cada aplicação.
Middleware ou mediador, no campo da computação distribuída, é um programa de
computador que faz a mediação entre software e demais aplicações. É utilizado para
mover ou transportar informações e dados entre programas de diferentes protocolos
de comunicação, plataformas e dependências do sistema operacional.
Sistemas Distribuídos
19
Metas de projeto
 Um Sistema Distribuído deve:
 Oferecer fácil acesso a seus recursos groupware;
 Ocultar razoavelmente bem o fato de que os recursos
são distribuídos por uma rede (Transparência);
 Ser aberto Inerface Definition Language (IDL) e
 Poder ser expandido (Escalabilidade).
Sistemas Distribuídos
20
Transparência em um Sistema Distribuído
Diferentes formas de transparência em um sistema distribuído.
Sistemas Distribuídos
21
Escalabilidade
 A escalabilidade pode ser medida segundo três
dimensões:
 Escalabilidade de tamanho: é fácil adicionar mais
usuários e recursos no sistema
 Escalabilidade geográfica: usuários e recursos podem
estar distantes entre si
 Escalabilidade administrativa: é fácil de gerenciar,
mesmo que abranja muitas organizações
administrativas diferentes
Sistemas Distribuídos
22
Problemas na Escalabilidade (1)
Sistemas Distribuídos
23
Problemas na Escalabilidade (2)
 Características dos algoritmos descentralizados:
 Nenhuma máquina tem informações completas sobre
o estado do sistemas.
Sistemas Distribuídos
24
Problemas na Escalabilidade (2)
 As máquinas tomam decisões tendo como base
somente informações locais.
 A falha de uma máquina não arruína o algoritmo.
 Não há nenhuma premissa implícita quanto à
existência de um relógio global.
Sistemas Distribuídos
25
Técnicas de Escalabilidade(1)
Sistemas Distribuídos
26
Técnicas de Escalabilidade (2)
ocultar latência
Latência é a diferença de tempo entre o início
de um evento e o momento em que seus
efeitos tornam-se perceptíveis.
Sistemas Distribuídos
27
Técnicas de Escalabilidade (3)
distribuição
Sistemas Distribuídos
28
Alguém sabe como funciona o
DNS?
 O DNS ( Domain Name System - Sistema de Nomes
de Domínios ) é um sistema de gerenciamento de
nomes hierarquicos e distribuído visando resolver
nomes de domínios em endereços de rede (IP).
Sistemas Distribuídos
29
Alguém sabe como funciona o
DNS?
 Ele baseia-se em nomes hierárquicos e permite a
inscrição de vários dados digitados além do nome
do host e seu IP.
 O servidor DNS traduz nomes para os endereços IP
e endereços IP para nomes respectivos, e
permitindo a localização de hosts em um domínio
determinado.
Sistemas Distribuídos
30
Alguém sabe como funciona o
DNS?
 Existem 13 servidores DNS raiz no mundo todo e
sem eles a Internet não funcionaria.
 Destes, dez estão localizados nos Estados Unidos
da América, um na Ásia e dois na Europa.
Sistemas Distribuídos
31
Alguém sabe como funciona o
DNS?
 Para Aumentar a base instalada destes servidores,
foram criadas réplicas localizadas por todo o mundo,
inclusive no Brasil desde 2003.
 Ou seja, os servidores de diretórios responsáveis
por prover informações como nomes e endereços
das máquinas são normalmente chamados
servidores de nomes.
Sistemas Distribuídos
32
Ciladas Quando Desenvolvemos
Sistemas Distribuídos
Sistemas Distribuídos
33
Tipos de Sistemas Distribuídos:
Sistemas Distribuídos
34
Tipos de Sistemas Distribuídos:
Sistemas Distribuídos
35
Sistemas de Computação de Alto
Desempenho
Sistemas Distribuídos
36
Sistemas de Computação de Alto
Desempenho
 Aplicações:
- Sistemas meteorológicos;
- Ferramentas de mapeamento genético;
- Simuladores geotérmicos;
- Programas de renderização de imagens tridimensionais;
- Computação em Nuvens, necessidade de ter uma
infraestrutura tecnológica respondendo a vários clientes
simultaneamente de maneira remota, por exemplo;
- Aplicações crítica - que não pode parar de funcionar ou
não pode perder dados (os sistemas bancários, por
exemplo);
- Entre tantos outros.
Sistemas Distribuídos
37
Sistemas de Computação de Cluster
 O que é cluster?
Sistema que relaciona dois ou mais computadores para que estes
trabalhem de maneira conjunta no intuito de processar uma
tarefa. Estas máquinas dividem entre si as atividades de
processamento e executam este trabalho de maneira simultânea.
 Como funciona?
Cada computador que faz parte do cluster recebe o nome
de nó (ou node);
Não há limite máximo de nós;
Mas o cluster deve ser "transparente", ou seja, ser visto pelo
usuário ou por outro sistema que necessita deste processamento
como um único computador. Dois ou mais computadores trabalham de maneira
conjunta para realizar processamento pesado.
Sistemas Distribuídos
38
Sistemas de Computação de Cluster
 É necessário alguma padronização?
- Os nós do cluster devem ser interconectados, preferencialmente, por
uma tecnologia de rede conhecida, para fins de manutenção e controle
de custos, como a Ethernet;
- É importante que o padrão adotado permita a inclusão ou a retirada
de nós com o cluster em funcionamento, do contrário, o trabalho de
remoção e substituição de um computador que apresentar problemas,
por exemplo, faria a aplicação como um todo parar.
Sistemas Distribuídos
39
Sistemas de Computação de Cluster
 De que é composto os nós?
- Na computação em cluster os nós podem até mesmo ser compostos por
computadores simples, como PCs de desempenho mediano;
 Finalidade
- Configura um sistema de processamento com capacidade suficiente para dar
conta de determinadas aplicações que, se fossem atendidas por
supercomputadores ou servidores sofisticados, exigiriam investimentos muito
maiores.
Sistemas Distribuídos
40
Fotografia de um Cluster.
Não é necessário haver um conjunto de hardware exatamente igual em cada nó;
É importante que todas as máquinas utilizem o mesmo sistema operacional, de
forma a garantir que o software que controla o cluster consiga gerenciar todos os
computadores que o integram.
Sistemas Distribuídos
41
Sistemas de Computação de Cluster (1)
Sistemas Distribuídos
42
Sistemas de Computação de Cluster (2)
Sistemas Distribuídos
43
Sistemas de Computação de
Cluster (3)
Sistemas Distribuídos
44
Tipos de clusters
Cluster de Alto Desempenho (High Performance
Computing Cluster)
2. Cluster de Alta Disponibilidade (High Availability
Computing Cluster)
3. Cluster para Balanceamento de Carga (Load
Balancing)
4. Combinação de tipos de clusters
1.
Sistemas Distribuídos
45
Cluster de Alto Desempenho (High
Performance Computing Cluster)
 São direcionados a aplicações bastante exigentes no que diz




respeito ao processamento;
Onde são utilizados?
Em sistemas utilizados em pesquisas científicas, onde há a
necessidade de analise uma grande variedade de dados
rapidamente e realizar cálculos bastante complexos.
Qual o foco deste tipo de cluster?
O processamento direcionado à aplicação forneça
resultados satisfatórios em tempo hábil, mesmo que haja
grande volume de dados a serem analisados e processados
por segundo.
Sistemas Distribuídos
46
Cluster de Alta Disponibilidade (High
Availability Computing Cluster)
 Qual o foco desse tipo de cluster?
- Sempre manter a aplicação em pleno funcionamento;
- Não é aceitável que o sistema pare de funcionar, se
acontecer, a paralisação deve ser a menor possível.
 Que recursos são utilizados para atingirem o objetivo?
- Ferramentas de monitoramento que identificam nós
defeituosos ou falhas na conexão,
- Replicação (redundância) de sistemas e computadores
para substituição imediata de máquinas com problemas,
- Uso de geradores para garantir o funcionamento em caso
de queda de energia, entre outros.
Sistemas Distribuídos
47
Cluster de Alta Disponibilidade (High
Availability Computing Cluster)
 Observação:
- É tolerável que o sistema apresente algum grau de
perda de desempenho, especialmente quando esta
situação é consequência de algum esforço para manter
a aplicação em atividade.
Sistemas Distribuídos
48
Cluster para Balanceamento de Carga
(Load Balancing)
 As tarefas de processamento são distribuídas o mais
uniformemente possível entre os nós;
 Cada computador recebe e atende a uma requisição e não,
necessariamente, divide uma tarefa com outras máquinas.
 Por exemplo:
- Imagine que um grande site na internet receba por volta
de mil visitas por segundo e que um cluster formado por 20
nós tenha sido desenvolvido para atender a esta demanda.
Como se trata de uma solução de balanceamento de carga,
estas requisições são distribuídas igualmente entre as 20
máquinas, de forma que cada uma receba e realize, em
média, 50 atendimentos a cada segundo.
Sistemas Distribuídos
49
Cluster para Balanceamento de Carga
(Load Balancing)
 Obs1.:
- Não basta ao cluster de balanceamento de carga ter um
mecanismo meramente capaz de distribuir as requisições;
- É necessário que este procedimento seja executado de forma a
garantir um "equilíbrio" na aplicação;
 Como é feito?
- Monitoramento constante dos nós para verificar, por exemplo,
qual máquina está lidando com a menor quantidade de tarefas e
direcionar uma nova requisição para esta.
 Obs2.:
- O balanceamento de carga pode ser utilizado em vários tipos
de aplicações;
- Uso comum na internet.
Sistemas Distribuídos
50
Combinação de tipos de clusters
 Conforme a necessidade;
 Como é feito?
- Combinando características de tipos diferentes no
intuito de atender plenamente à aplicação;
 Por exemplo:
- Uma loja na internet pode utilizar um cluster de alta
disponibilidade para garantir que suas vendas possam
ser realizadas 24 horas por dia e, ao mesmo tempo,
aplicar balanceamento de carga para suportar um
expressivo aumento eventual no número de pedidos
causados por uma promoção.
Sistemas Distribuídos
51
Funcionamento básico dos cluster
 Cada computador de um cluster é denominado nó ou
nodo;
 Todos devem ser interconectados, de maneira a
formarem uma rede, de qualquer topologia;
 A rede precisa ser criada de uma forma que permita o
acréscimo ou a retirada de um nó (em casos de danos,
por exemplo), mas sem interromper o funcionamento
do cluster;
Sistemas Distribuídos
52
Funcionamento básico dos cluster
 Sistema operacional usado nos computadores deve ser
de um mesmo tipo;
 Isso porque existe particularidades em cada sistema
operacional que poderiam impedir o funcionamento
do cluster.
Sistemas Distribuídos
53
Cluster Beowulf
 O Beowulf padrão de clustering disponibilizado pela
NASA (National Aeronautics and Space ) em 1994 e
amplamente adotado desde então.
 Origem do nome:
- Nome de um poema extenso e bastante antigo, cujo
manuscrito foi encontrado no século XI;
- A obra descreve os atos de um herói de mesmo nome que
se destaca por sua força descomunal e que, portanto,
enfrenta um perigoso monstro para salvar um reino;
- A história serviu de inspiração para que os pesquisadores
Thomas Sterling e Donald Becker, da NASA, batizassem o
projeto de cluster no qual trabalhavam de Beowulf.
Sistemas Distribuídos
54
Cluster Beowulf
 Define-se, basicamente, pela ênfase nas seguintes
características:
 - Entre os nós, deve haver pelo menos um que atue
como mestre para exercer o controle dos demais;
 Máquinas mestres são chamadas de front-end; as
demais, de back-end;
 Possibilidade de existir mais de um nó no front-end
para que cada um realize tarefas específicas, como
monitoramento.
Sistemas Distribuídos
55
Cluster Beowulf
Sistemas Distribuídos
56
Como funciona? Cluster Beowulf
 Comunicação entre os nós pode ser feita por redes do
tipo Ethernet, mais comuns e mais baratas;
 Não é necessário o uso de hardware exigente, nem
específico;
 A ideia é a de se aproveitar componentes que possam
ser encontrados facilmente. Até mesmo PCs
considerados obsoletos podem ser utilizá-los;
Sistemas Distribuídos
57
Como funciona? Cluster Beowulf
 O sistema operacional deve ser de código aberto, razão
pela qual o Linux e outras variações do Unix são
bastante utilizados em cluster Beowulf;
 Os nós devem se dedicar exclusivamente ao cluster;
 Deve-se fazer uso de uma biblioteca de comunicação
apropriada, como a PVM (Parallel Virtual Machine) ou
a MPI (Message Passing Interface);
 Ambas são direcionadas à troca de mensagens entre os
nós.
Sistemas Distribuídos
58
Vantagens Cluster Beowulf
 Solução consideravelmente mais barata e menos complexa





que um supercomputador.
Construção de um cluster "poderoso" ;
Poupar gastos com equipamentos;
Licenças de software;
Manutenção.
Curiosidade:
- O cluster montado por Thomas Sterling e Donald Becker
para a NASA, por exemplo, era composto por 16 PCs com
processador Intel 486 DX4 e sistema operacional
Linux conectados por uma rede Ethernet de 10 Mb/s;
Sistemas Distribuídos
59
Vantagens de Desvantagens
de Cluster
 Pode-se obter resultados tão bons quanto ou até
superiores que um servidor sofisticado a partir de
máquinas mais simples e mais baratas (ótima relação
custo-benefício);
 Não é necessário depender de um único fornecedor ou
prestador de serviço para reposição de componentes;
 A configuração de um cluster não costuma ser trivial,
mas fazer um supercomputador funcionar poder ser
muito mais trabalhoso e exigir pessoal especializado;
Sistemas Distribuídos
60
Vantagens de Desvantagens
de Cluster
 É possível aumentar a capacidade de um cluster com a
adição de nós ou remover máquinas para reparos sem
interromper a aplicação;
 Há opções de softwares para cluster disponíveis
livremente, o que facilita o uso de uma solução do tipo
em universidades, por exemplo;
Sistemas Distribuídos
61
Vantagens de Desvantagens
de Cluster
 Relativa facilidade de customização para o perfeito
atendimento da aplicação;
 Um cluster pode ser implementado tanto para uma
aplicação sofisticada quanto para um sistema
doméstico criado para fins de estudos, por exemplo;
 Entre outras.
Sistemas Distribuídos
62
Computação em grade
 É uma rede de computadores na qual os recursos do
computador são compartilhados com todo e qualquer
computador no sistema;
O que pode ser partilhado?
Poder de processamento;
Memória;
Armazenamento de dados;
63
Computação em grade - Grid Computing
 Visão sobre Computação em Grade
 Pode ser tão simples quanto uma coleção de
computadores parecidos rodando no mesmo sistema
operacional;
 Podem ser tão complexo quanto sistemas de redes
múltiplas que abrangem todas as plataformas de
computador possamos imaginar.
É um tipo especial de computação distribuída.
64
Grid Computing
Sistemas Distribuídos
65
Sistemas de Computação em Grid (2)
 Diferentes dos sistemas baseados em Clusters, os sistemas de
computação em Grid tem um alto grau de heterogeneidades,
diferentes hardwares, SOs, redes, ...
 Usuários e recursos de diferentes organizações são interligados,
permitindo total colaboração, criando uma Organização Virtual
(V.O. = Virtual Organization)
 Os membros das V.O. tem total acesso a um conjunto comum de
recursos (por exemplo, os sistemas da polícia americana, do FBI
e de outras agencias formam um grid).
Sistemas Distribuídos
66
Sistemas de Computação em Grid
Sistemas Distribuídos
67
Sistemas de Computação em Grid (4)
Middleware ou mediador- Programa de computador que faz a
mediação entre software e demais aplicações.
Sistemas Distribuídos
68
Camadas do modelo de Grid Computing:
 1. Camada de Coletiva (Collective layer): manipula o
- Acesso a múltiplos recursos, normalmente consiste
em serviços para descoberta de recursos, alocação e
escalonamento de tarefas.
 2. Camada de Conectividade (Connectivity layer):
- Consiste em protocolos de comunicação para
suportar transações da grade que abranjam a
utilização de múltiplos recursos.
Sistemas Distribuídos
69
Camadas do modelo de Grid Computing:
 3. Camada de Recurso (Resource layer):
- Gerencia um único recurso, como criar um processo
ou ler um dado.
 4. Camada Base (Fabric layer):
- Fornece interfaces para recursos locais em um site
específico.
Sistemas Distribuídos
70
Sistemas para Processamento de Transações
 Propriedades características das transações:
• Atômicas: para o mundo exterior, a transação acontece
como se fosse indivisível.
• Consistentes: a transação não viloa as invariantes do
sistema.
• Isoladas: transações interferem umas com as outras.
• Duráveis : uma vez terminada uma transação as
alterações são permanentes.
Sistemas Distribuídos
71
Integração de Aplicações Comerciais
 Vários pacotes de middleware e protocolos de
comunicação são usados para dar suporte as
aplicações comerciais, entre eles:
• CORBA (Common Object Request Broker Architecture)
• DCOM (Distributed Component Object Management)
• RPC (Remote Procedure Call)
• RMI (Remote Method Invocation)
Sistemas Distribuídos
72
Sistemas Embarcados Distribuídos
 Requisitos para aplicações embarcadas:
• Adotar mudanças contextuais (significa que um dispositivo deve estar
ciente do fato de seu ambiente pode mudar o tempo todo).
• Incentivar composição ad hoc (usos diferentes para usuários
diferentes, por exemplo os PDA podem ter diferentes usos).
• Reconhecer compartilhamento como padrão (isso requer meios para
ler, armazenar gerenciar e compartilhar informações com facilidade).
Sistemas Distribuídos
73
Sistema Eletrônico para Tratamento (pessoal) de Saúde
 Questões inerentes a aplicação:
• Onde e como os dados monitorados deverão ser armazenados?
• Como podemos evitar a perda de dados cruciais?
• Qual é a infraestrutura necessária para gerar e transmitir sinais de
alerta?
• Como os médicos podem dar retorno on-line?
• Como pode ser alcançada a extrema robustez do sistema de
monitoração?
• Quais são as questões de segurança e como as políticas adequadas
podem ser impostas?
Sistemas Distribuídos
74
Sistema Eletrônico para Tratamento de Saúde
Sistemas Distribuídos
75
Redes de Sensores
Sistemas Distribuídos
76
Redes de Sensores
 Questões referentes a redes de sensores:
• Como montar (dinamicamente) um árvore eficiente em
uma rede de sensores?
• Como ocorre a agregação de resultados? Ela pode ser
controlada?
• O que acontece quando os enlaces falham?
Sistemas Distribuídos
77
Redes de Sensores
Sistemas Distribuídos
78
Redes de Sensores
Sistemas Distribuídos
79
Download