In diesem Dokument wird beschrieben, wie Sie eine VM-Instanz anhalten bzw. fortsetzen. Informationen zum Beenden und Starten einer Instanz finden Sie unter Instanzen starten und beenden. Informationen zum Instanzlebenszyklus finden Sie in der Dokumentation zum Lebenszyklus von Instanzen.
Wenn Sie Ihre VM-Instanz behalten, aber nicht in Rechnung stellen möchten, wenn sie nicht verwendet wird, können Sie die VM anhalten. Wenn Sie eine VM anhalten, behält Google die VM in Ihrem Projekt bei und verschiebt den Inhalt des VM-Arbeitsspeichers in den Speicher. Während die VM gesperrt ist, berechnet Google nur den Speicher, der zum Schutz des VM-Arbeitsspeichers verwendet wird. Attribute wie statische IP-Adressen bleiben bestehen, sodass Netzwerkfunktionen wie erwartet funktionieren, wenn Sie die VM fortsetzen. Nach dem Fortsetzen verschiebt Google den VM-Arbeitsspeicher aus dem Speicher zurück zur Instanz und beginnt mit der Abrechnung der jetzt ausgeführten VM-Instanz.
Das Anhalten einer Instanz ist ideal für:
- Entwicklungs- und Testumgebungen, die zu bestimmten Zeiten (z. B. abends oder am Wochenende) nicht vollständig genutzt werden. So lassen sich Kosten sparen und VM-Instanzen können schneller initialisiert 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.
Funktionsweise der Sperrung
Beim Anhalten einer Instanz wird an das Betriebssystem der Instanz ein ACPI-S3-Suspend-Signal gesendet. Das Anhalten einer Instanz ähnelt dem Schließen eines Laptops. Die Instanz erhält dabei den Status SUSPENDED
.
Das Anhalten einer Instanz unterscheidet sich so vom Beenden einer Instanz:
- Bei einer angehaltenen Instanz bleiben das Gastbetriebssystem, der Gerätestatus und der Anwendungsstatus erhalten.
- Google berechnet den Speicher, der zum Speichern des Arbeitspeichers der Instanz erforderlich ist.
- Sie können eine Instanz nur bis zu 60 Tage anhalten. Nach 60 Tagen wird die Instanz automatisch in den Status
TERMINATED
versetzt.
Alle an die Instanz angehängten Ressourcen bleiben an die Instanz angehängt und werden in Rechnung gestellt, einschließlich nichtflüchtiger Speicher und statischer oder reservierter externer IP-Adressen. All diese Ressourcen werden gemäß der Preisübersicht abgerechnet, auch wenn eine Instanz angehalten wurde.
Sie können eine Instanz nicht mithilfe der Standardprozesse anhalten, die in die Gastumgebung eingebunden sind. Befehle wie systemctl suspend
in Ubuntu 16.04 und höher sind nicht verfügbar. Sie können eine Instanz nur mit der Google Cloud CLI oder REST anhalten.
Wenn Sie den Arbeitsspeicher- und Gerätestatus der Instanz beim Fortsetzen nicht wiederherstellen möchten, können Sie die Instanz beenden. Dabei werden Ihnen keine zusätzlichen Gebühren für das Speichern berechnet.
Hinweise
-
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 wie folgt bei Compute Engine authentifizieren.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Sie können keine Instanzen anhalten, die eine GPU verwenden.
- Sie können eine Instanz nicht mithilfe der Standardprozesse anhalten, die in die Gastumgebung eingebunden sind. Befehle wie
systemctl suspend
in Ubuntu 16.04 und höher sind nicht verfügbar. Das Gastsignal wird ignoriert. - Sie können eine Instanz nur bis zu 60 Tage lang anhalten, bevor die VM-Instanz automatisch beendet wird.
- Sie können Instanzen mit mehr als 208 GB Arbeitsspeicher nicht anhalten.
- Sie können Instanzen auf Abruf anhalten. Die Instanz auf Abruf wird jedoch möglicherweise beendet, bevor sie erfolgreich angehalten wird.
- Sie können eine Confidential VM nicht sperren.
- Sie können keine VM anhalten, an die CSEK-geschützte Laufwerke angehängt sind.
- Instanzarbeitsspeicher (siehe Preise für angehaltene VM-Instanzen)
- Jede Nutzung des nichtflüchtigen Speichers für das Bootlaufwerk und alle zusätzlichen Laufwerke, die mit der Instanz verbunden sind (siehe Preise für nichtflüchtigen Speicher)
- Alle statischen IP-Adressen, die mit der Instanz verbunden sind
- Durch das Anhalten von VMs können Sie Ihre Softwarelizenzgebühren sparen. Wenn Sie beispielsweise Windows-VMs sperren, fallen keine Windows-Lizenzgebühren an. Lizenzgebühren für andere Images können unterschiedliche Nutzungsbedingungen haben und können zu Gebühren führen, auch wenn sie gesperrt werden.
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.
Wenn Sie lokale SSD-Daten verwerfen möchten, wählen Sie SSD-Inhalt verwerfen aus, wenn Sie dazu aufgefordert werden. Wenn die Instanz fortgesetzt wird, sind die Daten auf der mit der Instanz verbundenen lokalen SSD nicht mehr verfügbar.
PROJECT_ID
: die Projekt-IDZONE
: die Zone der VMVM_NAME
: die Instanz, die Sie anhalten möchtenRufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Wählen Sie eine oder mehrere Instanzen aus, die fortgesetzt werden sollen.
Klicken Sie auf Starten/Fortsetzen.
PROJECT_ID
: die Projekt-ID für diese AnfrageZONE
: die Zone der VMVM_NAME
: die Instanz, die fortgesetzt werden sollStellen Sie eine SSH-Verbindung zur VM-Instanz her:
gcloud compute ssh VM_NAME
Erstellen Sie auf der VM-Instanz ein Verzeichnis im Ordner
acpi
: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 EOF
Erstellen Sie das Skript zur Verarbeitung von Ruhemodusereignissen:
cat <<EOF | sudo tee /etc/acpi/sleepbtn-acpi-support.sh #!/bin/sh echo mem > /sys/power/state EOF
Legen Sie die Berechtigungen für das Skript fest:
sudo chmod 755 /etc/acpi/sleepbtn-acpi-support.sh
Starten Sie ACPID neu:
sudo systemctl restart acpid.service
Stellen Sie eine SSH-Verbindung zur VM-Instanz her:
gcloud compute ssh VM_NAME
Installieren Sie
dbus
auf der VM-Instanz:sudo apt-get install dbus
Starten Sie
logind
neu:sudo systemctl restart systemd-logind.service
- Instanz löschen, wenn Sie sie nicht mehr benötigen
- Instanz beenden und starten
- Lebenszyklus von Instanzen
- Wenn Sie Probleme beim Anhalten einer VM haben, lesen Sie den Abschnitt Fehlerbehebung bei der Sperrung von VMs.
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 dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen unter Set up authentication for a local development environment.
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 dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen unter Set up authentication for a local development environment.
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 dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen unter Set up authentication for a local development environment.
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 dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen unter Set up authentication for a local development environment.
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 dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen unter Set up authentication for a local development environment.
REST
Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.
Beschränkungen
Für dieses Feature gelten die folgenden Einschränkungen:
Lokale SSDs
Normalerweise werden alle Daten auf lokalen SSDs mit dem Anhalten einer VM-Instanz, die die lokale SSD verwendet, verworfen.
Weitere Informationen finden Sie in der Dokumentation zu lokalen SSDs.
VMs auf Abruf
Sie können eine VM auf Abruf anhalten. Wenn jedoch das vorzeitige Beenden (nicht die Vorabwarnung, die vor dem vorzeitigen Beenden angezeigt wird) vor Abschluss des Anhaltevorgangs ausgeführt wird, wird der Anhaltevorgang abgebrochen und die Instanz vorzeitig beendet.
Betriebssystemkompatibilität
Die meisten in Compute Engine angebotenen Betriebssysteme unterstützen die Funktionen zum Anhalten und Fortsetzen, einige Betriebssysteme jedoch nicht. Eine vollständige Liste finden Sie auf der Seite Betriebssystemdetails.
Preise
Wenn Sie eine Instanz anhalten, wird Ihnen Folgendes in Rechnung gestellt:
Instanz anhalten
Verwenden Sie zum Anhalten einer Instanz die Cloud Console, die gcloud CLI, die API oder die Cloud-Clientbibliotheken.
Sie können eine Instanz nicht mithilfe der Standardprozesse anhalten, die in die Gastumgebung eingebunden sind. Sie können eine Instanz mit der Cloud Console, der Google Cloud CLI oder der API anhalten.
Der Anhalten-Vorgang kann fehlschlagen, wenn er zu kurz nach dem Start der Instanz ausgelöst wird. Die Instanz muss vollständig gestartet werden (einschließlich Prozessen wie Gast-Agent), damit der Sperrvorgang erfolgreich ist.
Console
gcloud
So halten Sie eine Instanz in der Google Cloud CLI an:
gcloud compute instances suspend VM_NAME
Nachdem Sie eine Anfrage zum Anhalten einer Instanz gestellt haben, kann es einige Zeit dauern, bis Compute Engine alle für die Instanz notwendigen Daten für den Erhalt vorbereitet hat. Während dieser Zeit wird Ihnen die Instanz weiterhin in Rechnung gestellt, solange sie noch ausgeführt wird.
Eine angehaltene Instanz hat den Status
SUSPENDED
. Mit einerdescribe
-Anfrage können Sie den Status einer Instanz prüfen:gcloud compute instances describe VM_NAME
Wenn Sie eine Instanz mit lokalen SSD-Daten anhalten möchten, müssen Sie das Flag
--discard-local-ssd
angeben:gcloud compute instances suspend VM_NAME --discard-local-ssd
Wenn Sie
--discard-local-ssd
oder--discard-local-ssd=True
verwenden, wird der Inhalt der lokalen SSD verworfen. Compute Engine--discard-local-ssd=False
ist derzeit in der öffentlichen Vorschau verfügbar. Mit diesem Flag wird der Inhalt von bis zu 16 lokalen SSD-Laufwerken während des Anhaltens gespeichert. Weitere Informationen finden Sie in der Dokumentation zu lokalen SSDs.Einfach loslegen (Go)
Java
Node.js
PHP
Python
REST
Senden Sie mithilfe der Methode
instances.suspend
eine Anfrage in der API:https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/suspend
Ersetzen Sie dabei Folgendes:
Nachdem Sie eine Anfrage zum Anhalten einer Instanz gestellt haben, kann es einige Zeit dauern, bis Compute Engine alle für die Instanz notwendigen Daten für den Erhalt vorbereitet hat. Während dieser Zeit wird Ihnen die Instanz in Rechnung gestellt, solange sie noch ausgeführt wird.
Compute Engine kennzeichnet angehaltene Instanzen mit dem Status
SUSPENDED
. Mit einerGET
-Anfrage können Sie den Status einer Instanz prüfen:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Der Status der Instanz lässt sich am Statusfeld ablesen. Beispiel:
... "zone": "https://content.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a", "status": "SUSPENDED", "name": "example-vm", ...
Zum Anhalten einer Instanz mit mehr als {maximum_local_ssd_disks_for_suspend}}lokalen SSD-Laufwerken müssen Sie die lokalen SSD-Daten verwerfen, indem Sie den Abfrageparameter
discardLocalSsd
angeben:https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/suspend?discardLocalSsd=true
Eine angehaltene Instanz fortsetzen
Sie können eine Instanz nur dann fortsetzen, wenn in der Zone, in der sich die VM befindet, genügend Kapazität vorhanden ist. In den meisten Fällen ist dies kein Problem, aber wenn Probleme mit der Kapazität auftreten, wiederholen Sie die Fortsetzungsanfrage zu einem späteren Zeitpunkt.
Wenn Sie eine angehaltene Instanz fortsetzen möchten, verwenden Sie die Cloud Console die gcloud CLI ,API oderCloud-Clientbibliotheken.
Console
gcloud
So setzen Sie eine Instanz in der Google Cloud CLI fort:
gcloud compute instances resume VM_NAME
Nach einer Anfrage zum Fortsetzen einer Instanz kann es einige Zeit dauern, bis Compute Engine alle für die Instanz erforderlichen Daten wiederhergestellt hat. Während dieser Zeit wird Ihnen die Instanz in Rechnung gestellt, solange sie fortgesetzt wird.
Eine Instanz wird fortgesetzt, wenn sie als
RUNNING
markiert ist. Über eine Anfrage "describe" prüfen Sie den Status einer Instanz:gcloud compute instances describe VM_NAME
Einfach loslegen (Go)
Java
Node.js
PHP
Python
REST
Stellen Sie eine Anfrage an die Methode
instances.resume
:https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/resume
Ersetzen Sie dabei Folgendes:
Nach einer Anfrage zum Fortsetzen einer Instanz kann es einige Zeit dauern, bis Compute Engine alle für die Instanz erforderlichen Daten wiederhergestellt hat. Während dieser Zeit wird Ihnen die Instanz in Rechnung gestellt, solange sie fortgesetzt wird.
In Compute Engine werden angehaltene Instanzen mit dem Status
RUNNING
gekennzeichnet. Mit einerGET
-Anfrage können Sie den Status einer Instanz prüfen:GET https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance
Der Status der Instanz lässt sich am Statusfeld ablesen. Beispiel:
... "zone": "https://content.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a", "status": "RUNNING", "name": "example-instance", ...
Anhaltevorgang
Wenn Sie eine Anfrage zum Anhalten stellen, senden Sie ein ACPI-Suspend-Signal an die VM-Instanz. Wenn die VM nicht innerhalb von wenigen Minuten auf das ACPI-S3-Suspend-Signal reagiert, bricht Compute Engine den Anhalteversuch ab und setzt die VM in den Status
RUNNING
zurück.In der folgenden Tabelle wird beschrieben, wie sich das Anhalten einer VM-Instanz auf ihre zugehörigen Ressourcen auswirkt:
Ressource Unterstützung Arbeitsspeicher Nur VMs mit höchstens 208 GB Arbeitsspeicher können angehalten werden. Lokale SSD Lokale SSD-Daten werden verworfen. Nichtflüchtiger Speicher Nichtflüchtige HDDs und SSDs bleiben erhalten. IP-Adressen Sitzungsspezifische IP-Adressen werden während des Anhaltens freigegeben. Statische IP-Adressen bleiben jedoch mit den VM-Instanzen verbunden. Wenn Sie Ihre sitzungsspezifische IP behalten möchten, können Sie sie hochstufen. VM-Konfiguration (z. B. Maschinentyp, Metadaten, Labels usw.) Alle VM-Konfigurationen (mit Ausnahme sitzungsspezifischer IP-Adressen) bleiben erhalten und werden wiederhergestellt, wenn die Instanz fortgesetzt wird. Debian-VM zur Unterstützung von Anhalten und Fortsetzen konfigurieren
VMs, auf denen Debian 8 und 9 ausgeführt wird, können angehalten und fortgesetzt werden. Allerdings müssen sie zuvor entsprechend konfiguriert werden. Führen Sie zum Konfigurieren der Debian-Instanz eine der Anleitungen unter Option A oder Option B aus. Wir empfehlen, nach Möglichkeit ACPID zu konfigurieren (Option A).
Option A
Mit dieser Option wird ACPID so konfiguriert, dass das Schaltflächenereignis für den Ruhemodus verarbeitet wird. Darüber hinaus wird ein Shell-Skript für die Verarbeitung des Ruhemodusereignisses hinzugefügt.
Option B
Nächste Schritte
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2024-11-20 (UTC).
-