Notícias

Como migrar máquinas virtuais do Proxmox para a nuvem da Amazon AWS

   A grande mudança que aconteceu nos últimos anos no mundo da infraestrutura de TI foi a definição da virtualização como o novo padrão. Salvo raras exceções, o padrão é a utilização de um ambiente virtualizado, não só com a utilização de maquinas virtuais mas também rede virtualizada ou mesmo virtualização de storages, tudo definido por software.

 

   Durante a ascensão da virtualização como novo padrão, trabalhamos muito na migração dos servidores físicos para o mundo virtual, neste processo muitas técnicas foram usadas e muito tempo foi dedicado a esta tarefa.

 

   Vivemos hoje em um novo momento, em que existe o crescimento das soluções e infraestrutura em nuvem. O que se percebe é, pelo menos momentaneamente, a utilização de nuvem hibrida, ou seja, parte da estrutura dentro da empresa, em Data Center local e parte nos serviços de nuvem de algum provedor.

 

   Seguindo esta tendência, resolvemos elaborar um tutorial para auxiliar aqueles que pensam em migrar maquinas virtuais que rodam no gerenciador de virtualização Proxmox para a nuvem da Amazon AWS, ou seja, importar as maquinas virtuais que rodam no Proxmox para o serviço EC2 da AWS.

 

   Dividimos o tutorial em três partes que seguem abaixo, também elaboramos uma video aula que pode ser vista para auxiliar ainda mais no processo.

 

 

1 - Preparando o ambiente

   Entendemos que você tenha conhecimento de Proxmox e também de Amazon AWS. Se quiser saber mais sobre isso, olhe os links sugeridos ao final do tutorial.

 

   Ao migrar uma maquina virtual para a nuvem, na verdade migramos o disco virtual dela. A AWS indica que seja migrado apenas o disco do sistema e que os demais discos sejam importados por outro método (ec2-import-volume). Desta forma os demais discos devem ser ‘desatachados’ da maquina virtual.

   Qualquer cliente de virtualização, como o agente qemu deve ser desinstalado da maquina virtual, também é aconselhável a desinstalação de antivírus. A placa de rede do servidor a ser exportado deve ser configurada para DHCP e como na AWS o acesso se dá somente por acesso remoto (caso Windows) ou ssh (caso Linux) o sistema operacional deve permitir isto, assim como firewall local.

 

   Você deve exportar o disco do sistema utilizado na maquina virtual, uma maneira simples de fazer isso e independente do tipo de storage usado no armazenamento é executar um backup do Proxmox e depois extrair o disco virtual do backup. O comando abaixo faz isto:

 

→ No Proxmox, extraindo o backup chamado vzdump-qemu-105-2019_09_12-15_43_48.vma para o diretório teste

# vma extract vzdump-qemu-105-2019_09_12-15_43_48.vma ./teste/

 

   Dentro deste diretório, você pode converter o arquivo de disco .raw para o formato VHD que também é suportado pela AWS e otimiza a quantidade de dados que será enviado para a nuvem.

# qemu-img convert -f raw -O vpc ./disk-drive-scsi0.raw ./vm105.vhd

 

   Depois de converter o disco da maquina virtual, você deve criar um bucket no serviço de S3 da AWS para ele receber o disco virtual antes de importar para uma instância EC2.

   Além do bucket você deve criar um usuário no AWS IAM com políticas de permissão completa nos serviços S3 e EC2. Este usuário será usado para a migração e criação da instância virtual através da ferramenta Amazon EC2 Command Line.

   O Amazon EC2 Command Line deve estar instalado em um equipamento que vai executar o comando de migração. Este equipamento deve ter acesso ao disco virtual da maquina virtual que foi extraído do backup e convertido, assim como conexão a internet para o envio do disco para AWS. Detalhes da instalação podem ser vistas no manual (link ao final do artigo) na página 5.

 

2 – Migrando para a nuvem

Uma vez preparado o ambiente, basta executar o comando abaixo, modificando suas opções conforme a sua realidade, no equipamento com o Amazon EC2 Command Line instalado.

 

# ec2-import-instance -O AKIA4&YTFFI77WGJKD73 -W "y1x0GPk0GfncK876I7ygf8R2b4dx6p5x9gJI+L9" -t t2.micro -g sg-0d26b772 -f VHD -a x86_64 -p Linux -b importavm.curso.tecnoapp.com.br -o AKIA4&YTFFI77WGJKD73 -w "y1x0GPk0GfncK876I7ygf8R2b4dx6p5x9gJI+L9" -z us-east-1d --subnet subnet-2c7d7c77 -d "Teste 01 com VHD" ./vm105.vhd --region us-east-1

 

Onde:

-O e -W são a chave e a senha do usuário criado para esta operação no AWS IAM

-t é o tipo da instância que será criado na nuvem

-g é o ID do grupo de segurança na qual a instância fará parte por padrão

-f é o tipo de disco virtual que será enviado

-a é o tipo de arquitetura

-p é o tipo de plataforma (Linux ou Windows)

-b é o nome do bucket que foi criado anteriormente

-o e -w são a chave e a senha do usuário criado para esta operação no AWS IAM

-z é a zona de disponibilidade da região. Deve ser compatível com a subnet

--subnet é o id da subnet que a instância fará parte por padrão

-d é uma breve descrição

vm105.vhd é o nome do arquivo de disco virtual que será enviado

– region é a região onde a instância será criada

 

Após a execução do comando, o disco virtual será enviado para o bucket criado e depois disso automaticamente uma nova instância do tipo solicitado será criada e anexado o volume enviado, ficando ela disponível para uso.

 

3 – Analisando o resultado

Você pode verificar na console da AWS a instância criada com o mesmo ID exibido no resultado do comando de importação.

 

Depois de finalizada a importação, você pode iniciar a instância normalmente da console de gerenciamento da Amazon AWS EC2.

Você pode analisar erros na própria console em Instance Settings > Get system Log ou Get Instance Screenshot. Muitas vezes é necessário incluir um IP elástico no servidor importado para obter o acesso. Lembre de liberar o acesso remoto no grupo de segurança onde a instância foi inserida.

 

Alguns comandos são usados para mostrar informações desta tarefa de envio de arquivo e importação. Eles utilizam o task-id que é exibido quando o comando de importação é iniciado.

O comando ec2-describe-conversion-tasks é um destes, assim como o comando ec2-delete-disk-image é usado para excluir a imagem temporária criada durante a importação. Caso ocorra algum problema durante o upload do arquivo de disco virtual, você pode continuar seu upload através do comando ec2-resume-import. Muitos outros detalhes da migração podem ser vistos no manual do Amazon EC2 Command Line na pagina 791.

 

Com este tutorial, esperamos ter auxiliado aos administradores de infraestrutura que precisam migrar maquinas virtuais do Proxmox para a nuvem, mas além destes, mesmo usuários de outras plataformas de virtualização podem utilizar os conceitos apresentados para migrar seus ambientes.

 

Indicação de Links:

** Curso de Proxmox: https://cursos.escolalinux.com.br/proxmox-gerencia-de-maquinas-virtuais-16-horas

** Curso de AWS: https://cursos.escolalinux.com.br/aws-essentials-10-horas

** Playlist do curso de Amazon AWS: https://www.youtube.com/playlist?list=PLp8CLnJz1dTFim2lRZmt_f86kF6PvRgEP

** Manual do Amazon EC2 Command Line: http://awsdocs.s3.amazonaws.com/EC2/ec2-clt.pdf

Deixe seu comentário:

Confira também:

Adequações a LGPD - Lei Geral de Proteção de Dados

Artigo - Usando Storage Distribuído com Proxmox e Ceph.

Como migrar VM (Maquina Vitual) do Citrix XenServer para o Proxmox

2020 © TecnoApp Soluções - Todos os direitos reservados