Puoi collegare un volume di disco permanente SSD in modalità multi-writer a un massimo di due istanze di macchine virtuali (VM) N2 contemporaneamente, in modo che entrambe le VM possano eseguire operazioni di lettura e scrittura sul disco. Per abilitare la modalità multi-writer per i nuovi volumi di Persistent Disk,
crea un nuovo volume di Persistent Disk e specifica il flag --multi-writer
nell'interfaccia alla gcloud CLI o nella proprietà multiWriter
nell'API Compute Engine.
I volumi di Persistent Disk in modalità multi-writer forniscono una funzionalità di archiviazione a blocchi condivisa e rappresentano una base infrastrutturale per la creazione di sistemi di archiviazione distribuiti e di servizi simili ad alta disponibilità. Quando utilizzi volumi di dischi permanenti in modalità multi-writer, scegli un sistema software di archiviazione con scale out in grado di coordinare l'accesso ai dispositivi Persistent Disk su più VM. Esempi di questi sistemi di archiviazione includono Lustre e IBM Spectrum Scale. La maggior parte dei file system a VM singole, come EXT4, XFS e NTFS, non è progettata per essere utilizzata con l'archiviazione a blocchi condivisa. Per maggiori informazioni, consulta le best practice in questo documento. Se hai bisogno di uno spazio di archiviazione file completamente gestito, puoi montare una condivisione file Filestore sulle VM di Compute Engine.
I volumi di Persistent Disk in modalità multi-writer supportano un sottoinsieme di comandi SCSI-3 Persistent Reservations (SCSI PR). Le applicazioni ad alta disponibilità possono utilizzare questi comandi per le configurazioni di recinzione I/O e failover.
Sono supportati i seguenti comandi SCSI PR:
- NEI {REPORT CAPABILITIES, READ FULL STATUS, READ RESERVATION, READ KEYS}
- OUT {REGISTER, REGISTER AND IGNORE EXISTING KEY, RESERVE, PREEMPT, CLEAR, RELEASE}
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.
Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Imposta una regione e una zona predefinite.
Java
Per utilizzare gli esempi Java in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per utilizzare gli esempi Python in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
-
Limitazioni
- Disponibile solo per i volumi di Persistent Disk di tipo SSD.
- Puoi creare un volume di Persistent Disk in modalità multi-writer in qualsiasi zona, ma puoi collegarlo solo alle VM nelle seguenti località:
australia-southeast1
europe-west1
us-central1
(solous-central1-a
eus-central1-c
zone)us-east1
(solous-east1-d
zona)us-west1
(solous-west1-b
eus-west1-c
zone)
- Le VM collegate devono avere un tipo di macchina N2.
- Dimensione minima: 10 GB
- Numero massimo di VM collegate: 2
- I volumi di Persistent Disk in modalità multi-writer non supportano le metriche del disco permanente.
- I dischi in modalità multi-writer non possono passare alla modalità di sola lettura.
- Non puoi utilizzare immagini disco o snapshot per creare volumi di Persistent Disk in modalità multi-writer.
- Non puoi creare snapshot o immagini da volumi di Persistent Disk in modalità multi-writer.
- Limiti di IOPS inferiori. Per i dettagli, consulta Prestazioni del disco.
- Non puoi ridimensionare un volume di Persistent Disk multi-writer.
- Quando crei una VM con Google Cloud CLI, non puoi creare un volume di Persistent Disk multi-writer utilizzando il flag
--create-disk
.
best practice
- Il fencing di I/O mediante comandi PR SCSI comporta uno stato coerente con l'arresto anomalo dei dati del Persistent Disk. Alcuni file system non hanno coerenza in termini di arresto anomalo e possono quindi danneggiarsi se si utilizzano comandi SCSI PR.
- Molti file system come EXT4, XFS e NTFS non sono progettati per essere utilizzati con l'archiviazione a blocchi condivisa e non dispongono di meccanismi per sincronizzare o eseguire operazioni che hanno origine da più istanze VM.
- Prima di utilizzare i volumi di Persistent Disk in modalità multi-writer, assicurati di aver compreso il tuo file system e come può essere utilizzato in modo sicuro con l'archiviazione a blocchi condivisa e l'accesso simultaneo da più VM.
Prestazioni
I volumi di Persistent Disk creati in modalità multi-writer hanno limiti di velocità effettiva e IOPS specifici.
Modalità multi-writer su disco permanente SSD di zona | ||
---|---|---|
Numero massimo di IOPS sostenute | ||
IOPS di lettura per GB | 30 | |
IOPS di scrittura per GB | 30 | |
IOPS di lettura per istanza | 15.000-100.000* | |
IOPS di scrittura per istanza | 15.000-100.000* | |
Velocità effettiva massima sostenuta (MB/s) | ||
Velocità effettiva di lettura per GB | 0,48 | |
Velocità effettiva di scrittura per GB | 0,48 | |
Velocità effettiva di lettura per istanza | 240-1200* | |
Velocità effettiva di scrittura per istanza | 240-1200* |
Per scoprire come condividere i dischi permanenti tra più VM, consulta Condividere dischi permanenti tra le VM.
Condividi un volume di Persistent Disk a livello di zona tra istanze VM
Questa sezione illustra i diversi metodi per condividere volumi di Persistent Disk a livello di zona tra più VM.
Condividi un disco in modalità di sola lettura tra più VM
Puoi collegare un volume di Persistent Disk non di avvio a più di una VM in modalità di sola lettura, in modo da condividere i dati statici tra più VM. La condivisione di dati statici tra più VM da un volume di Persistent Disk è meno costosa rispetto alla replica dei dati su dischi unici per le singole VM.
Se hai bisogno di condividere lo spazio di archiviazione dinamico tra più VM, puoi utilizzare una delle seguenti opzioni:
- Connetti le tue VM a Cloud Storage
- Connetti le tue VM a Filestore
- Crea un file server di rete su Compute Engine
- Creare un volume di Persistent Disk con la modalità multi-writer abilitata e collegarlo a un massimo di due VM.
Console
Nella console Google Cloud, vai alla pagina Istanze VM.
Nell'elenco delle VM nel progetto, fai clic sul nome della VM a cui vuoi collegare il disco. Si apre la pagina Dettagli istanza VM.
Nella pagina dei dettagli dell'istanza, fai clic su Modifica.
Nella sezione Dischi aggiuntivi, fai clic su una delle seguenti opzioni:
- Aggiungi un disco per aggiungere un disco in modalità di sola lettura alla VM.
- Collega un disco esistente per selezionare un disco esistente e collegarlo alla VM in modalità di sola lettura.
Specifica altre opzioni per il tuo disco.
Fai clic su Fine per applicare le modifiche.
Fai clic su Salva per applicare le modifiche alla VM.
Connettiti alla VM e monta il disco.
Ripeti questa procedura per aggiungere il disco ad altre VM in modalità di sola lettura.
gcloud
Nell'interfaccia alla gcloud CLI, utilizza il comando compute instances attach-disk
e specifica il flag --mode
con l'opzione ro
.
gcloud compute instances attach-disk INSTANCE_NAME \ --disk DISK_NAME \ --mode ro
Sostituisci quanto segue:
INSTANCE_NAME
: il nome della VM a cui vuoi collegare il volume Persistent Disk a livello di zonaDISK_NAME
: il nome del disco che vuoi collegare
Dopo aver collegato il disco, connettiti alla VM e monta il disco.
Ripeti questo comando per ogni VM in cui vuoi aggiungere questo disco in modalità di sola lettura.
Java
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java disponibili nella guida rapida di Compute Engine sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Compute Engine.
Per eseguire l'autenticazione in Compute Engine, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python disponibili nella guida rapida di Compute Engine sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Compute Engine.
Per eseguire l'autenticazione in Compute Engine, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
REST
Nell'API, crea una richiesta POST
per il metodo compute.instances.attachDisk
. Nel corpo della richiesta, specifica il parametro mode
come 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" }
Sostituisci quanto segue:
INSTANCE_NAME
: il nome della VM a cui vuoi collegare il volume Persistent Disk a livello di zonaPROJECT_ID
: il tuo ID progettoZONE
: la zona in cui si trova il discoDISK_NAME
: il nome del disco che stai collegando
Dopo aver collegato il disco, connettiti alla VM e monta il disco.
Ripeti questa richiesta per ogni VM in cui vuoi aggiungere questo disco in modalità di sola lettura.
Condividere un volume di un disco permanente SSD in modalità multi-writer tra le VM
Puoi condividere un volume di un disco permanente SSD in modalità multi-writer tra VM N2 nella stessa zona. Per i dettagli sul funzionamento di questa modalità, consulta Modalità multi-writer su disco permanente. Puoi creare e collegare volumi di Persistent Disk multi-writer utilizzando la seguente procedura:
gcloud
Crea e collega un volume di Persistent Disk a livello di zona utilizzando gcloud CLI:
Utilizza il comando comando
gcloud beta compute disks create
per creare un volume di Persistent Disk a livello di zona. Includi il flag--multi-writer
per indicare che il disco deve essere condivisibile tra le VM in modalità multi-writer.gcloud beta compute disks create DISK_NAME \ --size DISK_SIZE \ --type pd-ssd \ --multi-writer
Sostituisci quanto segue:
DISK_NAME
: il nome del nuovo discoDISK_SIZE
: la dimensione, in GB, del nuovo disco.
Dopo aver creato il disco, collegalo a qualsiasi VM in esecuzione o arrestata con un tipo di macchina N2. Utilizza il comando
gcloud compute instances attach-disk
:gcloud compute instances attach-disk INSTANCE_NAME \ --disk DISK_NAME
Sostituisci quanto segue:
INSTANCE_NAME
: il nome della VM N2 a cui stai aggiungendo il nuovo volume di Persistent Disk a livello di zonaDISK_NAME
: il nome del nuovo disco che stai collegando alla VM
Ripeti il comando
gcloud compute instances attach-disk
, ma sostituisci INSTANCE_NAME con il nome della seconda VM.
Dopo aver creato e collegato un nuovo disco a una VM, formatta e monta il disco utilizzando un file system di disco condiviso. La maggior parte dei file system non è in grado di utilizzare lo spazio di archiviazione condiviso. Verifica che il tuo file system supporti queste funzionalità prima di utilizzarlo con Persistent Disk multi-writer. Non puoi montare il disco su più VM utilizzando lo stesso processo normalmente utilizzato per montare il disco su una singola VM.
REST
Utilizza l'API Compute Engine per creare e collegare un volume di disco permanente SSD alle VM N2 in modalità multi-writer.
Nell'API, costruisci una richiesta
POST
per creare un volume di Persistent Disk a livello di zona utilizzando il metododisks.insert
. Includi le proprietàname
,sizeGb
etype
. Per creare questo nuovo disco come disco non di avvio vuoto e non formattato, non specificare un'immagine di origine o uno snapshot di origine per questo disco. Includi la proprietàmultiWriter
con un valore diTrue
per indicare che il disco deve essere condivisibile tra le VM in modalità multi-writer.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" }
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoZONE
: la zona in cui si trovano la VM e il nuovo discoDISK_NAME
: il nome del nuovo discoDISK_SIZE
: la dimensione, in GB, del nuovo disco.
Crea una richiesta
POST
per il metodocompute.instances.attachDisk
e includi l'URL del volume Persistent Disk a livello di zona appena creato: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" }
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoZONE
: la zona in cui si trovano la VM e il nuovo discoINSTANCE_NAME
: il nome della VM a cui stai aggiungendo il nuovo volume di Persistent Disk.DISK_NAME
: il nome del nuovo disco
Ripeti il comando
disks.insert
, ma specifica la seconda VM.
Dopo aver creato e collegato un nuovo disco a una VM, formatta e monta il disco utilizzando un file system di disco condiviso. La maggior parte dei file system non è in grado di utilizzare lo spazio di archiviazione condiviso. Verifica che il tuo file system supporti queste funzionalità prima di utilizzarlo con Persistent Disk multi-writer.
Passaggi successivi
- Scopri di più sulla condivisione di volumi di Persistent Disk a livello di regione tra più istanze VM.