Automated emulation of distributed systems through system management and virtualization - Calheiros, Rodrigo N. (2010)
Sistemas distribuídos são compostos de elementos computacionais geograficamente distribuídos que pertencem a múltiplos domínios administrativos controlados por múltiplas entidades. Estas características dificultam testes e avaliações nesta plataforma, porque dificilmente testadores/avaliadores de sistemas ou políticas adquirem repetidamente os mesmo recursos pela mesmo período de tempo sob as mesmas condições de rede, o que são requisitos fundamentais para testes reproduzíveis e controlados do software em desenvolvimento. Uma alternativa a experimentos em plataformas reais é emulação, onde o modelo de um sistema executa o software real sob teste. A tecnologia de virtualização possibilita o desenvolvimento de emuladores eficientes porque ela oferece meios para multiplexação e isolamento de recursos. Apesar da virtualização facilitar o desenvolvimento de emuladores, pouco esforço tem sido feito para isolar testadores/avaliadores de sistemas ou políticas da operação das ferramentas e do ambiente virtualizado. Esta tese apresenta o Automated Emulation Framework (AEF), que aplica tecnologias de virtualização e gerência de sistemas em um cluster de estações de trabalho a fim de oferecer uma ferramenta automatizada para emulação de sistemas distribuídos. Três atividades principais são realizadas pelo AEF: primeiro, ele realiza o mapeamento das máquinas virtuais que representam nós do ambiente distribuído emulado para nós do cluster e dos links entre máquinas virtuais para caminhos na rede física; segundo, ele realiza a instalação e configuração automática das máquinas virtuais no cluster e rede virtual na rede do cluster; terceiro, ele realiza configuração e disparo automático de experimentos no sistema emulado, monitoração e controle do ambiente e aplicações, e reconfiguração do sistema em caso de violações nas demandas do testador/avaliador de sistemas ou políticas. Em relação à primeira atividade, o problema de mapeamento é definido formalmente e quatro herísticas para solução do problema são desenvolvidas e avaliadas com o uso de simulação de eventos discretos. Em relação às duas últimas atividades, a arquitetura do AEF é descrita em detalhes. Além do mais, um protótipo do AEF é desenvolvido e avaliado através da realização de experimentos no contexto de grades computacionais. Experimentos mostram que a arquitetura é realizável e que AEF pode ser uma ferramenta valiosa para experimentação repetida e controlável de sistemas distribuídos.