Importe discos virtuais


Se tiver discos virtuais no seu ambiente no local com software e configurações de que precisa (por vezes, denominados discos dourados ou imagens douradas), pode poupar tempo importando esses discos virtuais para o Compute Engine e usando a imagem resultante para criar máquinas virtuais. A ferramenta de importação Migrar para máquinas virtuais suporta a maioria dos formatos de ficheiros de disco virtual, incluindo VMDK e VHD.

Antes de começar

Formatos suportados

Pode importar ficheiros de imagem de disco virtual nos seguintes formatos através da ferramenta Migrate to Virtual Machines:

  • Um único disco de máquina virtual (VMDK) – Opção recomendada. Os ficheiros VMDK são importados mais rapidamente
  • QEMU copy-on-write (QCOW)
  • QEMU copy-on-write 2 (QCOW2)
  • Formato de disco melhorado QEMU (QED)
  • VPC
  • Imagem de disco virtual (VDI)
  • Disco rígido virtual v2 (VHDX)
  • Disco rígido virtual (VHD)

Além destes formatos, também é suportado um ficheiro não processado comprimido como .tar.gz. Verifique se o ficheiro comprimido contém um único ficheiro denominado disk.raw.

Limitações

Pode importar imagens de disco com arquitetura Arm para as seguintes regiões:

Descrição da região Nome da região
Jurong West, Singapura asia-southeast1
Tóquio, Japão asia-northeast1
Sydney, Austrália australia-southeast1
Estocolmo, Suécia europe-north2
St. Ghislain, Bélgica europe-west1
Londres, Inglaterra europe-west2
Frankfurt, Alemanha europe-west3
Eemshaven, Países Baixos europe-west4
Paris, França europe-west9
Damman, Arábia Saudita me-central2
Telavive, Israel me-west1
Montréal, Québec northamerica-northeast1
Queretaro, México northamerica-south1
São Paulo, Brasil southamerica-east1
Iowa, América do Norte us-central1
Carolina do Sul, América do Norte us-east1
Virgínia, América do Norte us-east4
Columbus, América do Norte us-east5
Dallas, América do Norte us-south1
Oregon, América do Norte us-west1
Califórnia, América do Norte us-west2
Utah, América do Norte us-west3
Nevada, América do Norte us-west4

Processo de importação de imagens

Para importar uma imagem de disco virtual para uma imagem do Compute Engine através do Migrate to Virtual Machines, siga estes passos:

  1. Prepare um ficheiro de imagem de disco virtual para importação
  2. Escolha um projeto de destino
  3. Importe uma imagem de disco virtual para o Compute Engine

Prepare um ficheiro de disco virtual para importação

Para importar uma imagem de disco virtual para uma imagem do Compute Engine, primeiro tem de preparar o ficheiro de imagem de disco virtual para importação. As secções seguintes abordam estas tarefas detalhadamente.

Adicione o ficheiro de imagem do disco virtual ao Cloud Storage

Para importar uma imagem de disco virtual para uma imagem do Compute Engine, tem de adicionar primeiro o ficheiro de imagem de disco virtual ao Cloud Storage. Para mais informações, consulte o artigo Carregue objetos a partir de um sistema de ficheiros. Para um melhor desempenho, recomendamos que carregue o ficheiro de imagem do disco virtual para um contentor na mesma região da nuvem em que quer criar a imagem.

Conceda as autorizações necessárias

Para importar uma imagem de disco virtual para uma imagem do Compute Engine, conceda autorizações conforme descrito na tabela seguinte.

Função Autorizações necessárias Descrição
Storage Object Viewer roles/storage.objectViewer Conceda à conta de serviço predefinida do Migrate to Virtual Machines no projeto anfitrião (service-HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com) a função roles/storage.objectViewer no contentor onde reside a imagem que quer importar. Esta autorização permite que o serviço Migrate to Virtual Machines aceda à imagem de origem.
Administrador da VM Migration roles/vmmigration.admin No projeto anfitrião, conceda à conta de utilizador que quer usar para importar a imagem de origem a função roles/vmmigration.admin.
Conta de serviço da VM Migration roles/vmmigration.serviceAgent Conceda à conta de serviço predefinida do Migrate to Virtual Machines no projeto anfitrião (service-HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com) a função roles/vmmigration.serviceAgent no projeto de destino. Por exemplo, se service-1234567890@gcp-sa-vmmigration.iam.gserviceaccount.com for a conta de serviço de migração para máquinas virtuais no projeto anfitrião, tem de conceder a esta conta de serviço a função roles/vmmigration.serviceAgent para poder criar a imagem no projeto de destino.

Escolha um projeto de destino

Para alojar a imagem do Compute Engine, tem de criar ou escolher 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 o artigo Adicionar um projeto de destino.

Importe uma imagem de disco virtual para o Compute Engine

Pode importar uma imagem de disco virtual para o Compute Engine através da Google Cloud consola, da Google Cloud CLI ou dos comandos da API REST.

Consola

Para importar uma imagem de disco virtual para o Compute Engine através da Google Cloud consola, siga estes passos.

  1. Abra a página Migrar para máquinas virtuais na Google Cloud consola.
    Aceda à página Migre para máquinas virtuais
  2. Selecione o separador Importações de imagens.
  3. Clique em Criar imagem.
  4. Defina as caraterísticas da imagem. A tabela seguinte apresenta os parâmetros que pode definir para a sua imagem.
    Título da secção Nome do campo Descrição
    Geral Nome O nome da imagem que quer criar. Para mais informações sobre as regras de nomenclatura, consulte o artigo Convenção de nomenclatura.
    ID de importação de imagem Um ID que representa o recurso de importação de imagens. Quando importa uma imagem para o Compute Engine, o Migrate to Virtual Machines cria primeiro um recurso de importação de imagens. O recurso de importação de imagens representa o processo de importação de imagens. Pode usar o ID de importação de imagens para obter o link para a imagem que foi importada como parte do processo de importação de imagens.
    Ficheiro do Cloud Storage de origem O ficheiro a partir do qual quer importar a imagem. Clique em Procurar para ver a lista de contentores no seu projeto atual e selecione o ficheiro a partir do qual quer importar a imagem.
    Se quiser importar uma imagem de um contentor de outro projeto, tem de introduzir o caminho no formato bucket/folder/file. Para obter o caminho de um objeto num contentor, consulte Ver metadados de objetos. Quando copiar o caminho, certifique-se de que não copia o prefixo gs://.
    Tenha em atenção que só pode importar imagens de ficheiros .vmdk e .tar.gz.
    Região A região na qual quer criar a imagem. Para ver uma lista das regiões suportadas, consulte o artigo Regiões e zonas.
    Projeto de destino O projeto de destino no qual quer criar a imagem. Se ainda não adicionou um projeto de destino, faça-o seguindo as instruções indicadas em Adicione um projeto de destino.
    Família (Opcional) Selecione a família de imagens. O Compute Engine fornece famílias de imagens para ajudar a garantir que os seus sistemas de automatização podem fazer referência às imagens mais recentes. Enquanto administrador, pode agrupar um conjunto de imagens como uma família de imagens. Para mais informações, consulte o artigo Conjuntos de imagens públicas.
    Descrição (Opcional) Adicione uma descrição da imagem.
    Ignore a adaptação do SO Para ignorar a adaptação do SO, clique no botão Ignorar adaptação do SO para o ativar.
    Para funcionar corretamente no Google Cloud, as VMs criadas a partir de imagens importadas requerem alterações à respetiva configuração. Estas alterações são denominadas adaptações do SO. A migração para máquinas virtuais faz adaptações do SO automaticamente no processo de importação de imagens. Para mais informações, consulte o artigo Adapte as instâncias de VM para serem executadas no Google Cloud.
    Generalize Para generalizar a imagem, clique no botão Generalizar para o ativar. Quando cria uma instância a partir de uma imagem, o Windows adiciona algumas informações únicas à instância. A generalização é um processo que remove estas informações para que possa criar várias instâncias a partir da mesma imagem.
    Licenças Tipo de licença O Compute Engine suporta licenças de pagamento conforme a utilização (PAYG) e licenças próprias (BYOL) para as VMs implementadas. O tipo de licença predefinido para uma VM migrada é atribuído pelo Migrate to Virtual Machines com base no sistema operativo migrado, conforme descrito em Sistemas operativos suportados.
    Se o seu sistema operativo suportar vários tipos de licenças, pode substituir o tipo de licença predefinido para especificar explicitamente um tipo de licença de pagamento conforme o uso ou BYOL.
    Licenças adicionais Licenças adicionais Pode adicionar até 10 licenças adicionais à instância da VM criada a partir da imagem importada através de um formato de URL válido. Por exemplo, pode adicionar licenças adicionais através do seguinte formato de URL:
    https://www.googleapis.com/compute/beta/projects/windows-sql-cloud/global/licenses/sql-server-2012-enterprise
    Etiquetas Para organizar o seu projeto, adicione etiquetas como pares de chave-valor aos seus recursos. Consulte o artigo Organize recursos com etiquetas.
    Encriptação Google-managed encryption key Escolha esta opção para usar Google-owned and Google-managed encryption keys para encriptar os seus dados durante o processo de importação. Para mais informações, consulte o artigo que explica como o Google Ads encripta os dados quando estão em repouso.
    Chave de encriptação gerida pelo cliente Escolha esta opção para usar chaves de encriptação geridas pelo cliente (CMEK) para encriptar os seus dados durante o processo de importação e os dados da imagem criada pelo processo de importação. Se tiver requisitos regulamentares ou de conformidade específicos relacionados com as chaves que protegem os seus dados, pode usar as CMEK para encriptar e desencriptar os seus dados. Estas chaves de encriptação são criadas, geridas e detidas por si. Para mais informações, consulte o artigo Proteja os recursos com chaves do Cloud KMS.
    Quando adiciona uma CMEK, tem de conceder autorizações conforme descrito na tabela seguinte.
    Função Autorizações necessárias Descrição
    Conta de serviço de migração de VMs na nuvem roles/vmmigration.serviceAgen Conceda esta autorização à conta de serviço do Compute Engine para encriptar os dados da imagem criada durante o processo de importação.
    Agente do serviço do Compute Engine roles/compute.serviceAgent Conceda esta autorização ao agente do serviço Migrate to Virtual Machines para encriptar os dados durante o processo de importação.
  5. Selecione Criar.

gcloud

Para importar uma imagem de disco virtual para o Compute Engine através da Google Cloud CLI, use o seguinte pedido.

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

Substitua o seguinte:

  • IMAGE_NAME: o nome da imagem que quer criar. Para mais informações sobre as regras de nomenclatura, consulte o artigo Convenção de nomenclatura.
  • SOURCE_FILE: o ficheiro do qual quer importar a imagem. Introduza o caminho no formato gs://bucket/folder/file. Para obter o caminho de um objeto num contentor, consulte o artigo Ver metadados de objetos. Tenha em atenção que só pode importar imagens de ficheiros .vmdk e .tar.gz.
  • REGION_ID: a região na qual quer que o processo de importação de imagens seja executado. A imagem é criada na região múltipla mais próxima. Se quiser que a imagem seja criada numa região, certifique-se de que singleRegionStorage está definido como verdadeiro. Para ver uma lista das regiões suportadas, consulte o artigo Regiões e zonas.
  • HOST_PROJECT_ID: o nome do projeto anfitrião a partir do qual quer migrar a imagem do disco virtual.
  • TARGET_PROJECT: o projeto de destino no qual quer criar a imagem. Se ainda não adicionou um projeto de destino, faça-o seguindo as instruções fornecidas em Adicione um projeto de destino.

Para mais informações, consulte gcloud compute migration image-imports.

REST

Para importar uma imagem de disco virtual para o Compute Engine através da API REST, siga os passos abaixo.

  1. Crie um recurso de importação de imagens através do seguinte pedido.

    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 o seguinte:

    • HOST_PROJECT_ID: o nome do projeto anfitrião a partir do qual quer migrar a imagem do disco virtual.
    • REGION_ID: a região na qual quer que o processo de importação de imagens seja executado. A imagem é criada na região múltipla mais próxima. Se quiser que a imagem seja criada numa região, certifique-se de que singleRegionStorage está definido como verdadeiro. Para ver uma lista das regiões suportadas, consulte o artigo Regiões e zonas.
    • SOURCE_FILE: o ficheiro do qual quer importar a imagem. Introduza o caminho no formato gs://bucket/folder/file. Para obter o caminho de um objeto num contentor, consulte o artigo Ver metadados de objetos. Tenha em atenção que só pode importar imagens de ficheiros .vmdk e .tar.gz.
    • IMAGE_NAME: o nome da imagem que quer criar. Para mais informações sobre as regras de nomenclatura, consulte o artigo Convenção de nomenclatura.
    • TARGET_PROJECT: o projeto de destino no qual quer criar a imagem. Se ainda não adicionou um projeto de destino, faça-o seguindo as instruções fornecidas em Adicione um projeto de destino.

    Neste exemplo, IMPORT_NAME é um ID que representa o recurso de importação de imagens. Quando importa uma imagem para o Compute Engine, o Migrate to Virtual Machines cria primeiro um recurso de importação de imagens. O recurso de importação de imagens representa o processo de importação de imagens. Pode usar o elemento IMPORT_NAME para obter o link para a imagem que foi importada como parte do processo de importação de imagens.

    Consulte a tabela seguinte para ver a lista completa dos campos suportados para o pedido de criação de importação de imagens.

    Nome do campo Descrição
    cloudStorageUri string
    O caminho do ficheiro a partir do qual quer importar a imagem. Introduza o caminho no formato gs://bucket/folder/file. Para obter o caminho de um objeto num contentor, consulte o artigo Ver metadados de objetos.
    Tenha em atenção que só pode importar imagens de ficheiros .vmdk e .tar.gz.
    diskImageTargetDefaults.targetProject string
    O caminho do TargetProject. O projeto de destino no qual 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 anfitrião a partir do qual quer migrar a imagem do disco virtual.
    • TARGET_PROJECT: o projeto de destino no qual 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 a garantir que os seus sistemas de automatização podem fazer referência às imagens mais recentes. Como administrador, pode agrupar um conjunto de imagens como uma família de imagens. Para mais informações, consulte o artigo Conjuntos de imagens públicas. Para mais informações, consulte o artigo Conjuntos de imagens públicas.
    diskImageTargetDefaults.labels map (key: string, value: string)
    Para organizar o seu projeto, adicione etiquetas como pares de chave-valor aos seus recursos. Consulte os recursos de etiquetagem.
    diskImageTargetDefaults.additionalLicenses string[]
    Pode adicionar até 10 licenças adicionais à instância da VM criada a partir da imagem importada através de um formato de URL válido. Por exemplo, pode adicionar licenças adicionais através do seguinte formato de URL:
    https://www.googleapis.com/compute/beta/projects/windows-sql-cloud/global/licenses/sql-server-2012-enterprise
    diskImageTargetDefaults.singleRegionStorage boolean
    Defina esta flag como verdadeira se quiser que a imagem storageLocations seja uma região. Se definir esta flag como false, é selecionada a região com vários países mais próxima.
    diskImageTargetDefaults.dataDiskImageImport boolean
    Defina esta flag como verdadeira se quiser ignorar a adaptação do SO.
    Para funcionar corretamente no Google Cloud, as VMs criadas a partir de imagens importadas requerem alterações à respetiva configuração. Estas alterações são denominadas adaptações do SO. A migração para máquinas virtuais faz adaptações do SO automaticamente no processo de importação de imagens. Para mais informações, consulte o artigo Adapte as instâncias de VM para serem executadas no Google Cloud.
    diskImageTargetDefaults.osAdaptationParameters.licenseType string
    O tipo de licença que quer usar para a sua imagem. O Compute Engine suporta licenças de pagamento conforme a utilização (PAYG) e licenças próprias (BYOL) para as VMs implementadas. O tipo de licença predefinido para uma VM migrada é atribuído pelo Migrate to Virtual Machines com base no sistema operativo migrado, conforme descrito em Sistemas operativos suportados.
    Se o seu sistema operativo suportar vários tipos de licenças, pode substituir o tipo de licença predefinido para especificar explicitamente um tipo de licença de PAYG ou BYOL.
    diskImageTargetDefaults.osAdaptationParameters.generalize boolean
    Defina esta flag como verdadeira se quiser generalizar a imagem.
    Quando cria uma instância a partir de uma imagem, o Windows adiciona algumas informações únicas à instância. A generalização é um processo que remove estas informações para que possa criar várias instâncias a partir da mesma imagem.
    diskImageTargetDefaults.encryption string
    A Google-owned and Google-managed encryption key que quer usar para encriptar os seus dados durante o processo de importação. Para mais informações, consulte o artigo que explica como o Google Ads encripta os dados quando estão em repouso.
    encryption string
    Escolha esta opção para usar chaves de encriptação geridas pelo cliente (CMEK) para encriptar os seus dados durante o processo de importação e os dados da imagem criada durante o processo de importação. Se tiver requisitos de conformidade ou regulamentares específicos relacionados com as chaves que protegem os seus dados, pode usar as CMEK para encriptar e desencriptar os seus dados. Estas chaves de encriptação são criadas, geridas e detidas por si. Para mais informações, consulte o artigo Proteja os recursos com chaves do Cloud KMS.
    Quando adiciona uma CMEK, tem de conceder autorizações conforme descrito na tabela seguinte.
    Função Autorizações necessárias Descrição
    Conta de serviço de migração de VMs na nuvem roles/vmmigration.serviceAgent Conceda esta autorização à conta de serviço do Compute Engine para encriptar os dados da imagem criada durante o processo de importação.
    Agente do serviço do Compute Engine roles/compute.serviceAgent Conceda esta autorização ao agente do serviço Migrate to Virtual Machines para encriptar os dados durante o processo de importação.

    Deverá ver uma resposta semelhante à seguinte resposta de exemplo.

    {
      "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 a tarefa de importação de imagens está concluída sondando a operação através do seguinte comando.

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

    Substitua o seguinte:

    • HOST_PROJECT_ID: o nome do projeto anfitrião a partir do qual está a migrar a imagem do disco virtual.
    • REGION_ID: a região na qual quer que o processo de importação de imagens seja executado. A imagem é criada na região múltipla mais próxima. Se quiser que a imagem seja criada numa região, certifique-se de que singleRegionStorage está definido como verdadeiro. Para ver uma lista das regiões suportadas, consulte o artigo Regiões e zonas.
    • OPERATION_ID: o ID da operação da tarefa de migração.

    Deverá ver uma resposta de conclusão da operação semelhante à seguinte resposta de exemplo.

      {
        "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. Monitorize a tarefa de importação de imagens para ver se foi concluída através do seguinte comando.

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

    Substitua o seguinte:

    • HOST_PROJECT_ID: o nome do projeto anfitrião a partir do qual está a migrar a imagem do disco virtual.
    • REGION_ID: a região na qual quer que o processo de importação de imagens seja executado. A imagem é criada na região múltipla mais próxima. Se quiser que a imagem seja criada numa região, certifique-se de que singleRegionStorage está definido como verdadeiro. Para ver uma lista das regiões suportadas, consulte o artigo Regiões e zonas.
    • IMPORT_NAME: o ID que representa o recurso de importação de imagens. Quando importa uma imagem para o Compute Engine, o Migrate to Virtual Machines cria primeiro um recurso de importação de imagens. O recurso de importação de imagens representa o processo de importação de imagens. Pode usar o ícone IMPORT_NAME para obter o link para a imagem que foi importada como parte do processo de importação de imagens.

    Deve ver uma resposta de conclusão da tarefa semelhante à seguinte resposta de exemplo.

    {
      "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"
    }