Administra fallas para el Persistent Disk regional


El Persistent Disk regional es una opción de almacenamiento que proporciona replicación síncrona de datos entre dos zonas de una región. Puedes usar Persistent Disk regional como componente fundamental cuando implementas servicios de alta disponibilidad (HA) en Compute Engine.

En este documento se explican los diversos casos que pueden interrumpir el funcionamiento de tu volumen regional de Persistent Disk y cómo puedes administrar estos casos.

Antes de comenzar

  • Revisa los conceptos básicos sobre la replicación zonal y la conmutación por error de Persistent Disk regional. Para obtener más información, consulta Acerca de Persistent Disk regional.
  • 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 de la siguiente manera.

    Selecciona la pestaña para saber cómo planeas usar las muestras en esta página:

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    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.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

Situaciones de falla

Con los discos persistentes regionales, cuando el dispositivo está completamente replicado, los datos se replican automáticamente en dos zonas de una región. Una operación de escritura se confirma en una instancia de máquina virtual (VM) cuando persiste de manera duradera en ambas réplicas.

Si la replicación a una zona falla o es muy lenta durante un tiempo, el estado de replicación del disco cambia a degradado. En este modo, la escritura se confirma después de que persiste de manera duradera en una réplica.

Si Compute Engine detecta que la replicación se puede reanudar, los datos escritos antes desde que el dispositivo ingresó en el estado degradado se sincronizan con ambas zonas y el disco vuelve a un estado completamente replicado. Esta transición es completamente automatizada.

RPO y RTO no están definidos mientras un dispositivo está en estado degradado. Para minimizar los datos o la pérdida de disponibilidad en caso de que falle un disco que funciona en un estado degradado, te recomendamos que hagas una copia de seguridad de tus discos persistentes regionales con regularidad mediante instantáneas estándar. Para recuperar un disco, restablece la instantánea.

Fallas zonales

Un volumen regional de Persistent Disk regional se replica de forma síncrona en las réplicas de disco en las zonas principal y secundaria. Las fallas zonales ocurren cuando una réplica zonal falla y deja de estar disponible. Las fallas zonales pueden ocurrir en cualquiera de las zonas debido a uno de los siguientes motivos:

  • Hay una interrupción zonal.
  • La réplica experimenta una lentitud excesiva en las operaciones de escritura.

En la siguiente tabla se proporcionan las diversas situaciones de falla zonales que puedes encontrar el Persistent Disk regional y la acción recomendada para cada situación. En cada una de estas situaciones, se supone que tu réplica zonal principal está en buen estado y sincronizada durante el estado inicial.

Estado inicial del disco Falla en Estado nuevo del disco Consecuencias de fallas Acción que se debe realizar

Réplica principal: Sincronizado

Réplica secundaria: Sincronizada

Estado del disco: completamente replicado

Disco conectado en: zona principal

Zona principal

Réplica principal: Sin sincronizar o no disponible

Réplica secundaria: Sincronizada

Estado del disco: Degradado

Disco conectado en: zona principal

  • La réplica en la zona secundaria se mantiene en buen estado y tiene los últimos datos de disco.
  • La réplica en la zona principal está en mal estado y no se garantiza que tenga todos los datos del disco.
Conmuta por error el disco mediante la conexión forzada a una VM en la zona secundaria en buen estado.

Réplica principal: Sincronizado

Réplica secundaria: Sincronizada

Estado del disco: completamente replicado

Disco conectado en: zona principal

Zona secundaria

Réplica principal: Sincronizado

Réplica secundaria: Sin sincronizar o no disponible

Estado del disco: Degradado

Disco conectado en: zona principal

  • La réplica en la zona principal se mantiene en buen estado y tiene los últimos datos de disco.
  • La réplica en la zona secundaria está en mal estado y no se garantiza que tenga todos los datos del disco.
No se requiere ninguna acción. Compute Engine vuelve a sincronizar la réplica en mal estado en la zona secundaria después de que vuelve a estar disponible.

Réplica principal: Sincronizado

Réplica secundaria: Sin sincronizar y no disponible

Estado del disco: Degradado

Disco conectado en: zona principal

Zona principal

Réplica principal: Sincronizado, pero no disponible

Réplica secundaria: No sincronizada

Estado del disco: no disponible

Disco conectado en: zona principal

  • Ambas réplicas zonales no están disponibles y no pueden entregar tráfico. El disco deja de estar disponible.
  • Si la interrupción zonal o la falla de réplica son temporales, no se pierden datos.
  • Si la interrupción zonal o la réplica de falla son permanentes, todos los datos escritos en la réplica en buen estado mientras el disco se degrada se pierden de forma permanente.
Google recomienda que uses una instantánea estándar existente y crees un disco nuevo para recuperar los datos. Como práctica recomendada, crea una copia de seguridad de los volúmenes regionales de Persistent Disk con instantáneas estándar.

Réplica principal: Sincronizado

Réplica secundaria: Se actualiza, pero está disponible

Estado del disco: Se está actualizando

Disco conectado en: zona principal

Zona principal

Réplica principal: No disponible

Réplica secundaria: Se actualiza, pero está disponible

Estado del disco: no disponible

Disco conectado en: zona principal

  • Ambas réplicas zonales no pueden entregar tráfico. El disco deja de estar disponible.
  • Si la interrupción zonal o la réplica de falla son temporales, el disco reanuda las operaciones después de que la réplica principal vuelva a estar disponible.
  • Si la interrupción zonal o la falla de réplica son permanentes, el disco se volverá inutilizable.

Réplica principal: Sincronizado

Réplica secundaria: Sin sincronizar, pero disponible

Estado del disco: Degradado

Disco conectado en: zona principal

Zona principal

Réplica principal: No disponible

Réplica secundaria: Sin sincronizar, pero disponible

Estado del disco: no disponible

Disco conectado en: zona principal

  • Ambas réplicas zonales no pueden entregar tráfico. El disco deja de estar disponible.
  • Si la interrupción zonal o la falla de réplica son temporales, el disco reanuda las operaciones después de que la réplica principal vuelva a estar disponible.
  • Si la interrupción zonal o la falla de réplica son permanentes, el disco se volverá inutilizable.

Fallas de aplicaciones y VM

Si se producen interrupciones debido a una configuración incorrecta de la VM, una actualización incorrecta del SO o alguna falla en la aplicación, puedes force-attach el Persistent Disk regional a una instancia de VM en la misma zona.

Categoría de fallas y (probabilidad) Tipos de fallas Acción
Falla de la aplicación (alta)
  • Aplicaciones que no responden
  • Falla debido a acciones administrativas de la aplicación (por ejemplo, actualización)
  • Error humano (por ejemplo, configuración incorrecta de parámetros como un certificado SSL o LCA)
El plano de control de la aplicación puede activar la conmutación por error en función de los umbrales de la verificación de estado.
Falla de VM (media)
  • Falla de infraestructura o hardware
  • La VM no responde debido a la contención de la CPU o la interrupción de red intermedia
Por lo general, las VM se reparan de forma automática. El plano de control de la aplicación puede activar la conmutación por error en función de los umbrales de la verificación de estado.
Corrupción de la aplicación (baja-media) Corrupción de los datos de aplicación
(por ejemplo, debido a errores de la aplicación o a una actualización incorrecta del SO)
Recuperación de la aplicación:

Realiza una conmutación por error del Persistent Disk regional mediante force-attach

En caso de que la zona principal falle, puedes conmutar por error el volumen del Persistent Disk regional a una VM en otra zona mediante una operación de conexión forzada. Cuando hay una falla en la zona principal, es posible que no puedas desconectar el disco de la VM porque no se puede acceder a ella para realizar la desconexión. La operación de conexión forzada te permite conectar un volumen de Persistent Disk regional a una VM, incluso si ese volumen está conectado a otra VM. Una vez que completes la operación de conexión forzada, Compute Engine evita que la VM original escriba en el volumen regional de Persistent Disk. El uso de la operación de conexión forzada te permite recuperar el acceso a los datos y recuperar el servicio de forma segura. También tienes la opción de desactivar la instancia de VM de forma manual después de realizar la operación de conexión forzada.

Para forzar la conexión de un disco existente a una VM, sigue estos pasos:

Console

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

    Ir a Instancias de VM

  2. Elige tu proyecto.

  3. Haz clic en el nombre de la VM que deseas cambiar.

  4. En la página de detalles, haz clic en Editar.

  5. En la sección Discos adicionales, haz clic en Conectar disco adicional.

  6. Elige el Persistent Disk regional del menú desplegable.

  7. Para forzar la conexión del disco, elige la casilla de verificación Conectar disco a la fuerza.

  8. Haz clic en Listo y, luego, en Guardar.

Puedes realizar los mismos pasos para force-attach un disco a la VM original después de que se resuelva la falla.

gcloud

En la gcloud CLI, usa el comando instances attach-disk para conectar el disco de réplica a una instancia de VM. Incluye la marca --disk-scope y configúrala como regional.

gcloud compute instances attach-disk VM_NAME \
    --disk DISK_NAME --disk-scope regional \
    --force-attach

Reemplaza lo siguiente:

  • VM_NAME: Es el nombre de la nueva instancia de VM en la región
  • DISK_NAME: Es el nombre del disco

Después de force-attach el disco, activa los sistemas de archivos en el disco, si es necesario. La instancia puede usar el disco con conexión forzada para continuar las operaciones de lectura y escritura.

REST

Crea una solicitud POST para el método compute.instances.attachDisk y, luego, incluye la URL en el volumen de Persistent Disk que acabas de crear. Para conectar el disco a la instancia de VM nueva, se necesita el parámetro de consulta forceAttach=true, aunque la instancia principal de VM todavía tenga el disco.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/attachDisk?forceAttach=true

{
 "source": "projects/PROJECT_ID/regions/REGION/disks/DISK_NAME"
}

Reemplaza lo siguiente:

  • PROJECT_ID: El ID de tu proyecto
  • ZONE: La ubicación de tu instancia de VM
  • VM_NAME: Es el nombre de la instancia de VM en la que deseas agregar el volumen nuevo de Persistent Disk.
  • REGION: Es la región en la que se encuentra el nuevo Persistent Disk regional.
  • DISK_NAME: Es el nombre del disco nuevo.

Una vez conectada la réplica del disco, activa los sistemas de archivos en los discos si es necesario. La instancia de VM puede usar la réplica del disco para continuar con las operaciones de lectura y escritura.

Usa un punto de control de recuperación de réplicas para recuperar volúmenes de un Persistent Disk regional degradado

Un punto de control de recuperación de réplicas representa el momento más coherente frente a fallas en el tiempo de un volumen de Persistent Disk regional completamente replicado. Compute Engine te permite crear instantáneas estándar desde el punto de control de recuperación de la réplica para discos degradados.

En raras ocasiones, cuando tu disco se degrada, la réplica zonal que se sincroniza con los datos del disco más reciente también puede fallar antes de que la réplica desincronizada se actualice. No podrás forzar la conexión del disco a las VM de ninguna zona. El volumen de Persistent Disk regional deja de estar disponible y debes migrar los datos a un disco nuevo. En esas situaciones, si no tienes ninguna instantánea estándar disponible para tu disco, es posible que puedas recuperar los datos del disco desde la réplica incompleta mediante una instantánea estándar creada a partir de una instantánea estándar. punto de control de recuperación de réplicas. Consulta Procedimiento para migrar y recuperar datos del disco a fin de obtener pasos detallados.

Funciones obligatorias

Para obtener los permisos que necesitas a fin de migrar datos regionales de Persistent Disk mediante un punto de control de recuperación de réplicas, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Si quieres obtener más información para otorgar funciones, consulta Administra el acceso.

Estos roles predefinidos contienen los permisos necesarios para migrar datos regionales de discos persistentes mediante un punto de control de recuperación de réplicas. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para migrar datos regionales de Persistent Disk mediante un punto de control de recuperación de réplicas:

  • Para crear una instantánea estándar desde el punto de control de la recuperación de réplicas, haz lo siguiente:
    • compute.snapshots.create en el proyecto
    • compute.disks.createSnapshot en el disco
  • Para crear un nuevo Persistent Disk regional a partir de la instantánea estándar: compute.disks.create en el proyecto en el que deseas crear el nuevo disco
  • Para migrar las VM al disco nuevo, sigue estos pasos:
    • compute.instances.attachDisk en la instancia de VM
    • compute.disks.use permission en el disco recién creado

También puedes obtener estos permisos con funciones personalizadas o con otras funciones predefinidas

Procedimiento para migrar y recuperar datos de disco

Para recuperar y migrar los datos de un volumen de Persistent Disk regional mediante el punto de control de recuperación de réplicas, realiza los siguientes pasos:

  1. Crea una instantánea estándar del volumen de Persistent Disk regional afectado desde su punto de control de recuperación de réplicas. Puedes crear la instantánea estándar para un disco desde su punto de control de recuperación de réplicas solo con Google Cloud CLI o REST.

    gcloud

    Para crear una instantánea mediante el punto de control de recuperación de réplicas, usa el comando gcloud compute snapshots create . Incluye la marca --source-disk-for-recovery-checkpoint para especificar que deseas crear la instantánea mediante un punto de control de recuperación de réplicas. Excluye los parámetros --source-disk y --source-disk-region.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk-for-recovery-checkpoint=SOURCE_DISK \
        --source-disk-for-recovery-checkpoint-region=SOURCE_REGION \
        --storage-location=STORAGE_LOCATION \
        --snapshot-type=SNAPSHOT_TYPE
    

    Reemplaza lo siguiente:

    • DESTINATION_PROJECT_ID: Es el ID del proyecto en el que deseas crear la instantánea.
    • SNAPSHOT_NAME: Es un nombre para la instantánea.
    • SOURCE_DISK: Es el nombre o la ruta de acceso completa del disco de origen que deseas usar para crear la instantánea. Para especificar la ruta completa de un disco de origen, usa la siguiente sintaxis:
        projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME
        

      Si especificas la ruta de acceso completa al disco de origen, puedes excluir la marca --source-disk-for-recovery-checkpoint-region. Si especificas solo el nombre del disco, debes incluir esta marca.

      Para crear una instantánea desde el punto de control de recuperación de un disco de origen en un proyecto diferente, debes especificar la ruta de acceso completa al disco de origen.

    • SOURCE_PROJECT_ID: Es el ID del proyecto del disco de origen cuyo punto de control deseas usar para crear la instantánea.
    • SOURCE_REGION: Es la región del disco de origen cuyo punto de control deseas usar para crear la instantánea.
    • SOURCE_DISK_NAME: el nombre del disco de origen cuyo punto de control quieres usar para crear la instantánea.
    • STORAGE_LOCATION: Opcional: la multirregión de Cloud Storage o la región de Cloud Storage en la que quieres almacenar la instantánea. Solo puedes especificar una ubicación de almacenamiento.
      Usa la marca --storage-location solo cuando quieras anular la ubicación de almacenamiento predeterminada o personalizada establecida en tu configuración de instantáneas.
    • SNAPSHOT_TYPE: Es el tipo de instantánea, ya sea ESTANDARD o ARCHIVO. Si no se especifica un tipo de instantánea, se crea una instantánea ESTANDARD.

    Puedes usar el punto de control de recuperación de réplicas para crear una instantánea solo en discos degradados. Si intentas crear una instantánea desde un punto de control de recuperación de réplicas cuando el dispositivo está completamente replicado, verás el siguiente mensaje de error:

    The device is fully replicated and should not create snapshots out of a recovery checkpoint. Please
    create regular snapshots instead.
    

    REST

    Para crear una instantánea mediante el punto de control de recuperación de réplicas, realiza una solicitud POST al método snapshots.insert. Excluye el parámetro sourceDisk y, en su lugar, incluye el parámetro sourceDiskForRecoveryCheckpoint para especificar que deseas crear la instantánea mediante el punto de control.

    POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
    
    {
      "name": "SNAPSHOT_NAME",
      "sourceDiskForRecoveryCheckpoint": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME",
      "storageLocations": "STORAGE_LOCATION",
      "snapshotType": "SNAPSHOT_TYPE"
    }
    

    Reemplaza lo siguiente:

    • DESTINATION_PROJECT_ID: Es el ID del proyecto en el que deseas crear la instantánea.
    • SNAPSHOT_NAME: Es un nombre para la instantánea.
    • SOURCE_DISK: Es el nombre o la ruta de acceso completa del disco de origen que deseas usar para crear la instantánea. Para especificar la ruta completa de un disco de origen, usa la siguiente sintaxis:
        projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME
        

      Si especificas la ruta de acceso completa al disco de origen, puedes excluir la marca --source-disk-for-recovery-checkpoint-region. Si especificas solo el nombre del disco, debes incluir esta marca.

      Para crear una instantánea desde el punto de control de recuperación de un disco de origen en un proyecto diferente, debes especificar la ruta de acceso completa al disco de origen.

    • SOURCE_PROJECT_ID: Es el ID del proyecto del disco de origen cuyo punto de control deseas usar para crear la instantánea.
    • SOURCE_REGION: Es la región del disco de origen cuyo punto de control deseas usar para crear la instantánea.
    • SOURCE_DISK_NAME: el nombre del disco de origen cuyo punto de control quieres usar para crear la instantánea.
    • STORAGE_LOCATION: Opcional: la multirregión de Cloud Storage o la región de Cloud Storage en la que quieres almacenar la instantánea. Solo puedes especificar una ubicación de almacenamiento.
      Usa el parámetro storageLocations solo cuando quieras anular la ubicación de almacenamiento predeterminada o personalizada establecida en tu configuración de instantáneas.
    • SNAPSHOT_TYPE: Es el tipo de instantánea, ya sea ESTANDARD o ARCHIVO. Si no se especifica un tipo de instantánea, se crea una instantánea ESTANDARD.

    Puedes usar el punto de control de recuperación de réplicas para crear una instantánea solo en discos degradados. Si intentas crear una instantánea desde un punto de control de recuperación de réplicas cuando el dispositivo está completamente replicado, verás el siguiente mensaje de error:

    The device is fully replicated and should not create snapshots out of a recovery checkpoint. Please
    create regular snapshots instead.
    

  2. Crea un nuevo volumen de Persistent Disk regional mediante esta instantánea. Cuando creas el disco nuevo, recuperas todos los datos del punto de control de recuperación de la réplica más reciente. Para ello, mueve los datos al disco nuevo. Para obtener pasos detallados, consulta Crea una VM nueva con discos de arranque regionales de Persistent Disk.

  3. Migra todas las cargas de trabajo de VM al disco recién creado y valida que estas cargas de trabajo de VM se ejecuten de forma correcta. Para obtener más información, consulta Mueve una VM entre zonas o regiones.

Después de recuperar y migrar los datos y las VM del disco al volumen de Persistent Disk regional que se acaba de crear, puedes reanudar las operaciones.

Determina el RPO que proporciona el punto de control de recuperación de réplicas

En esta sección, se explica cómo determinar el RPO que proporciona el punto de control de recuperación de la réplica más reciente de un volumen de Persistent Disk regional.

Las réplicas zonales se sincronizan por completo

Compute Engine actualiza el punto de control de recuperación de réplica de tu volumen regional de Persistent Disk cada 10 minutos, aproximadamente. Como resultado, cuando tus réplicas zonales están sincronizadas por completo, el RPO es de alrededor de 10 minutos.

Las réplicas zonales no están sincronizadas

No puedes ver las marcas de tiempo de creación y actualización exactas de un punto de control de recuperación de réplicas. Sin embargo, puedes estimar el RPO aproximado que proporciona tu punto de control más reciente con los siguientes datos:

  • Marca de tiempo más reciente del estado del disco completamente replicado: Puedes obtener esta información mediante los datos regionales de Cloud Monitoring para Persistent Disk de la métrica replica_state. Verifica los datos de la métrica replica_state para la réplica sin sincronizar a fin de determinar cuándo la réplica dejó de sincronizarse. A medida que Compute Engine actualiza el punto de control del disco cada 10 minutos, la actualización más reciente del punto de control podría haber sido alrededor de 10 minutos antes de esta marca de tiempo.
  • Marca de tiempo de la operación de escritura más reciente: Puedes obtener esta información mediante los datos de Cloud Monitoring de Persistent Disk para la métrica write_ops_count. Verifica los datos de la métrica write_ops_count para determinar la operación de escritura más reciente del disco.

Después de determinar estas marcas de tiempo, usa la siguiente fórmula para calcular el RPO aproximado que proporciona el punto de control de recuperación de réplicas de tu disco. Si el valor calculado es menor que cero, el RPO es efectivamente cero.

Approximate RPO provided by the latest checkpoint = (Most recent write operation timestamp - (Most recent timestamp of the fully replicated disk state - 10 minutes))

¿Qué sigue?