Novos Algoritmos Para Alocação De Máquinas Virtuais E Um Novo Método De Avaliação De Desempenho
Total Page:16
File Type:pdf, Size:1020Kb
RICARDO STEGH CAMATI Novos Algoritmos para Alocação de Máquinas Virtuais e um Novo Método de Avaliação de Desempenho Dissertação de Mestrado apresentada ao Programa de Pós- Graduação em Informática da Pontifícia Universidade Católica do Paraná, como requisito para obtenção do título de Mestre em Informática. Área de Concentração: Ciência da Computação Orientador: Prof. Dr. Alcides Calsavara Curitiba 2013 DEDICATÓRIA Dedico esta dissertação a minha família, e de maneira especial a minha avó materna Maria Stegh (in memoriam) que faleceu no início do primeiro ano deste trabalho. Ela foi uma companheira inseparável na minha infância, me criou como se fosse seu próprio filho, cuidou de mim e de minha irmã quando meus pais estavam trabalhando, nos alimentou e educou sem nunca pedir nada em troca. Sua alegria era servir as pessoas para que se sentissem bem, adorava cozinhar e sua comida que era deliciosa. 2 AGRADECIMENTOS Agradeço a Deus, a força superior responsável pela criação da energia, matéria e por dedução, da vida. Acredito que toda nova descoberta nada mais é do que uma pequena equação da grandiosidade e complexidade incalculável por ele arquitetada. Agradeço a segura orientação do Prof. Dr. Alcides Calsavara, cujo profissionalismo e competência foram fundamentais para o crescimento e a conclusão da minha dissertação. Suas aulas sobre Sistemas Distribuídos juntamente com as leituras de artigos recomendadas e seu excelente desempenho como professor me ajudaram a compreender muitos conceitos de vital importância. O tempo todo ele me incentivou a continuar e cedeu seu precioso tempo para me ajudar, foram dezenas de reuniões e muitas horas que passamos juntos trabalhando para possibilitar a finalização dessa dissertação, me sinto honrado e privilegiado pela oportunidade de trabalhar ao seu lado . Agradeço, também, ao Prof. Dr. Carlos Alberto Maziero, que foi meu orientador durante o primeiro ano do mestrado, suas excelentes aulas e apostilas me ajudaram a entender o funcionamento de Sistemas Operacionais e Máquinas Virtuais, revelando um novo mundo a ser explorado. Expresso minha gratidão também aos professores Dr. Luiz Lima Junior e Dr. Altair Santin, do grupo de Sistemas Distribuídos que sempre estiveram presentes em nossas reuniões do grupo, promovendo a troca de conhecimento entre professores e alunos. Meus agradecimentos e respeito a todos os professores do PPGIA, podem ter certeza que todo conhecimento absorvido em suas aulas foram de grande valia para este trabalho. Agradeço de forma muito especial a minha mãe, Prof. Dr. Anna Stegh Camati, e ao meu pai, Dr. Rocha Vitor Camati, seus incentivos e amor incondicionais me deram forças para terminar esta jornada, tenho muita sorte de ter pais maravilhosos como eles. À minha esposa Denalzira Mariano, expresso minha gratidão e reconhecimento, por ser uma companheira amorosa, e pelo seu apoio constante. À meu avô materno (in memoriam) minha homenagem por sua força de vontade, não se deixando abater pelos revezes da vida. Não poderia deixar de agradecer também ao mestrando Fábio Pandolfo, que me ajudou a montar um pequeno cluster de máquinas virtuais. Apesar de ter usado um simulador nesta dissertação, o cluster que montamos serviu para avaliar as dificuldades do mundo real. 3 EPÍGRAFE “Corrija um sábio, e o fará mais sábio. Corrija um tolo, e o fará seu inimigo.” 4 RESUMO A tecnologia de máquinas virtuais tem sido fortemente empregada nos últimos anos, visando, principalmente, a economia de recursos computacionais e o isolamento entre usuários e aplicações, para fins de segurança. O principal contexto de emprego de máquinas virtuais é na arquitetura de sistemas operacionais, inclusive como base para a construção de plataformas para a computação nuvem. A alocação eficiente de máquinas virtuais em um cluster de máquinas físicas é essencial para a otimização do uso de recursos computacionais e para reduzir a probabilidade de realocações. Entretanto, tipicamente, os algoritmos de alocação de máquinas virtuais empregam abordagens simples, tais como First Fit e suas variantes, restringindo-se a apenas uma dimensão de recurso computacional. Além disso, os métodos de avaliação empregados não contemplam integralmente a heterogeneidade entre as máquinas físicas de um cluster com relação à capacidade dos diferentes recursos computacionais e nem permitem analisar o impacto da variação de densidade de alocação. Esta dissertação propõe novos algoritmos de alocação de máquinas virtuais, os quais consideram múltiplas dimensões de recursos computacionais, e define um novo método de avaliação que contempla integralmente a heterogeneidade de recursos computacionais em múltiplas dimensões e permite analisar a variação de densidade de alocação. Os novos algoritmos foram comparados com outros tradicionais através de simulação, empregando o novo método definido. Os experimentos realizados permitiram observar que, de forma geral, a heterogeneidade de recursos entre máquinas físicas prejudica o desempenho dos algoritmos, enquanto que a heterogeneidade de recursos entre máquinas virtuais o beneficia. Também foi possível observar que o aumento na densidade de alocação até certo ponto beneficia o desempenho dos algoritmos. Finalmente, um dos algoritmos teve desempenho até 13% superior. Palavras-chave: Computação em Nuvem, Alocação de Máquinas Virtuais, Método de Avaliação de Desempenho. 5 ABSTRACT Virtual machine technology has been more employed recently, mainly aiming at the economy of computational resources and the separation of users and applications for the sake of security. The main context for the use of virtual machines is the architecture of operating systems, inclusively as a basis for the construction of platforms for cloud computing. The effective allocation of virtual machines in a cluster of physical machines is essential for the optimization of the use of computational resources to reduce the probability of reallocations. However, typically, the allocation algorithms of virtual machines employ simple approaches, such as First Fit and its variants, restricted to only one dimension of computational resources. Furthermore, the evaluation methods do not contemplate integrally either the heterogeneity of physical machines of a cluster with respect to the capacity of the different computational resources, nor do they permit analyzing the variation impact of the density of allocation. This dissertation proposes new allocation algorithms for virtual machines, and defines a new method of evaluation that contemplates integrally the hetereogeneity of computational resources in multiple dimensions and permits analyzing the variation of density allocation. The algorithms have been compared to other traditional ones by means of simulation, employing the newly defined method. The experiments realized permitted observing that, generally, the heterogeneity of resources among physical machines impairs the performance of algorithms, while the heterogeneity of resources among virtual machines benefits it. It was also possible to observe that the increase of allocation density up to a point benefits the performance of all algorithms. Finally, one of the algorithms reached a superior performance of 13%. Keywords: Cloud Computing, Virtual Machine Allocation, Method of Performance Evaluation. 6 SUMÁRIO 1 INTRODUÇÃO ......................................................................................................................................... 14 1.1 MOTIVAÇÃO .......................................................................................................................................................... 14 1.2 OBJETIVOS ............................................................................................................................................................. 16 1.3 ESTRUTURA DA DISSERTAÇÃO ........................................................................................................................... 18 2 FUNDAMENTOS DE MÁQUINAS VIRTUAIS E COMPUTAÇÃO EM NUVEM .......................... 19 2.1 HISTÓRICO DE MÁQUINAS VIRTUAIS ................................................................................................................. 19 2.2 ARQUITETURA DE MÁQUINAS VIRTUAIS .......................................................................................................... 24 2.3 PROPRIEDADES DE MÁQUINAS VIRTUAIS .......................................................................................................... 28 2.4 MIGRAÇÕES DE MÁQUINAS VIRTUAIS ................................................................................................................ 31 2.5 COMPUTAÇÃO EM NUVEM ................................................................................................................................... 33 2.6 DISCUSSÃO SOBRE COMPUTAÇÃO EM NUVEM .................................................................................................. 40 3 ALOCAÇÃO DE MÁQUINAS VIRTUAIS EM DATA CENTERS ....................................................... 42 3.1 DETERMINANTES DE VARIABILIDADE DO PROBLEMA ................................................................................... 42 3.1.1 O conjunto de hosts ...................................................................................................................................... 43 3.1.2 Modo de chegada de máquinas virtuais ............................................................................................. 45 3.1.3 Dimensões das máquinas .........................................................................................................................