Comparte discos persistentes entre VM

Puedes conectar un disco persistente SSD en modo de multiescritura hasta dos instancias de máquina virtual (VM) N2 simultáneamente para que ambas VM puedan leer y escribir en el disco. A fin de habilitar el modo multiescritura para los discos persistentes nuevos, crea un nuevo disco y especifica la marca --multi-writer en la herramienta de gcloud o la propiedad multiWriter en la API de Compute Engine.

Los discos persistentes en modo multiescritura proporcionan una capacidad de almacenamiento en bloque compartido y presentan una base de infraestructura para compilar un sistema de archivos de red (NFS) distribuido y servicios similares con alta disponibilidad. Sin embargo, los discos persistentes con modo multiescritura requieren sistemas de archivos especializados, como GlusterFS o GFS2. Muchos sistemas de archivos, como EXT4, XFS y NTFS, no están diseñados para usarse con almacenamiento en bloque compartido. Para obtener más información, consulta las Prácticas recomendadas en este documento. Si necesitas almacenamiento de archivos completamente administrado, puedes activar un archivo compartido de Filestore en tus VM de Compute Engine.

Los discos persistentes en modo de multiescritura admiten un subconjunto de comandos SCSI-3 de Reservas persistentes (SCSI PR). Las aplicaciones con alta disponibilidad pueden usar estos comandos para las configuraciones de protección de E/S y de conmutación por error.

Se admiten los siguientes comandos SCSI PR:

  • EN {INFORME DE CAPABILIDADES, LEE EL ESTADO COMPLETO, LEER SOBRE REFERENCIAS}
  • OUT {REGISTER, REGISTER AND IGNORE KEY, RESERVE, PREEMPT, CLEAR, RELEASE}

Restricciones

  • Disponibles solo para discos persistentes de tipo SSD.
  • Puedes crear un disco persistente en modo de multiescritura en cualquier zona, pero solo puedes conectar ese disco a las VM en las siguientes ubicaciones:
    • australia-southeast1
    • europe-west1
    • us-central1 (solo en las zonas us-central1-a y us-central1-c)
    • us-east1 (solo en la zona us-east1-d)
    • us-west1 (solo en las zonas us-west1-b y us-west1-c)
  • Las instancias conectadas deben tener un tipo de máquina N2.
  • Tamaño mínimo: 10 GB
  • Cantidad máxima de instancias conectadas: 2
  • Los discos persistentes de modo multiescritura no admiten las métricas de discos persistentes.
  • Los discos en modo de multiescritura no pueden cambiarse al modo de solo lectura.
  • No puedes usar imágenes o instantáneas de disco para crear discos persistentes en modo multiescritura.
  • No puedes crear instantáneas o imágenes desde discos persistentes en modo multiescritura.
  • Límites de IOPS más bajos. Consulta el rendimiento del disco para obtener más detalles.
  • No puedes cambiar el tamaño de un disco persistente de multiescritura.
  • Cuando creas una VM mediante la herramienta de línea de comandos de gcloud, no puedes crear un disco persistente de varios escritores con la marca --create-disk.

Prácticas recomendadas

  • La protección de E/S mediante comandos de SCSI da como resultado un estado coherente frente a fallas de datos de discos persistentes. Algunos sistemas de archivos no tienen coherencia de fallas y, por lo tanto, podrían dañarse si usas comandos de SCSI PR.
  • Muchos sistemas de archivos como EXT4, XFS y NTFS no están diseñados para usarse con el almacenamiento en bloque compartido y no tienen mecanismos para sincronizar o realizar operaciones que se originan en varias instancias de VM.
  • Antes de usar discos persistentes en modo de multiescritura, asegúrate de comprender tu sistema de archivos y cómo se puede usar de manera segura con el almacenamiento en bloque compartido y el acceso simultáneo desde varias VM.

Rendimiento

Los discos persistentes creados en modo de multiescritura tienen límites específicos de IOPS y capacidad de procesamiento.

Modo de multiescritura en el disco persistente SSD zonal
IOPS máximas sostenidas
IOPS de lectura por GB 30
IOPS de escritura por GB 30
IOPS de lectura por instancia 15,000–60,000*
IOPS de escritura por instancia 15,000–60,000*
Capacidad de procesamiento máxima sostenida (MB/s)
Capacidad de procesamiento de lectura por GB 0.48
Capacidad de procesamiento de escritura por GB 0.48
Capacidad de procesamiento de lectura por instancia 240–1,200*
Capacidad de procesamiento de escritura por instancia 240–1,200*
* Las IOPS y el rendimiento de la capacidad de procesamiento de un disco persistente dependen de la cantidad de CPU virtuales de la instancia, del tamaño del bloque de E/S y del tamaño del disco, entre otros factores.
Conectar un disco de varios escritores a varias instancias de máquina virtual no afecta el rendimiento ni el costo agregado. Cada máquina recibe una parte del límite de rendimiento por disco.

Si deseas obtener información para compartir discos persistentes entre varias VM, consulta Comparte discos persistentes entre VM.

Comparte un disco persistente zonal entre instancias de VM

Comparte un disco en modo de solo lectura entre varias VM

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

Si necesitas compartir espacio de almacenamiento dinámico entre varias VM, puedes usar una de las siguientes opciones:

.

Console

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

    Ir a Instancias de VM

  2. En la lista de instancias de tu proyecto, haz clic en el nombre de la instancia a la que deseas conectar el disco. Se abrirá la página Detalles de instancia de VM.

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

  4. En la sección Discos adicionales, haz clic en una de las siguientes opciones:

    1. Selecciona Agregar un disco para agregar un disco en modo de solo lectura a la instancia.
    2. Selecciona Adjuntar un disco existente si quieres seleccionar un disco existente y conectarlo en modo de solo lectura a tu instancia.
  5. Especifica otras opciones para tu disco.

  6. Haz clic en Listo para aplicar los cambios.

  7. Haz clic en Guardar para aplicar los cambios en la instancia.

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

  9. 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 compute instances attach-disk INSTANCE_NAME \
  --disk DISK_NAME \
  --mode ro

Reemplaza lo siguiente:

  • INSTANCE_NAME: Es el nombre de la instancia en la que deseas conectar el disco persistente zonal.
  • 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 al 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/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk

{
 "source": "zones/ZONE/disks/DISK_NAME",
 "mode": "READ_ONLY"
}

Reemplaza lo siguiente:

  • INSTANCE_NAME: Es el nombre de la instancia en la que deseas conectar el disco persistente zonal.
  • PROJECT_ID: El ID de tu proyecto
  • ZONE: Es la zona 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.

Comparte un disco persistente SSD en modo de multiescritura entre instancias

Puedes compartir un disco persistente SSD en modo de varios escritores entre instancias N2 en la misma zona. Consulta Modo de varios escritores de disco persistente para obtener detalles sobre cómo funciona este modo. Puedes crear y conectar discos persistentes de varios escritores mediante el siguiente proceso:

gcloud

Crea y activa un disco persistente zonal con la herramienta de gcloud:

  1. Usa el comando gcloud beta compute disks create para crear un disco persistente zonal. Incluye la marca --multi-writer para indicar que el disco debe ser compartible entre las instancias en el modo multiescritura.

    gcloud beta compute disks create DISK_NAME \
       --size DISK_SIZE \
       --type pd-ssd \
       --multi-writer
    

    Reemplaza lo siguiente:

    • DISK_NAME: Es el nombre del disco nuevo.
    • DISK_SIZE: el tamaño, en GB, del tamaño nuevo del disco nuevo varía de 1 GB a 65,536 GB para discos persistentes SSD o de 200 GB a 65,536 GB para discos persistentes estándar en modo de multiescritura.
  2. Después de crear el disco, conéctalo a cualquier instancia en ejecución o detenida que tenga un tipo de máquina N2. Usa el comando gcloud compute instances attach-disk:

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

    Reemplaza lo siguiente:

    • INSTANCE_NAME: Es el nombre de la instancia N2 en la que deseas agregar el disco persistente zonal nuevo.
    • DISK_NAME: Es el nombre del disco nuevo que deseas conectar a la instancia.
  3. Repite el comando gcloud compute instances attach-disk, pero reemplaza INSTANCE_NAME por el nombre de la segunda instancia.

Una vez creado y conectado el disco nuevo a una instancia, da formato al disco y actívalo mediante un sistema de archivos de disco compartido. La mayoría de los sistemas de archivos no pueden usar el almacenamiento compartido. Confirma que tu sistema de archivos admita estas capacidades antes de usarlo con el disco persistente de varios escritores. No puedes activar el disco en varias VM con el mismo proceso que usas normalmente para activarlo en una sola VM.

API

Usa la API de Compute Engine para crear un disco persistente SSD y conectarlo a instancias N2 en modo de varios escritores.

  1. En la API, realiza una solicitud POST para crear un disco persistente zonal con el método disks.insert. Incluye las propiedades name, sizeGb y type. Si quieres crear este disco nuevo como un disco vacío que no sea de arranque y sin formato, no especifiques una imagen ni una instantánea de origen. Incluye la propiedad multiWriter con un valor de True para indicar que el disco debe compartirse entre las instancias en modo de multiescritura.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/disks
    
    {
    "name": "DISK_NAME",
    "sizeGb": "DISK_SIZE",
    "type": "zones/ZONE/diskTypes/pd-ssd",
    "multiWriter": "True"
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID de tu proyecto.
    • ZONE: Es la zona en la que se encuentran la instancia y el disco nuevo.
    • DISK_NAME: Es el nombre del disco nuevo.
    • DISK_SIZE: el tamaño, en GB, del tamaño nuevo del disco nuevo varía de 1 GB a 65,536 GB para discos persistentes SSD o de 200 GB a 65,536 GB para discos persistentes estándar en modo de multiescritura.
  2. Crea una solicitud POST para el método compute.instances.attachDisk y, luego, incluye la URL en el disco persistente zonal que acabas de crear.

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

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID de tu proyecto.
    • ZONE: Es la zona en la que se encuentran la instancia y el disco nuevo.
    • 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.
  3. Repite el comando disks.insert, pero especifica la segunda instancia.

Una vez creado y conectado el disco nuevo a una instancia, da formato al disco y actívalo mediante un sistema de archivos de disco compartido. La mayoría de los sistemas de archivos no pueden usar el almacenamiento compartido. Confirma que tu sistema de archivos admita estas capacidades antes de usarlo con el disco persistente de varios escritores.

¿Qué sigue?