Tolerância a Falhas em Sistemas Distribuídos

Slides:



Advertisements
Apresentações semelhantes
A gestão da manutenção industrial
Advertisements

Sistemas Distribuídos
Análise e Projeto de Sistemas III
Manutenção em software Conceitos básicos
Introdução a Algoritmos
Metodologia de testes Nome: Gustavo G. Quintão
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
Requisitos dos SGBD Recuperação/Tolerância a Falhas
Redes de computadores I
Sistemas operacionais
Entrada e Saída Introdução.
Fundamentos de Engenharia de SW
Débora da Silva Orientadora: Maria Inés Castiñeira
Confiança.
Tópicos Motivação para teste Por que algumas empresas não testam
Mecanismo de Proteção (Prevenção e Detecção)
Administração de Sistemas de Informação II
Sistemas Distribuídos
Recovery Blocks Paulo Junior Penna Pivetta. Introdução Os Projetos de Tolerância a falhas quase que exclusivamente eram dedicado a hardware Tolerância.
Fabio Notare Martins Pontifícia Universidade Católica do Rio Grande do Sul Programa de Pós-Graduação em Ciências da Computação.
1 Sistemas Distribuídos - SDI Caracterização de Sistemas Distribuídos. Introdução. Exemplos de Sistemas Distribuídos. Desafios.
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Gerência de Redes Áreas Funcionais de Gerenciamento
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
TSDD Teste de segurança durante o desenvolvimento.
Introdução aos conceitos de Teste de Software
2º Bimestre Os testes de Auditoria
REDUNDÂNCIA POR SOFTWARE
Gerenciamento de Configuração
Redundant Array of Independent Drives Raid
Prof. Esp. Fernando Barreto
Agenda Memória Secundária RAID.
Sistemas Distribuídos
Carlos Oberdan Rolim Ciência da Computação
Carlos Oberdan Rolim Ciência da Computação
Carlos Oberdan Rolim Ciência da Computação
Carlos Oberdan Rolim Ciência da Computação
Paulo Silva Tracker Segurança da Informação
Fiabilidade de Sistemas Informáticos
Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção.
Engenharia de Software
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
Sistemas Distribuídos
SGBD Distribuído Lílian Simão Oliveira.
Teste de Software Conceitos iniciais.
Sistemas Tolerantes a Falhas: Conceitos e Técnicas
Processos.
Testes de Software AULA 02 Eduardo Silvestri
Testes de Software AULA 06 Eduardo Silvestri
Gestão de defeitos.
Objetivos do Capítulo Explicar a importância da implementação de processos e tecnologias de gerenciamento de dados numa organização. Explicar as vantagens.
Introdução a Teste de Software
Introdução a Banco de Dados Aula 04
Testes de Software AULA 03 Eduardo Silvestri
Controles Gerais Prof.: Cheila Bombana. Controles Gerais Prof.: Cheila Bombana.
Automação de Testes de Software
Sistemas Tolerantes a Falhas: Conceitos e Técnicas
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE AULA 5
Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação.
Engenharia de Software
Conceitos de Monitoramento
Qualidade de Produtos de Software
PREVENÇÃO E RECUPERAÇÃO DE FALHAS
SERVIDORES E SERVIÇOS Leandro Escobar 2009 SERVIDORES E SERVIÇOS.
Leandro Clementino Almeida.  Anos 50 - Sistemas Operacionais tipo Lote:  Aumentar a capacidade de processamento de programas  Usuário ia ao computador.
Estimativa, Teste e Inspeção de Software
Sistema de Arquivos Distribuídos (SAD)- Características Serviços de nomes e diretórios Prof. Dr. Norian Marranghello Grupo 13 Guilherme Eberhart Jorge.
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
TESTES DE SOFTWARE – AULA 1 Prof. Me. Ronnison Reges Vidal
Transcrição da apresentação:

Tolerância a Falhas em Sistemas Distribuídos Agnaldo L Martins

Tolerância a falhas Falhas são inevitáveis, mas suas conseqüências devem ser minimizadas O domínio da área de TF auxilia administradores e desenvolvedores de sistemas a avaliar a relação custo benefício para o seu caso específico e determinar a melhor técnica para seu orçamento Ex: backup consome espaço e tempo enquanto redundância de equipamentos e espelhamento de discos exige investimentos sem aumento de desempenho

Tolerância a falhas É um conjunto de técnicas para detectar, mascarar, e tolerar falhas. Sistema tolerante a falhas É um sistema que continua provendo corretamente os seus serviços mesmo na presença de falhas de hardware ou de software. Defeitos não são visíveis para o usuário, pois o sistema detecta e mascara (ou se recupera) defeitos antes que eles alcancem os limites do sistema (ponto de fuga da especificação).

FALHA DEFEITO ERRO Estado lógico inesperado Uma falha Manifesta-se através de um erro Uma falha resulta de um defeito DEFEITO ERRO Um defeito é a manifestação de um erro Estado não especificado Comportamento inesperado

Outro nome para TF: Sistemas redundantes - Um Erro é a manifestação de uma Falha no sistema O estado lógico do sistema difere do seu valor esperado - Esta Falha resulta num Defeito Estado não especificado do HW ou SW - Um defeito é a manifestação do Erro no sistema O comportamento real do sistema deriva do seu comportamento esperado

Possíveis causas de falhas. Descuidos na especificação Possíveis causas de falhas Descuidos na especificação Descuidos na implementação Defeitos de componentes Distúrbios externos

Exemplos de possíveis causas de falhas. Vírus. Bombas relógio Exemplos de possíveis causas de falhas Vírus Bombas relógio Exploração de falhas na rede Fragmentação Inchaço Envelhecimento

Atributos de dependabilidade Disponibilidade – diz respeito a média de tempo disponível para acesso Confiabilidade – diz respeito a continuidade da entrega de serviço correto Integridade – impedimento de alterações de estado impróprias Segurança (safety) – diz respeito a garantias de não haver defeitos catastróficos ao usuário ou ambiente Confidencialidade – impedimento de acesso indevido Manutenabilidade – habilidade para reparo e modificações eficientes Segurança (security) – proteção contra acessos, ou controle, não autorizados ao estado do sistema Testabilidade – facilidade para testar o sistema (ponto de teste, testes automatizados)

Meio de se obter Prevenção de Falhas Visa prevenir a ocorrência ou introdução de falhas Remoção de Falhas Visa reduzir o número ou a severidade das falhas Previsão de Falhas Visa estimar o número presente, a incidência futura e as conseqüências das falhas Tolerância a Falhas Visa entregar o serviço correto mesmo na presença de falhas

Prevenção de falhas Aplicação de técnicas de controle de qualidade durante projeto (HW e SW) - Programação estruturada ou OO? - Modularização - Regras de projeto rigorosas para prevenir falhas operacionais de HW - Definição de procedimentos para manutenção -Testes para prevenir falhas de interação - Firewalls ou similares para prevenir falhas maliciosas

Remoção de falhas Fase de desenvolvimento Verificação – estamos construindo o produto certo? – Estática Verificação de modelos – Dinâmica Injeção de falhas e execução simbólica (teste) • Diagnóstico – se não estiver certo, o que está errado? • Correção – corrige-se os problemas Fase operacional Manutenção corretiva ou preventiva

Previsão de falhas Para estimar o comportamento utiliza dois tipos de avaliações: Qualitativa • identifica e classifica os modos de defeitos Quantitativa • faz análise probabilística As estimativas servem para realizar ações que evitem falhas/defeitos

Tolerância Implementada por mascaramento ou detecção de erros seguida de recuperação do sistema Classes de detecção de erros: Concorrente – execução concorrente ao serviço Preemptiva – execução c/ suspensão do serviço Recuperação consiste no re-estabelecimento de estado correto Implica em controle de erros e falhas

Tolerância Controle de erros. Rollback (checkpoint) Tolerância Controle de erros Rollback (checkpoint) Compensação (mascaramento) Controle de falhas Diagnóstico de falhas Isolamento de falhas Reconfiguração do sistema Re-inicialização do sistema

Em resumo Requisito básico para construção: Em resumo Requisito básico para construção: REDUNDÂNCIA Estrutura básica composta de: HARDWARE TOLERANTE A FALHAS SOFTWARE TOLERANTE A FALHAS Nosso enfoque: TÉCNICAS DE TF EM SISTEMAS DISTRIBUÍDOS

Tipo de redundância Redundância de Hardware Tipo de redundância Redundância de Hardware Utiliza-se de hardware adicional Redundância de informação Utiliza-se de bits adicionais Redundância de software Replica componentes de software Re-executa computações

REDUNDÂNCIA POR HARDWARE

Redundância de hardware Passiva Usando módulos adicionais, onde 1 opera e os outros são backup Dinâmica Baseia- se em detecção/localização, seguida de reconfiguração ou remoção Híbrida Visa o mascaramento de falhas.Para obter melhor dependabilidade usa mecanismos de detecção, localização e recuperação de falhas. Removem falhas de hardware trocando componentes defeituosos por esperas Técnica mais utilizada em aplicações críticas.

Ativa - Espera Cold standby. Esperas desligados, ativação do zero Ativa - Espera Cold standby Esperas desligados, ativação do zero Não causa overhead durante operação Warm standby Esperas desligadas, ativação do último ponto de verificação (checkpoint) Hot standby Esperas ligados, ativação do estado atual Também chamado sistema duplex

REDUNDÂNCIA DE INFORMAÇÃO

Redundância de informação Visa detectar erros ou mascarar falhas incluindo bits ou sinais extras à informação. Exemplos: Paridade Checksums Duplicação de código Códigos cíclicos Códigos de correção de erros

Código de paridade Conceito básico: adicionar bit(s) para manter a palavra de código com um número par ou ímpar de 1s. Principal uso: detecção de erros no armazenamento de memória. 5 abordagens: Paridade por palavra Paridade por byte Paridade por chip Paridade por múltiplos chips Paridade entrelaçada

Paridade por palavra 01000100010001 11000100010000 - Permite apenas detecção de erros simples - Não permite detecção de muitos erros múltiplos - Forma um código separável

Paridade por Byte Paridade por grupo de bits Permite detecção de erros “tudo 1” ou “tudo 0” Permite detecção de erros múltiplos, se erros forem em grupos distintos

Paridade por Chip

Paridade por Múltiplos Chips