Importar imagens de disco virtual

O Migrate to Virtual Machines permite importar uma imagem de disco virtual para uma imagem do Compute Engine. Se você tem imagens de disco virtual no ambiente local com o software e as configurações necessárias, pode economizar tempo importando essas imagens de disco virtual para o Compute Engine e usando a imagem resultante para criar instâncias de máquina virtual ou discos permanentes.

Antes de começar

  • Ative a API VM Migration no projeto. Para mais informações sobre como ativar a API VM Migration, consulte Ativar os serviços Migrate to Virtual Machines.
  • Verifique se o sistema operacional no disco é compatível com o Migrate to Virtual Machines. Para obter mais informações, consulte Sistemas operacionais compatíveis.
  • Verifique se os arquivos de imagem do disco virtual que você quer importar estão nos seguintes formatos.
    • Disco de máquina virtual (VMDK).
    • bruto, compactado como um .tar.gz. Ele precisa conter um único arquivo denominado disk.raw.

Processo de importação de imagens

Para importar uma imagem de disco virtual para uma imagem do Compute Engine usando o Migrate to Virtual Machines, siga as etapas a seguir:

  1. Preparar um arquivo de imagem de disco virtual para importação
  2. Escolher um projeto de destino
  3. Importar uma imagem de disco virtual para o Compute Engine

Preparar um arquivo de disco virtual para importação

Para importar uma imagem de disco virtual para uma imagem do Compute Engine, primeiro prepare o arquivo de imagem do disco virtual para importação. As seções a seguir discutem essas tarefas em detalhes.

Adicionar o arquivo de imagem do disco virtual ao Cloud Storage

Para importar uma imagem de disco virtual para uma imagem do Compute Engine, primeiro é preciso adicionar o arquivo de imagem do disco virtual ao Cloud Storage. Para mais informações, consulte Fazer upload de objetos de um sistema de arquivos. Para um melhor desempenho, recomendamos que você faça upload do arquivo de imagem do disco virtual para um bucket na mesma região da nuvem em que quer criar a imagem.

Conceder as permissões necessárias

Para importar uma imagem de disco virtual para uma imagem do Compute Engine, conceda permissões, conforme descrito na tabela a seguir.

Papel Permissões necessárias Descrição
Leitor de objetos do Storage roles/storage.objectViewer Conceda essa permissão à conta de serviço do projeto host para importar uma imagem de disco virtual para uma imagem do Compute Engine.
Administrador do VM Migration roles/vmmigration.admin Conceda essa permissão ao projeto host para que ele possa criar novas origens do Migrate to Virtual Machines e realizar todas as outras operações de migração.
Conta de serviço da VM Migration roles/vmmigration.serviceAgent Conceda essa permissão ao projeto de destino para que ele possa criar instâncias de máquina virtual (VMs), discos e imagens migradas no projeto de destino.

Escolher um projeto de destino

Para hospedar a imagem do Compute Engine, crie ou escolha um projeto de destino. Um projeto de destino define o projeto de destino de uma imagem do Compute Engine. Para mais informações sobre como criar ou escolher um projeto de destino, consulte Como adicionar um projeto de destino.

Importar uma imagem de disco virtual para o Compute Engine

É possível importar uma imagem de disco virtual para o Compute Engine usando o console do Google Cloud, a CLI do Google Cloud ou os comandos da API REST.

Console

Para importar uma imagem de disco virtual para o Compute Engine usando o console do Google Cloud, siga as etapas a seguir.

  1. Abra a página Migrate to Virtual Machines no Console do Google Cloud:

    Acessar a página "Migrate to Virtual Machines"

  2. Selecione a guia Importações de imagens.

  3. Clique em Criar imagem.

  4. Defina as características da imagem. A tabela a seguir lista os parâmetros que podem ser definidos para a imagem.

    Título da seção Nome do campo Descrição
    Geral Nome O nome da imagem que você quer criar. Para mais informações sobre as regras de nomenclatura, consulte a Convenção de nomenclatura.
    ID de importação de imagem Um ID que representa o recurso de importação de imagem. Quando você importa uma imagem para o Compute Engine, o Migrate to Virtual Machines cria primeiro um recurso de importação de imagem. O recurso de importação de imagem representa o processo de importação de imagem. É possível usar o ID de importação de imagem para acessar o link para a imagem que foi importada como parte do processo de importação de imagem.
    Arquivo de origem do Cloud Storage O arquivo do qual você quer importar a imagem. Clique em Procurar para visualizar a lista de buckets no projeto atual e selecione o arquivo do qual você quer importar a imagem.
    Se quiser importar uma imagem de um bucket de outro projeto, insira o caminho no formato bucket/pasta/arquivo. Para ver o caminho de um objeto dentro de um bucket, consulte Visualizar metadados do objeto. Ao copiar o caminho, não copie o prefixo gs://.
    Só é possível importar imagens de arquivos .vmdk e .tar.gz.
    Região A região em que você quer criar a imagem. Para uma lista de regiões, consulte Regiões e zonas.
    Projeto de destino o projeto de destino em que você quer criar a imagem; Se você ainda não adicionou um projeto de destino, use as instruções fornecidas em Adicionar um projeto de destino para fazer isso.
    Família (Opcional) Selecione a família de imagens. O Compute Engine fornece famílias de imagens para ajudar você a garantir que seus sistemas de automação possam fazer referência às imagens mais recentes. Como administrador, é possível agrupar um conjunto de imagens como uma família de imagens. Para mais informações, consulte Famílias de imagens públicas.
    Descrição (Opcional) Adicione uma descrição para a imagem.
    Pular adaptação do SO Para pular a adaptação do SO, clique em Pular adaptação do SO para a posição de ativação.
    Para funcionar corretamente no Google Cloud, as VMs criadas a partir de imagens importadas exigem alterações na configuração. Essas mudanças são chamadas de adaptações do SO. O Migrate to Virtual Machines executa automaticamente adaptações do SO no processo de importação da imagem. Para mais informações, consulte Adaptar instâncias de VM para execução no Google Cloud.
    Generalizar Para generalizar a imagem, clique em Generalizar para alternar para a posição ativada. Quando você cria uma instância a partir de uma imagem, o Windows adiciona a ela algumas informações exclusivas. Generalizar é um processo que remove essas informações para criar várias instâncias a partir da mesma imagem.
    Licenças Tipo de licença O Compute Engine é compatível com licenças de pagamento por utilização (PayG, na sigla em inglês) e licenças adquiridas pelo usuário (BYOL) para as VMs implantadas. O tipo de licença padrão de uma VM migrada é atribuído pelo Migrate to Virtual Machines com base no sistema operacional migrado, conforme descrito em Sistemas operacionais compatíveis.
    Se seu sistema operacional for compatível com vários tipos de licença, você poderá modificar o tipo de licença padrão para especificar explicitamente um tipo de licença PAYG ou BYOL.
    Outras licenças Outras licenças É possível adicionar até 10 licenças extras à instância de VM criada a partir da imagem importada usando um formato de URL válido. Por exemplo, é possível adicionar mais licenças usando o seguinte formato de URL:
    
    https://www.googleapis.com/compute/beta/projects/windows-sql-cloud/global/licenses/sql-server-2012-enterprise
    Rótulos Para organizar o projeto, adicione rótulos como pares de chave-valor aos recursos. Consulte Organizar recursos usando rótulos.
    Criptografia Chave de criptografia gerenciada pelo Google Escolha essa opção para usar a chave de criptografia gerenciada pelo Google para criptografar seus dados durante o processo de importação. Para mais informações, consulte Criptografia de dados quando eles estão em repouso.
    Chave de criptografia gerenciada pelo cliente Escolha essa opção para usar chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para criptografar seus dados durante o processo de importação, bem como os dados da imagem criados pelo processo de importação. Se você tiver requisitos regulamentares ou de compliance específicos relacionados às chaves que protegem seus dados, use a CMEK para criptografar e descriptografar seus dados em repouso. Você pode criar e gerenciar suas chaves. Para mais informações, consulte Proteger recursos usando chaves do Cloud KMS.
    Ao adicionar uma CMEK, você precisa conceder permissões conforme descrito na tabela a seguir.
    Papel Permissões necessárias Descrição
    Conta de serviço do Cloud VM Migration roles/vmmigration.serviceAgen Conceda essa permissão à conta de serviço do Compute Engine para criptografar os dados da imagem criada durante o processo de importação.
    Agente de serviço do Compute Engine roles/compute.serviceAgent Conceda essa permissão ao agente de serviço do Migrate to Virtual Machines para criptografar os dados durante o processo de importação.
  5. Selecione Criar.

gcloud

Para importar uma imagem de disco virtual para o Compute Engine usando a CLI do Google Cloud, use a solicitação a seguir.

gcloud alpha migration vms image-imports create IMAGE_NAME \
--source-file=SOURCE_FILE \
--target-project=projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT

Substitua:

  • HOST_PROJECT_ID: o nome do projeto host de onde você quer migrar a imagem do disco virtual.
  • REGION_ID: a região em que você quer que o processo de importação de imagem seja executado. A imagem é criada na multirregião mais próxima. Se você quiser que a imagem seja criada em uma região, verifique se singleRegionStorage está definido como verdadeiro. Para conferir uma lista de regiões compatíveis, consulte Regiões e zonas.
  • SOURCE_FILE: o arquivo de que você quer importar a imagem. Insira o caminho no formato gs://bucket/folder/file. Para receber o caminho de um objeto dentro de um bucket, consulte Visualizar metadados do objeto. Observe que só é possível importar imagens de arquivos .vmdk e .tar.gz.
  • IMAGE_NAME: o nome da imagem que você quer criar. Para mais informações sobre as regras de nomenclatura, consulte a Convenção de nomenclatura.
  • TARGET_PROJECT: o projeto de destino em que você quer criar a imagem. Se você ainda não adicionou um projeto de destino, use as instruções fornecidas em Adicionar um projeto de destino.

Para mais informações, acesse gcloud alpha migration vms image-imports.

REST

Para importar uma imagem de disco virtual para o Compute Engine usando a API REST, siga as etapas a seguir.

  1. Crie um recurso de importação de imagem usando a solicitação a seguir.

    POST https://vmmigration.googleapis.com/v1/projects/HOST_PROJECT_ID/locations/REGION_ID/imageImports?imageImportId=IMPORT_NAME
    {
    "cloudStorageUri": "SOURCE_FILE",
    "diskImageTargetDefaults": {
    "imageName": "IMAGE_NAME",
    "targetProject": "projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT",
    ...
    }
    }
    

    Substitua:

    • HOST_PROJECT_ID: o nome do projeto host de onde você quer migrar a imagem do disco virtual.
    • REGION_ID: a região em que você quer que o processo de importação de imagem seja executado. A imagem é criada na multirregião mais próxima. Se você quiser que a imagem seja criada em uma região, verifique se singleRegionStorage está definido como verdadeiro. Para conferir uma lista de regiões compatíveis, consulte Regiões e zonas.
    • SOURCE_FILE: o arquivo de que você quer importar a imagem. Insira o caminho no formato gs://bucket/folder/file. Para receber o caminho de um objeto dentro de um bucket, consulte Visualizar metadados do objeto. Observe que só é possível importar imagens de arquivos .vmdk e .tar.gz.
    • IMAGE_NAME: o nome da imagem que você quer criar. Para mais informações sobre as regras de nomenclatura, consulte a Convenção de nomenclatura.
    • TARGET_PROJECT: o projeto de destino em que você quer criar a imagem. Se você ainda não adicionou um projeto de destino, use as instruções fornecidas em Adicionar um projeto de destino.

    Neste exemplo, IMPORT_NAME é um ID que representa o recurso de importação de imagem. Quando você importa uma imagem para o Compute Engine, o Migrate to Virtual Machines cria primeiro um recurso de importação de imagem. O recurso de importação de imagem representa o processo de importação de imagem. É possível usar IMPORT_NAME para acessar o link para a imagem importada como parte do processo de importação.

    Consulte a tabela a seguir para ver a lista completa dos campos compatíveis com a criação de campos de solicitação de importação de imagem.

    Nome do campo Descrição
    cloudStorageUri string
    O caminho do arquivo de onde a imagem será importada. Insira o caminho no formato gs://bucket/folder/file. Para ver o caminho de um objeto dentro de um bucket, consulte Visualizar metadados do objeto.
    Só é possível importar imagens de arquivos .vmdk e .tar.gz.
    diskImageTargetDefaults.targetProject string
    O caminho de TargetProject. O projeto de destino em que você quer criar a imagem. Para mais informações, consulte a referência da API do projeto de destino. Por exemplo:
    projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT
    No exemplo, substitua o seguinte:
    • HOST_PROJECT_ID: o nome do projeto host de onde você quer migrar a imagem do disco virtual.
    • TARGET_PROJECT: o projeto de destino em que você quer criar a imagem.
    diskImageTargetDefaults.imageName string
    O nome da imagem a ser criada. Para mais informações sobre as regras de nomenclatura, consulte a convenção de nomenclatura de recursos.
    diskImageTargetDefaults.description string
    (Opcional) Uma descrição da imagem.
    diskImageTargetDefaults.familyName string
    (Opcional) Selecione a família de imagens. O Compute Engine fornece famílias de imagens para ajudar você a garantir que seus sistemas de automação possam fazer referência às imagens mais recentes. Como administrador, é possível agrupar um conjunto de imagens como uma família de imagens. Para mais informações, consulte Famílias de imagens públicas. Para mais informações, consulte Famílias de imagens públicas.
    diskImageTargetDefaults.labels mapa (chave: string, valor: string)
    Para organizar o projeto, adicione rótulos como pares de chave-valor aos recursos. Consulte Como rotular recursos.
    diskImageTargetDefaults.additionalLicenses string[]
    É possível adicionar até 10 licenças adicionais à instância de VM criada a partir da imagem importada usando um formato de URL válido. Por exemplo, é possível adicionar mais licenças usando o seguinte formato de URL:
    
    https://www.googleapis.com/compute/beta/projects/windows-sql-cloud/global/licenses/sql-server-2012-enterprise
    diskImageTargetDefaults.singleRegionStorage booleano
    Defina essa sinalização como "true" se quiser que a imagem storageLocations seja uma região. Se você definir essa flag como falsa, a multirregião mais próxima será selecionada.
    diskImageTargetDefaults.dataDiskImageImport booleano
    Defina essa flag como "true" se quiser pular a adaptação do SO.
    Para funcionar corretamente no Google Cloud, as VMs criadas a partir de imagens importadas exigem alterações na configuração. Essas mudanças são chamadas de adaptações do SO. O Migrate to Virtual Machines executa automaticamente adaptações do SO no processo de importação da imagem. Para mais informações, consulte Adaptar instâncias de VM para execução no Google Cloud.
    diskImageTargetDefaults.osAdaptationParameters.licenseType string
    O tipo de licença que você quer usar na imagem. O Compute Engine é compatível com licenças de pagamento por utilização (PayG, na sigla em inglês) e licenças adquiridas pelo usuário (BYOL) para as VMs implantadas. O tipo de licença padrão de uma VM migrada é atribuído pelo Migrate to Virtual Machines com base no sistema operacional migrado, conforme descrito em Sistemas operacionais compatíveis.
    Se seu sistema operacional for compatível com vários tipos de licença, você poderá modificar o tipo de licença padrão para especificar explicitamente um tipo de licença PAYG ou BYOL.
    diskImageTargetDefaults.osAdaptationParameters.generalize booleano
    Defina essa flag como "true" se quiser generalizar a imagem.
    Quando você cria uma instância a partir de uma imagem, o Windows adiciona algumas informações exclusivas a ela. Generalizar é um processo que remove essas informações para que você possa criar várias instâncias a partir da mesma imagem.
    diskImageTargetDefaults.encryption string
    A chave de criptografia gerenciada pelo Google que você quer usar para criptografar seus dados durante o processo de importação. Para mais informações, consulte Criptografia de dados quando eles estão em repouso.
    encryption string
    Escolha esta opção para usar chaves de criptografia gerenciadas pelo cliente (CMEK) para criptografar seus dados durante o processo de importação, e os dados da imagem criados durante o processo de importação , Se você tiver requisitos regulamentares ou de compliance específicos relacionados às chaves que protegem seus dados, use a CMEK para criptografar e descriptografar seus dados em repouso. Você pode criar e gerenciar suas chaves. Para mais informações, consulte Proteger recursos usando chaves do Cloud KMS.
    Ao adicionar uma CMEK, você precisa conceder permissões conforme descrito na tabela a seguir.
    Papel Permissões necessárias Descrição
    Conta de serviço do Cloud VM Migration roles/vmmigration.serviceAgent Conceda essa permissão à conta de serviço do Compute Engine para criptografar os dados da imagem criada durante o processo de importação.
    Agente de serviço do Compute Engine roles/compute.serviceAgent Conceda essa permissão ao agente de serviço do Migrate to Virtual Machines para criptografar os dados durante o processo de importação.

    Será mostrada uma resposta semelhante ao exemplo de resposta a seguir.

    {
      "name": "projects/HOST_PROJECT_ID/locations/REGION_ID/operations/OPERATION_ID",
      "metadata": {
        "createTime": "2023-10-31T09:12:26.94928636Z",
        "target": "projects/HOST_PROJECT_ID/locations/us-central1/imageImports/IMPORT_NAME",
        "verb": "create",
        "apiVersion": "v1",
        "@type": "type.googleapis.com/google.cloud.vmmigration.v1.OperationMetadata"
      }
    }
    
  2. Verifique se o job de importação de imagem foi concluído pesquisando a operação com o comando a seguir.

    GET https://vmmigration.googleapis.com/v1/projects/HOST_PROJECT_ID/locations/REGION_ID/operations/OPERATION_ID
    

    Substitua:

    • HOST_PROJECT_ID: o nome do projeto host de onde você está migrando a imagem do disco virtual.
    • REGION_ID: a região em que você quer que o processo de importação de imagem seja executado. A imagem é criada na multirregião mais próxima. Se você quiser que a imagem seja criada em uma região, verifique se singleRegionStorage está definido como verdadeiro. Para conferir uma lista de regiões compatíveis, consulte Regiões e zonas.
    • OPERATION_ID: o ID da operação do job de migração.

    Você verá uma resposta de conclusão da operação semelhante ao exemplo de resposta a seguir.

      {
        "done": true,
        "name": "projects/HOST_PROJECT_ID/locations/REGION_ID/operations/OPERATION_ID",
        "response": {
          "@type": "type.googleapis.com/google.cloud.vmmigration.v1.ImageImport",
          "name": "projects/<HOST_PROJECT_ID>/locations/us-central1/imageImports/IMPORT_NAME",
          "cloudStorageUri": "SOURCE_FILE",
          "createTime": "2023-10-31T09:04:04.413664947Z",
          "diskImageTargetDefaults": {
            "imageName": "IMAGE_NAME",
            "targetProject": "projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT"
          },
          "recentImageImportJobs": [
            {
              "name": "projects/HOST_PROJECT_ID/locations/us-central1/imageImports/IMPORT_NAME/imageImportJobs/image-import-job",
              "diskImageTargetDetails": {
               "imageName": "IMAGE_NAME",
               "targetProject": "projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT"
            },
             "state": "PENDING"
           }
          ]
        },
        "metadata": {
          "createTime": "2023-10-31T09:04:04.416740716Z",
          "endTime": "2023-10-31T09:05:36.79987142Z",
          "target": "projects/HOST_PROJECT_ID/locations/us-central1/imageImports/IMPORT_NAME",
          "verb": "create",
          "apiVersion": "v1",
          "@type": "type.googleapis.com/google.cloud.vmmigration.v1.OperationMetadata"
        }
      }
    
  3. Monitore o job de importação de imagem até a conclusão usando o comando a seguir.

    GET https://vmmigration.googleapis.com/v1/projects/HOST_PROJECT_ID/locations/REGION_ID/imageImports/IMPORT_NAME/imageImportJobs/image-import-job
    

    Substitua:

    • HOST_PROJECT_ID: o nome do projeto host de onde você está migrando a imagem do disco virtual.
    • REGION_ID: a região em que você quer que o processo de importação de imagem seja executado. A imagem é criada na multirregião mais próxima. Se você quiser que a imagem seja criada em uma região, verifique se singleRegionStorage está definido como verdadeiro. Para conferir uma lista de regiões compatíveis, consulte Regiões e zonas.
    • IMPORT_NAME: o ID que representa o recurso de importação de imagem. Quando você importa uma imagem para o Compute Engine, o Migrate to Virtual Machines cria primeiro um recurso de importação de imagem. O recurso de importação de imagem representa o processo de importação de imagem. Use IMPORT_NAME para acessar o link para a imagem que foi importada como parte do processo de importação.

    Você vai ver uma resposta de conclusão de job semelhante ao exemplo de resposta a seguir.

    {
      "createTime":"2023-10-31T09:12:27.053788394Z",
      "createdResources":[
        "https://www.googleapis.com/compute/v1/projects/USER_PROJECT/global/images/IMAGE_NAME"
      ],
      "diskImageTargetDetails": {
        "imageName":"IMAGE_NAME",
        "targetProject":"projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT"
      },
      "endTime":"2023-10-31T09:16:50.224865783Z",
      "name":"projects/HOST_PROJECT_ID/locations/us-central1/imageImports/IMPORT_NAME/imageImportJobs/image-import-job",
      "state":"SUCCEEDED"
    }