Administra fallas para los discos replicados de forma síncrona


El Persistent Disk regional y la alta disponibilidad balanceada de Hyperdisk son opciones de almacenamiento que proporcionan replicación síncrona de datos entre dos zonas de una región. Puedes usar discos persistentes regionales o alta disponibilidad balanceada de Hyperdisk como un componente básico cuando implementas servicios de alta disponibilidad (HA) en Compute Engine.

En este documento, se explican los diversos casos que pueden interrumpir el funcionamiento de tus discos replicados de forma síncrona y cómo puedes administrar estos casos.

Antes de comenzar

  • Revisa los conceptos básicos sobre los discos replicados de forma síncrona y la conmutación por error. Para obtener más información, consulta Acerca de la replicación de disco síncrona.
  • Configura la autenticación si aún no lo hiciste. 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 un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Select the tab for how you plan to use the samples on this page:

    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.

Roles obligatorios

Para obtener los permisos que necesitas para migrar datos de discos replicados de forma síncrona con un punto de control de recuperación de réplicas, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para migrar datos de disco replicados de forma síncrona 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 de discos replicados de forma síncrona mediante un punto de control de recuperación de réplicas:

  • Para crear una instantánea estándar a partir del punto de control de recuperación de réplicas, sigue estos pasos:
    • compute.snapshots.create en el proyecto
    • compute.disks.createSnapshot en el disco
  • Para crear un nuevo disco replicado de forma síncrona a partir de la instantánea estándar, usa compute.disks.create en el proyecto en el que deseas crear el nuevo disco.
  • Para migrar las VMs al disco nuevo, sigue estos pasos:
    • compute.instances.attachDisk en la instancia de VM
    • compute.disks.use permission en el disco creado recientemente

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Situaciones de falla

Con los discos replicados de forma síncrona, 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 procesamiento 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 que se escribieron en una réplica después de que la otra réplica entró en el estado degradado se sincronizan con ambas zonas y el disco vuelve a un estado completamente replicado. Esta transición está completamente automatizada.

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

Fallas zonales

Un disco replicado, o 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 deja de estar disponible. Las fallas zonales pueden ocurrir en la zona principal o secundaria por 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 en los discos replicados de forma síncrona 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 Error en Nuevo estado del disco Consecuencias de la falla Acción que se debe realizar

Réplica principal: Sincronizada

Réplica secundaria: Sincronizada

Estado del disco: Replicado por completo

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.
Realiza la conmutación por error del disco forzando su conexión a una VM en la zona secundaria en buen estado.

Réplica principal: Sincronizada

Réplica secundaria: Sincronizada

Estado del disco: Replicado por completo

Disco conectado en: zona principal

Zona secundaria

Réplica principal: Sincronizada

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: Sincronizada

Réplica secundaria: Sin sincronizar y no disponible

Estado del disco: Degradado

Disco conectado en: zona principal

Zona principal

Réplica principal: Sincronizada, pero no disponible

Réplica secundaria: Sin sincronizar

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 réplica de falla son temporales, no se pierde ningún dato.
  • 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 discos replicados con regularidad mediante instantáneas estándar.

Réplica principal: Sincronizada

Réplica secundaria: Se está actualizando, 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 está actualizando, 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: Sincronizada

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 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.

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 disco replicado a una instancia de procesamiento en la misma zona que la réplica en buen estado.

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 de un disco replicado con force-attach

En caso de que la zona principal falle, puedes conmutar por error el Persistent Disk regional o el volumen de alta disponibilidad balanceada de Hyperdisk (versión preliminar) a una instancia de procesamiento 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 instancia porque no se puede acceder a ella para realizar la operación de desconexión. La conexión forzada te permite conectar undisco persistente regional o un volumen de alta disponibilidad balanceada de Hyperdisk a una instancia de procesamiento, incluso si ese volumen está conectado a otra instancia.

Una vez que completes la operación de conexión forzada, Compute Engine evita que la instancia original escriba en el disco replicado. La operación de conexión forzada te permite volver a acceder de forma segura a los datos y recuperar el servicio. 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 instancia de procesamiento, selecciona una de las siguientes tareas:

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 instancia 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. Selecciona el disco replicado 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 instancia de procesamiento 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 procesamiento. 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 procesamiento en la región.
  • DISK_NAME: Es el nombre del disco replicado.

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

REST

Realiza una solicitud POST para el método compute.instances.attachDisk e incluye en ella la URL del disco replicado que acabas de crear. Para conectar el disco a la instancia de procesamiento nueva, se necesita el parámetro de consulta forceAttach=true si la instancia de procesamiento principal todavía tiene el disco conectado.

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: Es la ubicación de tu instancia de procesamiento.
  • VM_NAME: Es el nombre de la instancia de procesamiento en la que agregas el disco replicado.
  • REGION: Es la región en la que se encuentra el disco replicado.
  • DISK_NAME: Es el nombre del disco replicado.

Una vez conectado el disco replicado, activa los sistemas de archivos en los discos si es necesario. La instancia de procesamiento puede usar el disco de réplica para continuar con las operaciones de lectura y escritura en el disco.

Conmuta por error un disco de arranque a una instancia secundaria

Solo puedes tener un disco de arranque conectado a una instancia de procesamiento. Cuando se produzca un error en un disco de arranque replicado, usa uno de los siguientes métodos, según si la instancia de procesamiento secundaria ya existe:

Usa el punto de control de recuperación de réplicas para recuperar discos replicados

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 dePersistent Disk regional o de alta disponibilidad balanceada de Hyperdisk (versión preliminar) completamente replicado. Compute Engine te permite crear instantáneas estándar desde el punto de control de recuperación de réplicas para discos regionales 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 instancias de procesamiento de ninguna zona. El disco replicado 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 el Procedimiento para migrar y recuperar datos de disco para obtener pasos detallados.

Procedimiento para migrar y recuperar datos de disco

Para recuperar y migrar los datos de un disco replicado mediante el punto de control de recuperación de réplicas, sigue estos pasos:

  1. Crea una instantánea estándar del volumen dePersistent Disk regional o de alta disponibilidad balanceada de Hyperdisk (versión preliminar) 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 gcloud CLI o REST.

    gcloud

    Para crear una instantánea con 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 con 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 de acceso 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 solo especificas 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: el nombre del disco de origen cuyo punto de control quieres 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 STANDARD.

    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 con 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 con 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 de acceso 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 solo especificas 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: el nombre del disco de origen cuyo punto de control quieres 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 STANDARD.

    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 disco Persistent Disk regional o disco de alta disponibilidad balanceada de Hyperdisk con esta instantánea. Cuando creas el disco nuevo, recuperas todos los datos del punto de control de recuperación de réplicas más reciente restableciéndolos en el disco nuevo a partir de la instantánea. Para obtener pasos detallados, consulta Crea una VM nueva con un disco de arranque replicado.

  3. Migra todas las cargas de trabajo de la VM al disco creado recientemente y valida que estas cargas de trabajo de la VM se ejecuten correctamente. Para obtener más información, consulta Cómo mover una VM entre zonas o regiones.

Después de recuperar y migrar los datos y las VMs del disco al discoPersistent Disk regional o de alta disponibilidad balanceada de Hyperdisk 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 o alta disponibilidad balanceada de Hyperdisk (versión preliminar).

Las réplicas zonales están completamente sincronizadas

Compute Engine actualiza el punto de control de recuperación de réplica de tu disco Persistent Disk regional o volumen de alta disponibilidad balanceada de Hyperdisk aproximadamente cada 10 minutos. Como resultado, cuando tus réplicas zonales están completamente sincronizadas, el RPO es de aproximadamente 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:

  • La marca de tiempo más reciente del estado del disco replicado por completo: Puedes obtener esta información con los datos de Cloud Monitoring para la métrica replica_state del disco replicado. Verifica los datos de la métrica replica_state de la réplica desincronizada para determinar cuándo se desincronizó. Debido a 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 ocurrido aproximadamente 10 minutos antes de esta marca de tiempo.
  • La marca de tiempo de la operación de escritura más reciente: Puedes obtener esta información con los datos de Cloud Monitoring para la métrica write_ops_count del disco replicado. 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, en efecto, 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?