Importer des images de disque virtuel

Migrate to Virtual Machines vous permet d'importer une image de disque virtuel dans une image Compute Engine. Si vous disposez d'images de disque virtuel dans votre environnement sur site avec les logiciels et les configurations dont vous avez besoin, vous pouvez gagner du temps en important ces images de disque virtuel dans Compute Engine et en utilisant l'image obtenue pour créer des instances de machines virtuelles ou des disques persistants.

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 aux formats suivants.
    • Disque de machine virtuelle (VMDK).
    • Raw, compressé en .tar.gz. Le fichier tar doit contenir 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 :

  1. Préparer un fichier d'image de disque virtuel pour l'importation
  2. Choisir un projet cible
  3. 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 Accordez cette autorisation au compte de service du projet hôte pour pouvoir importer une image de disque virtuel dans une image Compute Engine.
Administrateur VM Migration roles/vmmigration.admin Accordez cette autorisation au projet hôte pour pouvoir créer de nouvelles sources Migrate to Virtual Machines et effectuer toutes les autres opérations de migration.
Compte de service VM Migration roles/vmmigration.serviceAgent Accordez cette autorisation au projet cible pour pouvoir créer des instances de machines virtuelles (VM), des disques et des images migrés 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 :

  1. Ouvrez la page "Migrate to Virtual Machines" dans la console Google Cloud.

    Accéder à la page Migrate to Virtual Machines

  2. Sélectionnez l'onglet Importations d'images.

  3. Cliquez sur Create image (Créer une image).

  4. 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éfixe gs://.
    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 (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 pour 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).
    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.
  5. 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 alpha migration vms image-imports create IMAGE_NAME \
--source-file=SOURCE_FILE \
--target-project=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 que singleRegionStorage 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.

Pour en savoir plus, consultez la section concernant gcloud alpha 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 :

  1. 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 que singleRegionStorage 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 utiliser IMPORT_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 de TargetProject. 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 le storageLocations 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 pour 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"
      }
    }
    
  2. 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 que singleRegionStorage 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"
        }
      }
    
  3. 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 que singleRegionStorage 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 utiliser IMPORT_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"
    }