Instanzen starten und beenden

Auf dieser Seite wird das Anhalten und Starten von VM-Instanzen beschrieben. Eine Tabelle, in der die Unterschiede zwischen dem Anhalten, Zurücksetzen und Löschen einer Instanz verglichen werden, finden Sie unter Lebenszyklus von Instanzen.

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

Das Anhalten einer Instanz veranlasst Compute Engine, das ACPI Power Off-Signal zur Instanz zu senden. Moderne Gastbetriebssysteme sind so konfiguriert, dass sie sauber herunterfahren, bevor sie sich als Reaktion auf das Abschaltsignal ausschalten. Compute Engine wartet eine kurze Zeit, damit das Gastsystem vollständig heruntergefahren werden kann, und versetzt die Instanz dann in den Status TERMINATED.

Eine angehaltene Instanz verursacht keine Kosten, aber alle Ressourcen, die an diese Instanz angehängt sind, werden in Rechnung gestellt. Beispielsweise werden nichtflüchtige Speicher und externe IP-Adressen gemäß der Preisliste weiterhin in Rechnung gestellt, selbst wenn die Instanz angehalten wurde. Um keine weiteren Kosten für die angehängten Ressourcen zu verursachen, können Sie eine angehaltene Instanz so neu konfigurieren, dass sie diese Ressourcen nicht mehr verwendet, und anschließend die Ressourcen löschen.

Vorbereitung

Beschränkungen

Sie können eine Instanz mit einer angehängten lokalen SSD nicht anhalten. Das Herunterfahren einer Instanz aus dem Gastbetriebssystem heraus wird von Compute Engine nicht verhindert, wenn die Instanz über eine lokale SSD verfügt. Treffen Sie daher zusätzliche Vorsichtsmaßnahmen.

Lokale SSDs

Sie können keine Instanz anhalten, der eine lokale SSD angehängt ist. In diesem Fall müssen Sie die kritischen Daten von der SSD zu einem nichtflüchtigen Speicher oder einer anderen Instanz migrieren, bevor Sie die Instanz vollständig löschen. Das Herunterfahren des Gastbetriebssystems einer Instanz mit einer lokalen SSD wird von Compute Engine nicht verhindert. Ergreifen Sie daher zusätzliche Vorsichtsmaßnahmen für das Herunterfahren von Gastbetriebssystemen auf Ihren Instanzen.

Abrechnung

Google stellt keine VM-Ressourcen in Rechnung, wenn sich die VMs im Zustand TERMINATED befinden.

Wenn eine VM im Zustand RUNNING ist und gerade angehalten wird (aber noch nicht TERMINATED ist), werden von Google vCPUs, Arbeitsspeicher, GPUs und die lokale SSD-Nutzung in Rechnung gestellt. Nachdem der Zustand STOPPING geendet hat und die VM in den Zustand TERMINATED wechselt, beendet Google die Abrechnung der oben genannten Ressourcen.

Für andere Ressourcen, die an eine VM im Zustand TERMINATED angehängt sind, fallen weiterhin Kosten an, z. B. für nichtflüchtige Speicher und statische externe IP-Adressen.

Weitere Informationen zu Instanzzuständen bzw. -status finden Sie unter Lebenszyklus von Instanzen.

Instanz beenden

Sie können eine Instanz über die Google Cloud Console, das gcloud-Tool oder die API anhalten.

Console

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

    Zur Seite "VM-Instanzen"

  2. Wählen Sie eine oder mehrere Instanzen aus, die Sie beenden möchten.
  3. Klicken Sie auf Beenden.

gcloud

Verwenden Sie den Befehl instances stop und geben Sie eine oder mehrere Instanzen an, die Sie anhalten möchten.

gcloud compute instances stop example-instance-1 example-instance-2

API

Stellen Sie in der API eine POST-Anfrage, um die Instanz anzuhalten.

POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/zone/instances/example-instance/stop

Eine Instanz mit dem Status TERMINATED existiert immer noch mit ihren Konfigurationseinstellungen und Instanzmetadaten, verliert jedoch ihre im Speicher befindlichen Daten und den Status der virtuellen Maschine. Alle Ressourcen, die noch an die beendete Instanz angehängt sind, bleiben angehängt, bis Sie diese Ressourcen manuell trennen oder die Instanz löschen.

Sobald der Status der Instanz TERMINATED ist, können Sie die Instanz neu starten oder die Instanz löschen. Sie können eine Instanz auch für unbegrenzte Zeit im Status TERMINATED belassen. Wenn Sie die Instanz jedoch nicht wieder neu starten möchten, sollten Sie sie lieber löschen.

Instanzen über das Betriebssystem anhalten

Sie haben auch die Möglichkeit, eine Instanz über das Gastbetriebssystem anzuhalten.

Linux

Verwenden Sie den Befehl sudo shutdown -h now oder sudo poweroff. Führen Sie einen dieser Befehle aus, während Sie bei der VM angemeldet sind:

sudo shutdown -h now
sudo poweroff

Windows

Um eine VM-Instanz basierend auf dem Windows-Betriebssystem zu beenden, klicken Sie im Startmenü auf den Pfeil neben Abmelden und anschließend auf Herunterfahren.

Angehaltene Instanzen starten

Verwenden Sie zum Starten einer angehaltenen Instanz die Methode instances().start. Dadurch wird eine angehaltene VM-Instanz gestartet, die sich derzeit im Zustand TERMINATED befindet.

Über die Methode start wird eine Instanz mit dem Status TERMINATED neu gestartet, wohingegen Methoden wie reset() und sudo reboot nur mit laufenden Instanzen funktionieren. Die meisten Instanzen können neu gestartet werden, solange sich die Instanz im Zustand TERMINATED befindet, mit Ausnahme von Instanzen mit angehängten lokalen SSDs, die nicht neu gestartet werden können.

Console

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

    Zur Seite "VM-Instanzen"

  2. Wählen Sie die Instanzen aus, die Sie neu starten möchten.
  3. Klicken Sie auf Starten.

gcloud

So setzen Sie die Instanz mit gcloud compute zurück:

gcloud compute instances start example-instance

API

Stellen Sie in der API eine POST-Anfrage an den folgenden URI und passen Sie die Bezeichnung des Projekts, der Zone und der Instanz entsprechend an:

POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/zone/instances/example-instance/start

Um Ihre Instanz mithilfe der 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="zone", instance="example-instance")
  response = request.execute(auth_http)

      print response

Weitere Informationen zu dieser Methode finden Sie in der Referenzdokumentation zu instances().start.

Angehaltene Instanz starten, die verschlüsselte Laufwerke hat

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

Console

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

    Zur Seite "VM-Instanzen"

  2. Klicken Sie auf den Namen der Instanz, die Sie starten möchten. Dadurch wird die Seite mit den Instanzdetails geöffnet.
  3. Klicken Sie auf Starten. Geben Sie im folgenden Fenster Verschlüsselungsschlüssel für die Geräte an, die an diese Instanz angehängt sind.
  4. Geben Sie Verschlüsselungsschlüssel für alle verschlüsselten Laufwerke an, die an diese Instanz angehängt sind.
  5. Klicken Sie nun auf Starten, um die Instanz zu starten.

gcloud

Stellen Sie den Schlüssel mit dem Flag --csek-key-file sowie den Namen des Laufwerks bereit, wenn Sie die Instanz starten. Wenn Sie einen mit RSA verpackten Schlüssel verwenden, nutzen Sie die Komponente gcloud beta:

gcloud compute instances start instance-name \
  --csek-key-file encryption-key

Ersetzen Sie Folgendes:

  • instance-name: Name der Instanz
  • encryption-key: Verschlüsselungsschlüssel, mit dem Sie nichtflüchtige Speicher verschlüsseln, die an die Instanz angehängt sind

API

Erstellen Sie in der API eine POST-Anfrage, um die Instanz mit einem Verschlüsselungsschlüssel zu starten. Wenn Sie einen mit RSA verpackten Schlüssel verwenden, senden Sie Ihre Anfrage an die Beta API statt an die v1 API.

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name/startWithEncryptionKey
{
  "instanceEncryptionKey": {
    "rsaEncryptedKey": "encryption-key"
  },
  "disk": [
    {
       "source": "disk-name",
       "diskEncryptionKey": {
         "rsaEncryptedKey": "encryption-key"
       }
    }
  ]
}

Ersetzen Sie Folgendes:

  • project-id: Ihre Projekt-ID.
  • zone: Zone für diese Instanz
  • instance-name: Name der Instanz
  • encryption-key: Verschlüsselungsschlüssel, mit dem Sie nichtflüchtige Speicher verschlüsseln, die an die Instanz angehängt sind
  • disk-name: angehängtes Laufwerk, das mit einem vom Kunden bereitgestellten Verschlüsselungsschlüssel verschlüsselt wurde

Instanz zurücksetzen

Das Zurücksetzen einer Instanz 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 Instanz wird das Löschen des Speicherinhalts der Maschine erzwungen und die VM in ihren Ausgangszustand zurückgesetzt. Die Instanz fährt das Gastbetriebssystem nicht ordnungsgemäß herunter. Während dieses Vorgangs bleibt die Instanz im Status RUNNING.

Beim Zurücksetzen einer Instanz wird keines ihrer Attribute geändert. Die Instanz behält Attribute wie ihre sitzungsspezifische IP-Adresse, ihre statische externe IP-Adresse, ihren nichtflüchtigen Speicher und ihren Maschinentyp. Alle Daten im Arbeitsspeicher werden jedoch zurückgesetzt. Wenn Sie die Daten im Arbeitsspeicher behalten möchten, müssen Sie die Daten sichern.

Sie können eine ausgeführte Instanz mit der Schaltfläche Zurücksetzen in der Cloud Console, mit dem Befehl instances reset in gcloud oder mit einer POST-Anfrage in der API zurücksetzen.

Console

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

    Zur Seite "VM-Instanzen"

  2. Klicken Sie das Kästchen neben den Instanzen an, die Sie zurücksetzen möchten.
  3. Klicken Sie auf Zurücksetzen, um die Instanzen zurückzusetzen.

gcloud

So setzen Sie die Instanz mit gcloud compute zurück:

gcloud compute instances reset example-instance

API

Stellen Sie in der API eine POST-Anfrage an den folgenden URI und passen Sie die Bezeichnung des Projekts, der Zone und der Instanz entsprechend an:

POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/zone/instances/example-instance/reset

Um Ihre Instanz mithilfe der 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="zone", instance="example-instance")
  response = request.execute(auth_http)

  print response

Weitere Informationen zu dieser Methode finden Sie in der Referenzdokumentation zu instances().reset.

Nach dem Ausführen des Befehls reset gibt der nachfolgende Zonenvorgang DONE zurück, nachdem die Instanz vollständig heruntergefahren wurde und der Neustart begonnen hat.

Andere Neustartmethoden

Alternativ können Sie die Instanz mithilfe der folgenden Befehle zurücksetzen:

  • sudo reboot (nur unter Linux): Aufruf erfolgt von innerhalb der Instanz. Löscht den Arbeitsspeicher und initialisiert die Instanz mit den ursprünglichen Metadaten, dem Image und den nichtflüchtigen Speichern neu. sudo reboot verwendet keine aktualisierten Versionen des Images und die Instanz behält dieselbe sitzungsspezifische IP-Adresse. Diese Methode ist vergleichbar mit einem Neustart Ihres Computers.
  • gcloud compute instances delete gefolgt von gcloud compute instances create: Dies ist ein destruktiver Neustart, bei dem die Instanz mit allen Informationen initialisiert wird, die an gcloud compute instances create übergeben werden. Sie können anschließend etwaige neue Images oder andere Ressourcen auswählen, die Sie verwenden möchten. Die neu gestartete Instanz hat wahrscheinlich eine andere IP-Adresse. Bei dieser Methode erfolgt möglicherweise ein Wechsel der physischen Maschine, auf der die Instanz gehostet wird.

Weitere Informationen