Pour importer des images de disque de démarrage dans Compute Engine depuis des centres de données physiques, depuis des machines virtuelles (VM) exécutées sur un poste de travail local ou depuis des machines virtuelles exécutées sur une autre plate-forme cloud, nous vous recommandons d'utiliser l'outil d'importation de disque virtuel, qui automatise toutes les étapes de ce guide.
Si vous préférez ne pas utiliser l'outil automatisé, suivez les instructions détaillées de ce guide.
Ce processus d'importation d'images ne permet d'importer qu'un seul disque à la fois. Ce guide explique comment importer des images de disque de démarrage.
Vous ne devez importer vos disques de démarrage existants que si vous ne parvenez pas à créer ou migrer vos applications pour qu'elles s'exécutent sur les images publiques Compute Engine. Les images publiques sont déjà configurées pour s'exécuter dans l'environnement Compute Engine. Vous pouvez donc exécuter des applications sur ces images sans vous soucier de la configuration du bootloader et du système d'exploitation. Toutefois, il sera peut-être nécessaire d'importer vos images de disque de démarrage dans les scénarios suivants :
- Vos applications requièrent un système d'exploitation qui n'est pas fourni en tant qu'image publique.
- Vous disposez déjà d'un ensemble d'images de base que vous utilisez pour créer des VM sur une autre plate-forme cloud.
- La charge de travail nécessaire pour migrer le code de l'application vers l'une des images publiques est supérieure à celle requise pour procéder à l'importation de l'image du disque de démarrage.
Vous pouvez également obtenir de l'aide pour migrer vos VM en sollicitant les services partenaires. Pour en savoir plus, consultez la section Migrer des VM vers Compute Engine.
Présentation
Procédez comme suit pour importer une image de disque de démarrage dans Compute Engine :
- Planifiez le chemin d'importation. Vous devez déterminer où vous allez préparer l'image de disque de démarrage avant de la mettre en ligne et comment vous vous y connecterez après qu'elle a été démarrée dans l'environnement Compute Engine.
- Préparez votre disque de démarrage afin qu'il puisse démarrer dans l'environnement Compute Engine et qu'il soit accessible après le démarrage.
- Créez et compressez le fichier de l'image de disque de démarrage.
- Mettez le fichier image en ligne sur Cloud Storage et importez l'image dans Compute Engine en tant que nouvelle image personnalisée.
- Utilisez l'image importée pour créer une instance de VM et assurez-vous qu'elle démarre correctement.
- Si l'image importée ne démarre pas correctement, vous pouvez résoudre le problème en associant l'image de disque de démarrage à une autre instance et en la reconfigurant.
- Optimisez l'image et installez l'environnement invité afin que l'image importée de votre système d'exploitation puisse communiquer avec le serveur de métadonnées et utiliser des fonctionnalités supplémentaires de Compute Engine.
Exigences
Exigences concernant le disque de démarrage
Pour importer des disques de démarrage dans Compute Engine, ceux-ci doivent répondre aux exigences suivantes :
- Nous vous recommandons d'installer toutes les mises à jour disponibles dans votre VM source.
- Si vous avez créé un noyau de système d'exploitation personnalisé, celui-ci doit répondre aux exigences de configuration matérielle et de noyau. Comme la plupart des distributions Linux existantes répondent déjà à ces exigences, ce point concerne uniquement les utilisateurs avancés qui créent des systèmes d'exploitation personnalisés destinés à s'exécuter sur Compute Engine.
- La taille du disque de démarrage ne doit pas dépasser 2 048 Go (2 To).
- Le disque de démarrage que vous importez doit être doté d'une table de partitionnement MBR fonctionnelle ou d'une configuration hybride alliant table de partitionnement GPT et bootloader MBR.
- La partition primaire du disque de démarrage peut être d'un format quelconque, sous réserve qu'elle démarre correctement dans le bootloader MBR.
- Le bootloader sur le disque de démarrage ne doit pas contenir les arguments de ligne de commande du noyau
quiet
,rhgb
nisplashimage=
. Compute Engine n'est pas compatible avec les écrans d'accueil au démarrage. Vous pouvez supprimer ces valeurs de la configuration GRUB à l'étape de configuration du bootloader. - Le système d'exploitation sur le disque de démarrage doit être compatible avec la norme ACPI.
Exigences concernant le fichier image
Le fichier image que vous importez doit répondre aux exigences suivantes :
- Effectuez une vérification de cohérence sur l'image disque à l'aide de la commande
qemu-img check
sur le disque. - Pour exporter le disque virtuel, utilisez la fonction d'exportation de votre logiciel de gestion de VM. Ne copiez pas le fichier VMDK à partir du système de fichiers de votre gestionnaire de VM.
- Le fichier image doit être une image compatible.
- Le fichier image du disque doit s'appeler
disk.raw
. - La taille du fichier image RAW doit être incrémentée par paliers de 1 Go. Par exemple, le fichier peut faire 10 Go ou 11 Go, mais pas 10,5 Go.
- Le fichier compressé doit être un fichier
.tar.gz
utilisant la compression gzip et l'option--format=oldgnu
pour l'utilitairetar
(manuel).
Exigences concernant le projet
Lorsque vous créez une instance de VM à partir d'une image importée, cette instance doit pouvoir accéder au dépôt de packages externe du système d'exploitation configuré sur le disque de démarrage.
Vous pouvez accéder à ce dépôt directement auprès du fournisseur du système d'exploitation ou via une connexion réseau à votre infrastructure sur site qui héberge ces dépôts.
Pour configurer l'accès au dépôt externe, effectuez l'une des étapes suivantes dans votre projet :
- Configurez une adresse IP externe statique pour que votre VM se connecte à votre réseau local sur site ou à d'autres réseaux externes.
- Configurez un hôte bastion, un VPN ou un transfert TCP Cloud IAP qui peut être utilisé pour se connecter à votre réseau local sur site ou à d'autres réseaux externes.
Limites
Pour importer des disques à l'aide de réseaux qui n'autorisent pas les adresses IP externes, vous devez répondre à des exigences de mise en réseau supplémentaires. Pour en savoir plus, consultez la section Importer des disques à l'aide de réseaux qui n'autorisent pas les adresses IP externes.
Frais d'importation d'images
Avant de commencer, prenez en considération les frais liés au processus d'importation. Le transfert de données réseau entrantes pour importer votre image de disque de démarrage sur Cloud Storage et l'importation de cette image en tant qu'image personnalisée Compute Engine sont des opérations gratuites. Cependant, certaines étapes du processus d'importation entraînent des frais :
- Les frais associés au stockage temporaire de vos fichiers d'image compressés dans un bucket standard Cloud Storage. Vous devez utiliser un bucket Cloud Storage temporaire pour stocker vos fichiers avant de les importer en tant qu'images personnalisées Compute Engine. Une fois le processus d'importation terminé, vous pourrez supprimer le bucket.
- Les frais associés au stockage des images personnalisées, après leur importation dans Compute Engine.
- Les frais potentiels liés aux transferts de données sortantes vers votre centre de données, votre fournisseur réseau ou votre service cloud actuel. Les fichiers image peuvent être très volumineux, même après avoir été compressés. Par conséquent, leur copie sur Compute Engine peut entraîner des frais de transfert de données sortantes significatifs sur certaines plates-formes.
- Le coût des disques persistants et des instances de VM Compute Engine permettant de configurer une image après l'avoir importée dans Compute Engine.
Planifier et préparer votre chemin d'importation
La méthode d'importation de disque que vous choisirez dépend de la configuration actuelle du système que vous souhaitez déplacer vers Compute Engine. Vous aurez besoin d'un système sur lequel créer et compresser le fichier de l'image de disque de démarrage, ainsi que d'un système permettant de transférer le fichier image sur Cloud Storage. Vous devez prendre en compte les éléments suivants pour planifier votre chemin d'importation :
- Le chemin d'importation d'image nécessite que le disque de démarrage soit configuré sur un environnement de système d'exploitation opérationnel. L'importation peut empêcher le disque de démarrage de démarrer en dehors d'un environnement Compute Engine. Vous êtes responsable en cas de perte de données sur vos disques ou d'interruption de vos applications d'entreprise fonctionnelles lors de l'importation de votre système dans Compute Engine.
- Déterminez quelle est la configuration existante de vos accès système et planifiez comment vous voulez accéder au système après l'avoir importé dans Compute Engine.
- Si votre système possède des connexions utilisateur ou des configurations SSH existantes, vous pouvez ne configurer que le bootloader dans un premier temps et configurer l'image ultérieurement pour qu'elle s'exécute de manière optimale sur Compute Engine. Vous pouvez accéder à l'instance via votre configuration SSH existante ou via une connexion utilisateur directe dans la console série interactive.
- Si votre système ne possède ni connexion utilisateur existante, ni configuration SSH, vous devez configurer le disque de démarrage de manière à pouvoir y accéder après son démarrage dans Compute Engine.
- Le processus d'importation peut prendre plusieurs heures, voire plusieurs jours, selon la taille de votre disque de démarrage et la vitesse de votre connexion réseau.
- Le système sur lequel vous créez et compressez votre image de disque de démarrage doit présenter un espace de stockage suffisant pour créer les fichiers image sur un appareil de stockage autre que le disque de démarrage lui-même. De manière générale, vos fichiers image et
tar.gz
occupent deux à trois fois plus d'espace que le disque de démarrage lui-même - Vous devez connaître la structure du système de fichiers du système existant à importer :
- Si votre système d'exploitation et vos fichiers d'application sont répartis sur plusieurs disques, importez le contenu de chaque disque individuellement et utilisez chaque image pour créer un disque persistant unique pour votre instance de VM Compute Engine.
- Si vos systèmes disposent de volumes de démarrage dans une configuration RAID où plusieurs disques constituent un seul volume logique, créez une image unique englobant l'ensemble de la baie de disques plutôt que d'en créer une pour chaque disque de la baie. Les disques persistants Compute Engine évitent de devoir recourir à des configurations RAID.
- Si votre système chiffre le contenu de votre disque de démarrage avec un Trusted Platform Module ou via un chiffrement logiciel, déchiffrez votre disque de démarrage avant de créer le fichier de l'image de disque de démarrage. Google ne peut pas lire vos images si elles sont chiffrées. Google chiffre vos images après leur transfert, et vous permet de fournir vos propres clés de chiffrement pour vos disques persistants et buckets Cloud Storage.
Après avoir identifié ou créé le système sur lequel finaliser le processus d'importation, connectez-vous à ce système et configurez le bootloader.
Préparer l'image de disque de démarrage
Sur un système en cours d'exécution, préparez l'image de disque de démarrage afin qu'elle puisse fonctionner dans un environnement Compute Engine.
- Configurez le bootloader sur le disque de démarrage afin que l'image puisse démarrer sur Compute Engine.
- Configurez une connexion SSH ou une connexion utilisateur sur le disque de démarrage pour pouvoir y accéder après l'importation dans Compute Engine et le démarrer en tant qu'instance de VM.
Ce processus peut empêcher le système de démarrer en dehors de Compute Engine. Il est donc recommandé d'effectuer cette étape sur un système isolé à l'aide d'une copie du disque de démarrage à importer.
Configurer le bootloader
Configurez le bootloader sur le système pour qu'il puisse démarrer sur Compute Engine.
Connectez-vous au terminal du système avec le disque de démarrage que vous prévoyez d'importer.
Modifiez le fichier de configuration GRUB. Généralement, ce fichier se situe sous
/etc/default/grub
, mais dans certaines distributions plus anciennes, il peut se trouver dans un autre répertoire.Apportez les modifications suivantes au fichier de configuration GRUB :
- Supprimez toutes les lignes contenant
splashimage=
. Compute Engine n'est pas compatible avec les écrans d'accueil au démarrage. - Supprimez les arguments de ligne de commande du noyau
rhgb
etquiet
. - Ajoutez
console=ttyS0,38400n8d
aux arguments de ligne de commande du noyau, afin que l'instance puisse interagir avec la console série.
- Supprimez toutes les lignes contenant
Régénérez le fichier
grub.cfg
. Utilisez l'une des commandes suivantes en fonction de votre distribution.- Debian et Ubuntu :
sudo update-grub
- RHEL, CentOS, SUSE, openSUSE :
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
- Debian et Ubuntu :
Modifiez le fichier
/etc/fstab
et supprimez les références à tous disques et partitions autres que le disque de démarrage et ses partitions. Les entrées non valides dans/etc/fstab
peuvent entraîner l'arrêt du processus de démarrage de votre système.
Une fois le bootloader configuré, créez et compressez le fichier image du disque.
Configurer l'accès SSH ou la connexion utilisateur à l'image
Une fois que votre image est exécutée dans Compute Engine en tant qu'instance de VM, vous devez pouvoir y accéder. Vous pouvez vous connecter à l'instance à l'aide d'une configuration SSH existante ou à l'aide d'un nom d'utilisateur et d'un mot de passe, en vous connectant à la console série.
Finalisez la configuration SSH ou la configuration de la connexion utilisateur avant de créer et compresser le fichier image du disque.
Créer et compresser le fichier image du disque
Créez et compressez le fichier de l'image de disque de démarrage pour le système que vous souhaitez importer dans Compute Engine. Le processus de création et de compression du fichier image varie en fonction de la plate-forme d'exécution de vos systèmes.
Processus générique
Vous pouvez utiliser ce processus sur presque tous les systèmes afin de créer un fichier image RAW à importer dans Compute Engine. Vous pouvez terminer ce processus sur le système en cours d'exécution que vous importez, ou bien associer votre disque de démarrage en tant que disque secondaire sur un autre système et créer l'image de disque de démarrage à partir du disque arrêté. Assurez-vous d'avoir suffisamment d'espace de stockage disponible pour stocker temporairement les fichiers image de disque. Dans l'exemple qui suit, l'image est issue d'un système en cours d'exécution.
Connectez-vous au terminal sur le système contenant le disque de démarrage que vous souhaitez importer.
Utilisez la commande
lsblk
pour identifier le disque de démarrage source à partir duquel vous souhaitez créer une image, ainsi que l'emplacement offrant suffisamment d'espace pour héberger les fichiers image. Pour cet exemple,/dev/sda
est le disque de démarrage source et/dev/sdb
est un disque volumineux secondaire installé dans le répertoire/tmp
. Même lorsque /dev/sda est en cours d'exécution, il est possible d'en faire une image. Il est préférable d'effectuer cette opération sur un système silencieux qui ne traite pas activement les données et qui n'exécute pas vos applications.lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 96G 0 part / ├─sda2 8:2 0 1K 0 part └─sda3 8:5 0 4G 0 part [SWAP] sdb 8:16 0 500G 0 disk /tmp sr0 11:0 1 1024M 0 rom
Créez le fichier image à partir de votre disque de démarrage.
sudo dd if=/dev/sda of=/tmp/disk.raw bs=4M conv=sparse
Accédez au répertoire dans lequel vous avez généré le fichier
disk.raw
.cd /tmp
Compressez le disque RAW au format
tar.gz
. Cette étape compresse le fichier image afin que vous puissiez l'importer plus rapidement dans Cloud Storage. Sous OSX, installezgtar
et utilisez-le pour cette étape en lieu et place detar
.tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
AWS EC2
Pour en savoir plus sur l'importation d'images Amazon Machine Images (AMI) et de disques virtuels depuis Amazon Web Services (AWS) dans Compute Engine, consultez la page Importer des images à partir d'AWS.
VirtualBox
Si vous avez préparé votre système dans un environnement VirtualBox, vous pouvez utiliser l'outil VBoxManage
pour convertir une image disque .vdi
ou .qcow2
au format disk.raw
.
Arrêtez la machine invitée VirtualBox que vous souhaitez importer, en remplaçant GUEST_NAME par le nom de votre machine invitée. Vous pouvez arrêter la machine invitée avec l'interface VirtualBox ou à l'aide de l'utilitaire VBoxManage.
VBoxManage controlvm GUEST_NAME acpipowerbutton
Convertissez l'image invitée au format RAW à l'aide de l'utilitaireVBoxManage en remplaçant GUEST_NAME par le chemin d'accès à votre image invitée. Cette image invitée peut être fournie sous la forme d'un fichier
vdi
ouqcow2
:VBoxManage clonemedium GUEST_NAME ~/disk.raw --format RAW
Compressez le disque RAW au format
tar.gz
. Cette étape compresse le fichier image afin que vous puissiez l'importer plus rapidement dans Cloud Storage. Sous OSX, installezgtar
et utilisez-le pour cette étape à la place detar
.sudo tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
Le fichier image est compressé et prêt à être importé dans Cloud Storage.
Importer l'image dans votre liste d'images personnalisées
Transférez le fichier sur Google Cloud Storage et importez l'image dans votre liste d'images personnalisées. Vous pouvez éventuellement chiffrer l'image au cours de son importation.
Importez l'image à l'aide de la console ou des outils de Google Cloud CLI :
Console
Copiez le fichier compressed-image.tar.gz
sur votre poste de travail local et utilisez la console Google Cloud pour créer un bucket et importer le fichier.
- Dans la console Google Cloud, accédez à la page du Navigateur Cloud Storage.
- En haut de la page, cliquez sur Créer un bucket.
- Indiquez un nom de bucket unique, la classe de stockage standard et un emplacement de stockage pour vos fichiers image.
- Cliquez sur Créer pour créer le bucket. La page du navigateur vous conduit au bucket créé.
- En haut de la page, cliquez sur Importer des fichiers.
- Dans la fenêtre de sélection de fichier, cliquez sur le fichier
compressed-image.tar.gz
que vous avez téléchargé depuis votre système. Le fichier est transféré depuis votre poste de travail local. Cette étape peut prendre plusieurs heures en fonction de la taille de votre fichier image compressé et de la vitesse de votre connexion réseau.
Une fois l'image transférée sur Cloud Storage, importez le fichier image dans votre liste d'images personnalisées.
- Dans la console Google Cloud, accédez à la page Images.
- En haut de la page, cliquez sur Créer une image.
- Dans le champ Nom, spécifiez un nom unique pour l'image.
- Vous pouvez également attribuer une famille d'images à votre nouvelle image ou configurer des paramètres de chiffrement spécifiques.
- Cliquez sur le menu Source et sélectionnez Fichier Cloud Storage.
Entrez le chemin d'accès au fichier
compressed-image.tar.gz
que vous avez transféré dans Cloud Storage.BUCKET_NAME/compressed-image.tar.gz
Cliquez sur Créer pour importer l'image. Le processus peut prendre plusieurs minutes en fonction de la taille de l'image de disque de démarrage.
L'image est désormais incluse sur la page Images. Vous pouvez créer une VM à l'aide de cette image importée. En cas d'échec au démarrage, vérifiez que vous avez correctement configuré le bootloader.
gcloud and gsutil
Utilisez l'outil gsutil
et gcloud CLI pour importer le fichier compressé de l'image de disque de démarrage. Vous pouvez terminer ce processus sur le système où l'image de disque de démarrage a été créée, ou copier ce fichier sur un autre système pour y finaliser le transfert.
Installez et initialisez gcloud CLI sur le système à partir duquel vous prévoyez d'importer le fichier
compressed-image.tar.gz
.Servez-vous de l'outil
gsutil
pour créer un bucket Cloud Storage.gsutil mb gs://BUCKET_NAME
Importez le fichier
compressed-image.tar.gz
dans le nouveau bucket.gsutil cp compressed-image.tar.gz gs://BUCKET_NAME
Importez le fichier image en tant que nouvelle image personnalisée.
gcloud compute images create IMAGE_NAME --source-uri gs://BUCKET_NAME/compressed-image.tar.gz
Remplacez l'élément suivant :
- IMAGE_NAME : nom de l'image que vous avez importée.
- BUCKET_NAME : nom du bucket dans lequel l'image importée est stockée.
L'image fait maintenant partie de la liste des images personnalisées. Vous pouvez créer une VM à l'aide de cette image importée. En cas d'échec au démarrage, vérifiez que vous avez correctement configuré le bootloader.
gcloud compute images list --no-standard-images
NAME PROJECT FAMILY DEPRECATED STATUS [IMAGE_NAME] [PROJECT_ID] READY
Tester l'image importée pour vous assurer qu'elle fonctionne
Vérifiez que l'image importée fonctionne comme prévu. Créez une VM avec un disque de démarrage qui utilise cette image importée.
Console
Accédez à la page Créer une instance dans Google Cloud Console.
Dans la section Disque de démarrage, cliquez sur Modifier, puis procédez comme suit :
- Sélectionnez l'onglet Images personnalisées.
- Pour sélectionner le projet d'image, cliquez sur Sélectionner un projet, puis procédez comme suit :
- Sélectionnez le projet contenant l'image.
- Cliquez sur Ouvrir.
- Dans la liste Image, cliquez sur l'image que vous avez importée.
- Sélectionnez le type et la taille de votre disque de démarrage.
- Cliquez sur Sélectionner pour confirmer vos options de disque de démarrage.
Cliquez sur Create (Créer).
gcloud
gcloud compute instances create VM_NAME --zone ZONE --image IMAGE_NAME
Remplacez l'élément suivant :
- VM_NAME : nom unique de la VM.
- ZONE : zone dans laquelle vous avez créé le disque autonome.
- IMAGE_NAME : nom de l'image que vous avez importée.
Une fois l'instance créée, vérifiez qu'elle a démarré correctement. Vérifiez la sortie du port série :
Console
- Dans Google Cloud Console, accédez à la page Instances de VM.
- Dans la liste des VM, cliquez sur le nom de la VM que vous avez créée à partir de l'image importée. La page des détails de la VM s'affiche.
- Dans la section Journaux, cliquez sur le port série approprié pour développer et afficher les données en sortie du port série pour cette VM.
Si la VM s'est arrêtée sur Booting from Hard Disk 0...
, vous devez résoudre les problèmes depuis l'environnement Compute Engine ou reconfigurer le disque de démarrage sur votre système d'origine et répéter le processus d'importation.
gcloud
gcloud compute instances get-serial-port-output VM_NAME
Si la VM s'est arrêtée sur Booting from Hard Disk 0...
, vous devez résoudre les problèmes depuis l'environnement Compute Engine ou reconfigurer le disque de démarrage sur votre système d'origine et répéter le processus d'importation.
Vous pouvez également tester la VM en vous y connectant. Connectez-vous à la VM via l'une des options suivantes :
- SSH : si la VM possédait une configuration SSH opérationnelle, vous pouvez vous y connecter en SSH à l'aide de votre clé privée. L'adresse IP de la VM est accessible sur la page Instances de VM.
- Console série : si vous devez vous connecter à la VM directement sans SSH, vous pouvez activer la console série et vous connecter avec un nom d'utilisateur et un mot de passe.
Étape suivante
- Configurez le disque de sorte que votre image puisse exploiter les fonctionnalités de l'environnement Compute Engine.
- Une fois que votre image est prête pour la production, créez une version finale de cette image personnalisée et incluez-la dans une famille d'images. Vous pourrez ainsi gérer facilement les versions mises à jour de l'image personnalisée.
- Certaines importations peuvent échouer en raison de problèmes de disque de démarrage. Pour en savoir plus, consultez la section Dépannage des disques de démarrage.