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
- Habilite a API de migração de VM em seu projeto. Para obter mais informações sobre como ativar a API de migração de VM, consulte Habilitar serviços de migração para máquinas virtuais .
- Certifique-se de que o sistema operacional no disco seja suportado pelo Migrate to Virtual Machines. Para obter mais informações, consulte Sistemas operacionais suportados .
- Certifique-se de que os arquivos de imagem de disco virtual que você deseja importar sejam suportados .
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:
- Prepare um arquivo de imagem de disco virtual para importação
- Escolha um projeto alvo
- 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.
- Abra a página Migrar para máquinas virtuais no console do Google Cloud.
Acesse a página Migrar para máquinas virtuais - Selecione a guia Importações de imagens .
- Clique em Criar imagem .
- 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 prefixogs://
.
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 . Criptografia Google-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. - 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 formatogs://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 quesingleRegionStorage
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.
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 quesingleRegionStorage
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 usarIMPORT_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 doTargetProject
. 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 imagemstorageLocations
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" } }
-
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 quesingleRegionStorage
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" } }
-
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 quesingleRegionStorage
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 usarIMPORT_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" }
-