Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

7ºAula
Aplicações de mecanismos 
de tolerância a falhas 
Olá, alunos(as),
Nesta aula, discutiremos os mecanismos de tolerância 
a falhas e a aplicação deles. Já sabemos que todo sistema 
computacional está sujeito a falhas, tendo em vista o nível de 
complexidade das rotinas que estão envolvias no processo, a 
grande quantidade de tarefas a serem gerenciadas pelo sistema e 
o número de componentes de hardware envolvidos. Além disso, 
há diversos fatores externos que influenciam o ambiente.
Nesta aula, vamos aprofundar nossos conhecimentos em 
relação ao tema. Vamos lá?
Boa aula!
Objetivos de aprendizagem
Ao término desta aula, vocês serão capazes de:
• conhecer os conceitos de tolerância, defeito, erro e falha;
• saber sobre os conceitos de redundância e de diversidade;
• entender como buscar evitar erros e falhas.
42Engenharia de software II
1 - Tolerância, defeito, erro e falha
2 - Redundância e diversidade
3 - Técnicas e mecanismos de tolerância a falhas
Seções de estudo
1 - Tolerância, defeito, erro e falha
No ano de 1967, era cunhado o termo Tolerância a 
Falhas, que vem sendo utilizado cada vez mais na atualidade:
O termo tolerância a falhas foi cunhado 
por Avizienis em 1967. Desde então tem 
sido amplamente utilizado pela comunidade 
acadêmica para designar toda a área de 
pesquisa ocupada com o comportamento de 
sistemas computacionais sujeitos a ocorrência 
de falhas, sem ter entretanto logrado sucesso 
como designação popular. Na indústria o 
termo nunca teve boa aceitação, sendo que 
desenvolvedores de sistemas de controle 
preferem usar o termo sistemas redundantes 
para seus equipamentos. Na comercialização 
de sistemas computacionais como mainframes 
e servidores de rede, o termo usual é alta 
disponibilidade, designando a principal 
qualidade desses sistemas (WEBER, s.d., p. 7).
Pensando na prática, os sistemas redundantes e os 
sistemas de alta disponibilidade apresentam técnicas comuns. 
Contudo, os resultados são diferentes, pois os primeiros 
objetivam a alta confiabilidade e os outros têm como 
propósito a continuidade do serviço.
Nesse sentido, houve a popularização do termo 
segurança computacional devido à necessidade de se proteger 
de invasões ou de mal-intencionados. Esse processo envolve 
autenticação, criptografia, além de outros tipos de proteção. 
De modo geral, o termo segurança de funcionamento está 
relacionado à tolerância a falhas e vem sendo cada vez menos 
usado nos meios acadêmicos. Pouco a pouco, vem sendo 
substituído pelo termo dependabilidade.
Administradores e usuários buscam sempre encontrar 
as soluções mais criativas na tentativa incessante de tentar 
recuperar dados perdidos e para enfrentar os transtornos de 
equipamento fora do ar, causados por múltiplas falhas que os 
sistemas estão sempre sujeitos.
É impossível evitar que as falhas aconteçam, contudo, 
quando se utilizam técnicas viáveis e de fácil compreensão, 
podem-se evitar os colapsos do sistema, interrupções no 
fornecimento dos serviços e a perda de dados. É necessário 
conhecer as técnicas, pois, com isso, o administrador de 
sistemas poderá implantá-las.
O próprio termo tolerância a falhas como 
designação de área sofre várias críticas, 
não apenas no Brasil, mas também 
internacionalmente. A maior crítica é a 
possibilidade de entender o termo como uma 
propriedade absoluta. Nessa visão distorcida, 
um sistema tolerante a falhas toleraria toda 
e qualquer falha em qualquer situação, o que 
realmente é uma promessa irrealizável e pode 
conduzir a falsas expectativas entre usuários. 
Aos poucos o termo dependabilidade vem 
substituindo tolerância a falhas no meio 
acadêmico. Em 2000, o Fault Tolerant 
Computing Symposium, FTCS, foi rebatizado 
Dependable Systems and Networks. Em 2003, 
o SCTF vai passar a se chamar LADC, Latin 
America Dependable Computing. 
Será o fi m de tolerância a falhas? Entre nós, por 
enquanto, ainda não. Dependabilidade é um 
termo que soa estranho aos nossos ouvidos e 
não conseguimos encontrar ainda um adjetivo 
que se ajuste ao termo (WEBER, s.d., p. 7).
As técnicas de tolerância a falhas podem demandar de alto 
custo. É possível implementar um procedimento simples para 
backup de dados. Há significativa redução do armazenamento 
em disco ou em outros dispositivos de armazenamento 
de massa. Também há importante redução do tempo para 
realização das cópias. 
Administradores e desenvolvedores de sistemas fazer séria 
análise da relação custo x benefício acerca da implementação 
de qualquer um dos mecanismos ou técnicas de tolerância 
a falhas. Com o objetivo de saber qual é a aplicação mais 
adequada, de acordo com o ambiente do sistema e com o 
orçamento previsto ara esses serviços.
Voltando-nos para a relação entre defeito, erro e falha, 
entendemos que tais definições foram padronizadas. Confiram 
a figura a seguir sobre os três modelos universos para tais 
conceitos.
Figura 1. <http://www.inf.ufrgs.br/~taisy/disciplinas/textos/Dependabilidade.pdf>. 
Acesso em: 5 jul. 2017.
Abaixo, vejam um texto especificando a definição de cada 
um dos termos discutidos nesta seção: defeito, falta e falha:
Estamos interessados no sucesso de determinado 
sistema de computação no atendimento da sua 
especifi cação. Um defeito (failure) é defi nido 
como um desvio da especifi cação. Defeitos não 
podem ser tolerados, mas deve ser evitado que 
o sistema apresente defeito. Defi ne-se que um 
sistema está em estado errôneo, ou em erro, se 
o processamento posterior a partir desse estado 
pode levar a um defeito. Finalmente defi ne-
se falha ou falta (fault) como a causa física ou 
algorítmica do erro. Falhas são inevitáveis. 
Componentes físicos envelhecem e sofrem 
com interferências externas, sejam ambientais 
ou humanas. O software, e também os projetos 
de software e hardware, são vítimas de sua alta 
complexidade e da fragilidade humana em 
trabalhar com grande volume de detalhes ou 
43
2 - Redundância e diversidade
3 - Técnicas e mecanismos de 
tolerância a falhas
com defi ciências de especifi cação. Defeitos são 
evitáveis usando técnicas de tolerância a falhas. 
Alguns autores nacionais traduzem as palavras 
inglesas failure como falha e fault como falta. 
Para ser coerente com essa última tradução a 
área deveria se chamar tolerância a faltas, pois 
failures não podem ser toleradas (WEBER, s.d., 
p. 9).
Entendidos os conceitos de defeito, falta e falha. Outro 
conceito importante é o de latência de falha, que é o período 
de tempo desde a ocorrência da falha até a manifestação do 
erro causado por aquela falha. Latência de erro é o período 
de tempo entre a ocorrência do erro até a manifestação do 
defeito devido ao erro. O período que compreende a falha até 
o aparecimento do defeito é a soma de latência de falhas.
Entender também os conceitos de redundância e 
de diversidade é fundamental. Tais conceitos contribuem 
significativamente para a confiabilidade do sistema. 
Redundância e diversidade são estratégias utilizadas para que se 
consiga proteger o sistema e evitar falhas. Podemos encontrar 
alguns exemplos simples em nosso dia a dia. Vejamos alguns:
• Investimento em bolsa de valores: se você está investindo 
em uma única empresa, poderá perder tudo, pois não há 
diversidade no investimento;
• Pilhas e lâmpadas: muitas pessoas costumam armazenar 
esses itens para evitar falhas (redundância);
• Back-up: fazemos, geralmente, back-up, pois ficamos 
seguros, mesmo tendo que fazer diversas vezes (redundância);
• Fechadura: muitas pessoas costumam utilizar diversos 
tipos de fechadura (diversidade) em uma única porta, de modo 
a tentar impedir um possível assalto.
Já em casos de sistemas críticos, também há possibilidade 
de inclusão de componentes que irão replicar a funcionalidade 
de outros componentes (redundância), ou de códigoadicional 
que não é exatamente fundamental para que o sistema funcione 
(redundância). Os defeitos poderão ser sanados antes de causar 
falhas e o sistema poderá continuar funcionando. Caso os 
componentes redundantes não forem os mesmos que outros 
componentes (diversidade), uma determinada falha não irá 
resultar, necessariamente, em falha completa do sistema.
Servidores redundantes são muito comuns em sistemas 
nos quais a disponibilidade seja um requisito crítico. Eles 
começam a operar assim que o servidor designado falhe. Muitas 
vezes, os servidores podem ser de tipos diferentes e executar 
diferentes sistemas operacionais. Quando isso acontece, há um 
exemplo claro de redundância e de diversidade de software.
A diversidade e a redundância são utilizadas também 
quando se quer obter um processo confiável. Pode-se testar 
um programa, ou, ainda, utilizar inspeções de programa e 
de análise como técnicas e metodologias para descoberta de 
defeitos. Uma mesma atividade de processo pode ser efetuada 
por diversos membros da equipe, pois, uma pessoa utiliza um 
método diferente da outra.
Contudo, incluir diversidade e redundância ao sistema irá 
torná-lo mais complexo e mais difícil de ser compreendido. 
Assim, o mais comum é que os programadores cometam 
erros. Um software é desenvolvido, muitas vezes, priorizando 
um sistema simples, com procedimentos de verificação e de 
validação muito complexos. Tanto uma alternativa quanto 
outra são bastante usuais.
Quando falamos de falhas, é necessário termos técnicas e 
mecanismos para evitá-las, tendo em vista que, como já vimos, 
elas podem causar riscos e prejuízos. Há, comumente, três 
situações de risco a serem avaliadas devido a sua gravidade. 
São elas:
Possibilidade de o disco quebrar:
Se uma unidade de disco quebrar, haverá perda de tempo 
até que ele seja substituído. Haverá também mais perda 
de tempo até que o sistema operacional e os dados sejam 
restaurados. Caso o backup não seja atualizado, também 
haverá perda desses dados.
A empresa sofrerá perda de tempo até que a unidade de 
disco seja substituída, mais perda de tempo até que o sistema 
operacional e os dados sejam restaurados, perda dos dados 
desde o último backup e problemas se o backup não puder ser 
restaurado.
Para a Internacional Data Corporation [IDC 95], 9,4% 
dos discos rígidos vendidos falham, e 8,6% das placas mãe e 
fontes também falham, considerando um tempo de vida útil 
de dez anos para os equipamentos. Na mesma publicação, é 
possível perceber que a confiabilidade do hardware, serviços e 
suporte técnico são os fatores mais críticos para os usuários 
quando da aquisição de um equipamento. Atualmente, eles dão 
mais importância a tais fatores do que ao preço, características 
e reputação do fabricante.
Uma medida para evitar problemas desse tipo é o 
espelhamento de disco. Essa medida previne perda de tempo 
e de dados, tendo em vista que protegem os dados. 
No espelhamento, os discos ficam conectados a uma 
mesma controladora de discos. Assim, os dados são atualizados 
em ambos simultaneamente, pois a controladora os trata 
como uma única unidade lógica. Quando ocorre uma falha no 
disco primário, o secundário assume o lugar deste e passa a ser 
o disco primário. Esse processo fica transparente ao usuário, 
uma vez que o disco secundário assume automaticamente 
as ações de disco primário. Quando o disco defeituoso for 
retornado, ele passará a ser o secundário. Os dois discos 
precisam ter características físicas semelhantes, como, por 
exemplo, precisam ter a capacidade de armazenamento similar.
Figura 2. Espelhamento de disco. <https://www.controle.net/faq/raid-1-espelha-
mento-de-hd-ou-raid-mirroring>. Acesso em: 6 jul. 2017.
44Engenharia de software II
O custo de serviço de emergência também deve ser 
considerado, bem como o custo de recuperação ode dados, 
a perda imediata de produtividade, a perda de vendas e a 
redução de publicidade. O custo mais significativo é a perda 
de vendas por um período longo de tempo, pois isso provoca 
impactos sérios na organização.
Em uma grande aplicação, onde qualquer tempo 
de manutenção de sistema é extremamente caro, é 
completamente justificada uma combinação de espelhamento 
de disco e software de tolerância a falhas de servidor. O software 
de espelhamento de disco previne o tempo de manutenção 
ou perda de dados se um disco rígido falhar.
Se o computador “explodir”?
O computador pode queimar por inúmeros motivos: 
queima da fonte, queima do chip de memória, queima de 
outros componentes e bug’s de programa.
Mesmo em sistemas caros, há componentes como fontes 
de alimentação, cujas partes são de origem desconhecida. Isso 
pode gerar possibilidades de paradas súbitas do computador 
mesmo que essas fontes tenham sido testadas anteriormente, 
pois estão sujeitas a instabilidades da rede elétrica e outros 
fatores imprevistos. Certamente, é difícil fazer com que 
todos os componentes internos das fontes de alimentação 
funcionem perfeitamente por um longo período de tempo.
Quando há uma falha no sistema, a empresa fica 
condicionada a perda de vendas imediatamente, pois os 
gastos com serviços emergenciais e o tempo de recuperação 
ocasionará, muitas vezes, em perda de vendas em longo prazo.
Sistema de eliminação de falhas
Para tentar evitar falhas, há o recurso watchdog line (linha 
cão de guarda), em que dois servidores ficam conectados entre 
si e o sistema secundário observa o estado atual do sistema 
primário. Caso o primeiro falhe, o segundo, imediatamente, 
irá assumir o controle.
Figura 3. Fonte: <https://www.google.com.br/imghp?hl=pt-br&gws_rd=ssl>. 
Acesso em: 7 jul. 2017.
O sistema primário (ou servidor backup) é conectado ao 
sistema primário através de rede. Periféricos, como terminais, 
redes e outros canais de I/O são conectados também nas 
duas máquinas. Isso possibilita que a máquina do sistema 
secundário se comunique com os usuários e periféricos 
quando esta assumir o controle.
O software para gerenciar a eliminação de falhas é instalado 
em ambas as máquinas. O software (sendo executado no 
sistema secundário) assiste a máquina primária continuamente 
(pela watchdog line) para detectar se a máquina primária falhou.
Depois de uma falha no sistema
Caso haja uma falha no sistema, o sistema secundário 
assume. Todos os periféricos são conectados automaticamente 
e toda a base de dados estará disponível. Quando o primeiro 
servidor falha, há o seguinte processo de watchdog:
O software intercepta automaticamente os dispositivos 
periféricos (como terminais, redes e outros canais de I/O) 
conectando-os ao sistema secundário. O mais importante é que 
o servidor secundário tem acesso ao mesmo banco de dados 
que o servidor primário. Isso permite aos usuários começar 
novamente de onde quer que eles tenham parado. Nenhum 
dado estará perdido (exceto as transações mais recentes que 
não tinham sido gravadas em disco no momento da falha). 
Esse procedimento de conexão do servidor secundário e 
disponibilização dos dados gasta de 5 a 90 segundos. Portanto, 
os usuários perceberão, por alguns segundos, que o sistema 
parou de funcionar, no entanto, esta demora é tão pequena que, 
quando eles começarem a pensar no que pode ter acontecido, 
o sistema já estará funcionando.
Para que se tenha um sistema eliminador de falhas do 
servidor, é preciso que se adquira um segundo computador, 
conexões de hardware e um software para gerenciar as falhas 
e os custos da instalação. O computador é a parte mais cara 
dessa aquisição. O custo da conexão de hardware depende 
do produto de eliminação de falhas usado. O custo dos 
equipamentos e da instalação dependerá do preço de mercado 
para os equipamentos usados como: cabos, conectores etc.
Se o edifício incendiar?
Computadores não são itens muito resistentes a grandes 
terremotos,a incêndios, a inundações, entre outros. São 
extremamente vulneráveis, também, a sabotagem, vandalismo, 
roubo etc. Quando se perde todos os computadores, há um 
dano extremamente significativo. A organização pode estar 
há dias sem o sistema, com consequências como perda de 
negócios e relações de clientes permanentemente danificadas. 
É necessário, então, que se armazenem os dados em um local 
remoto, com possibilidade de retornar os dados de forma 
rápida para o novo computador. Os sistemas de backup são 
soluções eficazes para tanto, pois executam suas aplicações 
em um local distinto do primeiro local, permitindo que se 
normalizem as atividades o mais rápido possível.
Caros(as),
Chegamos ao final de nossa sétima aula.
Como vimos, as técnicas que discutimos são parte da 
tentativa para prevenir erros e tornar a empresa tolerante a 
falhas nos sistemas computacionais.
Empresas fabricantes de hardware de todo o mundo estão 
se preparando para a produção de equipamentos com melhor 
qualidade para atrair, principalmente, as empresas menores 
que não têm condições de investir na tecnologia de tolerância 
a falhas, e por esse motivo, acabam escolhendo o equipamento 
que lhe oferece maior confiabilidade com empresas que 
fornecem melhor suporte, muitas vezes, não importando se 
este equipamento é mais caro que outros no mercado.
45
Retomando a aula
Vamos recordar os assuntos discutidos?
Vale a pena
Disponível em: <http://www.inf.ufrgs.br/~taisy/
disciplinas/textos/ConceitosDependabilidade.PDF>.
Vale a pena acessar
1 - Tolerância, defeito, erro e falha 
Nesta seção, discutimos os quatro conceitos essenciais 
ao tópico. Como vimos, houve a popularização do termo 
segurança computacional devido à necessidade de se proteger 
de invasões ou de mal-intencionados. Esse processo envolve 
autenticação, criptografia, além de outros tipos de proteção. 
De modo geral, o termo segurança de funcionamento está 
relacionado à tolerância a falhas e vem sendo cada vez menos 
usado nos meios acadêmicos. Pouco a pouco, vem sendo 
substituído pelo termo dependabilidade.
2 - Redundância e diversidade
Vimos os conceitos de redundância e diversidade, que 
contribuem significativamente para a confiabilidade do sistema. 
Redundância e diversidade são estratégias utilizadas para que se 
consiga proteger o sistema e evitar falhas.
3 - Técnicas e mecanismos de tolerância a falhas
Quando falamos de falhas, é necessário termos técnicas e 
mecanismos para evitá-las, tendo em vista que, como já vimos, 
elas podem causar riscos e prejuízos. Há, comumente, três 
situações de risco a serem avaliadas devido a sua gravidade. 
São elas: possibilidade de o disco quebrar; possibilidade de o 
computador explodir e possibilidade de o edifício incendiar.
Minhas anotações

Mais conteúdos dessa disciplina