Baixe o app para aproveitar ainda mais
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
Compartilhar