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.

Hinweis

Anforderungen

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. Gehen Sie in der Cloud Console zur Seite VM-Instanzen.

    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

    Dabei 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

    Dabei 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

    Dabei gilt:

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

API

  1. Beenden Sie die VM.

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

    Dabei 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 den Fingerabdruck für die Schnittstelle ab.

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

    GET https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME/updateNetworkInterface?networkInterface=NIC
    

    Dabei 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.
    • NIC ist der Name der Schnittstelle, die Sie aktualisieren. In einer VM mit einer einzigen Schnittstelle ist NIC gleich nic0.

    Kopieren Sie den String aus dem Feld fingerprint. Sie benötigen diesen im nächsten Schritt.

  3. 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 aus dem GET-Befehl kopiert haben.
  4. Starten Sie die VM.

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

    Dabei 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