22 resultados para Gerencia : Falhas
Resumo:
Este trabalho apresenta a proposta e a implementação de um sistema de gerência de energia para redes locais de computadores (Local Area Networks ou LANs). Desde sua introdução, no início dos anos 90, os mecanismos de gerência de energia para computadores têm contribuído de maneira significativa para a redução do consumo nos períodos de inatividade, mas podem ter seu efeito minimizado por uma série de fatores, dentre os quais destaca-se a conexão do equipamento a uma rede. Em linhas gerais, o objetivo do sistema proposto é, justamente, facilitar a gerência de energia em ambientes de rede. O funcionamento do sistema é baseado na aplicação de políticas de consumo definidas pelo administrador da rede. As políticas podem ser aplicadas em duas situações distintas: em horários pré-determinados (p. ex. depois do horário comercial), quando podem ajudar a reduzir o desperdício de energia, ou em resposta a alterações no fornecimento de energia, caso a rede seja protegida por no-breaks, quando a redução no consumo resulta em maior tempo de autonomia da fonte reserva (banco de baterias). As políticas são configuradas através de um mecanismo flexível, que permite não apenas desligar os equipamentos, mas colocá-los em estados intermediários de consumo e executar outros tipos de ações. A arquitetura do sistema é baseada no modelo SNMP (Simple Network Management Protocol) de gerência de redes. É composta, basicamente, de agentes, elementos de software que residem nos equipamentos da rede e detêm o conhecimento específico sobre suas características de consumo de eletricidade, e de um gerente, elemento central que contém a configuração das políticas de consumo e que é responsável pelo monitoramento e controle dos agentes. Gerente e agentes comunicam-se através do protocolo SNMP, trocando informações segundo uma base de informações (MIB) projetada especificamente para a gerência de energia. A ênfase da parte prática do trabalho está no gerente, que foi inteiramente implementado através da linguagem Java, utilizando bibliotecas disponíveis gratuitamente. Adicionalmente, foi implementado um agente-protótipo para a plataforma Windows, o que permitiu observar o sistema completo em execução. Os testes permitiram validar a praticabilidade da arquitetura e estimar o ganho potencial proporcionado pela utilização do sistema. São apresentadas medições que demonstram um aumento de até 6 vezes na autonomia do banco de baterias do no-break para uma configuração de rede pequena, utilizando o sistema para desligar automaticamente 90% dos computadores durante um corte no fornecimento externo. A economia decorrente da redução de consumo em horários de inatividade foi estimada em até R$0,63 por computador no período de um ano (tomando por base a tarifa média praticada no Brasil entre janeiro e maio de 2002).
Resumo:
Uma etapa fundamental no desenvolvimento de sistemas tolerantes a falhas é a fase de validação, onde é verificado se o sistema está reagindo de maneira correta à ocorrência de falhas. Uma das técnicas usadas para validar experimentalmente um sistema é injeção de falhas. O recente uso de sistemas largamente distribuídos para execução dos mais diversos tipos de aplicações, faz com que novas técnicas para validação de mecanismos de tolerância a falhas sejam desenvolvidas considerando este novo cenário. Injeção de falhas no sistema de comunicação do nodo é uma técnica tradicional para a validação de aplicações distribuídas, para forçar a ativação dos mecanismos de detecção e recuperação de erros relacionados à troca de mensagens. A condução de experimentos com injetores de comunicação tradicionais é feita pelo uso do injetor em uma máquina do sistema distribuído. Se o cenário desejado é de múltiplas falhas, o injetor deve ser instanciado independentemente nas n máquinas que as falhas serão injetadas. O controle de cada injetor é individual, o que dificulta a realização do experimento. Esta dificuldade aumenta significativamente se o cenário for um sistema distribuído de larga escala. Outro problema a considerar é a ausência de ferramentas apropriadas para a emulação de determinados cenários de falhas. Em aplicações distribuídas de larga escala, um tipo comum de falha é o particionamento de rede. Não há ferramentas que permitam diretamente a validação ou a verificação do processo de defeito de aplicações distribuídas quando ocorre um particionamento de rede Este trabalho apresenta o estudo de uma abordagem para injeção de falhas que permita o teste de atributos de dependabilidade de aplicações distribuídas de pequena e larga escala implementadas em Java. A abordagem considera a não obrigatoriedade da alteração do código da aplicação sob teste; a emulação de um cenário de falhas múltiplas que ocorrem em diferentes nodos, permitindo o controle centralizado do experimento; a validação de aplicações que executem em sistemas distribuídos de larga escala e consideram um modelo de falhas realista deste tipo de ambiente, incluindo particionamentos de rede. A viabilidade da abordagem proposta é mostrada através do desenvolvimento do protótipo chamado FIONA (Fault Injector Oriented to Network Applications), o qual atualmente injeta falhas em aplicações desenvolvidas sob o protocolo UDP.
Resumo:
Esta dissertação aborda a estimativa das probabilidades de falha de um produto ao longo do período de garantia. As fontes de dados para esta estimativa são a quantidade de produtos vendidos e o número de falhas detectadas em cada mês. Duas metodologias não-paramétricas para esta análise são apresentadas e validadas. A metodologia de análise de dados completos requer o conhecimento da data de venda e de falha de cada produto. A metodologia de análise de dados incompletos requer apenas os totais de vendas e falhas em cada mês ao longo do período de garantia. Para os dois casos, é ainda implementada a suavização das probabilidades de falha estimadas, utilizando distribuições paramétricas Weibull ou Lognormal. As duas técnicas são implementadas em planilha eletrônica e aplicadas na análise de dados simulados. O desempenho de cada metodologia é avaliado com dados de diferentes características, resultando em recomendações para escolha e aplicação da metodologia mais adequada em cada caso
Resumo:
Alta disponibilidade (muitas vezes referenciada como HA, de High Availability) é uma característica de sistemas computacionais que são projetados para evitar ao máximo as interrupções, planejadas ou não, na prestação de serviços. Em alta disponibilidade, o ideal é haver poucas falhas e, mesmo quando estas acontecerem, que o seu tempo médio de reparo (ou MTTR, de Mean Time To Repair) seja tão pequeno quanto possível. Sistemas operacionais têm um papel importante em alta disponibilidade, sendo preferível o uso daqueles que possuam sistemas de arquivos seguros e relativamente independentes de ações por agentes humanos para a recuperação. Uma das abordagens para auxiliar a obter-se uma alta disponibilidade em sistemas de arquivos é a do tipo journaling, ou meta-data logging. Existe uma série de sistemas de arquivos para o sistema operacional Linux baseando-se nela, tais como ext3, JFS, ReiserFS e XFS. Este trabalho tem por objetivo propor uma metodologia de validação experimental para avaliar a eficiência do mecanismo para recuperação de sistemas de arquivos baseados em journaling, na ocorrência de falhas. Para isso, a técnica de validação empregada é a da injeção de falhas e o sistema sob teste é uma implementação do XFS. Foram utilizados os recursos de depuração do sistema operacional Linux (que permitem a utilização de métodos para interceptação e manipulação de chamadas de sistema) para a implementação de um injetor de falhas específico para sistemas de arquivos baseados em journaling, o qual foi chamado de FIJI (Fault Injector for Journaling fIlesystems). Manipular os parâmetros de chamadas de sistema (ou system calls) através do FIJI equivale a alterar as requisições feitas ao sistema operacional. A eficiência do mecanismo de journaling é medida injetando-se falhas e medindose o MTTR e a cobertura de falhas. Basicamente, o que procura-se fazer através do injetor de falhas FIJI é ignorar os logs do journaling e manipular uma quantidade de informações diferente daquela que foi solicitada originalmente.
Resumo:
A configuração de dispositivos é uma tarefa crítica de gerenciamento, pois envolve alterações no estado da rede, da qual, cada vez mais, se exige um funcionamento com garantias de qualidade de serviço (QoS) e com um menor número possível de falhas ou interrupções. Por esse motivo, evidencia-se a importância do uso de protocolos adequados à tarefa de configuração. A opção natural e mais aceita atualmente, o protocolo SNMP, apresenta lacunas e falhas que o tornaram insuficiente para atender esses requisitos de configuração. Dentre os protocolos de configuração disponíveis na atualidade, destaca-se o NETCONF. Por outro lado, SOAP também pode ser usado para configuração e vem ganhando importância com a atual popularização dos Web Services, os quais proporcionam interoperabilidade entre aplicações Web. Enquanto o NETCONF é um protocolo específico para configurações, o SOAP é um protocolo genérico para realizar chamadas remotas de procedimentos (RPC). Ambos podem ser encapsulados em protocolos diferentes, formando arquiteturas de redes distintas. É importante notar que, pelo fato da proposta do protocolo NETCONF ser recente, tem-se poucos (ou talvez nenhum) resultados a respeito do desempenho do NETCONF e seus possíveis encapsulamentos. Uma questão importante que normalmente também surge neste contexto é a da real necessidade de um novo protocolo de configuração como o NETCONF, mediante a existência de um protocolo de uso geral já amplamente aceito como é o caso do SOAP. Nessa dissertação é discutido o uso de NETCONF e SOAP para a configuração de dispositivos. Além disso, são apresentados protótipos que implementam tais protocolos. Para tal, são considerados quatro cenários de gerenciamento utilizando arquiteturas de protocolos distintas que permitiram a realização de avaliações de desempenho dos mesmos em relação ao tempo de resposta e consumo de banda. O resultado dessas avaliações aliado ao estudo realizado sobre as tecnologias envolvidas não ajudou a justificar a existência do NETCONF, apesar da ligeira vantagem do NETCONF sobre o SOAP na questão de tempo de resposta, que pode ser explicada pelas diferentes linguagens de programação empregadas nas implementações. Concluiu-se que o NETCONF pode ser assim eficientemente substituído pelo protocolo SOAP sem perda de funcionalidades e com ganho em relação ao consumo de banda.
Resumo:
A execução de testes é um passo essencial na adoção de novos protocolos de comunicação e sistemas distribuídos. A forma com que estes se comportam na presença de falhas, tão comuns em ambientes geograficamente distribuídos, deve ser conhecida e considerada. Testes sob condições de falha devem ser realizados e as implementações devem trabalhar dentro de sua especificação nestas condições, garantindo explicitamente o funcionamento dos seus mecanismos de detecção e recuperação de erros. Para a realização de tais testes, uma técnica poderosa é a injeção de falhas. Ferramentas de injeção de falhas permitem ao projetista ou engenheiro de testes medir a eficiência dos mecanismos de um sistema antes que o mesmo seja colocado em operação efetiva. Este trabalho apresenta o projeto, desenvolvimento e teste do injetor de falhas FIRMAMENT. Esta ferramenta executa, dentro do núcleo do sistema operacional, microprogramas, ou faultlets, sobre cada mensagem processada para a emulação de situações de falha de comunicação, utilizando uma abordagem de scripts. A ferramenta é implementada como um módulo de núcleo do sistema operacional Linux, tendo acesso total aos fluxos de entrada e saída de pacotes de forma limpa e não intrusiva, permitindo o teste de sistemas baseados nos protocolos IPv4 e IPv6. Seu desempenho é significativo, já que a ferramenta evita que os mecanismos de injeção de falhas sejam invocados nos fluxos que não sejam de interesse aos testes, bem como dispensa a cópia de dados dos pacotes de comunicação a serem inspecionados e manipulados. A aplicabilidade da ferramenta, dada pela sua facilidade de integração a um ambiente de produção, é conseqüência de sua disponibilidade como um módulo de núcleo, podendo ser carregada como um plugin em um núcleo não modificado. As instruções por FIRMAMENT suportadas lhe dão alto poder de expressão dos cenários de falhas. Estas instruções permitem a inspeção e seleção de mensagens de forma determinística ou estatística. Além disso, fornecem diversas ações a serem realizadas sobre os pacotes de comunicação e sobre as variáveis internas do injetor, fazendo-o imitar o comportamento de falhas reais, como descarte e duplicação de mensagens, atraso na sua entrega e modificação de seu conteúdo. Estas características tornam a ferramenta apropriada para a realização de experimentos sobre protocolos e sistemas distribuídos.