Referencia de fallas de conmutación por error de Cloud SQL

En esta página, se describe lo que sucede durante un experimento con un tipo de falla de Cloud SQL de conmutación por error.

Cómo funciona la falla de Cloud SQL de conmutación por error

La falla de Cloud SQL de conmutación por error activa una conmutación por error de alta disponibilidad (HA) para una instancia de Cloud SQL llamando al método failover en la API de Cloud SQL Admin. El propósito de esta falla es permitirte probar el comportamiento y la resiliencia de tu servicio cuando la instancia principal de Cloud SQL pasa a la instancia en espera en otra zona dentro de la misma región.

El destino de esta falla es una instancia de Cloud SQL.

Qué sucede durante la ejecución del experimento

A medida que el experimento avanza por los estados, los recursos involucrados experimentan los siguientes cambios.

Recurso

PREPARING

INJECTING

REVERTING

Instancia

Ninguno

Promueve la instancia en espera de HA

No aplicable

Validación y reintentos de conmutación por error de HA

El backend de Fault Injection Testing realiza verificaciones de validación antes de iniciar la conmutación por error para garantizar que el entorno sea adecuado. Este proceso ocurre durante la etapa INJECTING, antes de enviar la llamada a la API sqladmin.instances.failover al plano de control de Cloud SQL:

  • El sistema verifica que el estado de la instancia de Cloud SQL sea RUNNABLE. Si la instancia está en cualquier otro estado durante un experimento en ejecución, Fault Injection Testing te notifica.
  • Verifica que la métrica cloudsql.googleapis.com/database/available_for_failover sea TRUE.

Si no se cumplen estas condiciones, la solicitud de conmutación por error se pone en cola para reintentarse.

Manejo de fallas

Si la conmutación por error ya está en curso o se produce un error, haz lo siguiente:

  • Durante la inyección: Si el plano de control de Cloud SQL rechaza la llamada de conmutación por error (por ejemplo, si la instancia en espera no está en buen estado), el experimento pasa al estado STOPPING.
  • Supervisión posterior a la conmutación por error: Si la operación de conmutación por error no alcanza el estado DONE dentro de un período predeterminado de 10 minutos, el backend de Fault Injection Testing consulta los errores de la operación, mueve el experimento al estado STOPPING y lo marca como si hubiera encontrado un error.

Fault Injection Testing se basa en el plano de control de Cloud SQL como fuente de información. El plano de control rechaza cualquier intento de conmutación por error si la instancia en espera no está en buen estado. Fault Injection Testing usa verificaciones de solicitud preliminar y supervisión de estado para evitar o informar estas fallas en lugar de intentar reintentos automáticos después de un rechazo.

Conmutación por recuperación manual

Dado que la conmutación por error es un cambio con estado, detener el experimento no vuelve automáticamente a la instancia principal original (como se indica en "No aplicable" en la etapa REVERTING). La base de datos seguirá ejecutándose en la zona secundaria.

Para devolver la instancia a su zona original después de que se complete el experimento, debes iniciar manualmente otra conmutación por error con la Google Cloud consola o la gcloud CLI.