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, Ubuntu 16,04 LTS
  • sistemas operacionais Windows Server:
    • Windows Server 2008 R2, Windows Server 2012 R2, Windows Server 2012 R2 Core, Windows Server 2016, Windows Server 2016 Core

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 que executa o RHEL, o recurso "Traga sua própria licença" (BYOL, na sigla em inglês) será aceito somente se o pacote python-boto estiver instalado no disco virtual antes da importação.
  • A capacidade de trazer sua própria licença não é compatível com discos virtuais que têm os sistemas operacionais Windows Server.

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 sua máquina virtual, faça o download e a execução da nossa ferramenta de pré-verificação em sua máquina virtual. Ela verifica se não há incompatibilidades.

Como importar um disco virtual inicializável

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 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 de 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 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 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];
  • [OS] é o sistema operacional do SOURCE_FILE. Precisa ser um destes: centos-6, centos-7, debian-8, debian-9, rhel-6, rhel-7, rhel-6-byol, rhel-7-byol, ubuntu-1404, ubuntu-1604, windows-2008r2, windows-2012r2, windows-2016.

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.

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

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

Como importar um disco virtual não inicializável

Se o disco virtual não tiver um sistema operacional inicializável instalado, você ainda poderá importá-lo usando a sinalização --data-disk no lugar da sinalização --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].

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. Precisa ser um destes: centos-6, centos-7, debian-8, debian-9, rhel-6, rhel-7, rhel-6-byol, rhel-7-byol, ubuntu-1404, ubuntu-1604, windows-2008r2, windows-2012r2, windows-2016.

No exemplo a seguir, transformamos 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

Suporte para "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 de SO premium, que têm cobranças adicionais.

Se você prefere usar suas próprias assinaturas de software para o RHEL, pode importar os discos como imagens licenciadas para BYOL, especificando um dos seguintes valores de BYOL para o campo [OS].

  • rhel-6-byol
  • rhel-7-byol

Atualmente, o BYOL não é compatível com discos virtuais do Windows Server.

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