Agrega discos persistentes regionales o modifica su tamaño

En esta página, se explica cómo agregar y administrar recursos de almacenamiento para discos persistentes regionales. Cuando cambias el tamaño de un disco persistente regional, solo puedes aumentar su tamaño. No puedes disminuir el tamaño de un disco persistente.

Los discos persistentes regionales tienen cualidades similares a las de los discos persistentes zonales, pero presentan las siguientes diferencias:

  • No se pueden usar como disco de arranque.
  • Admiten la conexión forzada a otra instancia de máquina virtual (VM) en el caso de que ocurra una falla en la zona.
  • Se puede crear un disco persistente regional a partir de una instantánea, pero no de una imagen.
  • Existen diferencias en cuanto al rendimiento, que se describen en el documento sobre las opciones de almacenamiento.

Los discos persistentes regionales proporcionan replicación síncrona de datos entre dos zonas de una región. En el caso improbable de que se produzca una falla de zona, la carga de trabajo puede conmutar por error por otra VM de la misma zona o de una zona secundaria. Luego, puedes realizar la conexión forzada del disco persistente regional a esa instancia. Se calcula que el tiempo de conexión forzada es menor que un minuto.

Para evitar la pérdida involuntaria de datos, te recomendamos que crees una copia de seguridad de los discos persistentes regionales mediante instantáneas.

Los discos persistentes regionales son una opción adecuada que tienes que tener en cuenta cuando diseñas sistemas sólidos y para servicios de bases de datos con estado, como MySQL y Postgres, que requieren alta disponibilidad.

Para comparar los recursos y el rendimiento de cada uno, consulta Opciones de almacenamiento de Compute Engine.

Antes de comenzar

Limitaciones

Los discos persistentes regionales tienen las siguientes limitaciones:

Agrega un disco persistente regional a tu instancia

Crea un disco persistente estándar regional o un disco persistente SSD regional y conéctalo a una instancia. Si no tienes ninguna instancia, primero debes crear una instancia nueva y, luego, iniciarla. Debes crear la instancia en la misma región que los discos.

Console

Primero debes crear el disco persistente regional y, luego, conectarlo a una instancia existente. No se pueden crear discos persistentes regionales como discos de arranque, ya que no se puede realizar la conexión forzada durante una conmutación por error.

Crea un disco persistente regional.

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

    Ir a Discos

  2. Selecciona tu proyecto.

  3. Haz clic en Crear disco.

  4. Especifica un nombre para el disco.

  5. Elige un tipo de disco.

  6. Selecciona la casilla de verificación Replica este disco dentro de la región.

  7. Selecciona la región.

    Anota la región porque debes seleccionarla cuando crees la instancia.

  8. Selecciona dos zonas en esa región y haz clic en Aceptar.

    Debes seleccionar dos zonas. Anota las zonas que selecciones, ya que debes conectar el disco a la instancia en una de esas zonas.

  9. Elige el tipo de origen.

  10. Selecciona la encriptación.

  11. Haz clic en Crear para terminar la creación del disco.

Después de crear el disco persistente regional, conéctalo a la instancia.

Cuando conectas un disco a una instancia, es posible que recibas un mensaje de error si el disco ya está conectado a otra instancia. Es posible que debas forzar la conexión del disco a la instancia. Para ello, marca el cuadro Conectar disco a la fuerza después de hacer clic en Conectar un disco existente.

Una vez conectado el disco nuevo a una instancia, debes formatear y activar el disco para que el sistema operativo pueda usar el espacio de almacenamiento disponible.

gcloud

Crea y conecta un disco persistente regional mediante la herramienta de línea de comandos de gcloud:

  1. Para crear un disco persistente regional, usa el comando compute disks create. Si necesitas un disco persistente SSD regional para aumentar la capacidad de procesamiento o las IOPS, debes incluir la marca --type y especificar pd-ssd.

    gcloud compute disks create DISK_NAME \
        --size DISK_SIZE \
        --type DISK_TYPE \
        --region REGION \
        --replica-zones ZONE1,ZONE2
    

    Reemplaza lo siguiente:

    • DISK_NAME: Es el nombre del disco nuevo.
    • DISK_SIZE Es el tamaño del disco nuevo, expresado en GB.
    • DISK_TYPE: Es el tipo de disco persistente, ya sea pd-standard o pd-ssd.
    • REGION: Es la región en la que residirá el disco regional. Ejemplo: europe-west1.
    • ZONE1 y ZONE2: Son las zonas dentro de la región donde se encuentran las dos réplicas del disco.
      Debes seleccionar dos zonas. Ejemplo: europe-west1-a,europe-west1-b.
  2. Una vez creado el disco, conéctalo a cualquier instancia en ejecución o detenida. Usa el comando compute instances attach-disk e incluye la marca --disk.

    gcloud compute instances attach-disk INSTANCE_NAME \
        --disk DISK_NAME
    

    Reemplaza lo siguiente:

    • INSTANCE_NAME: Es el nombre de la instancia en la que deseas agregar los nuevos discos persistentes regionales.
    • DISK_NAME: Es el nombre del disco nuevo que deseas conectar a la instancia.

    Una vez que creaste el disco nuevo y lo conectaste a una instancia, debes darle formato y activarlo para que el sistema operativo pueda usar el espacio de almacenamiento disponible.

API

  1. En la API, realiza una solicitud POST para crear un disco persistente regional. En el cuerpo de la solicitud compute.regionDisks.insert, inicializa un disco nuevo que tenga un name y las propiedades replicaZones. Para crear un disco en blanco, no debes especificar ninguna fuente de imagen ni de instantánea.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION
    
    {
     "name": "DISK_NAME",
     "replicaZones": [
       "projects/PROJECT_ID/zones/ZONE1",
       "projects/PROJECT_ID/zones/ZONE2"
       ],
     }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID de tu proyecto.
    • DISK_NAME: Es el nombre del disco nuevo.
    • [ZONE1, ZONE2: Son las zonas en las que deben ubicarse las réplicas del disco nuevo.
  2. En la API, debes realizar una solicitud POST al método compute.instances.attachDisk, en la que debes incluir la URL del disco persistente que acabas de crear:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk
    
    {
     "source": "/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME"
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID de tu proyecto.
    • ZONE: Es la ubicación de la instancia.
    • INSTANCE_NAME: Es el nombre de la instancia en la que deseas agregar el disco persistente nuevo.
    • DISK_NAME: Es el nombre del disco nuevo.

Una vez que creaste el disco nuevo y lo conectaste a una instancia, debes darle formato y activarlo para que el sistema operativo pueda usar el espacio de almacenamiento disponible.

Accede a un disco persistente regional durante una falla de zona

En el caso poco probable de que se produzca una interrupción zonal, el disco persistente regional se puede conmutar por error por una instancia de VM en otra zona mediante la marca --force-attach con el comando attach-disk.

Si una zona en la que se ejecuta la instancia de VM deja de estar disponible, puede que no sea posible desconectar un disco de la instancia, ya que no se puede acceder a esta para realizar la operación de desconexión. La conexión forzada te permite conectar un disco persistente regional a una instancia de VM, incluso si ese disco está conectado a otra instancia.

Una vez que se completa la operación de conexión forzada, Compute Engine evita que la VM original escriba en el disco. La conexión forzada permite volver a acceder de forma segura a los datos y recuperar el servicio.

Una operación de escritura se confirma en una VM solo cuando persiste de manera duradera en ambas réplicas. Si una de las réplicas no está disponible, Compute Engine escribe solo en la réplica que está en buen estado. Cuando se realiza una copia de seguridad de la réplica en mal estado según lo que determina Compute Engine, esta se sincroniza con transparencia con la réplica en buen estado, y se reanuda el modo completamente sincrónico de operación. Esta operación es transparente para una VM.

En el caso poco común de que ambas réplicas no estén disponibles al mismo tiempo, o que la réplica en buen estado deje de estar disponible mientras la otra se sincroniza, el disco correspondiente dejará de estar disponible.

También tienes la opción de cerrar la instancia de forma manual después de realizar la conexión forzada.

Falla dentro de la zona

Otra opción es forzar la conexión de tu disco persistente regional a una instancia de VM de la misma zona. Usa esta opción de conmutación por error dentro de la zona para controlar las interrupciones causadas por una configuración incorrecta de la VM, una mala actualización del SO o cualquier otro modo de falla.

Console

Crea una instancia de VM en espera y realiza la conexión forzada de un disco a una instancia.

  1. En Google Cloud Console, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Selecciona tu proyecto.

  3. Haga clic en Crear.

  4. Especifica un nombre para tu instancia.

  5. Selecciona la región en la que reside el disco persistente regional.

  6. Selecciona la zona alternativa de la instancia de VM original a la que se conectó el disco. Los discos se detallan en la página Discos.

  7. Haz clic en Management, disks, networking, SSH keys (Administración, discos, herramientas de redes y llaves SSH).

  8. Haz clic en Discos.

  9. En la sección Discos adicionales, haz clic en Conectar disco existente.

  10. Selecciona el disco persistente regional de la lista.

  11. Selecciona la casilla de verificación para forzar la conexión del disco.

  12. Haz clic en Listo.

  13. Haz clic en Crear para terminar de crear esta instancia. La instancia de VM nueva aparecerá en la página Instancias de VM. Sigue los mismos pasos para forzar la conexión de un disco a la instancia original una vez que la zona se recupere de su interrupción.

gcloud

En la herramienta de gcloud, 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 INSTANCE_NAME  \
    --disk DISK_NAME --disk-scope regional \
    --force-attach

Reemplaza lo siguiente:

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

Una vez forzada la conexión del disco, activa los sistemas de archivos en él si es necesario. La instancia puede usar el disco con conexión forzada para continuar las operaciones de lectura y escritura.

API

Realiza una solicitud POST para el método compute.instances.attachDisk e incluye en ella la URL del disco persistente que acabas de crear. Se necesita el parámetro de consulta forceAttach=true para conectar el disco a la instancia de VM nueva, aunque la instancia principal todavía tenga el disco.

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

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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • ZONE: Es la ubicación de la instancia.
  • INSTANCE_NAME: Es el nombre de la instancia en la que agregas el disco persistente nuevo.
  • REGION: Es la región en la que se encuentra el nuevo disco persistente 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 puede usar la réplica del disco para continuar con las operaciones de lectura y escritura.

Cambia el tamaño de un disco persistente regional

Si las instancias con discos persistentes regionales requieren más espacio de almacenamiento, IOPS o rendimiento, puedes cambiar el tamaño de los discos. Si necesitas separar los datos en volúmenes únicos, crea varios discos secundarios para la instancia. Puedes cambiar el tamaño de los discos en cualquier momento, independientemente de si el disco está conectado a una instancia en ejecución.

El comando para cambiar el tamaño de un disco persistente regional es idéntico al que se utiliza para cambiar el tamaño de uno estándar, sin embargo, existe un marcador adicional para la región.

Console

Cambia el tamaño de un disco persistente regional.

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

    Ir a Discos

  2. Selecciona el disco al que deseas cambiarle el tamaño.

  3. Haz clic en Editar en la parte superior de la página.

  4. Ingresa el tamaño del disco, expresado en GB.

    Solo puedes aumentar el tamaño del disco. No puedes disminuir su tamaño.

  5. Haz clic en Guardar.

  6. Una vez cambiado el tamaño del disco, debes cambiar el tamaño del sistema de archivos para que el sistema operativo pueda acceder al espacio adicional.

    El tamaño nuevo del disco se muestra en la lista de discos.

gcloud

En la herramienta de gcloud, usa el comando compute disks resize. Especifica la marca --size con el tamaño del disco (expresado en GB) que deseas y la marca --region con la región en la que se encuentra el disco.

gcloud compute disks resize DISK_NAME \
    --region REGION  \
    --size DISK_SIZE

Reemplaza lo siguiente:

  • DISK_NAME: Es el nombre del disco al que deseas cambiarle el tamaño.
  • REGION: Es la región en la que se encuentra el disco.
  • DISK_SIZE: Es el tamaño nuevo del disco, expresado en GB.

Una vez cambiado el tamaño del disco, debes cambiar el tamaño del sistema de archivos para que el sistema operativo pueda acceder al espacio adicional.

API

En la API, realiza una solicitud POST al método compute.regionDisks.resize. En el cuerpo de la solicitud, debes especificar el parámetro sizeGb y configurarlo para que tenga el tamaño deseado del disco, expresado en GB.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME/resize

{
 "sizeGb": "DISK_SIZE"
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • REGION: Es la región en la que se encuentra el disco.
  • DISK_NAME: Es el nombre del disco al que deseas cambiarle el tamaño.
  • DISK_SIZE: Es el tamaño nuevo del disco, expresado en GB.

Una vez cambiado el tamaño del disco, debes cambiar el tamaño del sistema de archivos para que el sistema operativo pueda acceder al espacio adicional.

Comparte un disco persistente regional entre varias instancias

Puedes conectar un disco persistente que no sea de inicio a más de una instancia de máquina virtual en modo de solo lectura, lo que te permite compartir datos estáticos entre varias instancias. Compartir estos datos entre varias instancias desde un disco persistente es más económico que replicar los datos en discos únicos para instancias individuales.

Si conectas un disco persistente a varias instancias, todas esas instancias deben conectar el disco persistente en modo de solo lectura. No es posible conectar el disco persistente a varias instancias en modo de lectura-escritura. Si necesitas compartir espacio de almacenamiento dinámico entre varias instancias, puedes usar una de las opciones siguientes:

Si tienes un disco persistente con datos que deseas compartir entre varias instancias, desconéctalo de cualquier instancia que tenga modo de lectura y escritura, y conéctalo a una o más instancias en modo de solo lectura.

Console

  1. En Google Cloud Console, ve a la página Instancias.

    Ir a Instancias

  2. Haz clic en el nombre de la instancia a la que deseas conectar el disco. Se abrirá la página de detalles de la instancia.

  3. En la parte superior de esta página, haz clic en Editar.

  4. En la sección Discos adicionales, haz clic en Conectar disco existente.

  5. Selecciona el disco persistente regional de la lista.

  6. En la sección Modo, selecciona Solo lectura.

  7. Haz clic en Listo.

  8. En la parte inferior de la página de detalles de la instancia, haz clic en Guardar para aplicar los cambios en la instancia.

  9. Conéctate a la instancia y activa el disco.

  10. Repite este proceso para agregar el disco a otras instancias en modo de solo lectura.

gcloud

En la herramienta de gcloud, usa el comando compute instances attach-disk y especifica la marca --mode con la opción ro.

gcloud beta compute instances attach-disk INSTANCE_NAME --disk DISK_NAME \
    --disk-scope regional --mode ro

Reemplaza lo siguiente:

  • INSTANCE_NAME: Es el nombre de la instancia a la que deseas conectar el disco persistente.
  • DISK_NAME: Es el nombre del disco que deseas conectar.

Una vez conectado el disco, conéctate a la instancia y activa el disco.

Repite este comando para cada instancia en la que quieras agregar este disco en modo de solo lectura.

API

En la API, realiza una solicitud POST para el método compute.instances.attachDisk. En el cuerpo de la solicitud, especifica el parámetro mode como READ_ONLY.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk

{
 "source": "regions/REGION/disks/DISK_NAME",
 "mode": "READ_ONLY"
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • ZONE: Es la zona de la instancia.
  • INSTANCE_NAME: Es el nombre de la instancia a la que deseas conectar el disco persistente.
  • REGION: Es la región en la que se encuentra el disco.
  • DISK_NAME: Es el nombre del disco que deseas conectar.

Una vez conectado el disco, conéctate a la instancia y activa el disco.

Repite esta solicitud para cada instancia donde deseas agregar este disco en modo de solo lectura.

Migra un disco persistente zonal a un disco persistente regional

Para convertir los discos persistentes zonales existentes en discos persistentes regionales, realiza una instantánea del disco actual y crea un disco persistente regional a partir de esa instantánea.

gcloud

En la herramienta de gcloud, usa el comando compute disks snapshot y especifica las marcas --zone y --snapshot-names.

gcloud compute disks snapshot DISK_NAME \
    --zone ZONE \
    --snapshot-names SNAPSHOT_DISK_NAME

Reemplaza lo siguiente:

  • DISK_NAME: Es el nombre del disco del que deseas tomar la instantánea.
  • ZONE: Es la ubicación donde se encuentra el disco zonal de origen.
  • SNAPSHOT_DISK_NAME: Es el nombre del disco del que se acaba de tomar una instantánea.

Crea un disco regional a partir de una instantánea del disco zonal mediante compute disks create. Especifica el nombre del disco y las marcas --region, --replica-zones y --source-snapshot.

gcloud compute disks create DISK_NAME \
    --region REGION \
    --replica-zones ZONE1,ZONE2 \
    --source-snapshot SNAPSHOT_DISK_NAME

Reemplaza lo siguiente:

  • DISK_NAME: Es el nombre del disco nuevo.
  • REGION: Es la región en la que residirá el disco.
  • ZONE1 y ZONE2: Son las zonas en las que residirán las réplicas de los nuevos discos persistentes regionales.
  • SNAPSHOT_DISK_NAME: Es el nombre del disco de instantánea de origen.

Puedes usar el mismo método para migrar discos regionales a discos zonales.

API

En la API, realiza una solicitud POST al método compute.disk.createSnapshot para crear una instantánea de un disco. En el cuerpo de la solicitud, especifica la zone en la que reside el disco, el nombre del disk del que realizas la instantánea y createSnapshot.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME/createSnapshot

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • ZONE: Es la zona en la que se encuentra el disco.
  • DISK_NAME: Es el nombre del disco del que realizas la instantánea.

En la API, realiza una solicitud de POST para crear un disco persistente regional. En el cuerpo de la solicitud compute.regionDisks.insert, inicializa un disco nuevo y especifica el nombre del disco y las propiedades de las zonas de réplica. Como se trata de un disco de datos, no debes incluir la propiedad sourceImage, ya que esta crea un disco en blanco:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks

{
 "name": "DISK_NAME",
 "sourceSnapshot": "global/snapshots/SNAPSHOT_NAME",
 "replicaZones": [
 "projects/PROJECT_ID/zones/ZONE1",
 "projects/PROJECT_ID/zones/ZONE2"
 ],
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto.
  • REGION: Es la región en la que residirá el disco.
  • DISK_NAME: Es el nombre del disco nuevo.
  • SNAPSHOT_NAME: Es la instantánea que se debe restablecer.
  • ZONE1 y ZONE2: Son las zonas en las que residirán las réplicas de los nuevos discos persistentes regionales.

Qué sigue