Importer des disques virtuels

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 l'appliance GDC sous air gap 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 :

  • gdcloud CLI téléchargé, installé et configuré. 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 au serveur de l'API Management. Suivez les étapes de la CLI décrites dans Se connecter pour vous connecter au serveur de l'API Management.

Demander des rôles IAM

Contactez l'administrateur IAM de votre projet pour demander les rôles suivants sur votre projet :

  • Administrateur de projet de machine virtuelle (project-vm-admin) : créez, modifiez, listez et supprimez des VM dans l'espace de noms du projet.

  • Lecteur de projet(project-viewer) : permet d'afficher toutes les ressources dans l'espace de noms du projet.

  • Administrateur de projet d'images de machine virtuelle (project-vm-image-admin) : créez, listez et supprimez des images de VM dans l'espace de noms du projet.

Tous les rôles de VM doivent être associés à l'espace de noms du projet dans lequel réside la VM. Suivez la procédure pour valider votre accès.

Importer des disques virtuels

Vous pouvez importer des fichiers de disque d'image de VM directement depuis votre poste de travail. L'outil d'importation importe automatiquement le fichier dans un bucket de stockage d'objets de votre projet.

Pour importer vos disques virtuels, utilisez la CLI gdcloud ou l'API gestionnaire de machine virtuelle.

gdcloud

La commande import vérifie que l'image fournie par GDC dispose des packages requis pour configurer les identifiants permettant de se connecter à l'instance à l'aide de Secure Shell (SSH) et du protocole RDP (Remote Desktop Protocol). Cela inclut les packages pour l'environnement invité.

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.

Pour créer une image bootable, utilisez la commande gdcloud compute images import :

gdcloud compute images import IMAGE_NAME \
  --source-file=SOURCE_FILE \
  --os=IMAGE_OS \
  --timeout=TIMEOUT

Remplacez les variables suivantes :

  • 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

Pour importer un disque virtuel via l'API, procédez comme suit :

  1. Créez un objet VirtualMachineImageImport sur le serveur de l'API Management pour lancer le processus d'importation d'images :

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT_ID \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineImageImport
    metadata:
      name: IMAGE_NAME
      namespace: PROJECT_ID
    spec:
      source:
        objectStorage:
          bucketRef:
            name: vm-images-bucket
          objectName: SOURCE_FILE
      imageMetadata:
        name: IMAGE_NAME
        operatingSystem: IMAGE_OS
        minimumDiskSize: DISK_SIZE
    EOF
    

    Remplacez les variables suivantes :

    • IMAGE_NAME : 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/.
    • IMAGE_OS : OS du disque à importer.
    • DISK_SIZE : taille minimale requise pour créer un disque à partir de cette image. Utilisez 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 12G pour un disque virtuel dont la taille du système de fichiers d'origine est de 10 Go.
  2. Surveillez la progression de l'importation en interrogeant l'état de l'objet VirtualMachineImageImport :

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT_ID \
      get virtualmachineimageimport.virtualmachine.gdc.goog IMAGE_NAME \
      -o jsonpath='{.status}'
    

Effectuer un nettoyage des ressources

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.

Étapes suivantes

Créez une instance de VM qui utilise votre image sur la page Créer et démarrer une VM.