Importar discos virtuais


Se você tiver discos virtuais em seu ambiente local com o software e as configurações necessárias (às vezes chamados de discos dourados ou imagens douradas ), poderá economizar tempo importando esses discos virtuais para o Compute Engine e usando a imagem resultante para criar máquinas virtuais . A ferramenta de importação Migrate to Virtual Machines oferece suporte à maioria dos formatos de arquivo de disco virtual, incluindo VMDK e VHD.

Antes de começar

Formatos suportados

Você pode importar arquivos de imagem de disco virtual nos seguintes formatos usando Migrate to Virtual Machines:

  • Um único disco de máquina virtual (VMDK) – Opção recomendada, os arquivos VMDK são importados mais rapidamente
  • Cópia na gravação do QEMU (QCOW)
  • Cópia na gravação 2 do QEMU (QCOW2)
  • Formato de disco aprimorado QEMU (QED)
  • VPC
  • Imagem de disco virtual (VDI)
  • Disco rígido virtual v2 (VHDX)
  • Disco rígido virtual (VHD)

Além desses formatos, um arquivo raw compactado como .tar.gz também é compatível. Certifique-se de que o arquivo compactado contenha um único arquivo denominado disk.raw .

Limitações

Você pode importar imagens de disco com arquitetura Arm para as seguintes regiões:

Descrição da região Nome da região
Jurong Oeste, Singapura asia-southeast1
Tóquio, Japão asia-northeast1
St. Ghislain, Bélgica europe-west1
Londres, Inglaterra europe-west2
Francoforte, Alemanha europe-west3
Eemshaven, Holanda europe-west4
Paris, França europe-west9
Damman, Arábia Saudita me-central2
Iowa, América do Norte us-central1
Carolina do Sul, América do Norte us-east1
Virgínia, América do Norte us-east4
Oregon, América do Norte us-west1
Nevada, América do Norte us-west4

Processo de importação de imagem

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

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

Prepare um arquivo de disco virtual para importação

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

Adicione o arquivo de imagem do disco virtual ao Cloud Storage

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

Conceda 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
Visualizador de objetos de armazenamento roles/storage.objectViewer Conceda à conta de serviço padrão do Migrate to Virtual Machines no projeto host ( service- HOST_PROJECT_NUMBER @gcp-sa-vmmigration.iam.gserviceaccount.com ) a função roles/storage.objectViewer no bucket onde reside a imagem que você deseja importar. Essa permissão permite que o Migrate to Virtual Machines acesse a imagem de origem.
Administrador de migração de VM roles/vmmigration.admin No projeto host, conceda à conta do usuário que você deseja usar para importar a imagem de origem a função roles/vmmigration.admin .
Conta de serviço de migração de VM roles/vmmigration.serviceAgent Conceda à conta de serviço padrão do Migrate to Virtual Machines no projeto host ( 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 Migrate to Virtual Machines no projeto host, você deverá conceder a essa conta de serviço a função roles/vmmigration.serviceAgent para poder criar a imagem no projeto de destino.

Escolha um projeto alvo

Para hospedar a imagem do Compute Engine, você precisa criar ou escolher um projeto de destino. Um projeto de destino define o projeto de destino para uma imagem do Compute Engine. Para obter mais informações sobre como criar ou escolher um projeto de destino, consulte Adicionando um projeto de destino .

Importe 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 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 Migrar para máquinas virtuais no console do Google Cloud.
    Acesse a página Migrar para máquinas virtuais
  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 você pode definir para sua imagem.
    Título da seção Nome do campo Descrição
    Em geral Nome O nome da imagem que você deseja criar. Para obter mais informações sobre as regras de nomenclatura, consulte 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 primeiro cria um recurso de importação de imagem. O recurso de importação de imagens representa o processo de importação de imagens. Você pode usar o ID de importação de imagem para obter 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ê deseja importar a imagem. Clique em Procurar para visualizar a lista de buckets em seu projeto atual e selecione o arquivo do qual deseja importar a imagem.
    Se quiser importar uma imagem de um bucket de outro projeto, você deverá inserir o caminho no formato bucket/folder/file . Para obter o caminho de um objeto dentro de um bucket, consulte Visualizar metadados de objetos . Ao copiar o caminho, certifique-se de não copiar o prefixo gs:// .
    Observe que você só pode importar imagens de arquivos .vmdk e .tar.gz .
    Região A região na qual você deseja criar a imagem. Para obter uma lista de regiões suportadas, consulte Regiões e zonas .
    Projeto alvo O projeto de destino no qual você deseja criar a imagem. Se você ainda não adicionou um projeto de destino, faça-o usando as instruções fornecidas em Adicionar um projeto de destino .
    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, você pode agrupar um conjunto de imagens como uma família de imagens. Para obter mais informações, consulte Famílias de imagens públicas .
    Descrição (Opcional) Adicione uma descrição para a imagem.
    Pular adaptação do sistema operacional Para pular a adaptação do sistema operacional, clique no botão Ignorar adaptação do sistema operacional para a posição ligada.
    Para funcionar corretamente em Google Cloud, as VMs criadas a partir de imagens importadas exigem que sejam feitas alterações em sua configuração. Essas mudanças são chamadas de adaptações do sistema operacional . O Migrate to Virtual Machines realiza adaptações do SO automaticamente no processo de importação de imagens. Para obter mais informações, consulte Adaptar instâncias de VM para execução Google Cloud .
    Generalizar Para generalizar a imagem, clique no botão Generalizar para a posição ativada. Quando você cria uma instância a partir de uma imagem, o Windows adiciona algumas informações exclusivas à instância. Generalizar é um processo que remove essas informações para que você possa criar várias instâncias da mesma imagem.
    Licenças Tipo de licença O Compute Engine oferece suporte a licenças pré-pagas (PAYG) e traga suas próprias licenças (BYOL) para suas VMs implantadas. O tipo de licença padrão para uma VM migrada é atribuído pelo Migrate to Virtual Machines com base no sistema operacional migrado, conforme descrito em Sistemas operacionais suportados .
    Se o seu sistema operacional suportar vários tipos de licença, você poderá substituir o tipo de licença padrão para especificar explicitamente um tipo de licença PAYG ou BYOL.
    Licenças adicionais Licenças adicionais Você pode 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, você pode adicionar licenças adicionais usando o seguinte formato de URL:
    https://www.googleapis.com/compute/beta/projects/windows-sql-cloud/global/licenses/sql-server-2012-enterprise
    Etiquetas Para organizar seu projeto, adicione rótulos como pares de valores-chave aos seus recursos. Consulte Organizar recursos usando rótulos .
    CriptografiaGoogle-managed encryption key Escolha esta opção para usar Google-owned and Google-managed encryption keys para criptografar seus dados durante o processo de importação. Para obter mais informações, consulte criptografa dados quando estão em repouso .
    Chave de criptografia gerenciada pelo cliente 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 criada pelo processo de importação. Se você tiver requisitos regulamentares ou de conformidade específicos relacionados às chaves que protegem seus dados, poderá usar CMEK para criptografar e descriptografar seus dados. Essas chaves de criptografia são criadas, gerenciadas e de sua propriedade. Para obter mais informações, consulte Proteger recursos usando chaves do Cloud KMS .
    Ao adicionar uma CMEK, você deve conceder permissões conforme descrito na tabela a seguir.
    Papel Permissões necessárias Descrição
    Conta de serviço de migração de VM na nuvem roles/vmmigration.serviceAgen Conceda essa permissão à conta de serviço do Compute Engine para criptografar 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 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 migration vms 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 você deseja criar. Para obter mais informações sobre as regras de nomenclatura, consulte Convenção de nomenclatura .
  • SOURCE_FILE : o arquivo do qual você deseja importar a imagem. Insira o caminho no formato gs://bucket/folder/file . Para obter o caminho de um objeto dentro de um bucket, consulte Visualizar metadados de objetos . Observe que você só pode importar imagens de arquivos .vmdk e .tar.gz .
  • REGION_ID : a região na qual você deseja que o processo de importação de imagem seja executado. A imagem é criada na multirregião mais próxima. Se quiser que a imagem seja criada em uma região, certifique-se de que singleRegionStorage esteja definido como verdadeiro. Para obter uma lista de regiões suportadas, consulte Regiões e zonas .
  • HOST_PROJECT_ID : o nome do projeto host do qual você deseja migrar a imagem do disco virtual.
  • TARGET_PROJECT : o projeto de destino no qual você deseja criar a imagem. Se você ainda não adicionou um projeto de destino, faça-o usando as instruções fornecidas em Adicionar um projeto de destino .

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

DESCANSAR

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

    • HOST_PROJECT_ID : o nome do projeto host do qual você deseja migrar a imagem do disco virtual.
    • REGION_ID : a região na qual você deseja que o processo de importação de imagem seja executado. A imagem é criada na multirregião mais próxima. Se quiser que a imagem seja criada em uma região, certifique-se de que singleRegionStorage esteja definido como verdadeiro. Para obter uma lista de regiões suportadas, consulte Regiões e zonas .
    • SOURCE_FILE : o arquivo do qual você deseja importar a imagem. Insira o caminho no formato gs://bucket/folder/file . Para obter o caminho de um objeto dentro de um bucket, consulte Visualizar metadados de objetos . Observe que você só pode importar imagens de arquivos .vmdk e .tar.gz .
    • IMAGE_NAME : o nome da imagem que você deseja criar. Para obter mais informações sobre as regras de nomenclatura, consulte Convenção de nomenclatura .
    • TARGET_PROJECT : o projeto de destino no qual você deseja criar a imagem. Se você ainda não adicionou um projeto de destino, faça-o usando 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 imagens representa o processo de importação de imagens. Você pode usar IMPORT_NAME para obter o link para a imagem que foi importada como parte do processo de importação de imagem.

    Consulte a tabela a seguir para obter a lista completa de campos suportados de campos de solicitação de criação de importação de imagem.

    Nome do campo Descrição
    cloudStorageUri corda
    O caminho do arquivo do qual você deseja importar a imagem. Insira o caminho no formato gs://bucket/folder/file . Para obter o caminho de um objeto dentro de um bucket, consulte Visualizar metadados de objetos .
    Observe que você só pode importar imagens de arquivos .vmdk e .tar.gz .
    diskImageTargetDefaults.targetProject corda
    O caminho do TargetProject . O projeto de destino no qual você deseja criar a imagem. Para obter mais informações, consulte 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 do qual você deseja migrar a imagem do disco virtual.
    • TARGET_PROJECT : o projeto de destino no qual você deseja criar a imagem.
    diskImageTargetDefaults.imageName corda
    O nome da imagem a ser criada. Para obter mais informações sobre as regras de nomenclatura, consulte convenção de nomenclatura de recursos .
    diskImageTargetDefaults.description corda
    (Opcional) Uma descrição da imagem.
    diskImageTargetDefaults.familyName corda
    (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, você pode agrupar um conjunto de imagens como uma família de imagens. Para obter mais informações, consulte Famílias de imagens públicas . Para obter mais informações, consulte Famílias de imagens públicas .
    diskImageTargetDefaults.labels mapa (chave: string, valor: string)
    Para organizar seu projeto, adicione rótulos como pares de valores-chave aos seus recursos. Consulte Rotulagem de recursos .
    diskImageTargetDefaults.additionalLicenses corda[]
    Você pode 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, você pode adicionar licenças adicionais 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 esse sinalizador como verdadeiro se desejar que a imagem storageLocations seja uma região. Se você definir esse sinalizador como falso, a multirregião mais próxima será selecionada.
    diskImageTargetDefaults.dataDiskImageImport booleano
    Defina este sinalizador como verdadeiro se quiser pular a adaptação do sistema operacional.
    Para funcionar corretamente em Google Cloud, as VMs criadas a partir de imagens importadas exigem que sejam feitas alterações em sua configuração. Essas mudanças são chamadas de adaptações do sistema operacional . O Migrate to Virtual Machines realiza adaptações do SO automaticamente no processo de importação de imagens. Para obter mais informações, consulte Adaptar instâncias de VM para execução Google Cloud .
    diskImageTargetDefaults.osAdaptationParameters.licenseType corda
    O tipo de licença que você deseja usar para sua imagem. O Compute Engine oferece suporte a licenças pré-pagas (PAYG) e traga suas próprias licenças (BYOL) para suas VMs implantadas. O tipo de licença padrão para uma VM migrada é atribuído pelo Migrate to Virtual Machines com base no sistema operacional migrado, conforme descrito em Sistemas operacionais suportados .
    Se o seu sistema operacional suportar vários tipos de licença, você poderá substituir o tipo de licença padrão para especificar explicitamente um tipo de licença PAYG ou BYOL.
    diskImageTargetDefaults.osAdaptationParameters.generalize booleano
    Defina este sinalizador como verdadeiro se desejar generalizar a imagem.
    Quando você cria uma instância a partir de uma imagem, o Windows adiciona algumas informações exclusivas à instância. Generalizar é um processo que remove essas informações para que você possa criar várias instâncias da mesma imagem.
    diskImageTargetDefaults.encryption corda
    O Google-owned and Google-managed encryption key que você deseja usar para criptografar seus dados durante o processo de importação. Para obter mais informações, consulte criptografa dados quando estão em repouso .
    encryption corda
    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 criada durante o processo de importação. Se você tiver requisitos regulamentares ou de conformidade específicos relacionados às chaves que protegem seus dados, poderá usar CMEK para criptografar e descriptografar seus dados. Essas chaves de criptografia são criadas, gerenciadas e de sua propriedade. Para obter mais informações, consulte Proteger recursos usando chaves do Cloud KMS .
    Ao adicionar uma CMEK, você deve conceder permissões conforme descrito na tabela a seguir.
    Papel Permissões necessárias Descrição
    Conta de serviço de migração de VM na nuvem funções/vmmigration.serviceAgent Conceda essa permissão à conta de serviço do Compute Engine para criptografar dados da imagem criada durante o processo de importação.
    Agente de serviço do Compute Engine funções/compute.serviceAgent Conceda essa permissão ao agente de serviço Migrate to Virtual Machines para criptografar os dados durante o processo de importação.

    Você deverá ver 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 trabalho de importação de imagem foi concluído pesquisando a operação usando o comando a seguir.

    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 host do qual você está migrando a imagem do disco virtual.
    • REGION_ID : a região na qual você deseja que o processo de importação de imagem seja executado. A imagem é criada na multirregião mais próxima. Se quiser que a imagem seja criada em uma região, certifique-se de que singleRegionStorage esteja definido como verdadeiro. Para obter uma lista de regiões suportadas, consulte Regiões e zonas .
    • OPERATION_ID : o ID da operação do trabalho de migração.

    Você deverá 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 a conclusão do trabalho de importação de imagem 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 o seguinte:

    • HOST_PROJECT_ID : o nome do projeto host do qual você está migrando a imagem do disco virtual.
    • REGION_ID : a região na qual você deseja que o processo de importação de imagem seja executado. A imagem é criada na multirregião mais próxima. Se quiser que a imagem seja criada em uma região, certifique-se de que singleRegionStorage esteja definido como verdadeiro. Para obter uma lista de regiões suportadas, 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 imagens representa o processo de importação de imagens. Você pode usar IMPORT_NAME para obter o link para a imagem que foi importada como parte do processo de importação de imagem.

    Você deverá ver uma resposta de conclusão do trabalho 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"
    }