Eine VM von Netzwerk zu Netzwerk migrieren


Auf dieser Seite wird beschrieben, wie Sie eine VM-Instanz von einem Netzwerk zu einem anderen Netzwerk migrieren. Wenn eine VM über mehrere Netzwerkschnittstellen mit mehr als einem Netzwerk verbunden ist, wird bei diesem Vorgang eine der Schnittstellen aktualisiert und der Rest bleibt unverändert.

Die folgenden Migrationen werden unterstützt:

  • Vom Legacy-Netzwerk zu einem VPC-Netzwerk im selben Projekt
  • Von einem VPC-Netzwerk zu einem anderen VPC-Netzwerk im selben Projekt
  • Von einem Subnetz eines VPC-Netzwerks zu einem anderen Subnetz desselben Netzwerks
  • Vom Netzwerk eines Dienstprojekts zum freigegebenen Netzwerk eines freigegebenen VPC-Hostprojekts

In allen Fällen verbleibt die VM in derselben Region und Zone. Nur das angehängte Netzwerk ändert sich.

Hinweise

  • Lesen Sie die Dokumentation zu Virtual Private Cloud.
  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren.

    Wählen Sie den Tab für die Verwendung der Beispiele auf dieser Seite aus:

    Console

    Wenn Sie über die Google Cloud Console auf Google Cloud-Dienste und -APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.

    gcloud

    1. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init
    2. Legen Sie eine Standardregion und -zone fest.

    REST

    Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

      Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init

Voraussetzungen

Bevor Sie die VM verschieben, muss sie die folgenden Anforderungen erfüllen:

  • Die Migration ist eine "kalte" Migration. Die VM muss beendet sein, bevor sie migriert werden kann.
  • Die VM darf sich nicht in einer Instanzgruppe oder einer Netzwerk-Endpunktgruppe (NEG) befinden.
    • Befindet sich die VM in einer nicht verwalteten Instanzgruppe oder NEG, müssen Sie sie vor der Migration aus der Gruppe entfernen.
    • VMs in verwalteten Instanzgruppen können nicht migriert werden. Stattdessen müssen Sie Ihre Instanzvorlage in das neue Netzwerk kopieren und sie zum Neuerstellen der verwalteten Instanzgruppe verwenden.
    • Sie können Instanzen in Zielpools verschieben, ohne sie vorher zu entfernen. Der Zielpool wird auf beide Netzwerke erweitert.

Beschränkungen

  • Sie können eine VM-Schnittstelle nicht zu einem Legacy-Netzwerk migrieren.
  • Die MAC-Adresse, die der Netzwerkschnittstelle zugewiesen ist, ändert sich während der Migration. Dies kann sich auf Dienste auswirken, die eng an MAC-Adressen gekoppelt sind, z. B. eine Lizenzvereinbarung mit Drittanbietern.
  • Wenn Sie die VM in ein Netzwerk oder Subnetz mit einem anderen IP-Bereich migrieren, muss sich die interne IP-Adresse der Instanz ändern. Wenn Sie zu einem Subnetz mit demselben IP-Bereich migrieren, können Sie die alte IP-Adresse beibehalten, solange sie nicht bereits am Ziel verwendet wird. Dazu geben Sie diese bei der Migration an.
  • Wenn das Zielsubnetz nicht denselben IP-Bereich wie die Quelle hat, ändert sich die IP-Adresse der Schnittstelle entsprechend dem neuen Subnetzbereich.
  • Sie können die vorhandene externe IP-Adresse der VM am neuen Standort beibehalten. Dazu benötigen Sie die Berechtigung compute.subnetworks.useExternalIp für das Zielnetzwerk. Außerdem darf das Zielnetzwerk keine externen IP-Adressen haben, die aufgrund der Einschränkung constraints/compute.vmExternalIpAccess deaktiviert sind.

VM migrieren

Prüfen Sie vor der Migration einer VM die Anforderungen und Einschränkungen.

Google empfiehlt, dass Sie vor der Migration Ihrer VMs im neuen Netzwerk alle erforderlichen Firewallregeln, Routen, Load-Balancer und anderen Netzwerkinfrastrukturressourcen erstellen. Dies kann dazu beitragen, die Ausfallzeit Ihrer VMs zu verkürzen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu „VM-Instanzen“

  2. Klicken Sie auf den Namen der VM-Instanz, um die Detailseite zu öffnen.

  3. Klicken Sie auf Beenden .

  4. Klicken Sie auf Beenden, falls ein Bestätigungsdialogfeld angezeigt wird.

  5. Klicken Sie nach dem Beenden der VM auf Bearbeiten .

  6. Klicken Sie unter Netzwerkschnittstellen auf die Schnittstelle, die Sie verschieben möchten.

  7. Wählen Sie im Feld Netzwerk der Schnittstelle das neue Netzwerk für die Schnittstelle aus.

  8. Wählen Sie im Feld Subnetzwerk der Schnittstelle das neue Subnetz für die Schnittstelle aus.

  9. Geben Sie im Feld Interne IP-Adresse die Option Automatisch an, falls das System eine IP-Adresse aus dem Subnetzbereich zuweisen soll, oder Benutzerdefiniert, falls Sie selbst eine nicht verwendete angeben möchten.

  10. Klicken Sie auf Fertig, um das Bearbeitungsfeld für die Netzwerkschnittstelle zu schließen.

  11. Klicken Sie auf Speichern.

  12. Klicken Sie nach dem Speichern der VM auf Starten .

  13. Klicken Sie auf Starten, falls ein Bestätigungsdialogfeld angezeigt wird.

gcloud

  1. Beenden Sie die VM.

    gcloud compute instances stop INSTANCE_NAME \
        --zone=ZONE_NAME

    Wobei Folgendes gilt:

    • INSTANCE_NAME ist der Name der VM-Instanz.
    • ZONE_NAME ist der Name der Zone, die die Instanz enthält.
  2. Migrieren Sie die VM.

    gcloud compute instances network-interfaces update INSTANCE_NAME \
        --zone=ZONE_NAME \
        --network-interface=NIC \
        --network=NETWORK_NAME \
        --subnetwork=SUBNET_NAME

    Wobei Folgendes gilt:

    • INSTANCE_NAME ist der Name der VM-Instanz.
    • ZONE_NAME ist der Name der Zone, die die Instanz enthält.
    • NIC ist der Name der Schnittstelle, die Sie aktualisieren. In einer VM mit einer einzigen Schnittstelle ist NIC gleich nic0.
    • NETWORK_NAME ist der Name des Zielnetzwerks. Wenn Sie die VM vom Netzwerk eines Dienstprojekts zum Netzwerk des Hostprojekts migrieren, müssen Sie einen voll qualifizierten Namen für das Zielnetzwerk verwenden: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
    • SUBNET_NAME ist der Name des Zielsubnetzes. Dieses Subnetz muss sich in derselben Region wie die VM befinden. Wenn Sie die VM vom Netzwerk eines Dienstprojekts zum Netzwerk des Hostprojekts migrieren, müssen Sie einen voll qualifizierten Namen für das Subnetz verwenden: projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
  3. Starten Sie die VM.

    Die Migration kann einige Minuten dauern. Warten Sie daher etwas, bevor Sie versuchen, die VM am neuen Standort zu starten.

    gcloud compute instances start INSTANCE_NAME \
        --zone=ZONE_NAME

    Wobei Folgendes gilt:

    • INSTANCE_NAME ist der Name der VM-Instanz.
    • ZONE_NAME ist der Name der Zone, die die Instanz enthält.

REST

  1. Beenden Sie die VM.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME/stop
    

    Wobei Folgendes gilt:

    • PROJECT_ID ist die Projekt-ID.
    • INSTANCE_NAME ist der Name der VM-Instanz.
    • ZONE_NAME ist der Name der Zone, die die Instanz enthält.
  2. Rufen Sie Details zur Instanz auf.

    GET https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME
    

    Wobei Folgendes gilt:

    • PROJECT_ID ist die Projekt-ID.
    • ZONE_NAME ist der Name der Zone, die die Instanz enthält.
    • INSTANCE_NAME ist der Name der VM-Instanz.
  3. Suchen Sie den Fingerabdruck für die Schnittstelle.

    Sie benötigen den Fingerabdruck, um die Netzwerkschnittstelle zu aktualisieren.

    Untersuchen Sie die Ausgabe des Befehls und suchen Sie den Inhalt des Felds networkInterfaces. Suchen Sie das Element mit dem Namen der Schnittstelle, die Sie aktualisieren möchten (in einer VM mit einer einzigen Schnittstelle lautet der Name nic0). Kopieren Sie den String aus dem Feld fingerprint in diesem Element, um ihn im nächsten Schritt zu verwenden.

  4. Migrieren Sie die VM.

    PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME/updateNetworkInterface?networkInterface=NIC
    {
      "network": NETWORK_NAME,
      "subnetwork": SUBNET_NAME,
      "networkIP": IP_ADDRESS,
      "name": NIC,
      "fingerprint": FINGERPRINT
    }
    • PROJECT_ID ist die Projekt-ID.
    • ZONE_NAME ist der Name der Zone, die die Instanz enthält.
    • INSTANCE_NAME ist der Name der VM-Instanz.
    • NIC ist der Name der Schnittstelle, die Sie aktualisieren. In einer VM mit einer einzigen Schnittstelle ist NIC gleich nic0.
    • NETWORK_NAME ist der Name des Zielnetzwerks. Wenn Sie die VM vom Netzwerk eines Dienstprojekts zum Netzwerk des Hostprojekts migrieren, müssen Sie einen voll qualifizierten Namen für das Zielnetzwerk verwenden: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
    • SUBNET_NAME ist der Name des Zielsubnetzes. Dieses Subnetz muss sich in derselben Region wie die VM befinden. Wenn Sie die VM vom Netzwerk eines Dienstprojekts zum Netzwerk des Hostprojekts migrieren, müssen Sie einen voll qualifizierten Namen für das Subnetz verwenden: projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
    • IP_ADDRESS ist die interne IP-Adresse, die die Instanz am neuen Standort haben soll. Wenn Sie dieses Feld weglassen, wird der Schnittstelle automatisch eine interne IP-Adresse zugewiesen.
    • FINGERPRINT ist der Fingerabdruck, den Sie im vorherigen Schritt erhalten haben.
  5. Starten Sie die VM.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME/start
    

    Wobei Folgendes gilt:

    • PROJECT_ID ist die Projekt-ID.
    • INSTANCE_NAME ist der Name der VM-Instanz.
    • ZONE_NAME ist der Name der Zone, die die Instanz enthält.

Nächste Schritte