Instanzen starten und beenden


Auf dieser Seite wird das Anhalten und Starten von VM-Instanzen beschrieben. Informationen zum Anhalten und Fortsetzen einer Instanz finden Sie unter Instanz anhalten und fortsetzen. Weitere Informationen zum Beenden und Anhalten einer Instanz erhalten Sie unter Lebenszyklus von Instanzen.

Sie können eine Instanz vorübergehend beenden, 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. Sie müssen eine Instanz beenden, wenn Sie den Maschinentyp ändern, angehängte Laufwerke hinzufügen oder entfernen, die Mindest-CPU-Plattform ändern, GPUs hinzufügen oder entfernen oder Größenempfehlungen anwenden möchten.

Wenn eine Instanz beendet wird, sendet Compute Engine das Signal ACPI Shutdown an die Instanz. 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 Instanz dann in den Status TERMINATED.

Eine beendete Instanz verursacht keine Kosten. Alle Ressourcen, die an diese Instanz angehängt sind, werden aber 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 beendete Instanz so neu konfigurieren, dass sie diese Ressourcen nicht mehr verwendet, und anschließend die Ressourcen löschen.

Wenn Sie das Gastbetriebssystem und den Anwendungsstatus beibehalten möchten, halten Sie stattdessen die Instanz an.

Vorbereitung

Beschränkungen

Sie können keine Instanz mit einer angehängten lokalen SSD beenden. Das Herunterfahren einer Instanz aus dem Gastbetriebssystem heraus wird von Compute Engine nicht verhindert, wenn die Instanz eine lokale SSD hat. Treffen Sie daher entsprechende 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 zu einer anderen Instanz migrieren, bevor Sie die Instanz vollständig löschen. Compute Engine verhindert nicht, dass das Gastbetriebssystem auf einer Instanz mit einer lokalen SSD heruntergefahren wird. Treffen Sie daher entsprechende Vorsichtsmaßnahmen.

Abrechnung

Instanzen mit dem Status TERMINATED werden nicht pro Sekunde abgerechnet und nicht auf Ihr regionales CPU-Kontingent angerechnet. Sie können also nicht verwendete Instanzen beenden, damit Ihnen keine Instanzen in Rechnung gestellt werden, die nicht aktiv sind. Anschließend haben Sie die Möglichkeit, diese Instanzen mit den gleichen Instanzattributen, Metadaten und Ressourcen wieder zu starten.

Instanzen mit dem Status TERMINATED werden nicht pro Sekunde abgerechnet. Ressourcen, die mit der virtuellen Maschine verbunden sind, wie etwa statische IP-Adressen und nichtflüchtige Speicher, werden dagegen in Rechnung gestellt, bis sie gelöscht werden.

Instanz beenden

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

Console

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

    Zur Seite „VM-Instanzen“

  2. Wählen Sie eine oder mehrere Instanzen aus, die Sie anhalten 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/us-central1-f/instances/example-instance/stop

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

Sobald die Instanz den Status TERMINATED hat, können Sie die Instanz neu starten oder die Instanz löschen. Die Instanz kann für unbegrenzte Zeit auch im Status TERMINATED verbleiben. Wenn Sie die Instanz jedoch nicht wieder neu starten möchten, sollten Sie sie besser löschen.

Instanzen über das Betriebssystem anhalten

Optional können Sie eine Instanz über das Gastbetriebssystem mit dem Befehl sudo shutdown -h now oder sudo poweroff beenden. Führen Sie dazu einen der folgenden Befehle aus, während Sie bei der virtuellen Maschine angemeldet sind:

me@example-instance:~$ sudo shutdown -h now
me@example-instance:~$ sudo poweroff

Beendete Instanz ohne verschlüsseltes Laufwerk neu 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.

Mit der Methode start wird eine Instanz mit dem Status TERMINATED neu gestartet, während Methoden wie reset() und sudo reboot nur mit ausgeführten Instanzen funktionieren. Nahezu alle Instanzen können neu gestartet werden, wenn ihr Status TERMINATED ist.

Console

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

    Zur Seite "VM-Instanzen"

  2. Klicken Sie auf die Kästchen neben den Instanzen, die gestartet werden sollen.

  3. Klicken Sie auf Start.

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:

https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/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="us-central1-a", instance="example-instance")
  response = request.execute(auth_http)

  print response

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

Instanzen mit verschlüsselten Laufwerken neu starten

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

Beim Starten der Instanz geben Sie den Schlüssel mit dem Flag --csek-key-file und mit dem Namen des Laufwerks an. 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 dabei Folgendes:

  • INSTANCE_NAME ist der Name der Instanz.
  • ENCRYPTION_KEY ist der 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 zu starten, die einen Verschlüsselungsschlüssel verwendet. Wenn Sie einen mit RSA verpackten Schlüssel nutzen, 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"
       }
    }
  ]
}

Dabei gilt:

  • PROJECT_ID ist Ihre Projekt-ID.
  • ZONE ist die Zone für diese Instanz.
  • INSTANCE_NAME ist der Name der Instanz.
  • ENCRYPTION_KEY ist der Verschlüsselungsschlüssel, mit dem Sie nichtflüchtige Speicher verschlüsseln, die an die Instanz angehängt sind.
  • DISK_NAME ist das angehängte 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.

Sie können eine ausgeführte Instanz mit der Schaltfläche Zurücksetzen in der Cloud Console, mit dem gcloud-Befehl instances reset 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. Wählen Sie eine oder mehrere Instanzen aus, die zurückgesetzt werden sollen.

  3. Klicken Sie auf Zurücksetzen.

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:

https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/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="us-central1-a", instance="example-instance")

  print response

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

Nach Ausführung des Befehls reset gibt der nachfolgende Zonenvorgang DONE zurück, nachdem die Instanz vollständig heruntergefahren wurde.

Weitere Neustartmethoden

Sie können Ihre Instanz auch mithilfe der folgenden Methoden neu starten:

  • sudo reboot (nur Linux): Rufen Sie diese Methode innerhalb der Instanz auf. Diese Methode löscht den Arbeitsspeicher und initialisiert die Instanz 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 Instanz behält dieselbe sitzungsspezifische IP-Adresse bei. Dies ist vergleichbar mit einem Neustart Ihres Computers.
  • Windows-Instanz neu starten: Sie können eine Windows-Instanz ähnlich wie mit sudo reboot oben über das Startmenü neu starten. Klicken Sie dazu im Startmenü auf den Pfeil neben Abmelden und dann auf Neu starten.
  • 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