1 research outputs found

    Analysis and implementation of consistency and fault tolerance mechanisms in soft real-time systems

    Get PDF
    Trabalho de projecto de mestrado, Engenharia Informática (Arquitetura, Sistemas e Redes de Computadores), Universidade de Lisboa, Faculdade de Ciências, 2014Neste projecto pretende-se explorar a implementação de soluções de tolerância a faltas num sistema de monitorização de rede. A monitorização é feita numa grande rede empresarial, com um volume de informação significativo devido ao elevado número de clientes que a empresa de telecomunicações tem a nível nacional. Por norma, não podemos evitar todas as faltas, é preciso tolerá-las replicando os componentes do sistema para o tornar mais confiável. ´E necessário fazer uma análise detalhada a cada componente, verificar as falhas existentes e prováveis, e, se possível, alterar a arquitectura de modo a colmatar as falhas identificadas. Para além de efectuarmos a análise `a confiabilidade do sistema, que foi o foco principal do projecto, algum do trabalho incidiu sobre a necessidade de melhorar a monitorização do sistema, isto é, foi necessário extrair métricas e indicadores relevantes que possibilitam uma melhor introspecção permitindo despoletar accões de recuperação automáticas e uma visualização mais completa do estado do sistema. Partindo do estado inicial, o objectivo foi analisar detalhadamente o sistema: a sua arquitectura, os componentes que o constituem e o seu funcionamento. Partindo dessa análise, foram elaborados casos de uso que serviram de base para a execução de testes ao sistema, permitindo retirar conclusões de como melhorar a confiabilidade e adicionar mecanismos de tolerância a faltas ao sistema. A arquitectura do sistema foi analisada antes da realização dos testes, resultando na elaboração de diagramas representativos em diferentes níveis de abstraccão, nomeadamente ao nível da infraestrutura e ao nível dos serviços. Adicionalmente, todas as ferramentas usadas no projecto foram revistas identificando os seus objectivos e propósitos. A realização dos testes ao sistema permitiu delimitar a capacidade de processamento de cada um dos componentes e identificar o comportamento e consequências resultantes da injecção de faltas em situações predeterminadas. Os resultados e conclusões extraídos foram registados e serviram de base para o desenho de soluções aplicáveis ao sistema com o objectivo de corrigir as falhas identificadas. Após as modificações iniciais a estabilidade do sistema foi melhorada, resultado da adição de capacidades de recuperação automática aos componentes do sistema, isto é, ao ocorrerem falhas identificadas e previsíveis, o sistema é capaz de retornar ao estado correcto de funcionamento sem qualquer necessidade de intervenção humana. Este tipo de comparação foi realizada em pontos-chave do projecto com o objectivo de registar os resultados das implementações realizadas em cada etapa. A fase final consistiu em desenhar soluções que permitissem adicionar redundância ao sistema com o objectivo de introduzir tolerância a faltas no sistema. Foi necessária uma máquina física adicional e, antes de ser escolhida a solução final, foi realizado o levantamento do estado da arte relativo às técnicas utilizadas nesta área. Das várias opções estudadas, um subconjunto foi testado em ambiente de desenvolvimento. As soluções escolhidas para implementação tiveram em conta a facilidade e aspecto prático, bem como as vantagens e desvantagens de cada opção. No final, temos um sistema tolerante a faltas, replicado em duas máquinas físicas que se supervisionam mutuamente tendo a capacidade de tolerar a falha de uma das máquinas.This project aims to explore the implementation of fault tolerance solutions in a network monitoring system. Monitoring is performed on a large corporate network, with a significant information volume derived from the large number of customers that the telecommunications company has nationwide. As a rule we cannot avoid all faults, one has to tolerate them by replicating system components to make them more reliable. It is necessary to make a detailed analysis of each component, checking for flaws and possible improvements and, if possible, change the architecture so as to bridge the identified gaps. In addition, our approach takes into account the necessity of monitoring of both the corporate network as well as the system’s state. Regarding the monitored network, displaying a metrics panel is of high importance so that there is an efficient visibility of the system state. The practical contributions began with the improvement of the system when there is a single machine deployed, testing and reporting any and all options to increase its reliability and fault tolerance. After the initial modifications, the behavior of the machine was much improved. The corrections and software updates made the node fully capable of returning to a working state in the event of the identified and predictable failures that each component is prone to. After these improvements, the following work focused on adding redundancy to the system in order to introduce fault tolerance. It required an additional physical machine and, before committing to a final solution, surveying the state of the art techniques used in the field. Of the several options studied, a subset was tested in the development environment. The implemented solutions took into account the easiness and practicality as well as the advantages and disadvantages of each option. In the end, we have a fault tolerant system, replicated in two physical machines that monitor each other in order to tolerate the failure of one the them
    corecore