Configurar la replicación asíncrona de Persistent Disks


En este documento, se describe cómo configurar la replicación asíncrona de Persistent Disk (PD). La replicación asíncrona de PD es útil para la recuperación ante desastres con RPO y RTO bajos.

Para habilitar la replicación de disco asíncrona, completa los siguientes pasos:

  1. Configura un par de replicación de disco para configurar la replicación asíncrona de PD.
  2. Inicia la replicación de forma manual para comenzar a replicar datos entre el disco principal y el secundario.

Limitaciones

Los discos secundarios deben estar en blanco cuando se crean. No se pueden crear a partir de imágenes, instantáneas ni otros discos.

Antes de comenzar

  • Elige un par de regiones.
  • De manera opcional, crea un grupo de coherencia.
  • 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 seleccionando una de las siguientes opciones:

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

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    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.

Configura un par de replicación de disco

Antes de replicar datos entre discos, debes configurar la replicación completando las siguientes tareas:

  1. Elige un par de regiones y tus regiones principal y secundaria.
  2. Opcional: Si necesitas coordinar la replicación en un grupo de discos, crea un grupo de coherencia en la región principal. Debes agregar discos principales a un grupo de coherencia antes de comenzar la replicación.
  3. Crea o selecciona los discos principales. De manera opcional, puedes agregar estos discos al grupo de coherencia.
  4. Crea discos secundarios nuevos en blanco.

Requisitos de disco

Los discos deben cumplir con los siguientes requisitos para usarse como discos principales o secundarios en la replicación asíncrona de PD:

Crea o selecciona un disco principal

El disco principal es el disco de arranque o de datos que se conecta a la VM en la que se ejecuta la carga de trabajo. Puedes usar cualquier disco preexistente que cumpla con los requisitos del disco como disco principal, o bien puedes crear uno nuevo. Si deseas usar un disco existente como disco principal, no necesitas realizar ninguna configuración adicional en el disco. Continúa con la creación de un disco secundario para completar la configuración de la replicación asíncrona de PD.

Crea un disco principal.

Crea un disco principal mediante los métodos descritos en uno de los siguientes documentos.

  • Crea un disco de arranque principal mientras creas una VM. De manera opcional, agrega el disco a un grupo de coherencia creando la VM con gcloud CLI o REST y especifica una de las siguientes opciones:

    • Si creas la VM con gcloud CLI, especifica la marca --create-disk:

      --create-disk=disk-resource-policy=projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
      
    • Si creas la VM con REST, especifica la propiedad resourcePolicies:

      "disks":
      {
      …
      "resourcePolicies": "projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME"
      }
      
  • Crea un disco de datos principal mientras creas una VM. De manera opcional, agrega el disco a un grupo de coherencia creando la VM con gcloud CLI o REST y especifica una de las siguientes opciones:

    • Si creas la VM con gcloud CLI, especifica la marca --create-disk:

      --create-disk=disk-resource-policy=projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
      
    • Si creas la VM con REST, especifica la propiedad resourcePolicies:

      "disks":
      {
      …
      "resourcePolicies": "projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME"
      }
      
  • Crea un disco de datos principal sin crear una VM. De manera opcional, agrega el disco a un grupo de coherencia creando la VM con la consola de Google Cloud, gcloud CLI o REST y especifica una de las siguientes opciones:

    • Si creas el disco con la consola de Google Cloud, selecciona el grupo de coherencia del menú desplegable Grupo de coherencia.

    • Si creas el disco con gcloud CLI, especifica la marca --resource-policies:

      --resource-policies=projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
      
    • Si creas el disco con REST, especifica la propiedad resourcePolicies:

      "disks":
      {
      …
      "resourcePolicies": "projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME"
      }
      

    Reemplaza lo siguiente:

    • PROJECT: el proyecto que contiene el grupo de coherencia
    • REGION: la región en la que se encuentra el grupo de coherencia
    • CONSISTENCY_GROUP_NAME: el nombre del grupo de coherencia al que se agregará el disco.

Crea un disco secundario.

El disco secundario es un disco de datos en una región independiente del disco principal que recibe y escribe datos replicados del disco principal. Cuando configures la replicación asíncrona de PD, debes crear un disco secundario nuevo en blanco que haga referencia al disco principal.

Para crear un disco secundario con las mismas propiedades que el disco principal, sigue los pasos que se indican en Cómo crear un disco secundario idéntico al disco principal.

Para crear un disco secundario que difiera del disco principal, consulta Crea un disco secundario personalizado.

Crea un disco secundario idéntico al disco principal

En esta sección, se describe cómo crear un disco secundario idéntico al disco principal.

Puedes crear un disco secundario con la console de Google Cloud, gcloud CLI o REST.

Console

Para crear un disco secundario y comenzar la replicación, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Discos.

    Ir a Discos

  2. Haz clic en el nombre del disco principal. Se abrirá la página Administrar disco.

  3. Haz clic en Crear disco secundario.

  4. En el campo Nombre, ingresa un nombre para el disco.

  5. En la sección Ubicación, haz una de las siguientes acciones:

  6. Haz clic en Crear. Compute Engine crea el disco y comienza la replicación.

gcloud

Crea un disco secundario con el comando gcloud compute disks create:

gcloud compute disks create SECONDARY_DISK_NAME \
    --SECONDARY_LOCATION_FLAG=SECONDARY_LOCATION \
    --size=SIZE \
    --primary-disk=PRIMARY_DISK_NAME \
    --PRIMARY_DISK_LOCATION_FLAG=PRIMARY_LOCATION \
    --primary-disk-project=PRIMARY_DISK_PROJECT

Para crear un disco secundario regional, especifica además la marca --replica-zones:

--replica-zones=ZONE_1,ZONE_2

Reemplaza lo siguiente:

  • SECONDARY_DISK_NAME: el nombre del disco secundario.
  • SECONDARY_LOCATION_FLAG: la marca de ubicación para el disco secundario. Para crear un disco secundario regional, usa --region. Para crear un disco secundario zonal, usa --zone.
  • SECONDARY_LOCATION: la región o la zona para el disco secundario.
  • SIZE Es el tamaño del disco nuevo, expresado en GB. El tamaño debe ser el mismo que el del disco principal. Rangos de tamaño aceptables, en incrementos de 1 GB, de 10 GB a 2,000 GB.
  • PRIMARY_DISK_NAME: el nombre del disco principal del que el disco secundario recibe datos.
  • PRIMARY_LOCATION_FLAG: la marca de ubicación para el disco principal.
    • Para un disco principal regional, usa --primary-disk-region.
    • Para un disco principal zonal, usa --primary-disk-zone.
  • PRIMARY_LOCATION: la región o la zona del disco principal.
    • Para un disco regional, usa la región.
    • Para los discos zonales, usa la zona.
  • PRIMARY_PROJECT: el proyecto que contiene el disco principal.
  • ZONE_1: una de las zonas a las que se replica el disco regional. Debe ser una zona dentro de la región especificada y debe ser diferente de ZONE_2.
  • ZONE_2: una de las zonas a las que se replica el disco regional. Debe ser una zona dentro de la región especificada y debe ser diferente de ZONE_1.

REST

Crea un disco secundario zonal o regional con uno de los siguientes métodos:

  • Para crear un disco secundario zonal, usa el método disks.insert:

    POST https://compute.googleapis.com/compute/v1/projects/SECONDARY_DISK_PROJECT/zones/SECONDARY_DISK_LOCATION/disks
    
    {
    "name": "SECONDARY_DISK_NAME",
    "sizeGb": "DISK_SIZE",
    "type": "DISK_TYPE"
    "asyncPrimaryDisk": {
      "disk": "projects/PRIMARY_DISK_PROJECT/PRIMARY_DISK_LOCATION_PARAMETER/PRIMARY_DISK_LOCATION/disks/PRIMARY_DISK_NAME"
      }
    }
    
  • Para crear un disco secundario regional, usa el método regionDisks.insert:

    POST https://compute.googleapis.com/compute/v1/projects/SECONDARY_DISK_PROJECT/regions/SECONDARY_DISK_LOCATION/disks
    
    {
    "name": "SECONDARY_DISK_NAME",
    "sizeGb": "DISK_SIZE",
    "type": "DISK_TYPE"
    "asyncPrimaryDisk": {
      "disk": "projects/PRIMARY_DISK_PROJECT/PRIMARY_DISK_LOCATION_PARAMETER/PRIMARY_DISK_LOCATION/disks/PRIMARY_DISK_NAME"
      }
    }
    

Reemplaza lo siguiente:

  • SECONDARY_DISK_PROJECT: el proyecto del disco secundario.
  • SECONDARY_DISK_LOCATION: la región o la zona para el disco secundario.
    • Para un disco regional, usa la región.
    • Para un disco zonal, usa la zona.
  • SECONDARY_DISK_NAME: el nombre del disco secundario.
  • DISK_SIZE: el tamaño del disco secundario. Debe ser igual que el tamaño del disco principal.
  • SECONDARY_DISK_TYPE: el tipo de disco. Debe ser pd-ssd o pd-balanced.
  • PRIMARY_DISK_PROJECT: el proyecto que contiene el disco principal.
  • PRIMARY_DISK_LOCATION_PARAMETER: el parámetro de ubicación para el disco principal.
    • Para un disco principal regional, usa regions.
    • Para un disco principal zonal, usa zones.
  • PRIMARY_DISK_LOCATION: la región o la zona del disco principal. Para los discos regionales, usa la región. Para los discos zonales, usa la zona.
  • PRIMARY_DISK_NAME: el nombre del disco principal del que el disco secundario recibe datos.

Crea un disco secundario personalizado

En esta sección, se explica cómo crear un disco secundario personalizado, es decir, un disco secundario cuyas propiedades difieren del disco principal.

Si el disco principal es un disco de arranque, no puedes cambiar ni quitar ninguna de las funciones del SO invitado del disco principal. Solo puedes agregar más funciones del SO invitado. Para obtener más información, consulta Personalización de discos secundarios.

Puedes crear un disco secundario personalizado con gcloud CLI o REST. No puedes personalizar el disco secundario desde la consola de Google Cloud.

gcloud

Para crear un disco secundario personalizado, usa el comando gcloud compute disks create como se describe en Cómo crear un disco secundario idéntico al disco principal. Usa marcas adicionales para personalizar las propiedades del disco secundario.

Los siguientes son ejemplos de cómo personalizar el disco secundario:

  • Para especificar funciones adicionales del SO invitado, usa el parámetro --guest-os-features.

     --guest-os-features=UEFI_COMPATIBLE,GVNIC,MULTI_IP_SUBNET
     

  • Para asignar etiquetas adicionales al disco secundario, usa el parámetro --labels.
      --labels=secondary-disk-for-replication=yes
      

REST

Para crear un disco secundario personalizado, usa el mismo método que se describe en Crea un disco secundario idéntico al disco principal. Especifica campos adicionales para personalizar las propiedades del disco secundario.

Los siguientes son ejemplos de cómo personalizar el disco secundario:

  • Para especificar funciones adicionales del SO invitado, usa el campo guestOsFeatures. Solo puedes especificar funciones adicionales del SO invitado. No puedes cambiar ni quitar ninguna de las funciones del SO invitado que se copiaron del disco principal.
    "guestOsFeatures": [
      {
        "type": "NEW_FEATURE_ID_1"
      },
      {
        "type": "NEW_FEATURE_ID_1"
      }
    ]
    
  • Para asignar etiquetas adicionales al disco secundario, usa el campo labels.
      "labels": [
        {
          "key": "value"
        },
      ]
    

Iniciar la replicación

Después de crear un disco principal y uno secundario, debes iniciar la replicación para comenzar a replicar los datos del disco principal al disco secundario.

¿Qué sigue?