VM beenden und starten


Auf dieser Seite wird beschrieben, wie Sie VM-Instanzen anhalten und starten. Beachten Sie, dass Compute Engine STOP und TERMINATE austauschbar verwendet. Informationen zum Anhalten und Fortsetzen einer VM finden Sie unter VM anhalten und fortsetzen. Weitere Informationen zum Anhalten und Sperren von VMs finden Sie unter Lebenszyklus von VM-Instanzen.

Sie können eine VM vorübergehend beenden, wenn Sie sie nicht mehr benötigen, und sie später neu starten. Eine angehaltene VM behält ihren nichtflüchtigen Speicher, ihre internen IP-Adressen und ihre MAC-Adressen bei. Die VM fährt jedoch das Gastbetriebssystem herunter und verliert ihren Anwendungsstatus. Wenn Sie das Gastbetriebssystem und den Anwendungsstatus beibehalten möchten, halten Sie stattdessen die VM an. Im Wesentlichen kehrt eine angehaltene VM zum Power-on-Zustand ohne gespeicherte Daten zurück. Halten Sie eine VM an, wenn Sie den Maschinentyp ändern, angehängte Laufwerke hinzufügen oder entfernen, die minimale CPU-Plattform ändern, GPUs hinzufügen oder entfernen oder Empfehlungen für Maschinentypen anwenden möchten.

Das Anhalten von VMs veranlasst Compute Engine, das ACPI-Shutdown-Signal an die VM zu senden. Moderne Gastbetriebssysteme sind so konfiguriert, dass sie korrekt herunterfahren, bevor sie als Reaktion auf das Abschaltsignal ausgeschaltet werden. Compute Engine wartet eine kurze Zeit, damit das Gastsystem vollständig heruntergefahren werden kann, und versetzt die VM dann in den Status TERMINATED.

Hinweis

Beschränkungen

Sie können eine VM mit einer angehängten lokalen SSD nicht beenden und neu starten. Wenn die VM jedoch lokale SSDs verwendet, hindert Compute Engine Sie nicht daran, die VM von innerhalb des Gastbetriebssystems herunterzufahren. Wenn Sie eine VM mithilfe lokaler SSDs über das Gastbetriebssystem herunterfahren, können Sie die VM nicht neu starten und die Daten auf der lokalen SSD gehen verloren. Achten Sie darauf, dass Sie Ihre kritischen Daten von der lokalen SSD zu einem nichtflüchtigen Speicher oder zu einer anderen VM migrieren, bevor Sie die VM löschen.

Abrechnung

VMs mit dem Status TERMINATED werden nicht pro Sekunde abgerechnet und nicht auf Ihr regionales CPU-Kontingent angerechnet. Alle an die VM angehängten Ressourcen, wie z. B. nichtflüchtige Speicher und externe IP-Adressen, werden jedoch berechnet, bis sie gelöscht werden. Um weitere Kosten für die angehängten Ressourcen zu vermeiden, können Sie eine gestoppte VM so rekonfigurieren, dass diese Ressourcen abgetrennt werden, und dann die Ressourcen löschen.

Sie können VMs, die Sie nicht mehr verwenden, beenden. Damit sparen Sie Kosten für inaktive VMs. Anschließend können Sie die VMs mit denselben VM-Attributen, -Metadaten und -Ressourcen neu starten.

VM beenden

Sie können VMs über die Google Cloud Console, das gcloud-Tool oder die Compute Engine API beenden.

Console

  1. Gehen Sie in der Cloud Console zur Seite VM-Instanzen.

    Zu „VM-Instanzen“

  2. Wählen Sie eine oder mehrere VMs aus, die Sie beenden möchten.

  3. Klicken Sie auf Beenden.

gcloud

Verwenden Sie zum Beenden einer VM den Befehl gcloud compute instances stop und geben Sie eine oder mehrere VMs an, die Sie beenden möchten:

gcloud compute instances stop VM_NAME

Ersetzen Sie dabei VM_NAME durch den Namen der VM, die Sie beenden möchten.

API

Erstellen Sie eine POST-Anfrage mit der Methode instances.stop, um eine VM zu beenden:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop

Dabei gilt:

  • PROJECT_ID: Projekt, in dem sich Ihre VM befindet
  • ZONE: Zone, in der sich Ihre VM befindet
  • VM_NAME: Name der VM, die Sie beenden möchten

Eine TERMINATED-VM ist weiter mit ihren Konfigurationseinstellungen und Instanzmetadaten vorhanden, verliert jedoch ihre Daten im Arbeitsspeicher und den Status einer virtuellen Maschine. Alle Ressourcen, die an die beendete VM angehängt sind, bleiben angehängt, bis Sie diese Ressourcen manuell trennen oder die VM löschen.

Wenn eine VM den Status TERMINATED hat, können Sie die VM neu starten oder die VM löschen. Wenn Sie die VM nicht neu starten möchten, löschen Sie sie.

VM über das Betriebssystem beenden

Optional können Sie eine VM über das Gastbetriebssystem mit dem Befehl sudo shutdown -h now oder sudo poweroff beenden. Beenden Sie mit diesen Befehlen eine VM, die lokale SSDs verwendet. Führen Sie einen der folgenden Befehle aus, während Sie bei der VM angemeldet sind:

sudo shutdown -h now
sudo poweroff

Beendete VM ohne verschlüsseltes Laufwerk neu starten

Verwenden Sie die Methode instances().start, um eine angehaltene VM neu zu starten. Diese Methode startet eine angehaltene VM, die sich im Zustand TERMINATED befindet.

Über die Methode start wird eine VM mit dem Status TERMINATED neu gestartet, wohingegen Methoden wie reset() und sudo reboot nur mit laufenden VMs funktionieren. Fast alle VMs, einschließlich VMs auf Abruf, können neu gestartet werden, wenn sich die VM im Zustand TERMINATED befindet.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite VM-Instanzen.

    Zu „VM-Instanzen“

  2. Wählen Sie eine oder mehrere VMs aus, die Sie starten möchten.

  3. Klicken Sie auf Starten/Fortsetzen.

gcloud

Verwenden Sie zum Starten einer VM den Befehl gcloud compute instances start und geben Sie eine oder mehrere VMs an, die Sie starten möchten:

gcloud compute instances start VM_NAME

Ersetzen Sie dabei VM_NAME durch den Namen der VM, die Sie starten möchten.

API

Erstellen Sie eine POST-Anfrage mit der Methode instances.start, um eine VM zu starten:

POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start

Dabei gilt:

  • PROJECT_ID: Projekt, in dem sich Ihre VM befindet
  • ZONE: Zone, in der sich Ihre VM befindet
  • VM_NAME: Name der VM, die Sie starten möchten

Um Ihre VM mit Clientbibliotheken zurückzusetzen, stellen Sie eine Anfrage mit der Methode instances().start:

def restartInstance(auth_http, gce_service):
  request = gce_service.instances().start(project="myproject", zone="us-central1-a", instance="example-instance")
  response = request.execute(auth_http)

  print response

VM mit verschlüsselten Laufwerken neu starten

Wenn die neu zu startende VM vom Kunden bereitgestellte Verschlüsselungsschlüssel verwendet, müssen Sie diese Schlüssel angeben, wenn Sie versuchen, die VM neu zu starten.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite VM-Instanzen.

    Zu „VM-Instanzen“

  2. Wählen Sie die VM aus, die Sie starten möchten.

  3. Klicken Sie auf Starten/Fortsetzen. Geben Sie im folgenden Fenster Verschlüsselungsschlüssel für die Geräte an, die an diese VM angehängt sind.

  4. Geben Sie Verschlüsselungsschlüssel für alle verschlüsselten Laufwerke an, die an diese VM angehängt sind.

  5. Klicken Sie auf Starten, um die VM zu starten.

gcloud

Verwenden Sie den Befehl gcloud compute instances start mit dem Flag --csek-key-file, um eine VM zu starten, die Verschlüsselungsschlüssel verwendet. Wenn Sie einen mit RSA verpackten Schlüssel verwenden, nutzen Sie den Befehl gcloud beta.

gcloud compute instances start VM_NAME \
    --csek-key-file ENCRYPTION_KEY_FILE

Dabei gilt:

  • VM_NAME: Name der VM, die Sie starten möchten
  • ENCRYPTION_KEY_FILE: der relative Pfad zur JSON-Datei, die den Verschlüsselungsschlüssel enthält. Mit diesem Schlüssel werden nichtflüchtige Speicher verschlüsselt, die an die VM angehängt sind. Weitere Informationen finden Sie unter Dateiformat für Verschlüsselungsschlüssel.

API

Um eine VM mit Verschlüsselungsschlüsseln zu starten, stellen Sie mit der Methode instances.startWithEncryptionKey eine POST-Anfrage:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/startWithEncryptionKey
    {
      "disks": [
        {
           "source": "DISK_URL",
           "diskEncryptionKey": {
             "ENCRYPTION_TYPE": "ENCRYPTION_KEY"
           }
        }
      ]
    }
 

Dabei gilt:

  • PROJECT_ID: Projekt, in dem sich Ihre VM befindet
  • ZONE: Zone, in der sich Ihre VM befindet
  • VM_NAME: Name der VM, die Sie starten möchten
  • DISK_URL: Ressourcen-URL, die dem vollständigen Ressourcennamen des angehängten Laufwerks entspricht und mit einem vom Kunden bereitgestellten Verschlüsselungsschlüssel verschlüsselt ist
  • ENCRYPTION_TYPE: Der Typ der verwendeten Laufwerksverschlüsselung: rawKey, kmsKeyName oder rsaEncryptedKey. Wenn Sie rsaEncryptedKey verwenden, müssen Sie die Beta API anstelle der v1 API verwenden.
  • ENCRYPTION_KEY: Verschlüsselungsschlüssel, mit dem Sie nichtflüchtige Speicher verschlüsseln, die an die VM angehängt sind. Schlüssel vom Typ rawKey oder rsaEncryptedKey müssen base64-codiert sein. Bereiten Sie einen Schlüssel vom Typ rsaEncryptedKey vor. Folgen Sie dazu der Anleitung unter RSA-Schlüsselverpackung.

VM zurücksetzen

Das Zurücksetzen einer VM ist vergleichbar mit dem Zurücksetzen eines Computers durch Drücken der Reset-Taste oder Drücken und längeres Halten der Ein/Aus-Taste. Durch das Zurücksetzen einer VM wird der Speicherinhalt der Maschine gelöscht und die VM auf ihren Ausgangstatus zurückgesetzt. Die VM fährt das Gastbetriebssystem nicht ordnungsgemäß herunter. Während dieses Vorgangs bleibt die VM im Status RUNNING.

Zum Zurücksetzen einer ausgeführten VM verwenden Sie die Google Cloud Console, das gcloud-Tool oder die Compute Engine API.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite VM-Instanzen.

    Zu „VM-Instanzen“

  2. Wählen Sie eine oder mehrere VMs aus, die Sie zurücksetzen möchten.

  3. Klicken Sie auf Zurücksetzen.

gcloud

Verwenden Sie zum Zurücksetzen einer ausgeführten VM den Befehl gcloud compute instances reset und geben Sie eine oder mehrere VMs an, die Sie zurücksetzen möchten:

gcloud compute instances reset VM_NAME

Ersetzen Sie dabei VM_NAME durch den Namen der VM, die Sie zurücksetzen möchten.

API

Zum Zurücksetzen einer VM erstellen Sie eine POST-Anfrage mit der Methode instances.reset:

 POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/reset

Dabei gilt:

  • PROJECT_ID: Projekt, in dem sich Ihre VM befindet
  • ZONE: Zone, in der sich Ihre VM befindet
  • VM_NAME: Name der VM, die Sie zurücksetzen möchten.

Um Ihre VM mithilfe von Clientbibliotheken zurückzusetzen, stellen Sie eine Anfrage mit der Methode instances().reset:

def resetInstance(auth_http, gce_service):
  request = gce_service.instances().reset(project="myproject", zone="us-central1-a", instance="example-instance")

  print response

Wenn Sie den Befehl reset ausführen, wird der nachfolgende Zonenvorgang DONE zurückgegeben, nachdem die VM heruntergefahren wurde.

Andere Neustartmethoden

Sie können Ihre VM auch mit den folgenden Methoden zurücksetzen:

  • sudo reboot (nur Linux): Rufen Sie diese Methode innerhalb der VM auf. Diese Methode löscht den Arbeitsspeicher und initialisiert die VM mit den ursprünglichen Metadaten, dem Image und den nichtflüchtigen Speichern neu. Mit diesem Befehl werden keine aktualisierten Versionen des Images abgerufen und die VM behält dieselbe sitzungsspezifische IP-Adresse bei. Dies ist vergleichbar mit einem Neustart Ihres Computers.
  • Windows-VM neu starten: Sie können eine Windows-VM ähnlich wie mit sudo reboot im vorherigen Beispiel über das Startmenü neu starten. Klicken Sie dazu im Startmenü auf den Pfeil neben Abmelden und dann auf Neu starten.

Nächste Schritte