Tolerância a falhas refere-se à capacidade de um sistema manter a operação normal mesmo quando certos componentes falham ou funcionam mal. Esse recurso é essencial para sistemas de alta disponibilidade, de missão crítica e até mesmo de vida crítica. A tolerância a falhas refere-se especificamente ao sistema que não sofre qualquer degradação ou tempo de inatividade quando ocorre um erro. Quando ocorre um erro, o usuário final não tem conhecimento de nenhum problema. Em contraste, um sistema que apresenta erros, mas ainda tem serviços em execução, é chamado de “sistema resiliente”. Esse sistema pode se adaptar à ocorrência de erros e manter serviços, mas apresentar certos impactos no desempenho.
Tolerância a falhas é usada especificamente para descrever sistemas de computador que garantem que o sistema geral continue a funcionar mesmo se ocorrerem problemas de hardware ou software.
Na história do desenvolvimento de computadores, o primeiro computador tolerante a falhas foi o SAPO construído por Antonín Svoboda na Tchecoslováquia em 1951. O projeto básico do computador foi implementado como um tambor magnético enrolado em fio e empregou um método de votação para detecção de erros de memória, uma técnica conhecida como redundância modular tripla. Com o passar do tempo, muitos outros dispositivos semelhantes foram desenvolvidos, principalmente para fins militares. Mais tarde, surgiram gradualmente três tipos de opções: aqueles computadores que podem funcionar por um longo tempo sem exigir qualquer manutenção, como os computadores e satélites de exploração espacial da NAASA; que são muito confiáveis, mas exigem monitoramento constante, como aqueles usados para monitorar e controlar usinas nucleares ou experimentos com supercondutores e computadores que operam sob cargas pesadas, como os muitos supercomputadores usados para monitoramento probabilístico pelas companhias de seguros;
Muitas pesquisas sobre os chamados computadores LLNM (longa vida, sem manutenção) conduzidas pela NASA na década de 1960 abriram caminho para futuras missões espaciais. Esses computadores oferecem suporte a métodos de recuperação de memória por meio do uso de matrizes de memória de backup, como o computador JSTAR, que pode detectar e reparar erros automaticamente ou ativar módulos redundantes. Esses computadores continuam a operar hoje.
Os projetos anteriores tendiam a se concentrar em diagnósticos internos, onde as falhas podiam ser descobertas e substituídas por profissionais.
No entanto, projetos posteriores demonstraram a necessidade de os sistemas serem auto-recuperáveis e de diagnóstico, capazes de isolar falhas e realizar backups redundantes quando ocorrerem falhas. Isso é fundamental para implementar sistemas de computação altamente disponíveis.
Por exemplo, alguns sistemas tolerantes a falhas de hardware exigem que componentes danificados sejam removidos e substituídos enquanto o sistema está em execução, o que é chamado de "troca a quente". Esses sistemas geralmente possuem um único backup, denominado ponto único de tolerância, e a maioria dos sistemas tolerantes a falhas se enquadra nesta categoria. As técnicas tolerantes a falhas alcançaram um sucesso notável em aplicações de computador.
O Tandem Computer se baseia nisso e estabeleceu o sistema NonStop para cálculo anual do tempo de execução.
Além do hardware, a tolerância a falhas também pode ser refletida no software de computador, como o design perfeito de replicação de processos e formatos de dados, para que possam ser degradados normalmente. HTML é um exemplo típico, permitindo que navegadores ignorem entidades HTML novas e não suportadas sem afetar a usabilidade do documento como um todo. Designs semelhantes também aparecem em muitos sites populares, que fornecem interfaces leves no Deepin para manter ampla acessibilidade.
Implementar um projeto tolerante a falhas nem sempre é uma opção prática porque a redundância associada introduz problemas como aumento de peso, custo e tempo de projeto. Portanto, os projetistas devem considerar cuidadosamente quais componentes exigem recursos de tolerância a falhas.
Cada componente precisa ser cuidadosamente avaliado quanto à probabilidade de falha, criticidade e custo.
Por exemplo, o rádio de um carro, embora não seja um componente crítico, é de importância relativamente baixa, enquanto um sistema de retenção dos ocupantes (como um cinto de segurança) é considerado necessário devido à sua função crítica de fornecer segurança em caso de acidente. projeto.
As características básicas de um sistema tolerante a falhas incluem: nenhum ponto único de falha; a capacidade de isolar componentes defeituosos e a necessidade de recuperação de falhas, o que geralmente requer a classificação e definição de falhas do sistema;
Diante de um mundo tecnológico cada vez mais complexo, será que o design tolerante a falhas pode realmente proteger os vários sistemas em nossas vidas diárias e nos permitir evitar perigos desnecessários em nossas futuras vidas de alta tecnologia?