En este documento, se describe cómo suspender y reanudar una instancia de máquina virtual (VM).
Si deseas conservar tu instancia de VM, pero no deseas que se te cobre por ella cuando no esté en uso, puedes suspenderla. Cuando suspendes una VM, Google conserva la VM en tu proyecto y mueve el contenido de la memoria de la VM al almacenamiento. Mientras la VM está suspendida, Google solo cobra por el almacenamiento usado para conservar la memoria de la VM. Los atributos, como las direcciones IP estáticas, permanecen en su lugar para que las funciones de red funcionen como se espera cuando reanudas la VM. Después de reanudar, Google migra la memoria de la VM del almacenamiento a la instancia y comienza a cobrarte por la instancia de VM en ejecución.
La suspensión de una instancia es ideal en los siguientes casos:
- Entornos de prueba y desarrollo que no se usan por completo durante los períodos de inactividad, como las noches o los fines de semana, para reducir los costos o hacer una inicialización más rápida que la creación de instancias de VM nuevas.
- Aplicaciones que requieren un largo período de inicialización después de que la instancia termina de iniciarse, pero antes de que la aplicación esté lista para hacer su primera solicitud, como estaciones de trabajo de desarrolladores virtuales o aplicaciones complejas de Java.
Cómo funciona la suspensión
Cuando suspendes una instancia, se envía una señal de suspensión S3 de ACPI al sistema operativo de la instancia. La suspensión de una instancia es similar al cierre de la tapa de tu laptop, que pone la instancia en un estado SUSPENDED
.
La suspensión de una instancia difiere de la detención de una instancia de las siguientes maneras:
- Las instancias suspendidas conservan la memoria del SO de invitado y los estados del dispositivo y la aplicación.
- Google cobra por el almacenamiento necesario para ahorrar memoria en las instancias.
- Solo puedes suspender una instancia durante un máximo de 60 días. Después de 60 días, la instancia cambia de forma automática al estado
TERMINATED
.
Todos los recursos que están conectados a esta permanecen conectados y se cobrarán, incluidos los discos persistentes y las direcciones IP externas estáticas o reservadas. Todos estos recursos se cobran según la hoja de precios, incluso si se suspende una instancia.
No puedes suspender una instancia mediante los procesos estándar integrados en el entorno invitado. Los comandos, como el comando systemctl suspend
en Ubuntu 16.04 y versiones posteriores, no están disponibles. Solo puedes usar Google Cloud CLI o REST para suspender una instancia.
Si no te importa restablecer la memoria de una instancia y el estado del dispositivo cuando reanudes la instancia más tarde, puedes detenerla, lo que no genera cargos adicionales de almacenamiento.
Antes de empezar
-
Configura la autenticación si aún no lo hiciste.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.
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.
- No puedes suspender una instancia que usa una GPU.
- No puedes suspender una instancia mediante los procesos estándar integrados en el entorno invitado. Los comandos, como el comando
systemctl suspend
en Ubuntu 16.04 y versiones posteriores, no están disponibles. Se ignora la señal del invitado. - Solo puedes suspender una instancia durante un máximo de 60 días antes de que se detenga la VM de forma automática.
- No puedes suspender instancias con más de 208 GB de memoria.
- Puedes suspender instancias interrumpibles, pero es posible que se finalicen antes de suspenderse de forma correcta.
- No puedes suspender una Confidential VM.
- No puedes suspender una VM que tenga discos protegidos por CSEK adjuntos.
- Memoria de la instancia (consulta los precios de instancias de VMs suspendidas)
- Cualquier uso del disco persistente para el disco de arranque y cualquier disco adicional conectado a la instancia (consulta Precios de discos persistentes)
- Cualquier IP estática conectada a la instancia
- Suspender las VM podría ayudarte a ahorrar en tus tarifas de licencias de software. Por ejemplo, si suspendes las VM de Windows, no incurrirás en tarifas de licencia de Windows. Las tarifas de licencia para otras imágenes pueden tener términos y condiciones diferentes y pueden generar cargos, incluso cuando se suspenden.
En la consola de Google Cloud, ve a la página Instancias de VM.
Elige una o más instancias que desees suspender.
Haz clic en Suspender.
Cuando se te solicite, si deseas descartar datos del SSD local, elige Discard the SSD content. Cuando se reanuda tu instancia, todos los datos del SSD local en la instancia se habrán descartado.
PROJECT_ID
: El ID del proyectoZONE
: La zona de la VMVM_NAME
: La instancia que deseas suspenderEn la consola de Google Cloud, ve a la página Instancias de VM.
Elige una o más instancias que desees reanudar.
Haz clic en Iniciar/Reanudar.
PROJECT_ID
: El ID del proyecto de esta solicitudZONE
: La zona de la VMVM_NAME
: La instancia que se reanudaráConéctate a tu instancia de VM mediante SSH:
gcloud compute ssh VM_NAME
En la instancia de VM, crea un directorio en la carpeta
acpi
:sudo mkdir -p /etc/acpi/events/
Configura el ACPID para controlar el evento del botón de suspensión:
cat <<EOF | sudo tee /etc/acpi/events/sleepbtn-acpi-support event=button[ /]sleep action=/etc/acpi/sleepbtn-acpi-support.sh EOF
Crea la secuencia de comandos para controlar eventos de suspensión:
cat <<EOF | sudo tee /etc/acpi/sleepbtn-acpi-support.sh #!/bin/sh echo mem > /sys/power/state EOF
Configura los permisos para la secuencia de comandos:
sudo chmod 755 /etc/acpi/sleepbtn-acpi-support.sh
Reinicia ACPID:
sudo systemctl restart acpid.service
Conéctate a tu instancia de VM mediante SSH:
gcloud compute ssh VM_NAME
En la instancia de VM, instala
dbus
:sudo apt-get install dbus
Reinicia
logind
:sudo systemctl restart systemd-logind.service
- Borra una instancia si ya no la necesitas.
- Detén o reinicia una instancia.
- Consulta Ciclo de vida de la instancia.
- Consulta Soluciona problemas de suspensión de VM si tienes problemas para suspender una VM.
Go
Para usar las muestras de Go de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
Java
Para usar las muestras de Java de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
Node.js
Para usar las muestras de Node.js de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
PHP
Para usar las muestras de PHP de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
Python
Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
Limitaciones
Se aplican las siguientes limitaciones a esta función:
SSD locales
Por lo general, la suspensión de una instancia de VM que usa SSD local descartará todos los datos de las unidades de SSD local; el mismo comportamiento que si se detiene la instancia.
Consulta la documentación de SSD local para obtener más detalles.
VMs interrumpibles
Puedes suspender una VM interrumpible, pero si la interrupción (no la advertencia previa) sucede antes de que se complete la operación de suspensión, la suspensión finaliza y la instancia se interrumpe.
Compatibilidad con los SO
La mayoría de los sistemas operativos que se ofrecen en Compute Engine son compatibles con la funcionalidad de suspensión y reanudación, pero algunos SO no lo son. Revisa la página Detalles del SO para ver la lista completa.
Precios
Cuando suspendes una instancia, se te cobra por lo siguiente:
Suspende una instancia
Para suspender una instancia, usa la consola de Google Cloud, el CLI de gcloud, la API o las bibliotecas cliente de Cloud.
No puedes suspender una instancia mediante los procesos estándar integrados en el entorno invitado. Puedes usar la consola de Google Cloud, Google Cloud CLI o la API para suspender una instancia.
La operación de suspensión puede fallar si se activa demasiado pronto después de que se inició la instancia. La instancia debe iniciarse por completo (incluidos los procesos como el Agente invitado) para que la operación de suspensión se ejecute correctamente.
Console
gcloud
Para suspender una instancia en Google Cloud CLI, sigue estos pasos:
gcloud compute instances suspend VM_NAME
Una vez que hayas realizado una solicitud para suspender una instancia, puede transcurrir un tiempo hasta que se conserven todos los datos necesarios para la instancia en Compute Engine. Durante este tiempo, se te seguirá cobrando por la instancia mientras siga en ejecución.
Una instancia suspendida presenta la marca de estado
SUSPENDED
. Para verificar el estado de una instancia, haz una solicituddescribe
:gcloud compute instances describe VM_NAME
Para suspender una instancia con datos de SSD local
--discard-local-ssd
, debes proporcionar la marca :gcloud compute instances suspend VM_NAME --discard-local-ssd
El uso de
--discard-local-ssd
o--discard-local-ssd=True
descartará el contenido del SSD local.--discard-local-ssd=False
de Compute Engine se encuentra actualmente en vista preliminar pública. El uso de esta marca guardará el contenido de hasta 16 discos SSD locales durante la suspensión. Consulta la documentación de SSD local para obtener más detalles.Go
Java
Node.js
PHP
Python
REST
En la API, haz una solicitud mediante el método
instances.suspend
:https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/suspend
Reemplaza los siguientes elementos:
Una vez que hayas realizado una solicitud para suspender una instancia, puede transcurrir un tiempo hasta que se conserven todos los datos necesarios para la instancia en Compute Engine. Durante este tiempo, se te cobra por la instancia mientras siga en ejecución.
En Compute Engine, se marca la instancia suspendida con el estado
SUSPENDED
. Para verificar el estado de una instancia, haz una solicitudGET
como la siguiente:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
El estado de la instancia se puede ver en el campo de estado. Por ejemplo:
... "zone": "https://content.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a", "status": "SUSPENDED", "name": "example-vm", ...
Para suspender una instancia con más de 16 discos SSD locales, debes descartar los datos del SSD local mediante el parámetro de consulta
discardLocalSsd
de la siguiente manera:https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/suspend?discardLocalSsd=true
Para obtener más información, consulta la documentación de SSD local.
Reanuda una instancia suspendida
Solo puedes reanudar una instancia si hay capacidad suficiente en la zona en la que reside la VM. En la mayoría de los casos, esto no es un problema, pero si tienes problemas de capacidad, vuelve a intentar la solicitud de reanudación más adelante.
Para reanudar una instancia suspendida, usa la consola de Google Cloud, la CLI de gcloud, la API o las bibliotecas cliente de Cloud.
Console
gcloud
Para reanudar una instancia en Google Cloud CLI, sigue estos pasos:
gcloud compute instances resume VM_NAME
Una vez que hayas realizado una solicitud para reanudar una instancia, puede transcurrir un tiempo hasta que se restablezcan todos los datos necesarios para la instancia en Compute Engine. Durante este tiempo, se te cobra por la instancia mientras se reanuda.
Una instancia se reanuda cuando presenta la marca
RUNNING
. Para comprobar el estado de una instancia, haz la siguiente solicitud de descripción:gcloud compute instances describe VM_NAME
Go
Java
Node.js
PHP
Python
REST
Realiza una solicitud al método
instances.resume
.https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/resume
Reemplaza los siguientes elementos:
Una vez que hayas realizado una solicitud para reanudar una instancia, puede transcurrir un tiempo hasta que se restablezcan todos los datos necesarios para la instancia en Compute Engine. Durante este tiempo, se te cobra por la instancia mientras se reanuda.
Una vez que la instancia se reanuda, en Compute Engine, se marca con el estado
RUNNING
. Para verificar el estado de una instancia, haz una solicitudGET
como la siguiente:GET https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance
El estado de la instancia se puede ver en el campo de estado. Por ejemplo:
... "zone": "https://content.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a", "status": "RUNNING", "name": "example-instance", ...
Proceso de suspensión
Cuando realizas una solicitud de suspensión, envías una señal de suspensión de ACPI a la instancia de VM. Si la VM no responde a la señal de suspensión S3 de ACPI en un par de minutos, Compute Engine cancela el intento de suspensión y la VM vuelve al estado
RUNNING
.En la siguiente tabla, se describe el efecto de suspender una instancia de VM en sus recursos asociados:
Recurso Compatibilidad Memoria Solo se pueden suspender las VM menores o iguales a 208 GB de memoria. SSD local Se descartan los datos de los SSD locales. Disco persistente Se conservan los discos SSD y HDD persistentes. Direcciones IP Las IP efímeras se liberan durante la suspensión, pero las IP estáticas permanecen conectadas a las instancias de VM. Si deseas conservar tu IP efímera, promuévela. Configuración de VM (como tipo de máquina, metadatos, etiquetas, etcétera) Todas las opciones de configuración de VM, excepto las direcciones IP efímeras, se conservan y restablecen cuando se reanuda la instancia. Configura una VM de Debian para que admita la suspensión y la reanudación
Las VM que ejecutan Debian 8 y 9 pueden suspenderse y reanudarse, pero deben configurarse con anticipación. Para configurar tu instancia de Debian, completa uno de los siguientes conjuntos de instrucciones, opción A o B. Recomendamos configurar el ACPID si es posible (opción A).
Opción A
Esta opción configura el ACPID para controlar el evento del botón de suspensión y agrega una secuencia de comandos de shell con el fin de controlar el evento de suspensión.
Opción B
¿Qué sigue?
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-11-20 (UTC)
-