Configura la política de mantenimiento del host para una instancia


En este documento, se describe cómo configurar la política de mantenimiento del host para una instancia de máquina virtual (VM) o bare metal para controlar el comportamiento de la instancia cuando se produce un evento de host.

Antes de comenzar

  • Si aún no lo hiciste, configura la autenticación. 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 código o muestras 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. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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

  • No puedes cambiar el comportamiento de mantenimiento de una VM interrumpible. Cuando hay un evento de mantenimiento, la VM interrumpible se detiene y no se migra. Debes reiniciar de forma manual la VM interrumpida.
  • Después de crear una VM con un tipo de máquina E2, no podrás cambiar el comportamiento de mantenimiento de la VM de MIGRATE a TERMINATE, ni viceversa.
  • No puedes cambiar el comportamiento de mantenimiento de las instancias de Bare Metal, como c3-standard-192-metal o x4-megamem-1920-metal, que se configuran en TERMINATE y se reinician automáticamente.

Propiedades de mantenimiento del host disponibles

Puedes configurar el comportamiento de mantenimiento, el comportamiento de reinicio y el comportamiento de espera de errores del host de una instancia de procesamiento. Compute Engine configura cada instancia con los valores predeterminados, a menos que especifiques lo contrario.

Durante los eventos del host, según la política de mantenimiento del host configurada, las instancias que no admiten la migración en vivo se finalizan y se reinician automáticamente.

  • onHostMaintenance: Determina el comportamiento cuando ocurre un evento de mantenimiento que podría hacer que la instancia se reinicie.

    • MIGRATE: Hace que Compute Engine realice la migración en vivo de una instancia cuando se produce un evento de mantenimiento. Este es el valor predeterminado para la mayoría de las VMs.
    • TERMINATE: Detiene la instancia en lugar de usar la migración en vivo. Esta es la opción predeterminada para Z3, instancias bare metal y con aceleradores, como GPUs y TPU. Para estos tipos de instancias, no puedes cambiar la configuración de onHostMaintenance.
  • automaticRestart: Determina el comportamiento cuando una instancia falla o el sistema la detiene.

    • true(Predeterminado): Compute Engine reinicia una instancia si esta falla o se detiene.
    • false: Compute Engine no reinicia la instancia si esta falla o se detiene.
  • localSsdRecoveryTimeout: Configura el tiempo de espera de recuperación de SSD local. Esta es la cantidad máxima de tiempo, en horas, que Compute Engine espera para recuperar los datos de los SSD locales después de un error de host. Esta configuración solo se aplica a las VMs con discos SSD locales conectados. Si configuras este parámetro para una instancia que no tiene discos SSD locales adjuntos, se ignorará.

    • Sin establecer (Predeterminado): Compute Engine espera hasta 1 hora para recuperar los datos de SSD locales. Para las VMs Z3, el tiempo de espera predeterminado es de 6 horas.
    • Un número entero de 0 a 168: Especifica la cantidad de horas que Compute Engine espera para recuperar los datos de los SSD locales. El valor máximo equivale a 7 días. Un valor de 0 significa que Compute Engine no espera a recuperar los datos de SSD locales y reinicia la instancia de inmediato.
  • hostErrorTimeoutSeconds (Versión preliminar): Establece la cantidad máxima de tiempo, en segundos, que Compute Engine espera para reiniciar o finalizar una instancia de procesamiento después de detectar que esta no responde.

    • Sin establecer (Predeterminado): Compute Engine espera hasta 5.5 minutos (330 segundos) antes de reiniciar una instancia que no responde.
    • Un número entero de 90 a 330: Es la cantidad de segundos, especificada en incrementos de 30, que Compute Engine espera antes de reiniciar una instancia de procesamiento que no responde.

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

Puedes cambiar la política de mantenimiento del host de una instancia la primera vez que la creas o después de crearla.

Configura la política de mantenimiento del host durante la creación de instancias

La información de esta sección se centra en cómo configurar la política de mantenimiento del host cuando creas una instancia. Para ver más ejemplos de creación de instancias, consulta Crea y, luego, inicia una instancia de Compute Engine.

Puedes configurar la política de mantenimiento del host de una instancia de procesamiento en el momento de su creación con la consola de Google Cloud, gcloud CLI o REST.

Console

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

    Ir a Crear una instancia

  2. Especifica un Nombre para la instancia.

  3. Selecciona una Región y una Zona para la instancia.

  4. En la sección Configuración de la máquina, haz lo siguiente:

    1. Especifica los detalles del tipo de máquina para la instancia.
    2. Expande el menú Configuración avanzada del modelo de aprovisionamiento de VMs.
    3. En el menú Mantenimiento en el host, selecciona uno de los siguientes pasos:
      1. Para migrar VMs durante eventos de mantenimiento, selecciona Migrar instancia de VM.
      2. Para detener las instancias durante los eventos de mantenimiento, selecciona Finalizar instancia de VM.
  5. Para crear la instancia, haz clic en Crear.

gcloud

Para configurar la política de mantenimiento del host de una instancia nueva, usa el comando gcloud compute instances create.

Para establecer la propiedad --host-error-timeout-seconds (versión preliminar), debes usar el comando gcloud beta compute instances create.

Puedes configurar la política de mantenimiento del host de una instancia nueva con el siguiente comando. Si omites alguna de las marcas, se usa el valor predeterminado de la marca.

  gcloud compute instances create INSTANCE_NAME \
      --zone=ZONE \
      --maintenance-policy=MAINTENANCE_BEHAVIOR \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \
      --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT

Reemplaza lo siguiente:

  • INSTANCE_NAME: Es el nombre de la instancia.
  • ZONE: Es la zona en la que se encuentra la instancia.
  • MAINTENANCE_BEHAVIOR: Es el comportamiento del evento de mantenimiento de una instancia, ya sea TERMINATE o MIGRATE. Para la mayoría de los tipos de máquinas, la VM se migra de forma predeterminada si omites esta propiedad. Se finalizarán las instancias de Z3 y Bare Metal.
  • RESTART_ON_FAILURE_BEHAVIOR: Comportamiento de reinicio para instancias cerradas o que no responden, establecido en restart-on-failure (predeterminado) o no-restart-on-failure.
  • SSD_RECOVERY_TIMEOUT: Es la cantidad de horas que se dedicarán a recuperar discos SSD locales conectados a una instancia que se cerró o que no responde. Los valores válidos van desde 0 hasta 168, en incrementos de 1 hora.
  • ERROR_DETECTION_TIMEOUT: La cantidad de segundos que Compute Engine espera antes de reiniciar una instancia que no responde, de 90 a 330 segundos (5.5 minutos), en incrementos de 30 segundos.

REST

Para configurar la política de mantenimiento del host de una instancia nueva con REST, usa el método instances.insert.

Puedes configurar la política de mantenimiento del host de una instancia nueva con el siguiente comando. Si omites alguno de los campos, se usa el valor predeterminado del campo.

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

      {
        "name": "INSTANCE_NAME",

        "scheduling": {
          "onHostMaintenance": "MAINTENANCE_BEHAVIOR",
          "automaticRestart": "RESTART_POLICY,
          "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
        }
      }

Reemplaza lo siguiente:

  • PROJECT_ID: Es el proyecto de la instancia.
  • ZONE: Es la zona en la que deseas crear la instancia.
  • INSTANCE_NAME: Es el nombre de la instancia.
  • MAINTENANCE_BEHAVIOR: Es el comportamiento del evento de mantenimiento de una instancia, ya sea TERMINATE o MIGRATE. Para la mayoría de los tipos de máquinas, la VM se migra de forma predeterminada si omites este campo. Se finalizarán las instancias de Z3 y Bare Metal.
  • RESTART_POLICY: Indica si la instancia se reinicia automáticamente después de un evento de mantenimiento o un error de host, ya sea true (predeterminado) o false.
  • SSD_RECOVERY_TIMEOUT: Es la cantidad de horas que Compute Engine dedica a recuperar los discos SSD locales conectados a una instancia que no responde o que se cerró. Los valores válidos van desde 0 hasta 168, en incrementos de 1 hora. El valor predeterminado para Z3 es de 6 horas, y para todas las demás VMs es de 1 hora.

Configura el tiempo de espera de detección de errores del host

Para establecer la cantidad máxima de tiempo que Compute Engine espera para reiniciar o finalizar una instancia que no responde, usa el método beta instances.insert porque esta opción está en versión preliminar.

Agrega la propiedad hostErrorTimeoutSeconds al objeto scheduling del cuerpo de la solicitud, donde HOST_ERROR_TIMEOUT es la cantidad de segundos que Compute Engine espera antes de reiniciar o finalizar una instancia que no responde. Los valores válidos van desde 90 hasta 330 (5.5 minutos), en incrementos de 30 segundos.


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

   {
      "name": "INSTANCE_NAME",

      "scheduling": {
        "onHostMaintenance": "MAINTENANCE_BEHAVIOR",
        "automaticRestart": "RESTART_POLICY,
        "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
        "hostErrorTimeoutSeconds": HOST_ERROR_TIMEOUT,
      }
    }

Cómo actualizar la política de mantenimiento del host de una instancia existente

Console

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

    Ir a Instancias de VM

  2. Haz clic en el nombre de la instancia en la que deseas cambiar la configuración. Se mostrará la página de detalles de la instancia.

  3. Con la pestaña Detalles seleccionada, completa los siguientes pasos:

    1. Haz clic en el botón Editar en la parte superior de la página.
    2. Ve a la sección Administración. En la sección Políticas de disponibilidad, puedes cambiar las opciones de mantenimiento del host.
    3. Haz clic en Guardar.

gcloud

Actualiza la política de mantenimiento del host de una instancia existente con el comando gcloud compute instances set-scheduling. Usa los mismos parámetros que para el comando de creación de instancias de la sección anterior.

Para actualizar la cantidad máxima de tiempo que Compute Engine espera para reiniciar o finalizar una instancia que no responde (versión preliminar), usa el comando gcloud beta compute instances set-scheduling y, luego, incluye --host-error-timeout-seconds=NUMBER_OF_SECONDS.

    gcloud compute instances set-scheduling INSTANCE_NAME \
      --maintenance-policy=MAINTENANCE_BEHAVIOR \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT

Reemplaza lo siguiente:

  • NUMBER_OF_SECONDS: La cantidad de segundos que Compute Engine espera antes de reiniciar o finalizar una VM que no responde, de 90 a 330 (5.5 minutos), en incrementos de 30 segundos.
    • INSTANCE_NAME: Es el nombre de la instancia.
    • MAINTENANCE_BEHAVIOR: Es el comportamiento del evento de mantenimiento de una instancia, ya sea TERMINATE o MIGRATE. Para la mayoría de los tipos de máquinas, la VM se migra de forma predeterminada si omites esta propiedad. Se finalizarán las instancias de Z3 y Bare Metal.
    • RESTART_ON_FAILURE_BEHAVIOR: Comportamiento de reinicio para instancias cerradas o que no responden, establecido en restart-on-failure (predeterminado) o no-restart-on-failure.
    • SSD_RECOVERY_TIMEOUT: Es la cantidad de horas que se dedicarán a recuperar discos SSD locales conectados a una instancia que se cerró o que no responde. Los valores válidos van desde 0 hasta 168, en incrementos de 1 hora.
    • NUMBER_OF_SECONDS: La cantidad de segundos que Compute Engine espera antes de reiniciar una instancia que no responde, de 90 a 330 segundos (5.5 minutos), en incrementos de 30 segundos.

REST

Actualiza la política de mantenimiento del host de una instancia existente con una solicitud POST al método instances.setScheduling.

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

    {
      "onHostMaintenance": "MAINTENANCE_BEHAVIOR",
      "automaticRestart": RESTART_POLICY,
      "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
    }

Reemplaza lo siguiente:

  • PROJECT_ID: Es el proyecto de la instancia.
  • ZONE: Es la zona en la que se encuentra la instancia.
  • INSTANCE_NAME: Es el nombre de la instancia.
  • MAINTENANCE_BEHAVIOR: Es el comportamiento del evento de mantenimiento de esta instancia, ya sea TERMINATE o MIGRATE.
  • RESTART_POLICY: Indica si la instancia se reinicia automáticamente, ya sea true o false.
    • SSD_RECOVERY_TIMEOUT: Es la cantidad de horas que se dedicarán a recuperar los discos SSD locales conectados a la instancia. Los valores válidos van desde 0 hasta 168, en incrementos de 1 hora.

Cómo actualizar el tiempo de espera de detección de errores del host

Para actualizar la cantidad máxima de tiempo que Compute Engine espera para reiniciar o finalizar una VM que no responde, debes usar el método beta instances.setScheduling porque esta función está en versión preliminar.

Agrega la propiedad hostErrorTimeoutSeconds al cuerpo de la solicitud, donde HOST_ERROR_TIMEOUT es la cantidad de segundos que Compute Engine espera antes de reiniciar o finalizar una instancia que no responde. Los valores válidos van desde 90 hasta 330 (5.5 minutos), en incrementos de 30 segundos.

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

  {
    ...
    "hostErrorTimeoutSeconds": NUMBER_OF_SECONDS
  }

Cómo ver la configuración de la política de mantenimiento del host de una instancia

Console

  1. Ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Haz clic en el nombre de la instancia para la que deseas ver la configuración. Se abre la página de detalles de la instancia.

  3. Ve a la sección Administración. En la subsección Políticas de disponibilidad, se muestra tu configuración actual para lo siguiente:

    • Mantenimiento en el host
    • Reinicio automático
    • Tiempo de espera de error del host

gcloud

Consulta la configuración de la opción de mantenimiento del host de una instancia con el comando gcloud compute instances describe.

Para ver el valor actual de la configuración de hostErrorTimeoutSeconds (versión preliminar), usa el comando gcloud beta compute instances describe.

 gcloud compute instances describe INSTANCE_NAME \
 --zone ZONE --format="yaml(scheduling)"

Reemplaza lo siguiente:

  • INSTANCE_NAME: El nombre de la instancia
  • ZONE: Es la zona en la que se encuentra la instancia.

El resultado incluye la configuración actual de la política de mantenimiento del host, por ejemplo:

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

REST

Para ver la configuración de mantenimiento del host de una instancia, usa el método instances.get:

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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el proyecto en el que se encuentra la instancia.
  • ZONE: Es la zona en la que se encuentra la instancia.
  • INSTANCE_NAME: Es el nombre de la instancia.

En el resultado, el objeto scheduling contiene la configuración de la política de mantenimiento del host de la instancia, por ejemplo:

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

Cómo ver la configuración del tiempo de espera de errores del host

Para ver el parámetro de configuración hostErrorTimeoutSeconds actual, crea una solicitud GET con el método beta instances.get.

 GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

Reemplaza lo siguiente:

  • PROJECT_ID: Es el proyecto de la instancia.
  • ZONE: Es la zona en la que se encuentra la instancia.
  • INSTANCE_NAME: Es el nombre de la instancia.

En el resultado, el objeto scheduling incluye el tiempo de espera de detección de errores del host de la instancia, por ejemplo:

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

¿Qué sigue?