Como importar discos virtuais

Se você tem discos virtuais em seu ambiente local com software e configurações de que precisa, às vezes chamados de discos dourados ou imagens douradas, você pode economizar tempo importando esses discos virtuais para o Compute Engine e usando a imagem resultante para criar novas máquinas virtuais. A ferramenta de importação é compatível com a maioria dos formatos de arquivo de disco virtual, incluindo VMDK e VHD.

Se você exportou seu disco do Compute Engine, não será necessário importá-lo novamente. Você pode criar outras imagens a partir do disco.

Se você precisar de um sistema automatizado para migrar várias máquinas virtuais, consulte a visão geral da migração de VMs para o Compute Engine.

Antes de começar

  • Para usar os exemplos de linha de comando deste guia, siga estas etapas:
    1. Instale ou atualize a ferramenta de linha de comando gcloud para a versão mais recente.
    2. Defina uma região e uma zona padrão.
  • Ative a API Cloud Build. Esse recurso usa o serviço Cloud Build para importar e criar imagens do Compute Engine. Ative a API Cloud Build para usar esse recurso.

    Ativar a API Cloud Build

    O Compute Engine também concederá à conta de serviço do Cloud Build os seguintes papéis para que ele possa importar imagens ao Compute Engine:

    • roles/iam.serviceAccountTokenCreator
    • roles/compute.admin
    • roles/iam.serviceAccountUser

Sistemas operacionais compatíveis

Para que sejam inicializados no Compute Engine, os discos virtuais precisam executar um dos seguintes sistemas operacionais:

  • sistemas operacionais Linux:
    • CentOS 6, CentOS 7
    • Debian 8, Debian 9
    • Red Hat Enterprise Linux 6, Red Hat Enterprise Linux 7
    • Ubuntu 14.04 LTS e Ubuntu 16.04 LTS
  • Sistemas operacionais Windows:
    • Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2012 R2 Core, Windows Server 2016 e Windows Server 2016 Core
    • Windows 7 SP1 x64 e Windows 10 Enterprise x64 (compatível somente com BYOL)

Limitações

Este recurso tem as seguintes limitações:

  • Os discos virtuais do Linux precisam usar grub como o carregador de inicialização.
  • Os carregadores de inicialização UEFI não são compatíveis com o Windows ou o Linux.
  • Os discos virtuais do Linux precisam atender aos mesmos requisitos das imagens de SO personalizadas, incluindo compatibilidade com dispositivos do controlador de armazenamento Virtio-SCSI.
  • Quando instalados nos discos virtuais do Windows, os softwares de lista de permissões de aplicativos, como o Cb Protection da Carbon Black, podem provocar falha no processo de importação. Talvez seja necessário desinstalá-los antes da importação.
  • Se você estiver importando um disco virtual executando o RHEL, o recurso "Traga sua própria licença" (BYOL, na sigla em inglês) será aceito somente se o pacote python-boto (em inglês) estiver instalado no disco virtual antes da importação.
  • Os sistemas operacionais em discos virtuais precisam ser compatíveis com a ACPI (em inglês)

Permissões

A ferramenta de importação de imagens realiza várias etapas quando você importa um arquivo de disco virtual, incluindo o upload do arquivo para o Google Cloud Storage, a criação de um novo intervalo (se necessário), o download do arquivo para o Compute Engine e a criação de uma imagem no Compute Engine com base no arquivo de disco. Esse processo acontece automaticamente. Por isso, o Google recomenda que você tenha os seguintes papéis para permitir uma experiência perfeita ao usar esse recurso:

  • roles/storage.admin no projeto
  • roles/viewer no projeto
  • roles/resourcemanager.projectIamAdmin no projeto

Como importar discos virtuais

Como verificar a compatibilidade

Antes de tentar importar o disco da máquina virtual, faça o download e a execução da ferramenta de avaliação prévia (em inglês) na máquina virtual. Essa ferramenta procura quaisquer problemas de compatibilidade (em inglês) que possam causar falha no processo de importação ou que façam o disco não funcionar corretamente no Compute Engine.

Como importar um disco virtual inicializável

Console

  1. No Console do Google Cloud Platform, faça upload do arquivo do disco virtual para o Cloud Storage.
  2. Acesse a página "Criar uma imagem".
    ACESSAR A PÁGINA "CRIAR UMA IMAGEM"
  3. Especifique um Nome para a imagem.
  4. Em Origem, selecione Disco virtual (VMDK, VHD...).
  5. Navegue até o local de armazenamento do Arquivo do Cloud Storage ou o insira manualmente.
  6. Selecione o sistema operacional disponível no disco importado. Também é possível fazer as alterações a seguir:

    • Instale pacotes de convidado. É recomendável que você instale o ambiente de convidado. Para mais informações sobre ele, leia esta página.

    • Para sistemas operacionais Windows ou Red Hat Enterprise Linux (RHEL), também é possível escolher uma opção de licenciamento, além de trazer sua própria licença ou permitir que o Compute Engine forneça uma. Para mais informações sobre como trazer sua própria licença no Windows, consulte este artigo.

  7. Opcional: especifique mais propriedades para sua imagem. Por exemplo, organize essa imagem como parte de uma família de imagens.

  8. Clique em Criar para importar a imagem.

gcloud

Use o comando gcloud compute images import para criar uma imagem inicializável do Compute Engine. Ainda que o Compute Engine possa inicializar a maioria das imagens do disco de inicialização, o comando import garante que o disco tenha os drivers necessários e os pacotes mais recentes do ambiente de convidado, que são exigidos para iniciar uma instância e estabelecer uma conexão com ela usando SSH ou RDP.

Importe os arquivos do disco virtual de um intervalo do Cloud Storage ou da sua estação de trabalho local.

Se você importar o arquivo do disco virtual de sua estação de trabalho, a ferramenta de importação fará o upload do arquivo automaticamente para um intervalo do Cloud Storage.

Se preferir, faça o upload do arquivo do disco virtual para o Cloud Storage por conta própria antes de iniciar o processo de importação. Porém, é necessário fazer o upload do arquivo para um intervalo de armazenamento no mesmo projeto que será usado para o processo de importação.

gcloud beta compute images import [IMAGE_NAME] \
    --source-file [SOURCE_FILE] \
    --os [OS]

em que:

  • [IMAGE_NAME] é o nome da imagem de destino;
  • [SOURCE_FILE] é um arquivo de disco virtual. Pode ser um arquivo local ou um armazenado no Cloud Storage. Se o disco virtual for um arquivo local, forneça um caminho absoluto ou relativo. Se o arquivo de disco virtual já estiver armazenado no Cloud Storage, ele precisa existir em um intervalo de armazenamento no projeto usado para o processo de importação, e você precisa especificar o caminho completo do arquivo no formato gs://[BUCKET_NAME]/[OBJECT_NAME].
  • [OS] é o sistema operacional do SOURCE_FILE. Ele precisa ser um destes: centos-6, centos-7, debian-8, debian-9, rhel-6, rhel-7, ubuntu-1404, ubuntu-1604, windows-2008r2, windows-2012, windows-2012r2, windows-2016 ou uma imagem com licença BYOL.

    Beta: compatibilidade com "Traga sua própria licença" (BYOL)

    Por padrão, os discos virtuais que utilizam sistemas operacionais Windows Server e Red Hat Enterprise Linux (RHEL) são importados e configurados como imagens premium de SO, que têm cobranças extras.

    • Se você quiser usar suas próprias assinaturas de software do RHEL, importe os discos como imagens com licença BYOL. Basta especificar um dos valores a seguir no campo [OS]:

      • rhel-6-byol
      • rhel-7-byol
    • Se quiser trazer sua própria licença do Windows, importe os discos como imagens com licença BYOL. Basta especificar um dos valores a seguir no campo [OS]:

      • windows-2008r2-byol
      • windows-2012-byol
      • windows-2012r2-byol
      • windows-2016-byol
      • windows-7-byol
      • windows-10-byol

Se você especificar um arquivo local, a operação de upload poderá demorar muito, dependendo do tamanho do disco virtual e da velocidade da conexão de rede. A operação de importação pode demorar dezenas de minutos para ser executada, dependendo do tamanho do disco.

Comando de amostra

O exemplo a seguir importa um disco virtual debian-9 chamado your_server.vmdk e armazenado em gs://your_gcs_bucket.

gcloud beta compute images import my-imported-image \
    --source-file gs://your_gcs_bucket/your_server.vmdk \
    --os debian-9

Parâmetros opcionais

Por padrão, os pacotes de ambiente de convidado são adicionados a todas as imagens de disco de inicialização importadas. Se você não quer esses pacotes, adicione a sinalização --no-guest-environment ao comando de importação.

Como importar um disco virtual não inicializável

Console

  1. No Console do Google Cloud Platform, faça upload do arquivo do disco virtual para o Cloud Storage.
  2. Acesse a página "Criar uma imagem".
    ACESSAR A PÁGINA "CRIAR UMA IMAGEM"
  3. Especifique um Nome para a imagem.
  4. Em Origem, selecione Disco virtual (VMDK, VHD...).
  5. Navegue até o local de armazenamento do Arquivo do Cloud Storage ou o insira manualmente.
  6. No sistema operacional, selecione Nenhum sistema operacional. Apenas dados.
  7. Opcional: especifique mais propriedades para sua imagem. Por exemplo, organize essa imagem como parte de uma família de imagens.
  8. Clique em Criar para importar a imagem.

gcloud

Use o comando gcloud compute images import para criar uma imagem não inicializável do Compute Engine. Se o disco virtual não tiver um sistema operacional inicializável instalado, ainda será possível importá-lo usando a sinalização --data-disk no lugar de --os. Isso ignora a etapa que instala os drivers e os pacotes de ambiente de convidados para tornar a imagem inicializável no Compute Engine.

gcloud compute images import [IMAGE_NAME] \
    --source-file [SOURCE_FILE] \
    --data-disk

em que:

  • [IMAGE_NAME] é o nome da imagem de destino;
  • [SOURCE_FILE] é um arquivo de disco virtual. Pode ser um arquivo local ou armazenado no Cloud Storage. Se o disco virtual for um arquivo local, você pode usar um caminho absoluto ou relativo. Se o arquivo de disco virtual já estiver armazenado no Cloud Storage, ele precisa existir em um intervalo de armazenamento no projeto usado para o processo de importação, e você precisa especificar o caminho completo do arquivo no formato gs://[BUCKET_NAME]/[OBJECT_NAME].

Comando de amostra

O exemplo a seguir importa um disco virtual chamado your_disk.vmdk e armazenado em gs://your_gcs_bucket.

gcloud compute images import my-imported-image \
    --source-file gs://your_gcs_bucket/your_disk.vmdk \
    --data-disk

Como tornar uma imagem inicializável

Se você tiver uma imagem personalizada do Compute Engine que tenha um sistema operacional inicializável, mas não tenha os drivers ou pacotes de ambiente convidados do Compute Engine, poderá usar a ferramenta de importação de imagens para torná-la inicializável no Compute Engine.

Use a sinalização --source-image para especificar uma imagem personalizada e torná-la inicializável, em vez de usar a sinalização --source-file que especifica um novo disco para importar.

gcloud compute images import [IMAGE_NAME] \
        --source-image [SOURCE_IMAGE] \
        --os [OS]

em que

  • [IMAGE_NAME] é o nome da imagem de destino;
  • [SOURCE_IMAGE] é o nome da imagem de origem;
  • [OS] é o sistema operacional de SOURCE_IMAGE. Ele precisa ser um destes: centos-6, centos-7, debian-8, debian-9, rhel-6, rhel-7, ubuntu-1404, ubuntu-1604, windows-2008r2, windows-2012, windows-2012r2, windows-2016 ou uma imagem com licença BYOL.

Compatibilidade com "Traga sua própria licença" (BYOL)

  • Se você usa suas próprias assinaturas de software do RHEL, é possível tornar a imagem com licença BYOL inicializável. Basta especificar um dos valores a seguir no campo [OS]:

    • rhel-6-byol
    • rhel-7-byol
  • Se você usa uma imagem BYOL do Windows, é possível tornar a imagem com licença BYOL inicializável. Basta especificar um dos valores a seguir no campo [OS]:

    • windows-2008r2-byol
    • windows-2012-byol
    • windows-2012r2-byol
    • windows-2016-byol
    • windows-7-byol
    • windows-10-byol

Comando de amostra

O exemplo a seguir transforma uma imagem do Compute Engine chamada my-image em uma imagem inicializável, com o nome my-bootable-image. Neste exemplo, o sistema operacional instalado na imagem é o Ubuntu 16.04.

gcloud compute images import my-bootable-image --source-image=my-image --os=ubuntu-1604

Limpeza de recursos

Há cobranças para os arquivos armazenados no Cloud Storage e as imagens no Compute Engine. A ferramenta de importação envia o arquivo de disco virtual para o Cloud Storage e cria uma imagem personalizada do Compute Engine.

Depois de verificar se a imagem foi importada e inicializada corretamente como uma instância do Compute Engine, você pode excluir o arquivo de disco virtual do Cloud Storage. A ferramenta imprime o URI do arquivo à medida que o carrega no Cloud Storage. Esse URI tem o seguinte formato: gs://<bucket name>/tmpimage/<image name>.

Se você importou uma imagem usando a sinalização --data-disk e depois executou a ferramenta import uma segunda vez com a sinalização --source-image para tornar essa imagem inicializável, a primeira imagem ainda existirá. Se ela não for necessária, avalie a possibilidade de excluir essa imagem. Se você especificar o mesmo nome de imagem para [IMAGE_NAME] e [SOURCE_IMAGE], a imagem será substituída automaticamente e nenhuma outra limpeza será necessária.

Próximas etapas

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine