Buscar

04-Aula04_ArqSistDist_TratamentosFalhas

Prévia do material em texto

31/03/2014
1
Arquitetura de Sistemas Distribuídos
Prof. Márcio Rodrigo
Tratamento de falhas
Adaptado da Profa. Ana Cláudia Martins de Souza
Mundo ideal x Mundo real
�
�
IDEAL
◦ Sistemas computacionais são totalmente
confiáveis e cem por cento disponíveis
REAL
◦ Confiabilidade e disponibilidade absolutas
estão muito longe de serem alcançadas
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
2
�
�
Equipamentos e serviços de
qualidade
Falhas são inevitáveis
◦ Suas consequências podem ser evitadas
Usuários e desenvolvedores devem arcar
com o custo do emprego de técnicas de
tolerância a falhas
Prof. Márcio Rodrigo – Tratamento de falhas
�
Preocupação com falhas
Sistemas robustos
◦ Eram preocupação de sistemas críticos
 Aviões, sondas espaciais e controles industriais de
tempo real
◦ Com a popularização de redes
 Aumento da dependência tecnológica
 Diversos serviços oferecidos
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
3
�
�
Mercado
Existe um mercado mundial que se preocupam com
falhas
◦ Não só sistemas de tempo real mas também sistemas de
missão crítica
Empresas começam a investir em soluções de alta
disponibilidade
Prof. Márcio Rodrigo – Tratamento de falhas
�
�
Em um sistema de computação
Desejável ter confiabilidade e disponibilidade
Defeitos podem levar a grandes catástrofes
◦ Controle de tráfego terrestre e aéreo
◦ Controle de usinas de geração de energia
◦ Manutenção de dados sigilosos sobre a vida e a
finança de cidadãos e empresas
◦ Telecomunicação
◦ Transações comerciais internacionais de todo
tipo
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
4
�
�
Defeitos
O software e os procedimentos de
projetos cada vez mais complexos
◦ Muitas falhas
◦ Não adianta apenas ter um hardware de
qualidade
Muitos bugs em sistemas demoram a ser
descobertos
Prof. Márcio Rodrigo – Tratamento de falhas
�
�
�
�
Defeitos na literatura
Na guerra do Golfo em fevereiro de 1991 foram noticiados
vários relatos de falhas em mísseis
Em novembro de 1992 houve um colapso no sistema de
comunicação do serviço de ambulâncias em Londres
Em junho de 1993, durante dois dias, não foi autorizada
nenhuma operação de cartão de crédito em toda a França
Várias missões da Nasa a Marte terminaram em fracasso
total ou parcial
Todos foram investigados
Suas causas foram determinadas
Não é garantido que algo semelhante possa voltar a ocorrer.
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
5
Desafios atuais (1/7)
Como evitar, detectar e contornar bugs no
projeto de hardware e software?
Prof. Márcio Rodrigo – Tratamento de falhas
Desafios atuais (2/7)
Como gerenciar a altíssima complexidade
dos sistemas atuais de computação
construídos com dezenas de chips de
milhões de transistores e com software
de centenas de milhares de linhas de
código?
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
6
Desafios atuais (3/7)
Como explorar paralelismo para aumentar
o desempenho sem comprometer a
qualidade dos resultados, mesmo no caso
de falha de um ou mais componentes do
sistema?
Prof. Márcio Rodrigo – Tratamento de falhas
Desafios atuais (4/7)
Como aproveitar novas tecnologias mais
rápidas, baratas e eficientes (mas ainda
não totalmente provadas e testadas) sem
saber ainda seu comportamento em
situações inesperadas sob falha ou
sobrecarga?
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
7
Desafios atuais (5/7)
Como aproveitar, para aplicações críticas e
para operação em tempo real, o modelo
de sistemas distribuídos construídos
sobre plataformas não confiáveis de redes,
contornando os problemas de perdas de
mensagens, particionamento de rede e
intrusão de hackers?
Prof. Márcio Rodrigo – Tratamento de falhas
Desafios atuais (6/7)
Como desenvolver computadores móveis e
sistemas embarcados, garantindo
confiabilidade e segurança nesses
dispositivos, e assegurando
simultaneamente baixo consumo de
potência, sem recorrer a técnicas usuais
de replicação de componentes que
aumentam peso e volume?
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
8
Desafios atuais (7/7)
Finalmente, como conciliar alta
confiabilidade e alta disponibilidade com
as crescentes demandas por alto
desempenho?
Prof. Márcio Rodrigo – Tratamento de falhas
Todos esses desafios ainda
permanecem sem uma solução
definitiva.
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
9
�
Falhas em Sistemas Distribuídos
São falhas parciais
◦ alguns componentes falham, enquanto outros
continuam funcionando
◦ tratamento de falhas é particularmente difícil
Prof. Márcio Rodrigo – Tratamento de falhas
�
�
�
Conceitos
A computação é recente
Termos e conceitos
◦ Não estão consolidados
◦ Não são amplamente aceitos
Falha x Erro x Defeito
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
10
Esquema
Prof. Márcio Rodrigo – Tratamento de falhas
�
Conceitos
Falha
◦ A causa física ou algorítmica do erro
◦ São inevitáveis
◦ Componentes físicos
 Envelhecem
 Sofrem com interferências externas
◦ O software, os projetos de software e hardware,
 Alta complexidade
 Fragilidade humana
 Trabalha com grande volume de detalhes ou com deficiências
de especificação
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
11
Conceitos
�Erro
◦ Interpretação incorreta de uma informação
que leva a um defeito no sistema
Prof. Márcio Rodrigo – Tratamento de falhas
Conceitos
�Defeito
◦ Definido como um desvio da especificação
◦ Não podem ser tolerados, mas deve ser
evitado que o sistema apresente defeito
◦ São evitados quando tratamos falhas
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
12
�
�
Exemplo
Um chip de memória, que apresenta uma falha do
tipo grudado-em-zero (stuck-at-zero) em um de seus
bits (falha no universo físico), pode provocar uma
interpretação errada da informação armazenada em
uma estrutura de dados (erro no universo da
informação) e como resultado o sistema pode negar
autorização de embarque para todos os passageiros
de um vôo (defeito no universo do usuário).
Observar que uma falha não necessariamente leva a
um erro (aquela porção da memória pode nunca ser
usada) e um erro não necessariamente conduz a um
defeito (no exemplo, a informação de vôo lotado
poderia eventualmente ser obtida a partir de outros
dados redundantes da estrutura).
Prof. Márcio Rodrigo – Tratamento de falhas
Latência de falha e de erro
�
�
De falha
◦ Tempo da ocorrência da falha até a
manifestação do erro devido àquela falha
De erro
◦ Tempo desde a ocorrência do erro até a
manifestação do defeito devido aquele erro
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
13
�
�
Classificação de falhas
Falhas físicas
◦ Falhas de componentes
Falhas humanas
◦ Falhas de projeto e falhas de interação
Prof. Márcio Rodrigo – Tratamento de falhas
�
�
�
�
�
�
�
�
�
Causas de falhas
Problemas de especificação
Problemas de implementação
Componentes defeituosos
Imperfeições de manufatura
Fadiga dos componentes físicos
Distúrbios externos como radiação
Interferência eletromagnética
Variações ambientais (temperatura, pressão, umidade)
Problemas de operação
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
14
�
�
�
�
Definindo uma falha
Natureza
◦ Falha de hardware, falha de software, de projeto, de
operação, ...
Duração ou persistência
◦ Permanente ou temporária (intermitente ou
transitória)
Extensão
◦ Local a um módulo, global
Valor◦ Determinado ou indeterminado no tempo
Prof. Márcio Rodrigo – Tratamento de falhas
�
�
Falhas humanas maliciosas
Intenção de provocar danos ao sistema
Tratadas por técnicas de segurança
computacional
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
15
TRATAMENTO DE
FALHAS EM SISTEMAS
DISTRIBUÍDOS
Prof. Márcio Rodrigo – Tratamento de falhas
�
Técnicas de tratamento (1/5)
Detecção de falhas
◦ Algumas falhas podem ser detectadas
◦ Exemplos
 Somas de verificação podem ser utilizadas para
detectar dados danificados em uma mensagem ou
em um arquivo
 Dois componentes idênticos e um comparador
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
16
�
Técnicas de tratamento (2/5)
Mascaramento de falhas
◦ Algumas falhas detectadas podem ser ocultas ou
se tornar menos sérias
◦ Exemplos
 mensagens podem ser retransmitidas quando não
chegam;
 dados de arquivos podem ser gravados em dois discos,
para que, se um estiver danificado, o outro ainda possa
estar correto;
◦ Eliminar uma mensagem danificada torna a falha
menos séria, pois ela pode ser retransmitida.
Prof. Márcio Rodrigo – Tratamento de falhas
�
Técnicas de tratamento (3/5)
Tolerância a falhas
◦ A maioria dos serviços na Internet apresenta
falhas
 não é prático detectar e mascarar todos
◦ Clientes e usuários podem ser projetados para
tolerar falhas
◦ Exemplo
 Quando um navegador não consegue contatar um
servidor web, ele não faz o usuário esperar
indefinidamente, ele informa o problema e deixa o
usuário livre para tentar novamente
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
17
�
Técnicas de tratamento (4/5)
Recuperação de falhas
◦ Envolve projetar software de modo que o
estado dos dados permanentes possa ser
recuperado ou retrocedido, após a falha de
um servidor
◦ Exemplo
 Computações realizadas por alguns programas
ficarão incompletas quando ocorrer uma falha e os
dados permanentes que eles atualizam podem não
estar em um estado consistente
Prof. Márcio Rodrigo – Tratamento de falhas
Técnicas de tratamento (4/5)
Recuperação de falhas
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
18
�
Técnicas de tratamento (5/5)
Redundância
◦ Os serviços podem se tornar tolerantes a
falhas com o uso de
 Componentes redundantes
 Programação n-versões
 Blocos de recuperação
Prof. Márcio Rodrigo – Tratamento de falhas
Diversidade
Programação n-versões
31/03/2014
19
Blocos de Recuperação
Blocos de recuperação
�
Técnicas de tratamento (5/5)
Redundância - Exemplos
◦ Sempre deve haver pelo menos duas rotas diferentes
entre dois roteadores quaisquer na Internet
◦ No Domain Name System, toda tabela de
correspondência de nomes é replicada em pelo
menos dois servidores diferentes
◦ Um banco de dados pode ser replicado em vários
servidores, para garantir que os dados permaneçam
acessíveis após a falha de qualquer servidor. Os
servidores podem ser projetados de forma a detectar
falhas em seus pares; quando uma falha é detectada
em um servidor, os clientes são redirecionados para
os servidores restantes.
Prof. Márcio Rodrigo – Tratamento de falhas
31/03/2014
20
Técnicas de tratamento (5/5)
Prof. Márcio Rodrigo – Tratamento de falhas
Bibliografia adicional desta aula
Saiba mais em Fundamentos de
Tolerância a Falhas em
http://www.inf.ufrgs.br/~taisy/disciplin
as/textos/index.html
Prof. Márcio Rodrigo – Tratamento de falhas

Outros materiais

Perguntas Recentes