Puedes conectar un volumen de 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 de multiescritura para los volúmenes de disco persistente nuevos, crea un nuevo volumen de disco persistente y especifica la marca --multi-writer
en la CLI de gcloud o la propiedad multiWriter
en la API de Compute Engine.
Los volúmenes de disco persistente en modo de multiescritura proporcionan una capacidad de almacenamiento en bloque compartido y presentan una base de infraestructura para compilar sistemas de almacenamiento distribuido y servicios similares con alta disponibilidad. Cuando uses volúmenes de disco persistente en modo de multiescritura, usa un sistema de software de almacenamiento de escalamiento horizontal que tenga la capacidad de coordinar el acceso a los dispositivos de disco persistente en varias VM. Algunos ejemplos de estos sistemas de almacenamiento son Lustre e IBM Spectrum Scale. La mayoría de los sistemas de archivos de VM única, 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 volúmenes de disco persistente 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}
Antes de comenzar
-
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 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:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
- Disponibles solo para volúmenes de disco persistente de tipo SSD.
- Puedes crear un volumen de 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 zonasus-central1-a
yus-central1-c
)us-east1
(solo en la zonaus-east1-d
)us-west1
(solo en las zonasus-west1-b
yus-west1-c
)
- Las instancias conectadas deben tener un tipo de máquina N2.
- Tamaño mínimo: 10 GB
- Cantidad máxima de VM conectadas: 2
- Los volúmenes de disco persistente en modo de multiescritura no admiten las métricas de disco persistente.
- 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 volúmenes de disco persistente en modo de multiescritura.
- No puedes crear instantáneas o imágenes desde volúmenes de disco persistente en modo de 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 volumen de disco persistente de multiescritura.
- Cuando creas una VM con Google Cloud CLI, no puedes crear un volumen de disco persistente de multiescritura con la marca
--create-disk
. - 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 frente a fallas y, por lo tanto, pueden dañarse si usas comandos 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 volúmenes de disco persistente 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.
- Conecta tus VM a Cloud Storage
- Conecta tus VM a Filestore
- Crear un servidor de archivos de red en Compute Engine
- Crea un volumen de disco persistente con el modo de multiescritura habilitado y conéctalo con dos VM como máximo.
En la consola de Google Cloud, ve a la página Instancias de VM.
En la lista de VMs de tu proyecto, haz clic en el nombre de la VM a la que deseas conectar el disco. Se abrirá la página Detalles de instancia de VM.
En la página de detalles de la instancia, haz clic en Editar.
En la sección Discos adicionales, haz clic en una de las siguientes opciones:
- Selecciona Agregar un disco para agregar un disco en modo de solo lectura a la VM.
- Selecciona Adjuntar un disco existente si quieres seleccionar un disco existente y conectarlo en modo de solo lectura a tu VM.
Especifica otras opciones para tu disco.
Haz clic en Listo para aplicar los cambios.
Haz clic en Guardar para aplicar los cambios a la VM.
Conéctate a la VM y activa el disco.
Repite este proceso para agregar el disco a otras VMs en modo de solo lectura.
INSTANCE_NAME
: Es el nombre de la VM a la que deseas conectar el volumen de disco persistente zonal.DISK_NAME
: Es el nombre del disco que deseas conectar.INSTANCE_NAME
: Es el nombre de la VM a la que deseas conectar el volumen de disco persistente zonal.PROJECT_ID
: el ID de tu proyectoZONE
: Es la zona en la que se encuentra el disco.DISK_NAME
: Es el nombre del disco que deseas conectar.Usa el comando
gcloud beta compute disks create
para crear un volumen de disco persistente zonal. Incluye la marca--multi-writer
para indicar que el disco debe compartirse entre las VM en modo de 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 disco nuevo. Los tamaños aceptables varían de 1 GB a 65,536 GB para volúmenes de disco persistente SSD o de 200 GB a 65,536 GB para volúmenes de disco persistente estándar en modo de multiescritura.
Después de crear el disco, conéctalo a cualquier VM 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 VM N2 en la que deseas agregar el volumen de disco persistente zonal nuevo.DISK_NAME
: el nombre del disco nuevo que deseas conectar a la VM.
Repite el comando
gcloud compute instances attach-disk
, pero reemplaza INSTANCE_NAME por el nombre de la segunda VM.En la API, realiza una solicitud
POST
para crear un volumen de disco persistente zonal mediante el métododisks.insert
. Incluye las propiedadesname
,sizeGb
ytype
. 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 propiedadmultiWriter
con un valor deTrue
para indicar que el disco debe compartirse entre las VMs 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
: El ID de tu proyectoZONE
: la zona en la que se encuentran la VM y el disco nuevoDISK_NAME
: Es el nombre del disco nuevo.DISK_SIZE
: El tamaño, en GB, del disco nuevo. Los tamaños aceptables varían de 1 GB a 65,536 GB para volúmenes de disco persistente SSD o de 200 GB a 65,536 GB para volúmenes de disco persistente estándar en modo de multiescritura.
Crea una solicitud
POST
para el métodocompute.instances.attachDisk
y, luego, incluye la URL en el volumen de 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
: El ID de tu proyectoZONE
: la zona en la que se encuentran la VM y el disco nuevoINSTANCE_NAME
: Es el nombre de la VM en la que deseas agregar el nuevo volumen de disco persistente.DISK_NAME
: Es el nombre del disco nuevo.
Repite el comando
disks.insert
, pero especifica la segunda VM.- Obtén información sobre cómo compartir volúmenes de disco persistente regionales entre varias instancias de VM.
Java
Para usar las muestras de Java de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
Python
Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
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.
Restricciones
prácticas recomendadas
Rendimiento
Los volúmenes de disco persistente 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–100,000* IOPS de escritura por instancia 15,000–100,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 volumen de disco persistente zonal entre instancias de VM
En esta sección, se explican los diferentes métodos para compartir volúmenes zonales de discos persistentes entre varias VMs.
Comparte un disco en modo de solo lectura entre varias VM
Puedes conectar un volumen de 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 VMs. Compartir estos datos entre varias VM desde un volumen de disco persistente es menos costoso que replicar los datos en discos únicos para VM individuales.
Si necesitas compartir espacio de almacenamiento dinámico entre varias VMs, puedes usar una de las siguientes opciones:
Consola
gcloud
En la CLI de gcloud, usa el comando
compute instances attach-disk
y especifica la marca--mode
con la opciónro
.gcloud compute instances attach-disk INSTANCE_NAME \ --disk DISK_NAME \ --mode ro
Reemplaza lo siguiente:
Una vez conectado el disco, conéctate a la VM y activa el disco.
Repite este comando para cada VM en la que quieras agregar este disco en modo de solo lectura.
Java
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java en la Guía de inicio rápido de Compute Engine: Usa las bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Java de Compute Engine.
Para autenticarte en Compute Engine, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Python
Antes de probar esta muestra, sigue las instrucciones de configuración de Python en la Guía de inicio rápido de Compute Engine: Usa las bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Python de Compute Engine.
Para autenticarte en Compute Engine, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
REST
En la API, realiza una solicitud
POST
al métodocompute.instances.attachDisk
. En el cuerpo de la solicitud, especifica el parámetromode
comoREAD_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:
Una vez conectado el disco, conéctate a la VM y activa el disco.
Repite esta solicitud para cada VM donde deseas agregar este disco en modo de solo lectura.
Comparte un volumen de disco persistente SSD en modo de multiescritura entre VM
Puedes compartir un volumen de disco persistente SSD en modo de multiescritura entre las VM N2 en la misma zona. Consulta Modo de multiescritura de disco persistente para obtener detalles sobre cómo funciona este modo. Puedes crear y adjuntar volúmenes de disco persistente de multiescritura mediante el siguiente proceso:
gcloud
Crea y conecta un volumen de disco persistente zonal con la CLI de gcloud:
Una vez creado y conectado el disco nuevo a una VM, 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 multiescritura. No puedes activar el disco en varias VM con el mismo proceso que usas normalmente para activarlo en una sola VM.
REST
Usa la API de Compute Engine para crear un volumen de disco persistente SSD y conectarlo a VMs N2 en modo de multiescritura.
Una vez creado y conectado el disco nuevo a una VM, 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 multiescritura.
¿Qué sigue?
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-08-22 (UTC)
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema de traducción" },{ "type": "thumb-down", "id": "otherDown", "label":"Otro" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Fácil de comprender" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Resolvió mi problema" },{ "type": "thumb-up", "id": "otherUp", "label":"Otro" }] -