AWS

24 jul, 2015

VM Import/Export Passo a Passo

Publicidade

VM Import/Export fornece aos clientes uma maneira simples de importar imagens de máquinas virtuais (ex: VMWare) para dentro da nuvem AWS, convertendo-as para “imagens de máquina Amazon” (AMI – Amazon Machine Images, em inglês). Também é possível exportá-las novamente, convertendo as AMIs de volta para o ambiente de virtualização para serem utilizadas “on-premise”, caso seja de interesse do cliente. VM Import/Export é uma ferramenta poderosíssima, pois permite aos clientes alavancar os investimentos existentes nas suas máquinas virtuais (ex.: gestão de configuração, conformidade, aplicações instaladas etc), convertendo-as de maneira simples e eficaz para imagens prontas para uso como instâncias EC2.

Requisitos e limitações

Conforme especificado na documentação AWS entitulada: antes de você começar (“Before You Get Started”). Se você está importando uma máquina virtual do Microsoft Hyper-V, consulte a documentação com mais informações específicas para a correta exportação para esta plataforma. A seguir, temos a lista atual de sistemas operacionais para os quais é possível utilizar o serviço de VM Import/Export:

  • Microsoft Windows Server 2003 (Standard, Datacenter, Enterprise);
  • Microsoft Windows Server 2003 R2 (Standard, Datacenter, Enterprise);
  • Microsoft Windows Server 2008 (Standard, Datacenter, Enterprise);
  • Microsoft Windows Server 2008 R2 (Standard, Datacenter, Enterprise).

São suportados os seguintes formatos de imagens:

  • Formato “RAW” para importar volumes e instâncias;
  • Formato de imagem VHD (“Virtual Hard Disk”), os quais são compatíveis com os produtos Hyper-V da Microsoft e Citrix Xen;
  • Formatos de imagem ESX VMDK (“Virtual Machine Disk”), os quais são compatíveis com os produtos ESX e vSphere, ambos da empresa VMWare.

O serviço de VM Import/Export, atualmente, possui as seguintes limitações:

  • É possível ter até 5 conversões e tarefas em progresso ao mesmo tempo por região;
  • Normalmente é importada uma versão comprimida da imagem do disco; imagens expandidas não podem exceder 1TB.
  • Tarefas de conversão devem terminar em até 7 dias da data de início;
  • Importação de VMs com mais de um disco não é suportada. É recomendado que a importação seja feita apenas com o volume de inicialização (“boot” em inglês) da VM, e discos adicionais sejam importados utilizando ImportVolume (ec2-import-volume) na linha de comando. Após o término do ImportInstance, utilize AttachVolume (ec2-attach-volume) para associar os volumes adicionais com a instância;
  • Múltiplas interfaces de rede não são suportadas. Depois de convertidas e importadas, as instâncias terão uma única interface virtual (NIC) utilizando DHCP para atribuição de IP;
  • Para usuários do vCenter 4.0 e vSphere 4.0, é necessário remover quaisquer imagens CD-ROM ou ISO’s anexadas a máquina virtual;
  • Endereços IP – Internet Protocol version 6 (IPv6) não são suportados.

VM Import/Export

1. Preparação do sistema operacional

Nosso procedimento começa pela preparação do sistema operacional da máquina virtual que desejamos exportar para a nuvem AWS. Se você está importando uma máquina virtual do Citrix Xen, você deve desinstalar as ferramentas Citrix para máquinas virtuais (Citrix Tools for Virtual Machines, em inglês) da máquina virtual. Caso não sejam desinstaladas, sua importação pode falhar. Para mais informações para exportação utilizando Citrix Xen acesse o Exporting from Citrix.

Este processo é extremamente importante, pois no caso das configurações necessárias para o sistema operacional não sejam aplicadas conforme recomendado, a máquina virtual pode falhar no momento da inicialização na nuvem AWS (sendo este o último passo no processo de importação, e postergando a identificação de um problema ainda da fase inicial/preparação).

  • Acesso Remoto – “Remote Desktop” (RDP) precisa estar habilitado;
  • Certifique-se de que o firewall do host (Firewall do Windows), caso esteja configurado, permita o acesso RDP. Caso contrário, a instância ficará inacessível após a conversão. Uma alternativa é desabilitar o firewall do sistema operacional para a conversão, e habilitá-lo novamente após a máquina tenha sido importada na nuvem AWS;
  • Certifique-se de que todas as contas de usuários utilizem senhas seguras. Isto inclui a conta de administrador. Todas as contas precisam possuir senha, ou a importação pode falhar;
  • Desabilite quaisquer antivírus ou softwares de detecção de intrusão na sua máquina virtual. Estes serviços podem ser habilitados novamente depois que o processo de importação estiver completo;
  • Desconecte quaisquer drives de CD-ROM (virtuais ou físicos);
  • Não faça Sysprep nas imagens das máquinas virtuais. Recomendamos que as imagens sejam importadas e, então, seja utilizado o serviço “Amazon EC2 Config” para fazer o Sysprep;
  • Configure a rede para DHCP. Caso esteja sendo utilizado endereço IP privado, certifique-se de utilizar um endereçamento IP não reservado na subnet da sua VPC. A Amazon “Virtual Private Cloud” (VPC) reserva os primeiros quatro endereços IP privados da subnet VPC;
  • Desligue sua máquina virtual antes de exportá-la;
  • Certifique-se de instalar o Framework .NET 3.5, como requisitado pelo serviço “Windows EC2Config” da Amazon.

2. Exportando uma imagem de máquina virtual a partir do VMware

Antes de importar a imagem de máquina virtual ou volume do VMware vSphere, é preciso exportar a imagem do disco VMDK. A seguir, temos este procedimento detalhado utilizando “screnshoots” de cada etapa para facilitar a compreensão:

  1. Utilizando o cliente vSphere do VMware, selecione a máquina virtual a ser exportada;
  2. Desligue a máquina:

art01-e1427483560826

  1. Utilizando a opção Arquivo do menu (File, em inglês), selecione Export e então Export OVF Template;
  2. Na janela de diálogo Export OVF Template, insira um nome para o arquivo que conterá a imagem do disco e um diretório para salvá-lo:

art02

Será apresentada uma janela onde o progresso da exportação será exibido. Este processo pode levar algum tempo, dependendo do tamanho da VM, quantidade de arquivos associados etc. Quando a exportação terminar (com sucesso), o vSphere irá salvar o arquivo com a imagem do disco no local que foi especificado. Este arquivo enviaremos a seguir para a nuvem AWS (S3), para posteriormente executarmos a tarefa de conversão para uma AMI e, então, criar uma instância EC2 a partir dela.

3. Enviando a imagem da máquina virtual para a nuvem AWS (S3)

Mesmo utilizando imagens comprimidas para o processo de importação, o tamanho dos arquivos resultantes pode ser relativamente grande para ser enviado para a AWS através da internet. O serviço de armazenamento simples (Simple Storage Service, em inglês), é altamente escalável e, além de fornecer alta durabilidade para os objetos armazenados (ex.: arquivos), também inclui inúmeras características – sendo uma bem importante para tratamento de arquivos grandes (eg: dezenas ou centenas de GB): “Multipart Upload”. Para fazer uso desta importante característica (ex.: envio de objetos/arquivos grandes em partes), vamos utilizar a ferramenta “shareware”: CloudBerry Explorer.

A configuração do aplicativo CloudBerry Explorer é bem rápida e sua utilização também é simples e intuitiva. A seguir temos algumas telas mostrando os passos para a configuração do aplicativo:

  1. Esta é a tela para criar uma nova conta e especificar as credenciais de acesso (as credenciais de acesso do usuário AWS podem ser obtidas a partir da Console AWS de administração, no canto superior direito da Console, sob o nome do usuário):

art03

  1. A seguir, temos um exemplo de uma conta Amazon S3 (AMZN) já adicionada na ferramenta:

art04

  1. A próxima tela exemplifica a configuração de Multipart upload na ferramenta:

art05

  1. A seguir, a interface principal do aplicativo, onde temos a esquerda a hierarquia do sistema de arquivos do desktop do usuário (máquina local), e à direita temos a conta AWS que configuramos para acesso ao S3:

art06-e1427484732104

  1. A seguir, temos um exemplo de como criar um bucket no S3 (ex.: uma pasta)

art07

  1. E “arrastar” um arquivo/pasta (ou arquivos/pastas) do nosso desktop (à esquerda da janela), para o S3 (à direita na janela):

art08-e1427484939459

  1. Clicando com o botão direito do mouse sobre os objetos no S3 (ex: arquivos), é possível clicar em “ACL Settings” e configurar as permissões do objeto (e também arquivos e subdiretórios adjacentes). Esta configuração pode ser importante dependendo de onde e qual usuário precise acessar as imagens. O acesso pode ser habilitado apenas durante o download e depois removido, caso assim o cliente prefira:

art09-e1427485063351

  1. Outra dica importante é utilizar o botão direito do mouse para abrir o menu de contexto para o objeto e seja selecionada a opção “Web URL”, e então clicar em “Copy to Clipboard”. Isso facilita muito para copiar o endereço/URL do objeto e colar diretamente na ferramenta de download (ex: wget -c):

art10

4. Convertendo a imagem de máquina virtual para uma imagem de máquina Amazon (AMI)

Uma vez que tenhamos no S3 todos os arquivos resultantes do processo de exportação, podemos utilizar a linha de comando em uma instância GNU/Linux (ex: Amazon Linux, Instâncias Amazon Linux já incluem as ferramentas AWS e portanto estão prontas para serem utilizadas para o processo de conversão. Lembre-se de criar uma instância com um disco grande o suficiente para acomodar as imagens, por exemplo um disco EBS adicional) para efetuar a conversão/Importação da máquina virtual. Utilitários como o wget (ex:wget –c) ou curl são exemplos de aplicativos que podem ser utilizados para fazer download dos arquivos do S3. A seguir temos um exemplo de execução (O comando “export” exemplo leva em consideração a versão atual instalada das ferramentas AWS (AWS Tools). Edite de acordo com sua versão)  da conversão a partir do diretório de onde o arquivo VMDK foi salvo (utilizando wget –c) em uma instância Amazon Linux (AWS Access Key e AWS Secret Key precisam ser editadas para refletir as chaves correspondentes do usuário AWS em questão.):

[ec2-user@AMAZON ~]$ export EC2_HOME=/opt/ec2-api-tools-1.6.11.0/

[ec2-user@AMAZON ~]$ export JAVA_HOME=/usr

[ec2-user@AMAZON ~]$  /opt/ec2-api-tools-1.6.11.0/bin/ec2-import-instance –aws-access-key XXXXXXXXXXXXXXXXXXXX –aws-secret-key xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx –owner-akid XXXXXXXXXXXXXXXXXXXX –owner-sak xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx –bucket AMI_MYCOMPANY -z us-east-1b –subnet subnet-xxxxxxxx Server1-myvirtual-disk1.vmdk –format vmdk

[ec2-user@AMAZON ~]$

Após o comando acima, uma barra de progresso será apresentada na linha de comando, indicando o status atual da conversão. Veja que na linha de comando acima selecionamos inclusive a zona de disponibilidade e a subnet na qual queremos instância. Quando o processo de conversão terminar (com sucesso), o resultado é enviado para o bucket S3 que informamos na linha de comando, e o processo de criação de uma instância EC2 terá início. Para acompanhar este processo de duas fases (de 0 a 100% cada uma), copie o ID da importação que o comando acima irá lhe fornecer (ex: import-i-fhdua7kh). De posse dele, execute um comando similar ao seguinte:

[ec2-user@AMAZON ~]$ /opt/ec2-api-tools-1.6.11.0/bin/ec2-describe-conversion-tasks -O XXXXXXXXXXXXXXXXXXXX -W xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx import-i-fhdua7kh

[ec2-user@AMAZON ~]$

Informações referentes a cada fase do processo será apresentada, junto com o nome da AMI que foi criada. Caso o processo seja finalizado sem erros, uma nova instância EC2 estará criada dentro da VPC e subnet onde foi requisitada, e o cliente poderá, então, iniciá-la utilizando a Console de administração AWS, ou a linha de comando.

Conclusão

Neste artigo foi apresentado um passo a passo para efetuar a exportação de uma máquina virtual a partir de um ambiente de virtualização VMware e importação desta imagem na nuvem AWS. Os requisitos e limitações atuais do serviço foram discriminados e ferramentas de auxílio foram também exemplificadas (ex: CloudBerry Explorer). Como o serviço de VM Import/Export possui ainda suporte para os produtos de virtualização da Microsoft (Hyper-V) e Citrix Xen, links para os procedimentos de exportação a partir destes produtos específicos foram relacionados.

***

Artigo escrito por Marcelo Leal. 

Este artigo faz parte do AWSHUB, rede de profissionais AWS gerenciado pelo iMasters.