Rodrigues, Joel José Puga CoelhoRibeiro, Didier Martins2018-09-052018-09-052014-11-202014-10-6http://hdl.handle.net/10400.6/6170Cloud computing has improved computing efficiency by reducing the cost to the users. A current datacenter consists of tens to hundreds of thousands of servers and contains hundreds of thousands of switches connected hierarchically. Sharing processing resources through services like "software as service" (SaaS), users can amortize the cost of hardware and software. To facilitate upgrades and maintenance of systems, virtual machines (VMs) are often used to provide services, and their migrations result in better use of resources. The cloud, supported by virtualization is emerging as an important paradigm of "oriented service". The administration of systems is critical to provide availability and performance in data systems, providing automated the required real-time capacity to meet service requests. But virtualization does not reduce the complexity of a system. In fact, the execution of multiple virtual machines (VMs) on top of a physical infrastructure can increase overall system complexity and present new challenges in his administration. Virtualization of resources is a key component of "cloud computing" to provide computing and storage services being ubiquitous in today's "data center". Support for servers by building cluster of virtual machines is universally adopted to maximize the utilization of hardware resources. Virtualization has become a key technology implemented by a growing number of organizations related to Information Technology (IT) worldwide. Virtualization of systems has rapidly gained popularity because of its potential to reduce the costs of TI's. Allowing IT managers to increase the use of existing physical resources and even reduce the number of deployed systems. This consolidation helps reduce hardware requirements management, reducing the need for power and cooling, and thus reducing the costs of TI's in general. Additionally, the deployment of virtualization solutions typically means increased management tools to the existing environment. Access to software and data anywhere, anytime, on any device and in any connectivity, has long been a crucial issue for researchers and architects systems. The amount of data processed increases each year, both in largescale systems and in smaller environments. Likewise, the computation is being performed for processing the data, and the communication is made to distribute the data. This phenomenon is associated with a steady increase in computing power, storage and communication resources available, although with different characteristics. The impact of the current growth in the use of virtualization tools became more popular the use of virtual machines. The use of virtual laboratoriestesting is becoming more popular in the practice of QA testing. This approach allows the "testers" to test different applications without relying on permanent configuration of a system. Using virtual machines, QA tests can simulate different computers with different operating systems through a single physical computer or create a full virtual laboratory with multiple virtual machines configured differently. These virtual "computers" operate independently of each other and we can launch two or more virtual platforms simultaneously on one computer, saving the cost of having to buy more hardware just to run quality control tests. Applications running in a virtual machine behave as if they were running on its own physical system. This can also be useful to test web applications, because it can simultaneously test web applications across browsers which work independently of each other in different virtual machines, again, without the cost of buying more hardware for testing needs. Testing applications with virtual machines may have different utilities. This can be used for distributed client-server applications, functional testing, regression test, etc. But no matter what kind of QA testing we use, it will be more effective if automated and any kind of testing in virtual laboratories can be easily automated. A computer system is a dynamic system and configurations of operating systems continually change. Install or update software drivers and hardware happens frequently and installing different versions of an application affects the internal structure of the system and may influence the test results. While buying multiple computers to support multiple platforms is an option for some, it is often too expensive for most testing labs. Fortunately, virtual machines are a solution to these problems and much more cost effective. Once we have created and configured a virtual machine or a lab full of virtual machines, we can have the configuration of a stable system, which is very important when testing applications. However, we may need a more powerful computer to run multiple virtual machines on a single computer at the same time, but that's often cheaper than buying three physical computers. With a virtual laboratory in a computer, we can perform tests with distributed client-server applications without the need for multiple computers. In this dissertation, based on the characteristics presented above, is presented VirtualMigra. The VirtualMigra Platform is a tool that allows the migration of virtual machines regardless of their manufacturer among different users in a LAN. The use of the Oracle Virtualbox and VMware Workstation APIs allows a comfortable and intuitive level of abstraction for the users. Were conducted exhaustive experiments to test the platform and these were successfully performed in a real environment, thus being ready for real exploration platform.A computação em nuvem tem melhorado a eficiência de computação reduzindo o custo para os utilizadores. Um centro de dados atual é constituído por dezenas a centenas de milhares de servidores e contém centenas de milhares de “switches” hierarquicamente conectados. Partilhando os recursos de processamento através de serviços como “Software as Service” (SaaS), os utilizadores podem amortizar o custo do hardware e do software. Para facilitar atualizações e manutenções de sistemas, as máquinas virtuais (VMs) são frequentemente utilizadas para prestação de serviços, e suas migrações resultam numa melhor utilização dos recursos. A computação em nuvem, apoiada pela virtualização está emergindo como um importante paradigma de serviço orientado. A administração de sistemas é fundamental para oferecer disponibilidade e desempenho em sistemas de dados, fornecendo de forma automatizada a capacidade necessária em tempo real para atender pedidos de serviços. Mas a virtualização não reduz a complexidade de um sistema. Na verdade, a execução de várias máquinas virtuais (VMs) no topo de uma infra-estrutura física pode aumentar a complexidade geral do sistema e colocar novos desafios na sua administração. A virtualização de recursos é a componente chave da computação em nuvem para fornecer serviços de computação e armazenamento estando omnipresente nos centros de dados atuais. O apoio à servidores através da construção de cluster de máquinas virtuais é universalmente adotada para maximizar a utilização dos recursos do hardware. A virtualização tornou-se uma tecnologia chave implementada por um número crescente de organizações relacionadas com as Tecnologias da Informação (TI) em todo o mundo. A virtualização de sistemas rapidamente ganhou popularidade por causa do seu potencial em reduzir os custos das TI´s. Permitindo aos gestores de TI aumentarem a utilização dos recursos físicos existentes e até mesmo reduzir o número de sistemas implementados. Esta consolidação ajuda reduzir os requisitos na gestão de hardware, reduzindo as necessidades de energia e refrigeração, e, assim, reduzindo os custos das TI´s em geral. Além disso, a implantação de soluções de virtualização normalmente significa um aumento de ferramentas de gestão para o ambiente existente. O acesso ao software e dados em qualquer lugar, a qualquer hora, em qualquer dispositivo e com qualquer conectividade, já há muito tempo é um tema crucial para investigadores e arquitectos de sistemas. A quantidade de dados processados aumenta em cada ano, tanto em sistemas de larga escala como em ambientes de menor dimensão. Da mesma forma, a computação mais está a ser executada para processar os dados, e mais comunicação é utilizada para distribuir os dados. Este fenómeno é associado com um aumento constante da capacidade de computação, armazenamento e recursos de comunicação disponíveis, embora com características diferentes. O impacto do crescimento actual do uso de ferramentas de virtualização tornou mais popular a utilização de máquinas virtuais. O uso de laboratórios de testes virtuais está-se a tornar mais popular na prática de testes de QA. Esta abordagem permite que os “testers” testem aplicações diferentes sem se basearem na configuração permanente de um sistema. Usando máquinas virtuais em testes de QA, podemos simular diferentes computadores com diferentes sistemas operativos através de único computador físico ou criar um laboratório virtual inteiro, com várias máquinas virtuais configuradas de forma diferente. Estes “computadores” virtuais funcionam de forma independente uns dos outros e podemos lançar duas ou mais plataformas virtuais simultaneamente no computador, economizando o custo de ter que comprar mais hardware apenas para executar testes de controlo de qualidade. As aplicações em execução numa máquina virtual comportam-se como se estivessem em execução no seu próprio sistema físico. Também pode ser útil testar aplicações web, pois pode-se testar simultaneamente aplicações web em vários navegadores que funcionam independentemente uns dos outros em diferentes máquinas virtuais, mais uma vez, sem o custo de comprar mais hardware para necessidades de testing. Testar aplicações com máquinas virtuais pode ter diferentes utilidades. Pode-se utilizar para testes distribuídos de aplicações cliente-servidor, testes funcionais, testes de regressão, etc. Mas, não importa que tipo de testes de QA que usamos, também será mais eficaz se for automatizado e qualquer tipo de testes em laboratórios virtuais podem ser facilmente automatizadas. Um sistema de informático é um sistema dinâmico e as configurações dos sistemas operativos mudam continuamente. Instalação ou atualização de drivers de software e hardware acontece com frequência e instalação de diferentes versões de um aplicativo afeta a estrutura interna do sistema, podendo influenciar os resultados dos testes. Enquanto que a compra de vários computadores para suportar várias plataformas é uma opção para alguns, muitas vezes é muito caro para a maioria dos laboratórios de testes. Felizmente, as máquinas virtuais são uma solução para estes problemas e a um custo muito mais eficaz. Depois de ter criado e configurado uma máquina virtual ou um laboratório cheio de máquinas virtuais, pode-se ter a configuração de um sistema estável, o que é muito importante ao testar aplicações. No entanto, pode ser preciso um computador mais potente para executar várias máquinas virtuais num único computador ao mesmo tempo, mas isso é muitas vezes mais barato do que comprar três ou mais computadores físicos. Com um laboratório virtual num computador, podemos executar testes distribuídos com aplicações cliente-servidor sem a necessidade de vários computadores. Nesta dissertação, com base nas características apresentadas anteriormente, é apresentada VirtualMigra. A plataforma VirtualMigra é uma ferramenta que permite fazer a migração de máquinas virtuais independentemente do seu fabricante entre diferentes utilizadores de uma LAN.O uso das API´s do Oracle Virtualbox e do VMware Workstation permitem um confortável e intuitivo nível de abstracção para os utilizadores. Realizaram-se experiências exaustivas para testar a plataforma e estas foram realizadas com sucesso num ambiente real, estando assim a plataforma pronta para exploração real.engCloud Technology Virtualization SystemsCold MigrationHypervisorsOpen Virtualization FormatOracle VirtualboxSoap Web ServicesVirtual MachinesVmware WorkstationA Web-based Solution for Virtual Machine Instances Migration Across Type-2 Hypervisorsmaster thesis201646021