Definir la política de mantenimiento del host de una instancia de cálculo


En este documento se explica cómo definir la política de mantenimiento del host de una instancia de Compute Engine para determinar su comportamiento durante los eventos del host. Para obtener más información sobre las políticas de mantenimiento de anfitriones, consulta el artículo Política de mantenimiento de anfitriones.

Una política de mantenimiento del host determina cómo responde tu instancia cuando el host en el que se ejecuta requiere mantenimiento o se produce un error. Configurar la política de mantenimiento del host de una instancia te permite hacer lo siguiente:

  • Minimizar el tiempo de inactividad.

  • Evita la pérdida de datos.

Limitaciones

En el caso de las políticas de mantenimiento de anfitriones, se aplican las siguientes limitaciones:

  • Las instancias de máquina virtual que usan tipos de máquina E2 solo se pueden migrar en directo durante los eventos de mantenimiento del host, a menos que sean máquinas virtuales de acceso puntual o máquinas virtuales interrumpibles.

  • Las siguientes instancias solo se pueden detener durante los eventos de mantenimiento del host:

    • Instancias que no admiten la migración activa, como las instancias Z3 con más de 18 TiB de SSD de Titanium conectada, las instancias de hardware desnudo o las máquinas virtuales que tienen GPUs conectadas.

    • Máquinas virtuales de acceso puntual o máquinas virtuales interrumpibles.

  • Las máquinas virtuales de acceso puntual y las máquinas virtuales interrumpibles no se pueden reiniciar automáticamente después de errores del host o paradas programadas.

Antes de empezar

  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    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

    1. Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    REST

    Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.

      Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Roles obligatorios

Para obtener los permisos que necesitas para definir la política de mantenimiento del host de una instancia de computación, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de instancias de Compute (v. 1) (roles/compute.instanceAdmin.v1) en tu proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para definir la política de mantenimiento del host de una instancia de computación. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para definir la política de mantenimiento del host de una instancia de cálculo, se necesitan los siguientes permisos:

  • Para crear una instancia, sigue estos pasos:
    • compute.instances.create en el proyecto
    • Para usar una imagen personalizada para crear la VM, haz clic en compute.images.useReadOnly en la imagen.
    • Para usar una captura para crear la VM, compute.snapshots.useReadOnly en la captura
    • Para usar una plantilla de instancia para crear la VM, haz clic en compute.instanceTemplates.useReadOnly en la plantilla de instancia.
    • Para asignar una red antigua a la VM, haz lo siguiente: compute.networks.use en el proyecto
    • Para especificar una dirección IP estática para la máquina virtual, compute.addresses.use en el proyecto
    • Para asignar una dirección IP externa a la VM cuando se usa una red antigua, haz lo siguiente: compute.networks.useExternalIp en el proyecto
    • Para especificar una subred para la VM, compute.subnetworks.use en el proyecto o en la subred elegida.
    • Para asignar una dirección IP externa a la VM cuando se usa una red de VPC, compute.subnetworks.useExternalIp en el proyecto o en la subred elegida.
    • Para definir los metadatos de la instancia de VM de la VM: compute.instances.setMetadata en el proyecto,
    • Para definir etiquetas en la máquina virtual, compute.instances.setTags en la máquina virtual
    • Para definir etiquetas de la VM, compute.instances.setLabels en la VM
    • Para definir una cuenta de servicio que use la VM, haz lo siguiente en la VM: compute.instances.setServiceAccount
    • Para crear un disco para la VM compute.disks.create del proyecto, sigue estos pasos:
    • Para adjuntar un disco en modo de solo lectura o de lectura y escritura, haz lo siguiente: compute.disks.use en el disco
    • Para adjuntar un disco en modo de solo lectura, compute.disks.useReadOnly en el disco.
  • Para crear una plantilla de instancia, sigue estos pasos: compute.instanceTemplates.create en el proyecto
  • Para actualizar la política de mantenimiento del host de una instancia, sigue estos pasos: compute.instances.setScheduling en la instancia

También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

Propiedades de mantenimiento del host disponibles

Puedes personalizar el comportamiento de tu instancia de proceso durante el mantenimiento programado o los eventos inesperados del host. Si no especifica lo contrario, Compute Engine usará la configuración predeterminada al crear una instancia, varias instancias a la vez o una plantilla de instancia.

Puedes configurar las siguientes propiedades de mantenimiento del host:

  • Comportamiento de mantenimiento (onHostMaintenance): qué ocurre con tu instancia durante un evento de mantenimiento en su host que podría provocar que la instancia se reiniciara. Puedes asignar uno de los siguientes valores a esta propiedad:

    • Migrar: Compute Engine migra en directo automáticamente tu instancia a otro host. Esta es la opción predeterminada para todos los tipos de instancias, excepto para las VMs de Spot y las VMs interrumpibles.

    • Finalizar: Compute Engine detiene la instancia. Este es el ajuste predeterminado de las VMs Spot o las VMs interrumpibles, y es el único ajuste admitido para las instancias Z3 con más de 18 TiB de SSD de titanio conectado, las instancias de hardware desnudo y las instancias con GPUs o TPUs conectadas.

  • Reinicio automático (automaticRestart): indica si la instancia se reinicia si falla o si Compute Engine la detiene por una parada programada, como un evento de mantenimiento. Puedes asignar uno de los siguientes valores a esta propiedad:

    • Activado: Compute Engine reinicia automáticamente la instancia. Esta es la configuración predeterminada de todos los tipos de instancias, excepto las máquinas virtuales de Spot y las máquinas virtuales interrumpibles. Para especificar este ajuste, sigue estos pasos:

      • En la consola de Google Cloud , en el panel Avanzado, en la lista Reinicio automático, selecciona Activado (recomendado).

      • En Google Cloud CLI, usa la marca --restart-on-failure.

      • En REST, asigna el valor true al campo automaticRestart.

    • Desactivado: Compute Engine no reinicia la instancia. Este es el ajuste predeterminado de las máquinas virtuales de acceso puntual o las máquinas virtuales interrumpibles. Para especificar este ajuste, sigue estos pasos:

      • En la consola Google Cloud , en el panel Avanzado, en la lista Reinicio automático, selecciona Desactivado.

      • En la CLI de gcloud, usa la marca --no-restart-on-failure.

      • En REST, asigna el valor false al campo automaticRestart.

  • Tiempo de espera de recuperación de datos de SSD local (localSsdRecoveryTimeout): este ajuste solo se aplica a las instancias que tienen discos SSD locales conectados. Determina cuánto tiempo espera Compute Engine para recuperar los datos de tus discos SSD locales después de que se produzcan errores en el host. De forma predeterminada, esta propiedad no está definida. Puedes asignar a esta propiedad uno de los siguientes valores:

    • Sin definir: Compute Engine usa el tiempo de espera predeterminado:

      • En las VMs Z3, 6 horas

      • En el resto de los tipos de instancias, 1 hora

    • Número entero de 0 a 168: el número de horas que hay que esperar. Si se asigna el valor 0 a esta propiedad, Compute Engine no recupera los datos de SSD local y reinicia la instancia inmediatamente.

  • Tiempo de espera por error del host (hostErrorTimeoutSeconds): esta propiedad determina cuánto tiempo espera Compute Engine para reiniciar una instancia que no responde. Debes configurar este ajuste antes de que la instancia deje de responder. Usa un tiempo de espera lo suficientemente largo para que una instancia se recupere de un estado en el que no responde. Puedes asignar uno de los siguientes valores a esta propiedad:

    • Sin definir: Compute Engine espera hasta 330 segundos (5 minutos y 30 segundos). Este es el ajuste predeterminado para cualquier tipo de instancia.

    • Un número entero entre 90 y 330: el tiempo de espera en segundos, en incrementos de 30 segundos.

Definir la política de mantenimiento del host de una instancia

De forma predeterminada, las instancias de proceso usan la configuración predeterminada de su política de mantenimiento del host. Para personalizar estos ajustes, utiliza uno de los siguientes métodos:

Definir la política de una instancia ya creada

Antes de cambiar la política de mantenimiento del anfitrión de una instancia, asegúrate de que se cumplen los siguientes requisitos:

  • No puedes cambiar el comportamiento de mantenimiento (onHostMaintenance) de los siguientes tipos de instancias:

    • Máquinas virtuales que usan tipos de máquinas E2.

    • Máquinas virtuales de acceso puntual o máquinas virtuales interrumpibles.

    • Instancias que no admiten la migración en directo.

  • No puedes configurar máquinas virtuales de acceso puntual ni máquinas virtuales interrumpibles para que se reinicien automáticamente después de errores del host o paradas programadas.

Para cambiar el tiempo de espera de recuperación de datos de SSD local en una instancia que tenga discos SSD locales conectados, usa la CLI de gcloud o la API REST. De lo contrario, selecciona una de las siguientes opciones:

Consola

  1. En la consola de Google Cloud , ve a la página Instancias de VM.

    Ir a instancias de VM

  2. En la columna Nombre, haga clic en el nombre de la instancia que quiera actualizar. Aparecerá una página con los detalles de la instancia.

  3. Haz clic en Editar. Aparecerá una página que te permitirá editar las propiedades de la instancia.

  4. En la sección Gestión, puedes hacer una o varias de las siguientes acciones:

    • Para cambiar el comportamiento durante los eventos de mantenimiento, selecciona otra opción de la lista En mantenimiento del host.

    • Para cambiar el periodo de tiempo de espera antes de reiniciar una instancia que no responde, selecciona otra opción en la lista Tiempo de espera de error del host.

    • Para cambiar si quieres reiniciar la instancia o no después de errores del host o paradas programadas, selecciona otra opción de la lista Reinicio automático.

  5. Haz clic en Guardar.

gcloud

Para cambiar la política de mantenimiento del host en una instancia, usa el comando gcloud compute instances set-scheduling con una o varias de las siguientes marcas:

  • Para cambiar el comportamiento del mantenimiento del host, incluye la marca --maintenance-policy.

  • Para cambiar el comportamiento del reinicio automático, haz una de las siguientes acciones:

    • Para reiniciar la instancia automáticamente, incluye la marca --restart-on-failure.

    • Para evitar que la instancia se reinicie automáticamente, incluye la marca --no-restart-on-failure.

  • Para cambiar el tiempo de espera de recuperación de datos de SSD local si tu instancia tiene discos SSD locales conectados, incluye la marca --local-ssd-recovery-timeout.

  • Para cambiar el tiempo de espera de error del host, incluye la marca --host-error-timeout-seconds.

Por ejemplo, para cambiar el comportamiento del mantenimiento del host, reiniciar automáticamente la instancia después de errores del host o paradas programadas, cambiar el tiempo de espera de recuperación de datos de SSD local y cambiar el tiempo de espera de errores del host, ejecuta el siguiente comando:

gcloud compute instances set-scheduling INSTANCE_NAME \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --maintenance-policy=MAINTENANCE_POLICY \
    --restart-on-failure \
    --zone=ZONE

Haz los cambios siguientes:

  • INSTANCE_NAME: el nombre de tu instancia.

  • ERROR_DETECTION_TIMEOUT: número de segundos que deben transcurrir antes de que Compute Engine reinicie una instancia que no responde. El valor debe estar entre 90 (90 segundos) y 330 (330 segundos, es decir, 5 minutos y 30 segundos). Solo se permiten incrementos de 30 segundos.

  • MAINTENANCE_POLICY: el comportamiento de mantenimiento de la instancia. El valor puede ser TERMINATE o MIGRATE.

  • LOCAL_SSD_RECOVERY_TIMEOUT: número de horas que se tarda en recuperar los datos de los discos SSD locales conectados. El valor debe estar entre 0 (0 horas) y 168 (168 horas o 7 días). Si asignas el valor 0 a este campo, significa que Compute Engine no recuperará los datos de la unidad SSD local.

  • ZONE: la zona en la que se encuentra tu instancia.

REST

Para cambiar la política de mantenimiento del host en una instancia, haz una solicitud POST al método instances.setScheduling. En el cuerpo de la solicitud, incluye uno o varios de los siguientes campos:

  • Para cambiar el comportamiento del mantenimiento del host, incluye el campo onHostMaintenance.

  • Para cambiar el comportamiento del reinicio automático, haz una de las siguientes acciones:

    • Para reiniciar la instancia automáticamente, incluye el campo automaticRestart.

    • Para evitar que la instancia se reinicie automáticamente, incluye el campo automaticRestart.

  • Para cambiar el tiempo de espera de recuperación de datos de SSD local si tu instancia tiene discos SSD locales conectados, incluye el campo localSsdRecoveryTimeout.

  • Para cambiar el tiempo de espera de error del host, incluya el campo hostErrorTimeoutSeconds.

Por ejemplo, para cambiar el comportamiento del mantenimiento del host, reiniciar automáticamente la instancia después de errores del host o paradas programadas, cambiar el tiempo de espera de recuperación de datos de SSD local y cambiar el tiempo de espera de errores del host, haz una solicitud como la siguiente:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling

{
  "automaticRestart": AUTOMATIC_RESTART,
  "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
  "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
  "onHostMaintenance": "MAINTENANCE_POLICY"
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que se encuentra tu instancia.

  • ZONE: la zona en la que se encuentra tu instancia.

  • INSTANCE_NAME: el nombre de tu instancia.

  • AUTOMATIC_RESTART: el comportamiento de reinicio automático de la instancia si falla o si Compute Engine la detiene por una parada programada. Se debe utilizar uno de los valores indicados a continuación.

    • Para que Compute Engine reinicie automáticamente tu instancia, haz lo siguiente: true

    • Para evitar que se reinicie automáticamente, haz lo siguiente: false

  • ERROR_DETECTION_TIMEOUT: el número de segundos que deben transcurrir antes de reiniciar una instancia que no responde. El valor debe estar comprendido entre 90 (90 segundos) y 330 (330 segundos, o 5 minutos y 30 segundos). Solo se permiten incrementos de 30 segundos.

  • LOCAL_SSD_RECOVERY_TIMEOUT: número de horas que se tarda en recuperar los datos de los discos SSD locales conectados. El valor debe estar entre 0 (0 horas) y 168 (168 horas o 7 días). Si asignas el valor 0 a este campo, significa que Compute Engine no recuperará los datos de la unidad SSD local.

  • MAINTENANCE_POLICY: el comportamiento de mantenimiento de la instancia. El valor puede ser TERMINATE o MIGRATE.

Definir la política al crear una instancia

Puedes definir la política de mantenimiento del host de una instancia de proceso al crearla.

Para definir el tiempo de espera de recuperación de datos de SSD local al crear una instancia que tenga discos SSD locales conectados, usa la CLI de gcloud o la API REST. De lo contrario, selecciona una de las siguientes opciones:

Consola

  1. En la Google Cloud consola, ve a la página Crear una instancia.

    Ir a Crear una instancia

  2. En el campo Name (Nombre), introduce un nombre para la instancia.

  3. En los campos Región y Zona, especifica en qué región y zona quieres crear la instancia.

  4. Especifica el tipo de máquina de la instancia.

  5. En el menú de navegación, haz clic en Opciones avanzadas.

  6. En la sección Modelo de aprovisionamiento, despliega Configuración avanzada del modelo de aprovisionamiento de VMs y, a continuación, haz una o varias de las siguientes acciones:

    • Para definir el comportamiento durante los eventos de mantenimiento, en la lista Durante el mantenimiento del host, selecciona una de las siguientes opciones:

      • Para migrar la instancia durante los eventos de mantenimiento del host, selecciona Migrar instancia de VM (opción recomendada).

      • Para detener la instancia durante los eventos de mantenimiento del host, selecciona Desactivar la instancia de VM.

    • Para definir el periodo de tiempo de espera antes de reiniciar una instancia que no responde, en la lista Tiempo de espera de error del host, selecciona una de las siguientes opciones:

      • Para no especificar un tiempo de espera de error de host, selecciona Sin especificar (predeterminado).

      • Para especificar un tiempo de espera de error del host, selecciona una de las opciones disponibles, hasta 5 minutos y 30 segundos.

    • Para definir si se debe reiniciar la instancia si falla o se detiene, en la lista Reinicio automático, selecciona una de las siguientes opciones:

      • Para reiniciar automáticamente la instancia después de errores del host o paradas programadas, selecciona Activado (opción recomendada).

      • Para evitar que la instancia se reinicie automáticamente después de errores del host o paradas programadas, selecciona Desactivado.

  7. Haz clic en Crear.

gcloud

Para definir la política de mantenimiento del host de una instancia al crearla, usa el comando gcloud compute instances create con una o varias de las siguientes marcas:

  • Para definir el comportamiento del mantenimiento del host, incluye la marca --maintenance-policy.

  • Para definir el comportamiento de reinicio automático, haz una de las siguientes acciones:

    • Para reiniciar la instancia automáticamente, incluye la marca --restart-on-failure.

    • Para evitar que la instancia se reinicie automáticamente, incluye la marca --no-restart-on-failure.

  • Para definir un tiempo de espera de recuperación de datos de SSD local si tu instancia tiene discos SSD locales conectados, incluye la marca --local-ssd-recovery-timeout.

  • Para definir un tiempo de espera de error de host, incluye la marca --host-error-timeout-seconds.

Por ejemplo, para definir el comportamiento de mantenimiento del host, reiniciar automáticamente la instancia después de errores del host o paradas programadas, definir un tiempo de espera de recuperación de datos de SSD local y definir un tiempo de espera de error del host, ejecuta el siguiente comando:

gcloud compute instances create INSTANCE_NAME \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --restart-on-failure \
    --zone=ZONE

Haz los cambios siguientes:

  • INSTANCE_NAME: el nombre de la instancia.

  • ERROR_DETECTION_TIMEOUT: el número de segundos que deben transcurrir antes de reiniciar una instancia que no responde. El valor debe estar comprendido entre 90 (90 segundos) y 330 (330 segundos, o 5 minutos y 30 segundos). Solo se permiten incrementos de 30 segundos.

  • LOCAL_SSD_RECOVERY_TIMEOUT: número de horas que se tarda en recuperar los datos de los discos SSD locales conectados. El valor debe estar entre 0 (0 horas) y 168 (168 horas o 7 días). Si asignas el valor 0 a este campo, significa que Compute Engine no recuperará los datos de la unidad SSD local.

  • MACHINE_TYPE: el tipo de máquina que se va a usar.

  • MAINTENANCE_POLICY: el comportamiento de mantenimiento de la instancia. El valor puede ser TERMINATE o MIGRATE. Si vas a crear una VM de acceso puntual, una VM interrumpible o una instancia que no admita la migración activa, solo podrás usar TERMINATE.

  • ZONE: la zona en la que se creará la instancia.

REST

Para definir la política de mantenimiento del host de una instancia al crearla, envía una solicitud POST al método instances.insert. En el cuerpo de la solicitud, incluye uno o varios de los siguientes campos en el campo scheduling:

  • Para definir el comportamiento del mantenimiento del host, incluye el campo onHostMaintenance.

  • Para definir el comportamiento de reinicio automático, haz una de las siguientes acciones:

    • Para reiniciar la instancia automáticamente, incluye el campo automaticRestart.

    • Para evitar que la instancia se reinicie automáticamente, incluye el campo automaticRestart.

  • Para definir un tiempo de espera de recuperación de datos de SSD local si tu instancia tiene discos SSD locales conectados, incluye el campo localSsdRecoveryTimeout.

  • Para definir un tiempo de espera de error de host, incluye el campo hostErrorTimeoutSeconds.

Por ejemplo, para definir el comportamiento de mantenimiento del host, reiniciar automáticamente la instancia después de que se produzcan errores en el host o se detenga de forma programada, definir un tiempo de espera de recuperación de datos de SSD local y definir un tiempo de espera de errores del host, haz una solicitud como la siguiente:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "scheduling": {
    "automaticRestart": AUTOMATIC_RESTART,
    "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
    "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
    "onHostMaintenance": "MAINTENANCE_POLICY"
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que se va a crear la instancia.

  • ZONE: la zona en la que se creará la instancia.

  • INSTANCE_NAME: el nombre de la instancia.

  • MACHINE_TYPE: el tipo de máquina que se va a usar.

  • IMAGE_PROJECT: el proyecto de imagen que contiene la imagen (por ejemplo, debian-cloud). Para obtener más información sobre los proyectos de imágenes admitidos, consulta Imágenes públicas.

  • IMAGE: especifica una de las siguientes opciones:

    • Una versión específica de la imagen del SO, por ejemplo, debian-12-bookworm-v20240617.

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Especifica la imagen del SO más reciente que no está obsoleta. Por ejemplo, si especificas family/debian-12, se usará la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre cómo usar familias de imágenes, consulte las prácticas recomendadas para familias de imágenes.

  • AUTOMATIC_RESTART: el comportamiento de reinicio automático de la instancia si falla o si Compute Engine la detiene por una parada programada. Se debe utilizar uno de los valores indicados a continuación.

    • Para que Compute Engine reinicie automáticamente tu instancia, haz lo siguiente: true

    • Para evitar que se reinicie automáticamente, haz lo siguiente: false

  • ERROR_DETECTION_TIMEOUT: el número de segundos que deben transcurrir antes de reiniciar una instancia que no responde. El valor debe estar comprendido entre 90 (90 segundos) y 330 (330 segundos, o 5 minutos y 30 segundos). Solo se permiten incrementos de 30 segundos.

  • LOCAL_SSD_RECOVERY_TIMEOUT: número de horas que se tarda en recuperar los datos de los discos SSD locales conectados. El valor debe estar entre 0 (0 horas) y 168 (168 horas o 7 días). Si asignas el valor 0 a este campo, significa que Compute Engine no recuperará los datos de la unidad SSD local.

  • MAINTENANCE_POLICY: el comportamiento de mantenimiento de la instancia. El valor puede ser TERMINATE o MIGRATE. Si vas a crear una VM de acceso puntual o una instancia que no admita la migración activa, solo podrás usar TERMINATE.

Para obtener más información sobre cómo crear una instancia, consulta Crear e iniciar una instancia de Compute Engine.

Definir la política al crear instancias en bloque

Para definir la política de mantenimiento del host al crear instancias en bloque, selecciona una de las siguientes opciones:

gcloud

Para definir la política de mantenimiento del host al crear instancias en bloque, usa el comando gcloud compute instances bulk create con una o varias de las siguientes marcas:

  • Para definir el comportamiento del mantenimiento del host, incluye la marca --maintenance-policy.

  • Para definir el comportamiento de reinicio automático, haz una de las siguientes acciones:

    • Para reiniciar la instancia automáticamente, incluye la marca --restart-on-failure.

    • Para evitar que la instancia se reinicie automáticamente, incluye la marca --no-restart-on-failure.

  • Para definir un tiempo de espera de recuperación de datos de SSD local si tu instancia tiene discos SSD locales conectados, incluye la marca --local-ssd-recovery-timeout.

  • Para definir un tiempo de espera de error de host, incluye la marca --host-error-timeout-seconds.

Por ejemplo, para definir el comportamiento de mantenimiento del host, reiniciar automáticamente la instancia después de errores del host o paradas programadas, definir un tiempo de espera de recuperación de datos de SSD local y definir un tiempo de espera de error del host, ejecuta el siguiente comando. En el siguiente ejemplo también se crean instancias en una sola zona y se especifica un patrón de nombre para las instancias:

gcloud compute instances bulk create \
    --count=COUNT \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --name-pattern=NAME_PATTERN \
    --restart-on-failure \
    --zone=ZONE

Haz los cambios siguientes:

  • COUNT: número de instancias que se van a crear.

  • ERROR_DETECTION_TIMEOUT: el número de segundos que deben transcurrir antes de reiniciar una instancia que no responde. El valor debe estar comprendido entre 90 (90 segundos) y 330 (330 segundos, o 5 minutos y 30 segundos). Solo se permiten incrementos de 30 segundos.

  • LOCAL_SSD_RECOVERY_TIMEOUT: número de horas que se tarda en recuperar los datos de los discos SSD locales conectados. El valor debe estar entre 0 (0 horas) y 168 (168 horas o 7 días). Si asignas el valor 0 a este campo, significa que Compute Engine no recuperará los datos de la unidad SSD local.

  • MACHINE_TYPE: el tipo de máquina que se va a usar.

  • MAINTENANCE_POLICY: el comportamiento de mantenimiento de las instancias. El valor puede ser TERMINATE o MIGRATE. Si vas a crear VMs de acceso puntual, VMs interrumpibles o instancias que no admitan la migración activa, solo podrás usar TERMINATE.

  • NAME_PATTERN: el patrón de nombre de las instancias. Para sustituir una secuencia de números en un nombre de instancia, utiliza una secuencia de caracteres de almohadilla (#). Por ejemplo, si se usa instance-# como patrón de nombre, se generan instancias con nombres que empiezan por instance-1, instance-2 y así sucesivamente hasta el número de instancias especificado por COUNT.

  • ZONE: la zona en la que se crearán las instancias.

REST

Para definir la política de mantenimiento del host al crear instancias en bloque, haz una solicitud POST al método instances.bulkInsert. En el cuerpo de la solicitud, incluye uno o varios de los siguientes campos en el campo scheduling:

  • Para definir el comportamiento del mantenimiento del host, incluye el campo onHostMaintenance.

  • Para definir el comportamiento de reinicio automático, haz una de las siguientes acciones:

    • Para reiniciar la instancia automáticamente, incluye el campo automaticRestart.

    • Para evitar que la instancia se reinicie automáticamente, incluye el campo automaticRestart.

  • Para definir un tiempo de espera de recuperación de datos de SSD local si tu instancia tiene discos SSD locales conectados, incluye el campo localSsdRecoveryTimeout.

  • Para definir un tiempo de espera de error de host, incluye el campo hostErrorTimeoutSeconds.

Por ejemplo, para definir el comportamiento de mantenimiento del host, reiniciar automáticamente la instancia después de que se produzcan errores en el host o se detenga de forma programada, definir un tiempo de espera de recuperación de datos de SSD local y definir un tiempo de espera de error del host, haz una solicitud como la siguiente. En el siguiente ejemplo también se crean instancias en una sola zona y se especifica un patrón de nombre para las instancias:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": COUNT,
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "automaticRestart": AUTOMATIC_RESTART,
      "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
      "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que se crearán las instancias.

  • ZONE: la zona en la que se crearán las instancias.

  • COUNT: número de instancias que se van a crear.

  • NAME_PATTERN: el patrón de nombre de las instancias. Para sustituir una secuencia de números en un nombre de instancia, utiliza una secuencia de caracteres de almohadilla (#). Por ejemplo, si se usa instance-# como patrón de nombre, se generan instancias con nombres que empiezan por instance-1, instance-2 y así sucesivamente hasta el número de instancias especificado por COUNT.

  • MACHINE_TYPE: el tipo de máquina que se va a usar.

  • IMAGE_PROJECT: el proyecto de imagen que contiene la imagen (por ejemplo, debian-cloud). Para obtener más información sobre los proyectos de imágenes admitidos, consulta Imágenes públicas.

  • IMAGE: especifica una de las siguientes opciones:

    • Una versión específica de la imagen del SO, por ejemplo, debian-12-bookworm-v20240617.

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Especifica la imagen del SO más reciente que no está obsoleta. Por ejemplo, si especificas family/debian-12, se usará la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre cómo usar familias de imágenes, consulte las prácticas recomendadas para familias de imágenes.

  • AUTOMATIC_RESTART: el comportamiento de reinicio automático de la instancia si falla o si Compute Engine la detiene por una parada programada. Se debe utilizar uno de los valores indicados a continuación.

    • Para que Compute Engine reinicie automáticamente tu instancia, haz lo siguiente: true

    • Para evitar que se reinicie automáticamente, haz lo siguiente: false

  • ERROR_DETECTION_TIMEOUT: el número de segundos que deben transcurrir antes de reiniciar una instancia que no responde. El valor debe estar comprendido entre 90 (90 segundos) y 330 (330 segundos, o 5 minutos y 30 segundos). Solo se permiten incrementos de 30 segundos.

  • LOCAL_SSD_RECOVERY_TIMEOUT: número de horas que se tarda en recuperar los datos de los discos SSD locales conectados. El valor debe estar entre 0 (0 horas) y 168 (168 horas o 7 días). Si asignas el valor 0 a este campo, significa que Compute Engine no recuperará los datos de la unidad SSD local.

  • MAINTENANCE_POLICY: el comportamiento de mantenimiento de las instancias. El valor puede ser TERMINATE o MIGRATE. Si vas a crear VMs de acceso puntual, VMs interrumpibles o instancias que no admitan la migración activa, solo podrás usar TERMINATE.

Para obtener más información sobre cómo crear instancias en bloque, consulta Crear VMs en bloque.

Definir la política al crear una plantilla de instancia

Puedes definir la política de mantenimiento del host al crear una plantilla de instancia. Todas las instancias de proceso que crees con la plantilla heredarán la política de mantenimiento del host especificada en la plantilla.

Para definir el tiempo de espera de recuperación de datos de SSD local al crear una plantilla de instancia que especifique discos SSD locales, usa la CLI de gcloud o la API REST. De lo contrario, selecciona una de las siguientes opciones:

Consola

  1. En la consola, ve a la página Plantillas de instancia. Google Cloud

    Ir a Plantillas de instancia

  2. Haz clic en Crear plantilla de instancia. Aparecerá la página Crear plantilla de instancia.

  3. En el campo Nombre, introduce un nombre para la plantilla de instancia.

  4. En la sección Ubicación, seleccione una de las siguientes opciones:

    • Para crear una plantilla de instancia regional, selecciona Regional (recomendado) y, a continuación, la región en la que quieras crear la plantilla.

    • Para crear una plantilla de instancia global, selecciona Global.

  5. En la sección Configuración de la máquina, especifica el tipo de máquina de la plantilla de instancia.

  6. En la sección Modelo de aprovisionamiento, despliega Configuración avanzada del modelo de aprovisionamiento de VMs y, a continuación, haz una o varias de las siguientes acciones:

    • Para cambiar el comportamiento durante los eventos de mantenimiento, en la lista En mantenimiento del host, selecciona una de las siguientes opciones:

      • Para migrar la instancia durante los eventos de mantenimiento del host, selecciona Migrar instancia de VM (opción recomendada).

      • Para detener la instancia durante los eventos de mantenimiento del host, selecciona Desactivar la instancia de VM.

    • Para cambiar el periodo de tiempo de espera antes de reiniciar una instancia que no responde, en la lista Tiempo de espera de error del host, selecciona una de las siguientes opciones:

      • Para no especificar un tiempo de espera de error de host, selecciona Sin especificar (predeterminado).

      • Para especificar un tiempo de espera de error del host, selecciona una de las opciones disponibles, hasta 5 minutos y 30 segundos.

    • Para cambiar si quieres reiniciar la instancia si falla o se detiene, en la lista Reinicio automático, selecciona una de las siguientes opciones:

      • Para reiniciar automáticamente la instancia después de errores del host o paradas programadas, selecciona Activado (opción recomendada).

      • Para evitar que la instancia se reinicie automáticamente después de errores del host o paradas programadas, selecciona Desactivado.

  7. Haz clic en Crear.

gcloud

Para definir la política de mantenimiento del host al crear una plantilla de instancia, usa el comando gcloud compute instance-templates create con una o varias de las siguientes marcas:

  • Para definir el comportamiento del mantenimiento del host, incluye el campo onHostMaintenance.

  • Para definir el comportamiento de reinicio automático, haz una de las siguientes acciones:

    • Para reiniciar la instancia automáticamente, incluye el campo automaticRestart.

    • Para evitar que la instancia se reinicie automáticamente, incluye el campo automaticRestart.

  • Para definir un tiempo de espera de recuperación de datos de SSD local si tu instancia tiene discos SSD locales conectados, incluye el campo localSsdRecoveryTimeout.

  • Para definir un tiempo de espera de error de host, incluye el campo hostErrorTimeoutSeconds.

Por ejemplo, para definir el comportamiento de mantenimiento del host, reiniciar automáticamente la instancia después de errores del host o paradas programadas, definir un tiempo de espera de recuperación de datos de SSD local y definir un tiempo de espera de error del host, ejecuta el siguiente comando. En el siguiente ejemplo también se crea una plantilla de instancia regional. Para crear una plantilla de instancia global, usa el mismo comando sin la marca --instance-template-region.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --instance-template-region=REGION \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --restart-on-failure

Haz los cambios siguientes:

  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancia.

  • ERROR_DETECTION_TIMEOUT: el número de segundos que deben transcurrir antes de reiniciar una instancia que no responde. El valor debe estar comprendido entre 90 (90 segundos) y 330 (330 segundos, o 5 minutos y 30 segundos). Solo se permiten incrementos de 30 segundos.

  • REGION: la región en la que se creará la plantilla de instancia.

  • LOCAL_SSD_RECOVERY_TIMEOUT: número de horas que se tarda en recuperar los datos de los discos SSD locales conectados. El valor debe estar entre 0 (0 horas) y 168 (168 horas o 7 días). Si asignas el valor 0 a este campo, significa que Compute Engine no recuperará los datos de la unidad SSD local.

  • MACHINE_TYPE: el tipo de máquina que se va a usar.

  • MAINTENANCE_POLICY: el comportamiento de mantenimiento de las instancias. El valor puede ser TERMINATE o MIGRATE. Si especificas una VM de acceso puntual, una VM interrumpible o un tipo de instancia que no admita la migración en vivo en la plantilla de instancia, solo podrás usar TERMINATE.

REST

Para definir la política de mantenimiento del host al crear una plantilla de instancia, haz una solicitud POST a uno de los siguientes métodos:

En el cuerpo de la solicitud, incluye uno o varios de los siguientes campos en el campo scheduling:

  • Para definir el comportamiento del mantenimiento del host, incluye el campo onHostMaintenance.

  • Para definir el comportamiento de reinicio automático, haz una de las siguientes acciones:

    • Para reiniciar la instancia automáticamente, incluye el campo automaticRestart.

    • Para evitar que la instancia se reinicie automáticamente, incluye el campo automaticRestart.

  • Para definir un tiempo de espera de recuperación de datos de SSD local si tu instancia tiene discos SSD locales conectados, incluye el campo localSsdRecoveryTimeout.

  • Para definir un tiempo de espera de error de host, incluye el campo hostErrorTimeoutSeconds.

Por ejemplo, para definir el comportamiento de mantenimiento del host, reiniciar automáticamente la instancia después de que se produzcan errores en el host o se detenga de forma programada, definir un tiempo de espera de recuperación de datos de SSD local y definir un tiempo de espera de error del host, haz una solicitud como la siguiente. En el siguiente ejemplo también se crea una plantilla de instancia regional.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "automaticRestart": AUTOMATIC_RESTART,
      "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
      "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: ID del proyecto en el que se va a crear la plantilla de instancia.

  • REGION: la región en la que se creará la plantilla de instancia.

  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancia.

  • IMAGE_PROJECT: el proyecto de imagen que contiene la imagen (por ejemplo, debian-cloud). Para obtener más información sobre los proyectos de imágenes admitidos, consulta Imágenes públicas.

  • IMAGE: especifica una de las siguientes opciones:

    • Una versión específica de la imagen del SO, por ejemplo, debian-12-bookworm-v20240617.

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Especifica la imagen del SO más reciente que no está obsoleta. Por ejemplo, si especificas family/debian-12, se usará la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre cómo usar familias de imágenes, consulte las prácticas recomendadas para familias de imágenes.

  • MACHINE_TYPE: el tipo de máquina que se va a usar.

  • AUTOMATIC_RESTART: el comportamiento de reinicio automático de la instancia si falla o si Compute Engine la detiene por una parada programada. Se debe utilizar uno de los valores indicados a continuación.

    • Para que Compute Engine reinicie automáticamente tu instancia, haz lo siguiente: true

    • Para evitar que se reinicie automáticamente, haz lo siguiente: false

  • ERROR_DETECTION_TIMEOUT: el número de segundos que deben transcurrir antes de reiniciar una instancia que no responde. El valor debe estar comprendido entre 90 (90 segundos) y 330 (330 segundos, o 5 minutos y 30 segundos). Solo se permiten incrementos de 30 segundos.

  • LOCAL_SSD_RECOVERY_TIMEOUT: número de horas que se tarda en recuperar los datos de los discos SSD locales conectados. El valor debe estar entre 0 (0 horas) y 168 (168 horas o 7 días). Si asignas el valor 0 a este campo, significa que Compute Engine no recuperará los datos de la unidad SSD local.

  • MAINTENANCE_POLICY: el comportamiento de mantenimiento de las instancias. El valor puede ser TERMINATE o MIGRATE. Si especificas una VM de acceso puntual, una VM interrumpible o un tipo de instancia que no admita la migración en vivo en la plantilla de instancia, solo podrás usar TERMINATE.

Para obtener más información sobre cómo crear una plantilla de instancia, consulta el artículo Crear plantillas de instancia.

Ver la política de mantenimiento del host de una instancia

Para ver la política de mantenimiento del host de una instancia, consulta los detalles de la instancia.

Cuando veas los detalles de la instancia con la CLI de gcloud o la API REST, solo podrás ver los campos localSsdRecoveryTimeout y hostErrorTimeoutSeconds si los has especificado al crear o actualizar la instancia.

Para ver el tiempo de espera de recuperación de datos de SSD local en una instancia que tenga discos SSD locales conectados, usa la CLI de gcloud o la API REST. De lo contrario, selecciona una de las siguientes opciones:

Consola

  1. En la consola de Google Cloud , ve a la página Instancias de VM.

    Ir a instancias de VM

  2. En la columna Nombre, haga clic en la instancia que quiera ver. Aparecerá una página con los detalles de la instancia.

  3. En la pestaña Detalles, en la sección Gestión, en la sección Políticas de disponibilidad, puedes ver lo siguiente:

    • En el campo Durante el mantenimiento del host, puedes ver los eventos de comportamiento de mantenimiento del host de la instancia.

    • En el campo Tiempo de espera de error del host, puede ver el tiempo que espera la instancia antes de reiniciarse o detenerse después de detectar que no responde. Si el valor no está definido (), el tiempo de espera predeterminado es de 5 minutos y 30 segundos.

    • En el campo Reinicio automático, puedes ver si la instancia se reinicia automáticamente después de que falle o si Compute Engine la detiene por una parada programada.

gcloud

Para ver la política de mantenimiento del host de una instancia, usa el comando gcloud compute instances describe con la marca --flatten definida como scheduling:

 gcloud compute instances describe INSTANCE_NAME \
    --flatten=scheduling \
    --zone=ZONE

Haz los cambios siguientes:

  • INSTANCE_NAME: el nombre de la instancia.

  • ZONE: la zona en la que se encuentra la instancia.

El resultado debería ser similar al siguiente:

---
scheduling:
  automaticRestart: true
  hostErrorTimeoutSeconds: 120
  localSsdRecoveryTimeout:
    nanos: 0
    seconds: '10800'
  onHostMaintenance: MIGRATE
  preemptible: false
  provisioningModel: STANDARD

REST

Para ver la política de mantenimiento del host de una instancia, envía una solicitud GET al método instances.get. En la URL de la solicitud, incluya el parámetro de consulta fields y asígnele el valor scheduling:

  GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?fields=scheduling

Haz los cambios siguientes:

  • PROJECT_ID: el proyecto en el que se encuentra la instancia.

  • ZONE: la zona en la que se encuentra la instancia.

  • INSTANCE_NAME: el nombre de la instancia.

El resultado debería ser similar al siguiente:

{
  "scheduling": {
    "onHostMaintenance": "MIGRATE",
    "automaticRestart": true,
    "preemptible": false,
    "provisioningModel": "STANDARD",
    "localSsdRecoveryTimeout": {
      "seconds": "10800",
      "nanos": 0
    }
  }
}

Siguientes pasos