Comparação do Desempenho de Infraestruturas Virtualizadas de Elevada Disponibilidade Usando Hypervisors Nativos ou Containers - Louro, André Filipe Castro (2020)
A virtualização nativa ao nível do hardware é atualmente usada em datacenters para suporte à virtualização de infraestruturas de computação de elevada disponibilidade. Os hypervisors nativos têm sido a principal escolha para a construção de infraestruturas virtualizadas baseadas em failover clusters usando o Failover Clustering no caso do Microsoft Windows Hyper-V. Contudo, o recente surgimento da tecnologia Docker, a tecnologia de containers de software mais usada a nível mundial, tem tornado popular a virtualização ao nível do sistema operativo, permitindo criar, através do modo Swarm, infraestruturas virtualizadas de elevada disponibilidade. A virtualização ao nível do hardware apresenta vantagens em relação à virtualização ao nível do sistema operativo, de entre as quais se destacam o isolamento e a flexibilidade de aplicações, mas apresenta desvantagens tais como uma maior complexidade de implementação e lentidão na inicialização e no armazenamento de imagens de máquinas virtuais. Por outro lado, a virtualização nativa ao nível do hardware tem evoluído no sentido de melhorar o respetivo desempenho, em que as arquiteturas de hypervisors baseadas em virtualização completa com tradução binária estão a ser substituídas por arquiteturas de hypervisors com paravirtualização com suporte por hardware. Esta dissertação pretende avaliar e comparar o desempenho de duas infraestruturas virtualizadas de elevada disponibilidade, uma baseada na virtualização nativa ao nível do hardware usando o Microsoft Hyper-V com Failover Clustering e a outra baseada na virtualização ao nível do sistema operativo usando o Docker em modo Swarm. As infraestruturas virtualizadas implementadas consistiram num failover cluster com dois nós físicos e um servidor de armazenamento. Foi avaliado e comparado o desempenho destas infraestruturas usando quatro diferentes benchmarks, o IOzone cujo alvo de avaliação é o sistema de ficheiros, o RAMspeed que permite a medição do desempenho da memória do sistema, o iPerf3 para medições ativas da largura de banda na comunicação entre plataformas e o Geekbench que é um benchmark de processadores multiplataforma. Os resultados obtidos com estes quatro benchmarks mostram, de forma geral, que o desempenho do Docker em modo Swarm é superior ao desempenho do Microsoft Hyper-V com Failover Clustering. Foram também analisados os tempos de migração de máquinas virtuais e de containers naquelas duas infraestruturas virtualizadas, tendo-se observado tempos de migração da ordem de 18,4s para máquinas virtuais com sistema operativo Windows sobre o Hyper-V, tempos de migração da ordem de 15,35s para máquinas virtuais com sistema operativo Linux sobre o Hyper-V e tempos de migração de Docker containers em modo Swarm na ordem de 5,94s e tempos de migração de Nested Docker containers na ordem de 6,79s. Estes resultados mostram que o Docker apresenta um desempenho superior em relação ao Hyper-V em termos de tempos de migração de máquinas virtuais ou de containers de um nó para o outro do failover cluster.