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:
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.
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.
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 enSPECIFIC_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 enshareSettings
.
- Si la reserva se comparte con varios proyectos (si la reserva tiene la propiedad
zone
machineType
guestAccelerators.acceleratorType
guestAccelerators.acceleratorCount
minCpuPlatform
- La VM y la reserva deben tener la misma configuración de
minCpuPlatform
. Si especificas un valorminCpuPlatform
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, configurarminCpuPlatform
como"Intel Broadwell"
cuando creas una VM no coincidirá con el valorminCpuPlatform
de"Automatic"
dentro de una reserva.
- La VM y la reserva deben tener la misma configuración de
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.
- La reserva y la VM deben tener la misma cantidad de SSD locales con una propiedad
resourcePolicies
*
*Solo si una reserva especifica una política de posición compacta.
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:
- Actualiza la VM para que coincida con las propiedades de la reserva.
- Borra la reserva y crea una reserva nueva que coincida con las propiedades de la VM.
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 compacta 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 compacta para consumir la reserva. De lo contrario, las VMs no pueden consumir la reserva.
Para asegurarte de que una VM consuma una reserva que especifica una política de posición de compactación, prueba una de las siguientes opciones:
Si creaste una reserva de un solo proyecto mediante la especificación de propiedades directamente, aplica la política de posición de compactación cuando creas VMs.
Si creaste una reserva de un solo proyecto mediante la especificación de una plantilla de instancias, selecciona uno de los siguientes métodos:
Recomendado: Usa el tipo de reservaPlantilla de instancias para crear VMs. Esta acción aplica automáticamente la misma política de posición compacta especificadas en la reserva a cada VM nueva que crees.
Aplica la política de posición de compactación cuando creas las VMs. Este método requiere que te asegures de forma manual de que la política de posición de compactación y cualquier otra propiedad de VM de tus VMs y reservas coincidan exactamente con cualquier propiedad no coincidente que impidas consumo.
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 compacta especificada en la VM y en la reserva no coincide.
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 compacta para consumir la reserva. De lo contrario, las VMs no pueden consumir la reserva.
Para solucionar este problema, realiza una de las siguientes acciones:
Si creaste una reserva de un solo proyecto mediante la especificación de propiedades directamente, aplica la política de posición de compactación de la reserva cuando crees VMs nuevas.
Si creaste una reserva de un solo proyecto mediante la especificación de una plantilla de instancias, usa la misma plantilla para crear VMs. Esta acción aplica de forma automática la misma política de posición compacta especificada en la reserva a cada VM nueva que creas.
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:
-
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 seatrue
ofalse
. -
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:
-
Si el campo
specificReservationRequired
de la reserva estrue
, la propiedadreservationAffinity
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.
-
Si el campo
specificReservationRequired
de la reserva esfalse
, la propiedadreservationAffinity
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:
- Aumenta la cantidad de VM en la reserva mediante el cambio de tamaño de la reserva.
- Crea una reserva nueva con las mismas propiedades, si ya se reserva la cantidad máxima de VM.
- Reduce la cantidad de otras VM que consumen la reserva. Para obtener más información, consulta VMs que consumen reservas de forma involuntaria.
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.
Se superó la cuota de recursos para las reservas compartidas
Problema: Una VM no consume una reserva compartida porque tu proyecto no tiene suficiente cuota para los recursos que intentas consumir.
Resolución: Las reservas compartidas tienen requisitos de cuota adicionales. Si necesitas aumentar la cuota en tu proyecto para consumir los recursos reservados, consulta Solicita una cuota más alta en la documentación de Cloud Quotas.
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:
- Usa VM que no puedan consumir ninguna reserva cuando se seleccionen.
- Usa reservas que solo se consumen cuando se orientan específicamente en lugar de reservas que se consumen de forma automática.