In diesem Dokument wird beschrieben, wie Sie Compute Engine-Instanzen anhalten oder fortsetzen. Weitere Informationen zum Anhalten, Beenden oder Zurücksetzen von Instanzen finden Sie unter Compute Engine-Instanzen anhalten, beenden oder zurücksetzen.
Wenn Sie Ihre Compute Engine-Instanz behalten, aber nicht in Rechnung stellen möchten, wenn sie nicht verwendet wird, können Sie die Instanz anhalten. Wenn Sie eine Instanz anhalten, wird die Instanz beibehalten und der Inhalt des Instanzspeichers wird in den Speicher migriert. Nach dem Fortsetzen der Instanz migriert Compute Engine den Arbeitsspeicher der Instanz aus dem Speicher zurück zur Instanz und die Instanz wird wieder ausgeführt.
Das Anhalten einer Compute Engine-Instanz ist in folgenden Fällen nützlich:
Entwicklungs- und Testumgebungen, die zu bestimmten Zeiten (z. B. abends oder am Wochenende) nicht vollständig genutzt werden und die Sie beibehalten möchten, um Kosten zu sparen oder schneller initialisiert zu werden, als die Erstellung neuer Instanzen dauern würde.
Anwendungen, die nach dem Starten der Instanz erst einmal lange initialisiert werden müssen, bevor die Anwendung zur Verarbeitung ihrer ersten Anfrage bereit ist. Beispiele für solche Anwendungen sind virtuelle Entwickler-Workstations oder komplexe Java-Anwendungen.
Beschränkungen
Wenn Sie eine Compute-Instanz anhalten, gelten die folgenden Einschränkungen:
Sie können eine Instanz nur anhalten, wenn das Gastbetriebssystem dies unterstützt. Weitere Informationen finden Sie unter Details zu Betriebssystemen.
Sie können eine Instanz, die die folgenden Betriebssystem-Images verwendet, nur anhalten, wenn Sie das Betriebssystem konfigurieren, wie in diesem Dokument beschrieben:
Debian 8 oder 9
Beliebiges Windows-Betriebssystem
Sie können eine Instanz nur bis zu 60 Tage lang anhalten, bevor Compute Engine ihren Status automatisch in
TERMINATEDändert.Sie können Spot-VMs oder Instanzen auf Abruf anhalten. Wenn Compute Engine die Instanz jedoch vor Abschluss des Anhaltevorgangs vorzeitig beendet, wird der Anhaltevorgang beendet und die Instanz vorzeitig beendet.
Sie können Instanzen nicht mithilfe der Standardprozesse anhalten, die in die Gastumgebung eingebunden sind. Befehle wie
systemctl suspendin Ubuntu 16.04 oder höher werden nicht unterstützt. Wenn diese Funktion aufgerufen wird, ignoriert Compute Engine das Gastsignal.Die folgenden Instanztypen können Sie nicht anhalten:
Bare-Metal-Instanzen.
Confidential VMs
Instanzen mit angehängten GPUs.
Instanzen mit mehr als 208 GB Arbeitsspeicher.
Instanzen, an die CSEK-geschützte Laufwerke angehängt sind.
Suspend-Vorgänge für ein Gastbetriebssystem aktivieren
Wenn auf Ihrer Compute-Instanz Debian 8 oder 9 als Gastbetriebssystem oder ein beliebiges Windows-Betriebssystem ausgeführt wird, müssen Sie das Betriebssystem konfigurieren, bevor Sie Instanzen anhalten und fortsetzen können. Wenn auf Ihrer Instanz ein anderes Gastbetriebssystem verwendet wird, überspringen Sie diesen Abschnitt.
Ruhezustand unter Debian 8 oder 9 aktivieren
Bevor Sie Compute-Instanzen, die Debian 8 oder 9 als Gastbetriebssystem verwenden, anhalten oder fortsetzen können, müssen Sie das Gastbetriebssystem mit einer der folgenden Methoden konfigurieren:
ACPID konfigurieren
Wenn Sie den Ruhemodus und das Fortsetzen des Betriebs in Debian 8 oder 9 aktivieren möchten, können Sie den ACPID-Daemon (Advanced Configuration and Power Interface events Daemon) so konfigurieren, dass das Schaltflächenereignis für den Ruhemodus verarbeitet wird. Nachdem Sie das Schaltflächenereignis für den Tiefschlafmodus aktiviert haben, können Sie ein Shell-Skript für die Verarbeitung des Ruhemodusereignisses hinzufügen, wie in diesem Abschnitt beschrieben.
So konfigurieren Sie ACPID zur Unterstützung von Anhalten und Fortsetzen:
Stellen Sie eine Verbindung zu Ihrer Linux-Instanz her, falls noch nicht geschehen.
Erstellen Sie den Ordner
eventsim Ordneracpi:sudo mkdir -p /etc/acpi/events/Konfigurieren Sie ACPID so, dass das Schaltflächenereignis für den Ruhemodus verarbeitet wird:
cat <<EOF | sudo tee /etc/acpi/events/sleepbtn-acpi-support event=button[ /]sleep action=/etc/acpi/sleepbtn-acpi-support.sh EOFErstellen Sie das Skript zur Verarbeitung von Ruhemodusereignissen:
cat <<EOF | sudo tee /etc/acpi/sleepbtn-acpi-support.sh #!/bin/sh echo mem > /sys/power/state EOFLegen Sie die Berechtigungen für das Skript fest:
sudo chmod 755 /etc/acpi/sleepbtn-acpi-support.shDamit die Änderungen wirksam werden, starten Sie den ACPID neu:
sudo systemctl restart acpid.service
D-Bus installieren
Wenn Sie den Vorgang zum Anhalten und Fortsetzen in Debian 8 oder 9 aktivieren möchten, können Sie D-Bus installieren.
So installieren Sie D-Bus im Gastbetriebssystem Ihrer Compute-Instanz, wenn das Betriebssystem Debian 8 oder 9 verwendet:
Stellen Sie eine Verbindung zu Ihrer Linux-Instanz her, falls noch nicht geschehen.
Installieren Sie D-Bus:
sudo apt-get install dbusDamit die Änderungen wirksam werden, starten Sie
logindneu:sudo systemctl restart systemd-logind.service
Vorgänge zum Anhalten unter Windows aktivieren
Wenn Sie eine Instanz mit einem Windows-Gastbetriebssystem anhalten möchten, müssen Sie den Ruhezustand im Betriebssystem deaktivieren. Wenn Sie ein Windows-Image importiert haben, ist der Ruhezustand möglicherweise standardmäßig aktiviert. Sie müssen ihn deaktivieren, um die Instanz in den Suspend-Modus zu versetzen.
So deaktivieren Sie den Ruhezustand in Windows:
Stellen Sie eine Verbindung zu Ihrer Windows-Instanz her, falls Sie dies noch nicht getan haben.
Öffnen Sie PowerShell als Administrator.
Ruhezustand deaktivieren:
powercfg -h offPrüfen Sie, ob der Ruhezustand deaktiviert ist:
powercfg -a
Hinweis
-
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 aus, der Ihrer geplanten Verwendung der Beispiele auf dieser Seite entspricht:
Console
Wenn Sie über die Google Cloud Console auf Google Cloud Dienste und APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.
gcloud
-
Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:
gcloud initWenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
- Legen Sie eine Standardregion und -zone fest.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Go
Wenn Sie die Go-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Wenn Sie die Java-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Wenn Sie die Node.js-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Wenn Sie die PHP-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Wenn Sie die Python-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
REST
Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.
Installieren Sie die Google Cloud CLI.
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.
Erforderliche Rollen
Um die Berechtigungen zu erhalten, die Sie zum Anhalten oder Fortsetzen einer Compute-Instanz benötigen, bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) für die Instanz zu gewähren.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Anhalten oder Fortsetzen einer Compute-Instanz erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um eine Compute-Instanz anzuhalten oder fortzusetzen:
-
So halten Sie eine Instanz an:
compute.instances.suspend -
So setzen Sie eine Instanz fort:
compute.instances.resume
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Instanz anhalten
Wenn auf dem Gastbetriebssystem Ihrer Compute-Instanz Debian 8 oder 9 ausgeführt wird, müssen Sie das Gastbetriebssystem konfigurieren, um Vorgänge zum Anhalten und Fortsetzen zu unterstützen, wie in diesem Dokument beschrieben, bevor Sie die Instanz anhalten.
Verwenden Sie eine der folgenden Methoden, um eine Instanz anzuhalten, je nachdem, ob an die Instanz lokale SSD-Laufwerke angehängt sind:
Wenn Ihrer Instanz keine lokalen SSD-Laufwerke angehängt sind, lesen Sie den Abschnitt Instanz ohne lokale SSD-Laufwerke aussetzen.
Wenn Ihrer Instanz lokale SSD-Laufwerke angehängt sind und Sie die lokalen SSD-Daten der Laufwerke entweder verwerfen oder beibehalten möchten (Vorabversion), lesen Sie den Abschnitt Instanz mit lokalen SSD-Laufwerken anhalten.
Instanz ohne lokale SSD-Laufwerke anhalten
Sie können mehrere Compute-Instanzen gleichzeitig oder einzelne Instanzen anhalten. Verwenden Sie für mehrere Instanzen die Google Cloud Console oder, für Instanzen in derselben Zone, die Google Cloud CLI. Wählen Sie für einzelne Instanzen eine der folgenden Optionen aus:
Console
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Wählen Sie eine oder mehrere Instanzen aus, die angehalten werden sollen.
Klicken Sie auf Sperren und dann zur Bestätigung auf Sperren.
gcloud
Wenn Sie eine oder mehrere Instanzen in einer einzelnen Zone anhalten möchten, verwenden Sie den Befehl gcloud compute instances suspend:
gcloud compute instances suspend INSTANCE_NAMES \
--zone=ZONE
Ersetzen Sie Folgendes:
INSTANCE_NAMES: Eine durch Leerzeichen getrennte Liste mit Namen von Instanzen, z. B.instance-01 instance-02 instance-03.ZONE: die Zone, in der sich die Instanzen befinden.
Go
Java
Node.js
PHP
Python
REST
Senden Sie zum Anhalten einer Instanz eine POST-Anfrage an die Methode instances.suspend:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/suspend
Ersetzen Sie Folgendes:
PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.ZONE: die Zone, in der sich die Instanz befindet.INSTANCE_NAME: der Name der Instanz.
Instanz mit lokalen SSD-Laufwerken anhalten
Führen Sie je nachdem, wie viele Compute-Instanzen Sie gleichzeitig anhalten möchten und ob Sie die Daten der angehängten lokalen SSDs beibehalten müssen, die folgenden Schritte aus:
Wenn Sie die Daten der an eine Instanz angehängten lokalen SSD-Laufwerke beibehalten möchten (mit Ausnahme von Instanzen mit Titanium-SSDs), halten Sie die Instanz mit der gcloud CLI oder der REST API an.
Wenn Sie mehrere Instanzen gleichzeitig anhalten möchten, verwenden Sie die Google Cloud Console oder, für Instanzen in derselben Zone, die gcloud CLI.
Wenn Sie eine oder mehrere Instanzen mit angehängten lokalen SSD-Laufwerken anhalten möchten, wählen Sie eine der folgenden Optionen aus:
Console
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Wählen Sie eine oder mehrere Instanzen aus, die angehalten werden sollen.
Klicken Sie auf Sperren und dann zur Bestätigung auf Sperren.
gcloud
Wenn Sie eine oder mehrere Instanzen in einer einzelnen Zone anhalten, an die lokale SSD-Laufwerke angehängt sind, geben Sie an, ob die lokalen SSD-Daten verworfen oder beibehalten werden sollen:
Verwenden Sie den Befehl
gcloud compute instances suspendmit dem Flag--discard-local-ssd=true, um lokale SSD-Daten zu verwerfen:gcloud compute instances suspend INSTANCE_NAMES \ --discard-local-ssd=true \ --zone=ZONEWenn Sie lokale SSD-Daten beibehalten möchten, verwenden Sie den Befehl
gcloud beta compute instances suspendmit dem Flag--discard-local-ssd=false:gcloud beta compute instances suspend INSTANCE_NAMES \ --discard-local-ssd=false \ --zone=ZONE
Ersetzen Sie Folgendes:
INSTANCE_NAMES: Eine durch Leerzeichen getrennte Liste mit Namen von Instanzen, z. B.instance-01 instance-02 instance-03.ZONE: die Zone, in der sich die Instanzen befinden.
REST
Wenn Sie eine Instanz mit angehängten lokalen SSD-Laufwerken anhalten, geben Sie an, ob die lokalen SSD-Daten verworfen oder beibehalten werden sollen:
Senden Sie eine
POST-Anfrage an die Methodeinstances.suspend, um lokale SSD-Daten zu verwerfen. Fügen Sie in der Anfrage-URL den AbfrageparameterdiscardLocalSsdein, wobei dieser auftruegesetzt ist:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/suspend?discardLocalSsd=trueWenn Sie Daten auf der lokalen SSD beibehalten möchten, stellen Sie eine
POST-Anfrage an die Methodebeta.instances.suspend. Fügen Sie in der Anfrage-URL den AbfrageparameterdiscardLocalSsdein, wobei dieser auffalsegesetzt ist:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/suspend?discardLocalSsd=false
Ersetzen Sie Folgendes:
PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.ZONE: die Zone, in der sich die Instanz befindet.INSTANCE_NAME: der Name der Instanz.
Eine angehaltene Instanz fortsetzen
Bevor Sie eine angehaltene Compute-Instanz fortsetzen, sollten Sie Folgendes berücksichtigen:
Sie können eine Instanz nur dann fortsetzen, wenn in der Zone, in der sich die Instanz befindet, genügend Kapazität vorhanden ist. Das ist in der Regel kein Problem. Wenn Sie Probleme beim Fortsetzen einer Instanz haben, versuchen Sie es später noch einmal.
Wenn Sie lokale SSD-Laufwerke an die Instanz angehängt und die Option zum Beibehalten lokaler SSD-Daten beim Anhalten ausgewählt haben, müssen Sie die lokalen SSD-Laufwerke nach dem Fortsetzen möglicherweise neu einbinden. Weitere Informationen finden Sie unter Nicht-Bootlaufwerke auf Linux-Instanzen neu bereitstellen oder Nicht-Bootlaufwerke auf Windows-Instanzen neu bereitstellen.
Sie können mehrere Instanzen gleichzeitig oder einzelne Instanzen fortsetzen. Bei mehreren Instanzen verwenden Sie die Google Cloud Console oder, für Instanzen in derselben Zone, die gcloud CLI. Wählen Sie für einzelne Instanzen eine der folgenden Optionen aus:
Console
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Wählen Sie eine oder mehrere angehaltene Instanzen aus, die fortgesetzt werden sollen.
Klicken Sie auf Starten / Fortsetzen und dann auf Starten.
gcloud
Wenn Sie eine oder mehrere angehaltene Instanzen in einer einzelnen Zone fortsetzen möchten, verwenden Sie den Befehl gcloud compute instances resume:
gcloud compute instances resume INSTANCE_NAMES \
--zone=ZONE
Ersetzen Sie Folgendes:
INSTANCE_NAMES: Eine durch Leerzeichen getrennte Liste mit Namen von Instanzen, z. B.instance-01 instance-02 instance-03.ZONE: die Zone, in der sich die gesperrten Instanzen befinden.
Go
Java
Node.js
PHP
Python
REST
Wenn Sie eine angehaltene Instanz fortsetzen möchten, senden Sie eine POST-Anfrage an die Methode instances.resume:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/resume
Ersetzen Sie Folgendes:
INSTANCE_NAME: der Name der angehaltenen Instanz, die fortgesetzt werden soll.PROJECT_ID: Die ID des Projekts, in dem sich die gesperrte Instanz befindet.ZONE: die Zone, in der sich die gesperrte Instanz befindet.