Soluciona problemas de consumo de reservas


En esta página, se muestra cómo resolver problemas con el consumo de reservas de recursos zonales de Compute Engine.

Dificultad para realizar un seguimiento del consumo de reservas

Problema: Aunque puedes ver los detalles de una reserva o supervisar el consumo de reservas para ver cuántas VMs reservadas se consumen y supervisar los cambios en este número a lo largo del tiempo, no puedes ver directamente qué VMs consumen una reserva.

Resolución: Si puedes crear correctamente una VM que se oriente a una reserva específica, la VM consume la reserva especificada en la propiedad de afinidad (reservationAffinity) de la VM. De lo contrario, la creación de la VM falla porque las propiedades no coinciden o porque no hay recursos reservados disponibles.

También puedes crear una VM que se oriente a una reserva específica para probar que esté configurada de forma correcta para consumir automáticamente una reserva coincidente y, luego, crear la VM para consumir cualquier reserva que coincida.

Problemas de VMs que no consumen reservas

Si una VM no puede consumir una reserva, puede deberse a uno o más de los siguientes problemas:

  • Las propiedades de la VM no coinciden con las propiedades de la reserva.
  • La afinidad de reserva de la VM es incorrecta.
  • Otras VM coincidentes ya consumieron completamente la reserva.
  • Se superó la cuota del recurso

En esta sección, se describe cómo identificar cada uno de estos problemas, cómo resolverlos y cómo verificar el consumo de reservas.

Propiedades de VM no coincidentes

Problema: Una VM no puede consumir una reserva con propiedades de VM diferentes.

Para identificar este problema, selecciona uno de los siguientes métodos:

  • Visualiza los detalles de la reserva y la VM, y verifica de forma manual que sus propiedades de VM coincidan:

    1. Visualiza los detalles de la reserva que deseas que la VM consuma mediante el comando gcloud compute reservations describe:

      gcloud compute reservations describe RESERVATION_NAME --zone=ZONE
      

      Reemplaza lo siguiente:

      • RESERVATION_NAME es el nombre de una reserva.
      • ZONE es la zona en la que se encuentra la reserva.

      Mantén este resultado disponible.

    2. Visualiza los detalles de la VM que deseas que consuma el comando gcloud compute instances describe de la reserva.

      gcloud compute instances describe VM_NAME
      

      donde VM_NAME es el nombre de la VM.

      Mantén este resultado disponible.

    3. Mediante la descripción de la VM y los resultados de la descripción de la reserva, verifica que las siguientes propiedades coincidan:

      • project
        • Si la reserva se comparte con varios proyectos (si la reserva tiene la propiedad shareType establecida en SPECIFIC_PROJECTS), el proyecto de la VM puede coincidir con el proyecto en el que se encuentra la reserva o coincidir con cualquiera de los proyectos enumerados en shareSettings.
      • zone
      • machineType
      • guestAccelerators.acceleratorType
      • guestAccelerators.acceleratorCount
      • minCpuPlatform
        • La VM y la reserva deben tener la misma configuración de minCpuPlatform. Si especificas un valor minCpuPlatform para cualquiera de las dos, ambas deben tener el mismo valor en esa propiedad. De lo contrario, tanto la reserva como la VM deben omitir la propiedad. Por ejemplo, configurar minCpuPlatform como "Intel Broadwell" cuando creas una VM no coincidirá con el valor minCpuPlatform de "Automatic" dentro de una reserva.
      • localSsds.interface
        • La reserva y la VM deben tener la misma cantidad de SSD locales con una propiedad localSsds.interface coincidente para cada SSD local.
      • resourcePolicies*

      *Solo si una reserva especifica una política de posición de compactación.

  • Crea una VM que se oriente a una reserva específica, en la que se muestre un error si las propiedades no coinciden. Para obtener instrucciones, consulta Verifica el consumo de reservas.

Resolución: Actualiza las propiedades de VM no coincidentes mediante una de las siguientes opciones:

Para verificar si la VM ahora consume la reserva, consulta Verifica el consumo de las reservas.

Si las propiedades de la VM y de la reserva coinciden, pero la VM no consume la reserva, continúa con la siguiente sección.

Las VMs no cumplen con una política de posición

Problema: Una VM intenta consumir una reserva sin especificar la política de posición de compactación de la reserva.

Resolución: Si una reserva de un solo proyecto especifica una política de posición de compactación, una VM debe especificar exactamente la misma política de posición de compactación para consumir la reserva. De lo contrario, la VM no puede consumir la reserva.

Para asegurarte de que una VM consuma una reserva que especifique una política de posición de compactación, prueba una de las siguientes opciones:

Las VMs especifican una política de posición de compactación diferente

Problema: Una VM intenta consumir una reserva, pero la política de posición de compactación especificada en la VM y en la reserva no coinciden.

Resolución: Si una reserva de un solo proyecto especifica una política de posición de compactación, una VM debe especificar exactamente la misma política de posición de compactación para consumir la reserva. De lo contrario, la VM no puede consumir la reserva.

Para solucionar este problema, realiza una de las siguientes acciones:

La afinidad de reserva de la VM es incorrecta

Problema: La afinidad de reserva de la VM está mal configurada. La afinidad de reserva de una VM controla las reservas que puede consumir una VM. Para verificar la afinidad de reserva de tu VM, haz lo siguiente:

  1. Consulta los detalles de la reserva que deseas que la VM consuma con el comando gcloud compute reservations describe.

      gcloud compute reservations describe RESERVATION_NAME --zone=ZONE

    Reemplaza lo siguiente:

    • RESERVATION_NAME es el nombre de una reserva.
    • ZONE es la zona en la que se encuentra la reserva.

    En el resultado, busca el valor del campo specificReservationRequired, ya sea true o false.

  2. Consulta los detalles de la VM con el comando gcloud compute instances describe.

       gcloud compute instances describe VM_NAME

    donde VM_NAME es el nombre de la VM.

    En el resultado, busca el campo reservationAffinity, que es similar al siguiente:

    ...
       reservationAffinity:
         consumeReservationType: RESERVATION_AFFINITY
         key: compute.googleapis.com/reservation-name
         values:
         - RESERVATION_NAME
       ...

Resolución: Actualiza la propiedad reservationAffinity de la VM para que sea compatible con el campo specificReservationRequired de la reserva mediante una de las siguientes opciones de configuración aceptadas:

  1. Si el campo specificReservationRequired de la reserva es true, la propiedad reservationAffinity de la VM debe coincidir con lo siguiente:

    ...
      reservationAffinity:
        consumeReservationType: SPECIFIC_RESERVATION
        key: compute.googleapis.com/reservation-name
        values:
        - RESERVATION_NAME
      ...

    donde RESERVATION_NAME es el nombre de la reserva.

  2. Si el campo specificReservationRequired de la reserva es false, la propiedad reservationAffinity de la VM debe coincidir con lo siguiente:

    ...
      reservationAffinity:
        consumeReservationType: ANY_RESERVATION
      ...

Debes reiniciar la VM para realizar la actualización. Después de la actualización, para verificar si la VM consume la reserva, consulta Verifica el consumo de reservas.

Si la afinidad de reserva de la VM está configurada correctamente, pero la VM no consume ninguna reserva, continúa con la siguiente sección.

La reserva ya se consumió por completo

Problema: La cantidad de VM en uso para esta reserva coincide con la cantidad total de VM reservadas.

Para identificar este problema, consulta los detalles de la reserva y verifica que la cantidad de VMs en uso para esta reserva sea menor que la cantidad total de VMs reservadas.

Resolución: Puedes aumentar la cantidad de VM disponibles para consumir en la reserva mediante una de las siguientes opciones:

Para verificar si la VM ahora consume la reserva, consulta Verifica el consumo de las reservas.

Si la reserva no se consume por completo, pero la VM no la consume, puedes solucionar el problema si creas una VM que se dirija a una reserva específica, lo que muestra un error si el consumo falla. Para obtener más información, avanza a la siguiente sección.

El recuento de VM no se restablece después de detener o borrar una VM

Problema: si detienes, suspendes o borras una VM que consume una reserva, la operación debe completarse antes de que la VM ya no cuente para la reserva, y los recursos consumidos previamente vuelven a estar disponibles para su consumo.

Resolución: espera unos minutos a que se complete la operación de detención, suspensión o eliminación en las VM. Luego, para verificar que las VMs detenidas, suspendidas o borradas ya no cuentan para la reserva, verifica la cantidad total de VMs consumidas en la reserva con uno de los siguientes métodos:

  • Recomendado: Supervisa la reserva y busca un cambio en las mediciones de la reserva.

  • Visualiza los detalles de la reserva y verifica si el valor del campo inUseCount disminuyó. Si su valor no disminuyó, una o más VMs comenzaron a consumir la reserva mientras se completaba la operación de detención, suspensión o eliminación.

VMs que consumen reservas de forma involuntaria

Problema: Cuando creas reservas que se consumen de forma automática (configuración predeterminada), las VM podrían consumir estas reservas de forma involuntaria.

Resolución: Puedes ayudar a controlar qué VM consumen reservas si haces lo siguiente:

Se superó la cuota de recursos

Problema: No se usa una reserva compartida porque se superó una cuota para un recurso en particular.

Las reservas compartidas tienen un requisito adicional con respecto a la cuota. El proyecto de propietario debe tener una cuota suficiente para el doble de recursos que se reservan para que los proyectos de consumidor usen los recursos reservados.

Resolución: Solicita una cuota adicional para que se use el recurso.