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 configuración de la replicación asíncrona de PD implica configurar un par de replicación de disco mediante la creación de discos principales y secundarios.

Después de configurar la replicación, puedes iniciar la replicación.

La replicación asíncrona de PD es útil para la recuperación ante desastres con RPO y RTO bajos. Para obtener más información sobre la replicación asíncrona de PD, consulta Información sobre la replicación asíncrona de Persistent Disk.

Limitaciones

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

Antes de comenzar

  • Elige un par de regiones.
  • De manera opcional, crea un grupo de coherencia.
  • Configura la autenticación.

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

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    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

Configura un par de replicación de disco

Antes de que puedas replicar los datos entre los discos, debes configurar la replicación. Para ello, completa las siguientes tareas:

  1. Elige un par de regiones y tus regiones principal y secundaria.
  2. Opcional: Si necesitas coordinar la replicación entre 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 del disco

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

Crea o selecciona un disco principal

El disco principal es el disco de arranque o de datos conectado 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 un disco principal o puedes crear un disco nuevo. Si quieres 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 ubicado en una región independiente del disco principal, que recibe y escribe los datos replicados del disco principal. Cuando configuras la replicación asíncrona de PD, debes crear un disco secundario nuevo en blanco que haga referencia al disco principal.

Los parámetros que especifiques cuando crees un disco secundario dependen de si el disco principal es un disco de arranque o uno que no es de arranque. Para crear un disco secundario a partir de un disco de arranque, consulta Crea un disco secundario a partir de un disco de arranque.

En la siguiente sección, se describe cómo crear un disco secundario a partir de un disco que no es de arranque.

Crea un disco secundario a partir de un disco que no es de arranque

Si el disco principal no es un disco de arranque, puedes crear un disco secundario a través de la consola de Google Cloud, gcloud CLI o REST.

Consola

Para crear un disco secundario e iniciar la replicación, sigue estos pasos:

  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, realiza una de las siguientes acciones:

  6. Haz clic en Crear. Compute Engine crea el disco y, luego, inicia 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, también debes especificar 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 mediante 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_LOCATION/zones/SECONDARY_DISK_ZONE/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 del mismo tamaño que el 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 a partir de un disco de arranque

Si tu disco principal es un disco de arranque, debes especificar su información de configuración de arranque cuando crees un disco secundario.

La configuración de arranque del disco principal incluye uno o más de los siguientes campos. Debes especificar los mismos campos con los mismos valores cuando crees un disco secundario.

  • architecture
  • license
  • licenseCodes
  • guestOSFeatures

Para crear un disco secundario a partir de un disco de arranque, recupera la configuración de arranque del disco principal. A continuación, especifica la información de configuración de inicio cuando crees el disco secundario.

Puedes usar gcloud CLI o REST para crear un disco secundario a partir de un disco de arranque. No puedes crear un disco secundario a partir de un disco de arranque con la consola de Google Cloud.

  1. Recupera la información de arranque del disco. Puedes recuperar la información de arranque del disco principal con gcloud CLI o REST.

    gcloud

    Recupera la configuración de arranque del disco principal con el comando gcloud compute disks describe.

    gcloud compute disks describe PRIMARY_DISK_NAME \
        PRIMARY_DISK_LOCATION_FLAG=PRIMARY_LOCATION
    

    Reemplaza lo siguiente:

    • 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 --region.
    • Para un disco principal zonal, usa --zone.
    • PRIMARY_LOCATION: la región o la zona del disco principal.
    • Para un disco regional, usa la región, por ejemplo, us-central1.
    • Para los discos zonales, usa la zona, por ejemplo, us-central1-a.

    El resultado debe incluir uno o más de los siguientes campos:

      architecture: X86_64
      guestOsFeatures:
      - type: MULTI_IP_SUBNET
      - type: UEFI_COMPATIBLE
      - type: VIRTIO_SCSI_MULTIQUEUE
      - type: GVNIC
      - type: WINDOWS
      licenseCodes:
      - '4079807029871201927'
      - '12345678'
      licenses:
      - https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2022-dc
      - https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-core
    

    REST

    Recupera la información del disco principal con una solicitud GET al método disks.get:

      GET https://compute.googleapis.com/compute/v1/projects/PRIMARY_DISK_PROJECT/PRIMARY_DISK_LOCATION_TYPE/PRIMARY_DISK_LOCATION/disks/PRIMARY_DISK_NAME
    

    En el resultado, la información del inicio se encuentra en los siguientes campos:

    "architecture": "ARM64",
    "licenseCodes": [
      "4079812334456779",
      "8769226"
    ],
    "licenses": [
      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-xx-dc",
      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-xx"
    ],
    "guestOsFeatures": [
      {
        "type": "MULTI_IP_SUBNET"
      },
      {
        "type": "UEFI_COMPATIBLE"
      },
      {
        "type": "VIRTIO_SCSI_MULTIQUEUE"
      },
      {
        "type": "GVNIC"
      },
      {
        "type": "WINDOWS"
      }
    ]
    
  2. Crea un disco de arranque secundario con gcloud CLI o REST.

    gcloud

    Para crear un disco secundario a partir de un disco de arranque, usa el mismo comando que se describe en Crea un disco secundario a partir de un disco que no es de arranque. Especifica la información de arranque del disco principal que recuperaste en la sección anterior con las siguientes marcas:

    • --architecture=[ ARM64 | X86_64 ]
    • --licenses=[LICENSE_URL_1,…]
    • --guest-os-features=[GUEST_OS_FEATURE,…]

    REST

    Para crear un disco secundario a partir de un disco de arranque, usa el mismo comando que se describe en Crea un disco secundario a partir de un disco que no es de arranque. Especifica la información de arranque del disco principal que recuperaste en la sección anterior con las siguientes propiedades:

    "architecture": "[ ARM64 | X86_64 ]",
    "licenseCodes": ["LICENSE_CODE_1"],
    "licenses": ["LICENSE_URL_1"],
    "guestOsFeatures": [
      {
        "type": "FEATURE_ID_1"
      },
      {
        "type": "FEATURE_ID_2"
      }
    ]
    

¿Qué sigue?