Si vous possédez des disques virtuels dans votre environnement sur site avec les logiciels et les configurations nécessaires (parfois appelés disques de référence ou images de référence), vous pouvez gagner du temps en important ces disques virtuels dans Compute Engine et en utilisant l'image obtenue pour créer des machines virtuelles. L'outil d'importation Migrate to Virtual Machines est compatible avec la plupart des formats de fichiers de disque virtuel, y compris VMDK et VHD.
Avant de commencer
- Activez l'API VM Migration sur votre projet. Pour en savoir plus sur l'activation de l'API VM Migration, consultez la page Activer les services Migrate to Virtual Machines.
- Assurez-vous que le système d'exploitation présent sur le disque est compatible avec Migrate to Virtual Machines. Pour plus d'informations, consultez la section Systèmes d'exploitation compatibles.
- Assurez-vous que les fichiers d'image de disque virtuel que vous souhaitez importer sont compatibles.
Formats compatibles
Vous pouvez importer des fichiers d'image de disque virtuel aux formats suivants à l'aide de Migrate to Virtual Machines :
- Disque de machine virtuelle (VMDK) : option recommandée, les fichiers VMDK sont importés plus rapidement
- Copie sur écriture QEMU (QCOW)
- Copie sur écriture QEMU 2 (QCOW2)
- Format de disque amélioré QEMU (QED)
- VPC
- Image de disque virtuel (VDI)
- Disque dur virtuel v2 (VHDX)
- Disque dur virtuel (VHD)
En plus de ces formats, un fichier RAW compressé au format .tar.gz est également accepté. Assurez-vous que le fichier compressé contient un seul fichier nommé disk.raw.
Processus d'importation d'image
Pour importer une image de disque virtuel dans une image Compute Engine à l'aide de Migrate to Virtual Machines, suivez les étapes décrites ci-dessous :
- Préparer un fichier d'image de disque virtuel pour l'importation
- Choisir un projet cible
- Importer une image de disque virtuel dans Compute Engine
Préparer un fichier de disque virtuel pour l'importation
Pour importer une image de disque virtuel dans une image Compute Engine, vous devez d'abord préparer le fichier d'image de disque virtuel pour l'importation. Les sections suivantes décrivent ces tâches en détail.
Ajouter le fichier d'image de disque virtuel dans Cloud Storage
Pour importer une image de disque virtuel dans une image Compute Engine, vous devez d'abord ajouter le fichier d'image de disque virtuel dans Cloud Storage. Pour en savoir plus, consultez la page Importer des objets à partir d'un système de fichiers. Pour des performances optimales, nous vous recommandons d'importer le fichier d'image de disque virtuel dans un bucket situé dans la même région cloud que celle dans laquelle vous souhaitez créer l'image.
Accorder les autorisations requises
Pour importer une image de disque virtuel dans une image Compute Engine, accordez des autorisations comme décrit dans le tableau suivant.
Rôle | Autorisations requises | Description |
---|---|---|
Lecteur des objets Storage | roles/storage.objectViewer |
Attribuez le rôle roles/vmmigration.serviceAgent au compte de service Migrate to Virtual Machines par défaut du projet hôte (service-HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com ) sur le bucket où se trouve l'image que vous souhaitez importer. Cette autorisation permet à Migrate to Virtual Machines d'accéder à l'image source. |
Administrateur VM Migration | roles/vmmigration.admin |
Dans le projet hôte, accordez le rôle roles/vmmigration.admin au compte utilisateur que vous souhaitez utiliser pour importer l'image source. |
Compte de service VM Migration | roles/vmmigration.serviceAgent |
Attribuez le rôle roles/vmmigration.serviceAgent au compte de service Migrate to Virtual Machines par défaut du projet hôte (service-HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com ) sur le projet cible. Par exemple, si service-1234567890@gcp-sa-vmmigration.iam.gserviceaccount.com est le compte de service Migrate to Virtual Machines dans le projet hôte, vous devez accorder à ce compte de service le rôle roles/vmmigration.serviceAgent pour pouvoir créer l'image dans le projet cible. |
Choisir un projet cible
Pour héberger l'image Compute Engine, vous devez créer ou choisir un projet cible. Un projet cible définit le projet de destination pour une image Compute Engine. Pour en savoir plus sur la création ou le choix d'un projet cible, consultez la section Ajouter un projet cible.
Importer une image de disque virtuel dans Compute Engine
Vous pouvez importer une image de disque virtuel dans Compute Engine à l'aide de la console Google Cloud, de Google Cloud CLI ou des commandes de l'API REST.
Console
Pour importer une image de disque virtuel dans Compute Engine à l'aide de la console Google Cloud, procédez comme suit :
- Ouvrez la page "Migrate to Virtual Machines" dans la console Google Cloud.
Accéder à la page Migrate to Virtual Machines - Sélectionnez l'onglet Importations d'images.
- Cliquez sur Create image (Créer une image).
- Définissez les caractéristiques de l'image. Le tableau suivant répertorie les paramètres que vous pouvez définir pour votre image.
Titre de section Nom du champ Description Général Nom Nom de l'image que vous souhaitez créer. Pour en savoir plus sur les règles d'attribution de noms, consultez la section Convention d'attribution de noms. ID d'importation d'image ID représentant la ressource d'importation d'image. Lorsque vous importez une image dans Compute Engine, Migrate to Virtual Machines crée d'abord une ressource d'importation d'image. La ressource d'importation d'image représente le processus d'importation de l'image. Vous pouvez utiliser l'ID d'importation d'image pour obtenir le lien vers l'image qui a été importée lors du processus d'importation d'image. Fichier Cloud Storage source Fichier à partir duquel vous souhaitez importer l'image. Cliquez sur Parcourir pour afficher la liste des buckets dans votre projet actuel, puis sélectionnez le fichier à partir duquel vous souhaitez importer l'image.
Si vous souhaitez importer une image à partir d'un bucket d'un autre projet, vous devez saisir le chemin d'accès au format bucket/dossier/fichier. Pour obtenir le chemin d'accès d'un objet dans un bucket, consultez la page Afficher les métadonnées d'objets. Lorsque vous copiez le chemin d'accès, assurez-vous de ne pas copier le préfixegs://
.
Notez que vous ne pouvez importer des images qu'à partir des fichiers.vmdk
et.tar.gz
.Région Région dans laquelle vous souhaitez créer l'image. Pour obtenir la liste des régions compatibles, consultez la page Régions et zones. Projet cible Projet cible dans lequel vous souhaitez créer l'image Si vous n'avez pas encore ajouté de projet cible, suivez les instructions fournies dans la section Ajouter un projet cible. Famille (Facultatif) Sélectionnez la famille d'images. Compute Engine fournit des familles d'images pour vous aider à vérifier que vos systèmes d'automatisation peuvent référencer les dernières images. En tant qu'administrateur, vous pouvez regrouper un ensemble d'images en tant que famille d'images. Pour en savoir plus, consultez la section Familles d'images publiques. Description (Facultatif) Ajoutez une description pour l'image. Ignorer l'adaptation de l'OS Pour ignorer l'adaptation de l'OS, cliquez sur le bouton Ignorer l'adaptation de l'OS pour activer cette option.
Pour qu'elles fonctionnent correctement sur Google Cloud, il est nécessaire de modifier la configuration des VM créées à partir d'images importées. Ces modifications sont désignées par le terme adaptations d'OS. Migrate to Virtual Machines effectue automatiquement des adaptations d'OS dans le processus d'importation d'image. Pour en savoir plus, consultez la section Adapter les instances de VM pour qu'elles s'exécutent sur Google Cloud.Généraliser Pour généraliser l'image, cliquez sur le bouton Généraliser pour activer cette option. Lorsque vous créez une instance à partir d'une image, Windows ajoute des informations uniques à l'instance. Le processus de généralisation supprime ces informations afin que vous puissiez créer plusieurs instances à partir de la même image. Licences Type de licence Compute Engine est compatible avec les licences de type paiement à l'usage (PAYG) et l'utilisation de vos propres licences (Bring Your BYOL) pour vos VM déployées. Le type de licence par défaut d'une VM migrée est attribué par Migrate to Virtual Machines à partir du système d'exploitation migré, comme décrit dans la section Systèmes d'exploitation compatibles.
Si votre système d'exploitation accepte plusieurs types de licences, vous pouvez remplacer le type de licence par défaut pour spécifier explicitement un type de licence PAYG ou BYOL.
Licences supplémentaires Licences supplémentaires Vous pouvez ajouter jusqu'à 10 licences supplémentaires à l'instance de VM créée à partir de l'image importée en utilisant un format d'URL valide. Par exemple, vous pouvez ajouter des licences supplémentaires en utilisant le format d'URL suivant :
https://www.googleapis.com/compute/beta/projects/windows-sql-cloud/global/licenses/sql-server-2012-enterprise
Étiquettes Pour organiser votre projet, ajoutez des étiquettes sous forme de paires clé/valeur à vos ressources. Consultez la section Organiser des ressources à l'aide d'étiquettes. Chiffrement Clé de chiffrement gérée par Google Choisissez cette option pour utiliser la clé de chiffrement gérée par Google afin de chiffrer vos données lors du processus d'importation. Pour en savoir plus, consultez la section Chiffrer les données au repos. Clé de chiffrement gérée par le client Choisissez cette option pour utiliser des clés de chiffrement gérées par le client (CMEK) afin de chiffrer vos données lors du processus d'importation, ainsi que les données de l'image créée par le processus d'importation. Si vous avez des exigences réglementaires ou de conformité spécifiques concernant les clés qui protègent vos données, vous pouvez utiliser des CMEK pour chiffrer et déchiffrer vos données. Ces clés de chiffrement sont créées, gérées et détenues par vous. Pour en savoir plus, consultez la page Protéger des ressources à l'aide de clés Cloud KMS.
Lorsque vous ajoutez une clé CMEK, vous devez accorder des autorisations comme décrit dans le tableau suivant.Rôle Autorisations requises Description Compte de service Cloud VM Migration roles/vmmigration.serviceAgen
Accordez cette autorisation au compte de service Compute Engine pour chiffrer les données de l'image créée lors du processus d'importation. Agent de service Compute Engine roles/compute.serviceAgent
Accordez cette autorisation à l'agent de service Migrate to Virtual Machines pour chiffrer les données lors du processus d'importation. - Sélectionnez Créer.
gcloud
Pour importer une image de disque virtuel dans Compute Engine à l'aide de Google Cloud CLI, utilisez la requête suivante.
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
Remplacez les éléments suivants :
IMAGE_NAME
: nom de l'image que vous souhaitez créer. Pour en savoir plus sur les règles d'attribution de noms, consultez la section Convention d'attribution de noms.SOURCE_FILE
: fichier à partir duquel vous souhaitez importer l'image. Saisissez le chemin au formatgs://bucket/folder/file
. Pour obtenir le chemin d'accès d'un objet dans un bucket, consultez la page Afficher les métadonnées d'objets. Notez que vous ne pouvez importer des images qu'à partir des fichiers.vmdk
et.tar.gz
.REGION_ID
: région dans laquelle vous souhaitez exécuter le processus d'importation d'image. L'image est créée dans l'emplacement multirégional le plus proche. Si vous souhaitez que l'image soit créée dans un emplacement régional, assurez-vous quesingleRegionStorage
est défini sur "true". Pour obtenir la liste des régions compatibles, consultez la page Régions et zones.HOST_PROJECT_ID
: nom du projet hôte à partir duquel vous souhaitez migrer l'image de disque virtuel.TARGET_PROJECT
: projet cible dans lequel vous souhaitez créer l'image. Si vous n'avez pas encore ajouté de projet cible, suivez les instructions fournies dans la section Ajouter un projet cible.
Pour en savoir plus, consultez la page gcloud migration vms image-imports
.
REST
Pour importer une image de disque virtuel dans Compute Engine à l'aide de l'API REST, procédez comme suit :
Créez une ressource d'importation d'image à l'aide de la requête suivante.
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", ... } }
Remplacez les éléments suivants :
HOST_PROJECT_ID
: nom du projet hôte à partir duquel vous souhaitez migrer l'image de disque virtuel.REGION_ID
: région dans laquelle vous souhaitez exécuter le processus d'importation d'image. L'image est créée dans l'emplacement multirégional le plus proche. Si vous souhaitez que l'image soit créée dans un emplacement régional, assurez-vous quesingleRegionStorage
est défini sur "true". Pour obtenir la liste des régions compatibles, consultez la page Régions et zones.SOURCE_FILE
: fichier à partir duquel vous souhaitez importer l'image. Saisissez le chemin d'accès au format gs://bucket/dossier/fichier. Pour obtenir le chemin d'accès d'un objet dans un bucket, consultez la page Afficher les métadonnées d'objets. Notez que vous ne pouvez importer des images qu'à partir des fichiers.vmdk
et.tar.gz
.IMAGE_NAME
: nom de l'image que vous souhaitez créer. Pour en savoir plus sur les règles d'attribution de noms, consultez la section Convention d'attribution de noms.TARGET_PROJECT
: projet cible dans lequel vous souhaitez créer l'image. Si vous n'avez pas encore ajouté de projet cible, suivez les instructions fournies dans la section Ajouter un projet cible.
Dans cet exemple,
IMPORT_NAME
est un ID qui représente la ressource d'importation d'image. Lorsque vous importez une image dans Compute Engine, Migrate to Virtual Machines crée d'abord une ressource d'importation d'image. La ressource d'importation d'image représente le processus d'importation de l'image. Vous pouvez utiliserIMPORT_NAME
pour obtenir le lien vers l'image qui a été importée lors du processus d'importation d'image.Consultez le tableau suivant pour obtenir la liste complète des champs de requête de création d'importation d'images compatibles.
Nom du champ Description cloudStorageUri
chaîne
Chemin d'accès du fichier à partir duquel vous souhaitez importer l'image. Saisissez le chemin d'accès au format gs://bucket/dossier/fichier. Pour obtenir le chemin d'accès d'un objet dans un bucket, consultez la page Afficher les métadonnées d'objets.
Notez que vous ne pouvez importer des images qu'à partir des fichiers.vmdk
et.tar.gz
.diskImageTargetDefaults.targetProject
chaîne
Chemin d'accès deTargetProject
. Projet cible dans lequel vous souhaitez créer l'image Pour en savoir plus, consultez la documentation de référence de l'API concernant le projet cible. Par exemple,
projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT
Dans l'exemple, remplacez les éléments suivants :HOST_PROJECT_ID
: nom du projet hôte à partir duquel vous souhaitez migrer l'image de disque virtuel.TARGET_PROJECT
: projet cible dans lequel vous souhaitez créer l'image.
diskImageTargetDefaults.imageName
chaîne
Nom de l'image à créer. Pour en savoir plus sur les règles d'attribution de noms, consultez la section Convention d'attribution de noms aux ressources.diskImageTargetDefaults.description
chaîne
(Facultatif) Description de l'image.diskImageTargetDefaults.familyName
chaîne
(Facultatif) Sélectionnez la famille d'images. Compute Engine fournit des familles d'images pour vous aider à vérifier que vos systèmes d'automatisation peuvent référencer les dernières images. En tant qu'administrateur, vous pouvez regrouper un ensemble d'images en tant que famille d'images. Pour en savoir plus, consultez la section Familles d'images publiques. Pour en savoir plus, consultez la section Familles d'images publiques.diskImageTargetDefaults.labels
mappage (clé : chaîne, valeur : chaîne)
Pour organiser votre projet, ajoutez des étiquettes sous forme de paires clé/valeur à vos ressources. Consultez la section Attribuer des étiquettes à des ressources.diskImageTargetDefaults.additionalLicenses
chaîne[]
Vous pouvez ajouter jusqu'à 10 licences supplémentaires à l'instance de VM créée à partir de l'image importée en utilisant un format d'URL valide. Par exemple, vous pouvez ajouter des licences supplémentaires en utilisant le format d'URL suivant :
https://www.googleapis.com/compute/beta/projects/windows-sql-cloud/global/licenses/sql-server-2012-enterprise
diskImageTargetDefaults.singleRegionStorage
booléen
Définissez cette option sur "true" si vous souhaitez que lestorageLocations
de l'image soit une région. Si vous définissez cette option sur "false", l'emplacement multirégional le plus proche est sélectionné.diskImageTargetDefaults.dataDiskImageImport
booléen
Définissez cette option sur "true" si vous souhaitez ignorer l'adaptation de l'OS.
Pour qu'elles fonctionnent correctement sur Google Cloud, il est nécessaire de modifier la configuration des VM créées à partir d'images importées. Ces modifications sont désignées par le terme adaptations d'OS. Migrate to Virtual Machines effectue automatiquement des adaptations d'OS dans le processus d'importation d'image. Pour en savoir plus, consultez la section Adapter les instances de VM pour qu'elles s'exécutent sur Google Cloud.diskImageTargetDefaults.osAdaptationParameters.licenseType
chaîne
Type de licence que vous souhaitez utiliser pour votre image. Compute Engine est compatible avec les licences de type paiement à l'usage (Pay As You Go) et l'utilisation de vos propres licences (Bring Your Own License) pour vos VM déployées. Le type de licence par défaut d'une VM migrée est attribué par Migrate to Virtual Machines en fonction du système d'exploitation migré, comme décrit dans la section Systèmes d'exploitation compatibles.
Si votre système d'exploitation accepte plusieurs types de licences, vous pouvez remplacer le type de licence par défaut pour spécifier explicitement un type de licence PAYG (Pay As You Go) ou BYOL (Bring Your Own License).
diskImageTargetDefaults.osAdaptationParameters.generalize
booléen
Définissez cette option sur "true" si vous souhaitez généraliser l'image.
Lorsque vous créez une instance à partir d'une image, Windows ajoute des informations uniques à l'instance. Le processus de généralisation supprime ces informations afin que vous puissiez créer plusieurs instances à partir de la même image.diskImageTargetDefaults.encryption
chaîne
Clé de chiffrement gérée par Google que vous souhaitez utiliser pour chiffrer vos données lors du processus d'importation. Pour en savoir plus, consultez la section Chiffrer les données au repos.encryption
chaîne
Choisissez cette option pour utiliser des clés de chiffrement gérées par le client (CMEK) afin de chiffrer vos données lors du processus d'importation, ainsi que les données de l'image créée lors du processus d'importation. Si vous avez des exigences réglementaires ou de conformité spécifiques concernant les clés qui protègent vos données, vous pouvez utiliser des CMEK pour chiffrer et déchiffrer vos données. Ces clés de chiffrement sont créées, gérées et détenues par vous. Pour en savoir plus, consultez la page Protéger des ressources à l'aide de clés Cloud KMS.
Lorsque vous ajoutez une clé CMEK, vous devez accorder des autorisations comme décrit dans le tableau suivant.Rôle Autorisations requises Description Compte de service Cloud VM Migration roles/vmmigration.serviceAgent Accordez cette autorisation au compte de service Compute Engine pour chiffrer les données de l'image créée lors du processus d'importation. Agent de service Compute Engine roles/compute.serviceAgent Accordez cette autorisation à l'agent de service Migrate to Virtual Machines pour chiffrer les données lors du processus d'importation. Un résultat semblable à l'exemple suivant doit s'afficher.
{ "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" } }
Pour vérifier si le job d'importation d'image est terminé, interrogez l'opération à l'aide de la commande suivante.
GET https://vmmigration.googleapis.com/v1/projects/HOST_PROJECT_ID/locations/REGION_ID/operations/OPERATION_ID
Remplacez les éléments suivants :
HOST_PROJECT_ID
: nom du projet hôte à partir duquel vous migrez l'image de disque virtuel.REGION_ID
: région dans laquelle vous souhaitez exécuter le processus d'importation d'image. L'image est créée dans l'emplacement multirégional le plus proche. Si vous souhaitez que l'image soit créée dans un emplacement régional, assurez-vous quesingleRegionStorage
est défini sur "true". Pour obtenir la liste des régions compatibles, consultez la page Régions et zones.OPERATION_ID
: ID d'opération du job de migration.
Une réponse d'achèvement d'opération semblable à l'exemple suivant doit s'afficher.
{ "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" } }
Surveillez l'achèvement du job d'importation d'image à l'aide de la commande suivante.
GET https://vmmigration.googleapis.com/v1/projects/HOST_PROJECT_ID/locations/REGION_ID/imageImports/IMPORT_NAME/imageImportJobs/image-import-job
Remplacez les éléments suivants :
HOST_PROJECT_ID
: nom du projet hôte à partir duquel vous migrez l'image de disque virtuel.REGION_ID
: région dans laquelle vous souhaitez exécuter le processus d'importation d'image. L'image est créée dans l'emplacement multirégional le plus proche. Si vous souhaitez que l'image soit créée dans un emplacement régional, assurez-vous quesingleRegionStorage
est défini sur "true". Pour obtenir la liste des régions compatibles, consultez la page Régions et zones.IMPORT_NAME
: ID représentant la ressource d'importation d'image. Lorsque vous importez une image dans Compute Engine, Migrate to Virtual Machines crée d'abord une ressource d'importation d'image. La ressource d'importation d'image représente le processus d'importation de l'image. Vous pouvez utiliserIMPORT_NAME
pour obtenir le lien vers l'image qui a été importée lors du processus d'importation d'image.
Une réponse d'achèvement du job semblable à l'exemple suivant doit s'afficher.
{ "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" }