Virtuelle Laufwerke importieren

In diesem Dokument werden die Schritte zum Importieren von Speicherabbildern virtueller Maschinen (VMs) in Google Distributed Cloud (GDC) mit Air Gap beschrieben.

Importieren Sie Ihre vorhandenen virtuellen Laufwerke, die oft als goldene Laufwerke oder goldene Images bezeichnet werden, in GDC, um Zeit zu sparen, und verwenden Sie das resultierende Image, um virtuelle Maschinen zu erstellen. Das Importtool unterstützt die Image-Formate RAW und QCOW.

Dieses Dokument richtet sich an Entwickler in Plattformadministrator- oder Anwendungsoperatorgruppen, die VM-Images erstellen. Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.

Hinweis

Bevor Sie fortfahren, benötigen Sie Folgendes:

Umgebung vorbereiten

  • Die gdcloud CLI wurde heruntergeladen, installiert und konfiguriert. Alle CLI-Befehle für GDC verwenden die gdcloud CLI oder die kubectl CLI und erfordern eine Betriebssystemumgebung.

IAM-Rollen anfordern

Bitten Sie Ihren IAM-Administrator für das Projekt, Ihnen die folgenden Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Importieren virtueller Laufwerke benötigen:

  • Virtual Machine Project Admin (project-vm-admin): VMs im Projekt-Namespace erstellen, ändern, auflisten und löschen.

  • Project Viewer (project-viewer): Kann alle Ressourcen im Projekt-Namespace aufrufen.

  • Virtual Machine Image Project Admin (project-vm-image-admin): VM-Images im Projekt-Namespace erstellen, auflisten und löschen.

Alle VM-Rollen müssen an den Namespace des Projekts gebunden sein, in dem sich die VM befindet. Folgen Sie der Anleitung, um Ihren Zugriff zu bestätigen.

Virtuelle Laufwerke importieren

Sie können Dateien virtueller Laufwerke direkt von Ihrer Workstation importieren. Das Importtool lädt die Datei automatisch in einen Objektspeicher-Bucket in Ihrem Projekt hoch.

Verwenden Sie zum Importieren Ihrer virtuellen Laufwerke entweder die gdcloud CLI oder die Virtual Machine Manager API.

gdcloud

Mit dem Befehl import wird geprüft, ob das von GDC bereitgestellte Image die erforderlichen Pakete zum Konfigurieren von Anmeldedaten für die Verbindung zur Instanz über Secure Shell (SSH) und Remote Desktop Protocol (RDP) enthält. Dazu gehören Pakete für die Gastumgebung.

Mit dem Befehl werden auch Pakete für das Network Time Protocol (NTP) und cloud-init installiert, damit die Instanz in GDC ordnungsgemäß ausgeführt werden kann.

  • Verwenden Sie den Befehl gdcloud compute images import, um ein Boot-Image zu erstellen:
gdcloud compute images import IMAGE_NAME \
  --source-file=SOURCE_FILE \
  --os=IMAGE_OS \
  --timeout=TIMEOUT

Ersetzen Sie die folgenden Variablen:

  • IMAGE_NAME ist der Name des Ziel-Images. Der Name darf maximal 35 Zeichen lang sein.
  • SOURCE_FILE: die virtuelle Laufwerksdatei. Diese Datei ist eine lokale Datei auf Ihrer Workstation. Sie können einen absoluten oder relativen Pfad angeben.
  • IMAGE_OS: das Betriebssystem auf dem zu importierenden Laufwerk.
  • TIMEOUT: Die Zeit, die ein Import dauern kann, bevor er mit „TIMEOUT“ fehlschlägt. Wenn Sie beispielsweise 2h angeben, schlägt der Vorgang nach 2 Stunden fehl. Das Standardzeitlimit ist 1h.

Der Uploadvorgang kann je nach Größe des virtuellen Laufwerks und Geschwindigkeit der Netzwerkverbindung einige Zeit dauern. Der Importvorgang kann abhängig von der Größe des Laufwerks mehrere Minuten dauern.

API

So importieren Sie ein virtuelles Laufwerk über die API:

  1. Erstellen Sie auf dem Management API-Server eine benutzerdefinierte VirtualMachineImageImport-Ressource, um den Image-Import zu starten:

    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
    

    Ersetzen Sie die folgenden Variablen:

    • MANAGEMENT_API_SERVER: die kubeconfig-Datei für den Verwaltungs-API-Server.
    • IMAGE_NAME: der Name des zu importierenden Images. Der Name darf maximal 35 Zeichen lang sein.
    • PROJECT_ID: die Projekt-ID des Projekts, in das Sie das Image importieren möchten.
    • SOURCE_FILE: der Name der Quelldatei, die den Upload des virtuellen Laufwerks in den Objektspeicher enthält. Dieser Wert ist der Abschnitt des Objektspeicherpfads nach vm-images-bucket/.
    • IMAGE_OS: das Betriebssystem auf dem zu importierenden Laufwerk.
    • DISK_SIZE: die Mindestgröße für ein Laufwerk, das Sie aus diesem Image erstellen. Verwenden Sie einen Puffer von mindestens 20% zusätzlich zur Dateisystemgröße des Original-Images. Verwenden Sie beispielsweise mindestens 12G für ein virtuelles Laufwerk mit einer ursprünglichen Dateisystemgröße von 10 G.
  2. Überwachen Sie den Fortschritt des Imports, indem Sie den Status der benutzerdefinierten Ressource VirtualMachineImageImport abfragen:

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

Ressourcen bereinigen

Beim Importvorgang wird die Datei des virtuellen Laufwerks in den Objektspeicher hochgeladen. Wenn Sie die gdcloud CLI verwenden, wird das Objekt nach Abschluss des Befehls gelöscht, auch wenn der Import fehlschlägt. Wenn Sie den Befehl unterbrechen oder das Image mit der API importieren, verbleibt die virtuelle Laufwerkdatei möglicherweise im Objektspeicher-Bucket mit dem Namen vm-images-bucket, bis Sie die Datei manuell löschen.

Nächste Schritte