Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Si vous disposez de disques virtuels dans votre environnement sur site avec les logiciels et les configurations dont vous avez besoin (parfois appelés disques de référence ou images de référence), vous pouvez gagner du temps en les important dans Distributed Cloud et en utilisant l'image obtenue pour créer des machines virtuelles. L'outil d'importation est compatible avec les formats d'image RAW et QCOW.
Avant de commencer
Avant de continuer, assurez-vous de disposer des éléments suivants :
La gdcloud CLI est téléchargée, installée et configurée. Toutes les commandes CLI pour GDC utilisent la CLI gdcloud ou kubectl et nécessitent un environnement de système d'exploitation (OS).
Accès à la connexion au cluster Kubernetes. Suivez les étapes de CLI dans Se connecter pour vous connecter au cluster Kubernetes.
Demander des autorisations et un accès
Pour effectuer les tâches listées sur cette page, vous devez disposer du rôle Administrateur VirtualMachine du projet. Suivez les étapes pour vérifier que vous disposez du rôle Administrateur VirtualMachine du projet (project-vm-admin) dans l'espace de noms du projet dans lequel réside la VM.
Pour les opérations sur les VM à l'aide de la console GDC ou de la gcloud CLI, demandez à votre administrateur IAM de projet de vous attribuer les rôles listés dans le paragraphe précédent et le rôle Lecteur du projet (project-viewer).
Pour obtenir les autorisations nécessaires à l'importation d'images, demandez à votre administrateur IAM de l'organisation de vous attribuer le rôle Administrateur d'images de machine virtuelle du projet (project-vm-image-admin) pour votre projet.
gdcloud
Utilisez la commande gdcloud compute images import pour créer une image amorçable.
La commande import garantit que le disque dispose des packages requis, y compris l'environnement invité, qui est nécessaire pour configurer les identifiants permettant de se connecter à l'instance à l'aide de Secure Shell (SSH) sur Linux et du protocole RDP (Remote Desktop Protocol) sur Windows.
Sous Linux, la commande installe également les packages pour le protocole NTP (Network Time Protocol) et cloud-init afin que l'instance s'exécute correctement dans GDC.
Vous pouvez importer des fichiers de disque virtuel directement depuis votre poste de travail. L'outil d'importation importe automatiquement le fichier dans un bucket de stockage d'objets de votre projet.
IMAGE_NAME : nom de votre image de destination. Le nom ne doit pas comporter plus de 35 caractères.
SOURCE_FILE : votre fichier de disque virtuel. Ce fichier est un fichier local sur votre poste de travail. Vous pouvez fournir un chemin d'accès absolu ou relatif.
IMAGE_OS : OS du disque à importer.
TIMEOUT : durée maximale d'une importation avant qu'elle n'échoue avec le message "TIMEOUT". Par exemple, si vous spécifiez 2h, le processus échoue au bout de deux heures.
Le délai avant expiration par défaut est de 1h.
L'opération d'importation peut prendre un certain temps en fonction de la taille de votre disque virtuel et de la vitesse de votre connexion réseau. L'opération d'importation peut durer plusieurs dizaines de minutes en fonction de la taille du disque.
API
Avant de lancer le processus d'importation avec l'API, vous devez importer votre disque virtuel dans un bucket de stockage d'objets nommé vm-images-bucket. Pour créer un bucket de stockage d'objets, consultez Créer des buckets de stockage pour les projets.
Pour importer un disque virtuel via l'API, procédez comme suit :
Créez un objet VirtualMachineImageImport sur le serveur de l'API Management pour lancer le processus d'importation d'images :
Nom de l'image à importer. Le nom ne doit pas dépasser 35 caractères.
PROJECT_ID
ID du projet dans lequel vous souhaitez importer l'image.
SOURCE_FILE
Nom du fichier source contenant l'importation du disque virtuel dans le stockage d'objets. Cette valeur correspond à la section du chemin d'accès au stockage d'objets après vm-images-bucket/.
OPERATING_SYSTEM
OS sur le disque à importer.
DISK_SIZE
Taille minimale requise pour créer un disque avec cette image. Nous vous recommandons d'utiliser une marge d'au moins 20 % en plus de la taille du système de fichiers de l'image d'origine. Par exemple, utilisez au moins 12Gi pour un disque virtuel dont la taille du système de fichiers d'origine est de 10 Gio.
Surveillez la progression de l'importation en interrogeant l'état de l'objet VirtualMachineImageImport :
Le processus d'importation consiste à importer votre fichier de disque virtuel dans le stockage d'objets.
Si vous utilisez la CLI gdcloud, l'objet est nettoyé à la fin de la commande, qu'elle ait réussi ou non. Si la commande est interrompue ou si l'importation d'image est effectuée avec l'API, le fichier de disque virtuel peut rester dans le bucket de stockage d'objets nommé vm-images-bucket jusqu'à ce que vous le supprimiez manuellement.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003eYou can import on-premises virtual disks (RAW and QCOW formats) into Distributed Cloud to create reusable images for virtual machines, which helps save time and effort.\u003c/p\u003e\n"],["\u003cp\u003eImporting virtual disks can be accomplished either by using the \u003ccode\u003egdcloud\u003c/code\u003e CLI, which automatically uploads the file and installs necessary packages, or through the Virtual Machine Manager API after manually uploading the disk to an object storage bucket.\u003c/p\u003e\n"],["\u003cp\u003eBefore importing, you need the \u003ccode\u003egdcloud\u003c/code\u003e or \u003ccode\u003ekubectl\u003c/code\u003e CLI, access to the Kubernetes cluster, and the appropriate permissions, such as the Project VirtualMachine Image Admin role.\u003c/p\u003e\n"],["\u003cp\u003eThe import process, whether using the CLI or API, requires you to specify the image name, source file or bucket details, and the operating system of the disk being imported.\u003c/p\u003e\n"],["\u003cp\u003eIf using the API to import virtual disks, you must manually manage and delete the virtual disk files in the \u003ccode\u003evm-images-bucket\u003c/code\u003e, but the CLI automatically cleans up the object storage upon command completion.\u003c/p\u003e\n"]]],[],null,["# Import virtual disks\n\nIf you have virtual disks in your on-premises environment with software and\nconfigurations that you need, occasionally referred to as *golden disks* or\n*golden images*, you can save time by importing those virtual disks into\nDistributed Cloud and using the resulting image to create virtual\nmachines. The import tool supports RAW and QCOW image formats.\n\nBefore you begin\n----------------\n\nBefore continuing, ensure that you have the following:\n\n- The [gdcloud CLI](/distributed-cloud/hosted/docs/latest/gdch/resources/gdcloud-overview) downloaded, installed, and configured. All CLI commands for GDC use the `gdcloud` or `kubectl` CLI, and require an operating system (OS) environment.\n\n\u003c!-- --\u003e\n\n- Login access to the Kubernetes cluster. Follow the CLI steps in\n [Sign in](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/iam/sign-in#cli)\n to sign in to the Kubernetes cluster.\n\n | **Note:** Record the path to the generated file, `/tmp/admin-kubeconfig-with-user-identity.yaml`. Use the path to replace \u003cvar translate=\"no\"\u003eMANAGEMENT_API_SERVER\u003c/var\u003e in these instructions.\n\n### Request permissions and access\n\nTo perform the tasks listed in this page, you must have the Project\nVirtualMachine Admin role. Follow the steps to\n[verify](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/vms/preparation#verify-user-access)\nthat you have the Project VirtualMachine Admin (`project-vm-admin`) role in the namespace\nof the project where the VM resides.\n\nFor VM operations using the GDC console or the gdcloud CLI,\nrequest your Project IAM Admin to assign you the roles listed in the previous\nparagraph and the Project Viewer (`project-viewer`) role.\n\nImport virtual disks\n--------------------\n\nYou can import your virtual disks using either the\ngdcloud CLI or the\n[Virtual Machine Manager API](/distributed-cloud/hosted/docs/latest/gdch/apis/service/virtualmachine/vmm-api-overview).\n\nTo get the permissions you need to import images, ask your Organization IAM\nAdmin to grant you the Project VirtualMachine Image Admin\n(`project-vm-image-admin`) role for your project. \n\n### gdcloud\n\nUse the `gdcloud compute images import` command to create a bootable image.\n\nThe `import` command ensures that the disk has the required packages,\nincluding the guest environment, which is required to configure credentials\nfor connecting to the instance using secure shell (SSH) on Linux and Remote\nDesktop Protocol (RDP) on Windows.\n\nOn Linux, the command also installs packages for network time protocol (NTP)\nand `cloud-init` for the instance to run properly in\nGDC.\n\nYou can import virtual disk files directly from your workstation. The import\ntool automatically uploads the file to an object storage bucket in your\nproject. \n\n gdcloud compute images import \u003cvar translate=\"no\"\u003eIMAGE_NAME\u003c/var\u003e \\\n --source-file=\u003cvar translate=\"no\"\u003eSOURCE_FILE\u003c/var\u003e \\\n --os=\u003cvar translate=\"no\"\u003eIMAGE_OS\u003c/var\u003e \\\n --timeout=\u003cvar translate=\"no\"\u003eTIMEOUT\u003c/var\u003e\n\nReplace the following variables:\n\n- \u003cvar translate=\"no\"\u003eIMAGE_NAME\u003c/var\u003e: the name of your destination image. The name must be no longer than 35 characters.\n- \u003cvar translate=\"no\"\u003eSOURCE_FILE\u003c/var\u003e: your virtual disk file. This file is a local file on your workstation. You can provide an absolute or relative path.\n- \u003cvar translate=\"no\"\u003eIMAGE_OS\u003c/var\u003e: the OS on the disk to import.\n- \u003cvar translate=\"no\"\u003eTIMEOUT\u003c/var\u003e: the time an import can last before it fails with \"TIMEOUT\". For example, if you specify `2h`, the process fails after 2 hours. The default timeout is `1h`.\n\nThe upload operation can take an extended period of time depending on the size\nof your virtual disk and the speed of your network connection. The import\noperation can take tens of minutes to run depending on the size of the disk.\n\n\u003cbr /\u003e\n\n### API\n\nBefore starting the import process with the API, you need to upload your\nvirtual disk to an object storage bucket named `vm-images-bucket`. To create\nan object storage bucket, see\n[Create storage buckets for projects](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/create-storage-buckets).\n\nTo import a virtual disk through the API, do the following:\n\n1. Create a `VirtualMachineImageImport` object in the Management API server\n to start the image import process:\n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eMANAGEMENT_API_SERVER\u003c/var\u003e \\\n apply -n \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e -f - \u003c\u003cEOF\n apiVersion: virtualmachine.gdc.goog/v1\n kind: VirtualMachineImageImport\n metadata:\n name: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eIMAGE_NAME\u003c/span\u003e\u003c/var\u003e\n namespace: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003ePROJECT_ID\u003c/span\u003e\u003c/var\u003e\n spec:\n source:\n objectStorage:\n bucketRef:\n name: vm-images-bucket\n objectName: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eSOURCE_FILE\u003c/span\u003e\u003c/var\u003e\n imageMetadata:\n name: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eIMAGE_NAME\u003c/span\u003e\u003c/var\u003e\n operatingSystem: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eOPERATING_SYSTEM\u003c/span\u003e\u003c/var\u003e\n minimumDiskSize: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eDISK_SIZE\u003c/span\u003e\u003c/var\u003e\n EOF\n\n Replace the following variables:\n\n2. Monitor the progress of the import by querying the status of the\n `VirtualMachineImageImport` object:\n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eMANAGEMENT_API_SERVER\u003c/var\u003e \\\n get virtualmachineimageimport --namespace \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e \\\n \u003cvar translate=\"no\"\u003eIMAGE_NAME\u003c/var\u003e -o jsonpath='{.status}'\n\n### Clean up resources\n\nThe import process involves uploading your virtual disk file to object storage.\nIf you use the gdcloud CLI, the object is cleaned up when the command\nfinishes, whether or not it was successful. If the command is interrupted, or\nthe image import is done with the API, the virtual disk file might remain in\nthe object storage bucket named `vm-images-bucket` until you manually delete\nthe file.\n\nWhat's next\n-----------\n\nCreate a new VM instance that uses your image in the page,\n[Create and start a VM](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/vms/create-a-vm/create-and-start)."]]