Sie können einen nichtflüchtigen SSD-Speicher im Modus für mehrere Autoren gleichzeitig an zwei N2-VM-Instanzen anhängen, damit beide Vms auf dem Laufwerk lesen und schreiben können. Wenn Sie den Schreibmodus für mehrere Autoren für neue nichtflüchtige Speicher aktivieren möchten, erstellen Sie einen neuen nichtflüchtigen Speicher und geben Sie das Flag --multi-writer
in der gcloud-Befehlszeile oder das Attribut multiWriter
in der Compute Engine-API an.
Nichtflüchtige Speicher im Modus für mehrere Autoren bieten eine gemeinsame Blockspeicherfunktion und stellen eine infrastrukturelle Grundlage für das Erstellen eines verteilten Network File Systems (NFS) und ähnlicher hochverfügbarer Dienste dar. Nichtflüchtiger Speicher mit einem Modus für mehrere Autoren erfordert jedoch spezielle Dateisysteme wie GlusterFS oder GFS2. Viele Dateisysteme wie EXT4, XFS und NTFS sind nicht für die Verwendung mit einem gemeinsamen Blockspeicher konzipiert. Weitere Informationen finden Sie in diesem Dokument unter Best Practices. Wenn Sie einen vollständig verwalteten Dateispeicher benötigen, können Sie eine Filestore-Dateifreigabe auf Ihren Compute Engine-VMs bereitstellen.
Nichtflüchtige Speicher im Modus für mehrere Autoren unterstützen eine Teilmenge von SCSI-3 Persistent Reservations-Befehlen (SCSI PR). Anwendungen mit hoher Verfügbarkeit können diese Befehle für E/A-Komponenten und Failover-Konfigurationen verwenden.
Die folgenden SCSI-PR-Befehle werden unterstützt:
- IN {REPORT CAPABILITIES, READ FULL STATUS, READ RESERVATION, READ KEYS}
- OUT {REGISTER, REGISTER AND IGNORE EXISTING KEY, RESERVE, PREEMPT, CLEAR, RELEASE}
Beschränkungen
- Nur für nichtflüchtige SSD-Typen verfügbar.
- Sie können einen nichtflüchtigen Speicher im Modus für mehrere Autoren in jeder Zone erstellen. Sie können diesen Speicher jedoch nur an VMs an folgenden Speicherorten anhängen:
australia-southeast1
europe-west1
us-central1
(nur in den Zonenus-central1-a
undus-central1-c
)us-east1
(nur in der Zoneus-east1-d
)us-west1
(nur in den Zonenus-west1-b
undus-west1-c
)
- Angehängten VMs muss der N2-Maschinentyp zugewiesen sein.
- Mindestgröße: 10 GB
- Maximale Anzahl von angehängten Instanzen: 2
- Nichtflüchtiger Modus für mehrere Autoren unterstützt keine Messwerte zu nichtflüchtigen Speichern.
- Laufwerke im Modus für mehrere Autoren können nicht in den Lesemodus Modus wechseln.
- Sie können keine Laufwerk-Images oder Snapshots verwenden, um nichtflüchtige Speicher im Modus für mehrere Autoren zu erstellen.
- Im Modus für mehrere Autoren können keine Snapshots oder Images von nichtflüchtigen Speichern erstellt werden.
- Niedrigere IOPS-Limits. Weitere Informationen finden Sie unter Laufwerkleistung.
- Sie können die Größe eines nichtflüchtigen Speichers mit mehreren Autoren nicht ändern.
- Wenn Sie eine VM mit der Google Cloud CLI erstellen, können Sie mit dem Flag
--create-disk
keinen nichtflüchtigen Speicher mit mehreren Autoren erstellen.
Best Practices
- E/A-Komponenten, die SCSI PR-Befehle verwenden, führen zu einem Absturz mit einheitlichem Speicherdaten. Einige Dateisysteme haben keine Absturzkonsistenz und können daher beschädigt werden, wenn Sie SCSI PR-Befehle verwenden.
- Viele Dateisysteme wie EXT4, XFS und NTFS sind nicht für die gemeinsame Nutzung mit Blockspeicher ausgelegt und haben keine Synchronisierungs- oder Ausführungsvorgänge für Prozesse von mehreren VM-Instanzen.
- Bevor Sie nichtflüchtigen Speicher im Modus für mehrere Autoren verwenden, stellen Sie sicher, dass Sie Ihr Dateisystem verstehen und wissen, wie es sicher mit gemeinsam genutztem Blockspeicher und gleichzeitigem Zugriff von mehreren VMs verwendet werden kann.
Leistung
Nichtflüchtige Speicher, die im Modus für mehrere Autoren erstellt werden, haben bestimmte IOPS- und Durchsatzlimits.
Modus für mehrere Autoren mit zonalem nichtflüchtigem SSD-Speicher | ||
---|---|---|
Maximale IOPS (kontinuierlich) | ||
Lese-IOPS pro GB | 30 | |
Schreib-IOPS pro GB | 30 | |
Lese-IOPS pro Instanz | 15.000–100.000* | |
Schreibe-IOPS pro Instanz | 15.000–100.000* | |
Maximaler Durchsatz (kontinuierlich, MB/s) | ||
Lesedurchsatz pro GB | 0,48 | |
Schreibdurchsatz pro GB | 0,48 | |
Lesedurchsatz pro Instanz | 240–1.200* | |
Schreibdurchsatz pro Instanz | 240–1.200* |
Informationen zum Freigeben nichtflüchtiger Speicher zwischen mehreren VMs finden Sie unter Nichtflüchtige Speicher zwischen VMs freigeben.
Zonalen nichtflüchtigen Speicher mit VM-Instanzen teilen
Laufwerk im Lesemodus für mehrere VMs freigeben
Sie können einen nichtflüchtigen Speicher ohne Startfunktion an mehrere VMs im Lesemodus anhängen und damit statische Daten zwischen mehreren VMs freigeben. Das Freigeben von statischen Daten zwischen mehreren VMs eines nichtflüchtigen Speichers ist kostengünstiger als die Replikation Ihrer Daten auf individuelle Laufwerke für einzelne Instanzen.
Wenn Sie dynamischen Speicherplatz zwischen mehreren VMs freigeben müssen, haben Sie folgende Möglichkeiten:
- Verbinden Ihrer Instanzen mit Cloud Storage
- Verbinden Ihrer Instanzen mit Filestore
- Erstellen eines Netzwerkdateiservers in Compute Engine
- Erstellen Sie einen nichtflüchtigen Speicher mit aktiviertem Modus für mehrere Autoren und hängen Sie ihn an bis zu zwei Instanzen an.
Console
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Klicken Sie in der Liste der Instanzen in Ihrem Projekt auf den Namen der Instanz, der Sie das Laufwerk hinzufügen möchten. Die Seite VM-Instanzdetails wird geöffnet.
Klicken Sie auf der Seite "Instanzdetails" auf Bearbeiten.
Klicken Sie im Bereich Zusätzliche Laufwerke auf eine der folgenden Optionen:
- Neues Laufwerk hinzufügen, um der Instanz ein Laufwerk im schreibgeschützten Modus hinzuzufügen.
- Vorhandenes Laufwerk hinzufügen, um ein vorhandenes Laufwerk auszuwählen und es im schreibgeschützten Modus an Ihre Instanz anzuhängen.
Legen Sie weitere Optionen für das Laufwerk fest.
Klicken Sie auf Fertig, um die Änderungen zu übernehmen.
Klicken Sie auf Speichern, um die Änderungen auf die Instanz anzuwenden.
Stellen Sie eine Verbindung zur Instanz her und stellen Sie das Laufwerk bereit.
Wiederholen Sie diesen Vorgang, um das Laufwerk anderen Instanzen im Lesemodus hinzuzufügen.
gcloud
Verwenden Sie in der gcloud CLI den Befehl compute instances attach-disk
und geben Sie das Flag --mode
mit der Option ro
an.
gcloud compute instances attach-disk INSTANCE_NAME \ --disk DISK_NAME \ --mode ro
Dabei gilt:
INSTANCE_NAME
: durch den Namen der Instanz, an die Sie den nichtflüchtigen Speicher anhängen möchten.DISK_NAME
: durch den Namen des Laufwerks, das Sie anhängen möchten.
Nachdem Sie das Laufwerk angehängt haben, verbinden Sie die Instanz und stellen Sie das Laufwerk bereit.
Wiederholen Sie diesen Befehl für jede Instanz, wo Sie dieses Laufwerk im Lesemodus hinzufügen möchten.
API
Erstellen Sie mit der API eine POST
-Anfrage an die Methode compute.instances.attachDisk
. Legen Sie im Anfragetext den Parameter mode
als READ_ONLY
fest.
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" }
Dabei gilt:
INSTANCE_NAME
: durch den Namen der Instanz, an die Sie den nichtflüchtigen Speicher anhängen möchten.PROJECT_ID
: durch Ihre Projekt-ID.ZONE
: Zone, in der sich das Laufwerk befindetDISK_NAME
: Name des Laufwerks, das Sie anhängen
Nachdem Sie das Laufwerk angehängt haben, verbinden Sie die Instanz und stellen Sie das Laufwerk bereit.
Wiederholen Sie diese Anfrage für jede Instanz, wo Sie dieses Laufwerk im Lesemodus hinzufügen möchten.
Nichtflüchtigen SSD-Speicher im Modus für mehrere Autoren für VM-Instanzen freigeben
Sie können einen nichtflüchtigen SSD-Speicher im Modus für mehrere Autoren zwischen N2-Instanzen in derselben Zone freigeben. Weitere Informationen zur Funktionsweise dieses Modus finden Sie unter Modus für mehrere Autoren für nichtflüchtigen Speicher. So können Sie nichtflüchtige Speicher mit mehreren Autoren erstellen und anhängen:
gcloud
Führen Sie die folgenden Schritte aus, um einen zonalen nichtflüchtigen Speicher mit der gcloud CLI zu erstellen und anzuhängen:
Verwenden Sie den Befehl
gcloud beta compute disks create
, um einen zonalen nichtflüchtigen Speicher zu erstellen. Fügen Sie das Flag--multi-writer
ein, um anzugeben, dass das Laufwerk im Modus für mehrere Autoren zwischen den Instanzen gemeinsam genutzt werden muss.gcloud beta compute disks create DISK_NAME \ --size DISK_SIZE \ --type pd-ssd \ --multi-writer
Dabei gilt:
DISK_NAME
: durch den Namen des neuen Laufwerks.DISK_SIZE
: durch die Größe des neuen Laufwerks in GB. Die zulässigen Größen reichen von 1 GB bis 65.536 GB für nichtflüchtige SSD-Speicher oder 200 GB bis 65.536 GB für nichtflüchtige Standardspeicher im Modus für mehrere Autoren.
Nachdem Sie das Laufwerk erstellt haben, hängen Sie es an eine laufende oder gestoppte Instanz mit einem N2-Maschinentyp an. Führen Sie folgenden
gcloud compute instances attach-disk
-Befehl aus:gcloud compute instances attach-disk INSTANCE_NAME \ --disk DISK_NAME
Dabei gilt:
INSTANCE_NAME
: durch den Namen der N2-Instanz, der Sie den neuen zonalen nichtflüchtigen Speicher hinzufügenDISK_NAME
: Name des neuen Speichers, den Sie an die Instanz anhängen
Wiederholen Sie den Befehl
gcloud compute instances attach-disk
. Ersetzen Sie dabei INSTANCE_NAME durch den Namen der zweiten Instanz.
Nachdem Sie ein neues Laufwerk erstellt und an die Instanz angehängt haben, formatieren Sie das Laufwerk und stellen Sie es mit einem freigegebenen Laufwerksdateisystem bereit. Die meisten Dateisysteme können gemeinsam genutzten Speicher nicht nutzen. Prüfen Sie, ob Ihr Dateisystem diese Funktionen unterstützt, bevor Sie es mit einem nichtflüchtigen Speicher für mehrere Autoren verwenden. Sie können das Laufwerk nicht für mehreren VMs bereitstellen, indem Sie genauso vorgehen wie beim Bereitstellen des Laufwerks für einer einzelnen VM.
API
Mit der Compute Engine API können Sie einen nichtflüchtigen SSD-Speicher erstellen und an N2-Instanzen im Modus für mehrere Autoren anhängen.
Senden Sie mit der API eine
POST
-Anfrage zum Erstellen eines zonalen nichtflüchtigen Speichers mithilfe der Methodedisks.insert
. Fügen Sie die Attributename
,sizeGb
undtype
hinzu. Wenn Sie das Laufwerk als leeres und unformatiertes Laufwerk ohne Startfunktion erstellen möchten, geben Sie keine Image- oder Snapshot-Quelle für dieses Laufwerk an. Fügen Sie das AttributmultiWriter
mit dem WertTrue
ein, um anzugeben, dass das Laufwerk zwischen den Instanzen im Modus für mehrere Autoren gemeinsam nutzbar sein muss.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" }
Dabei gilt:
PROJECT_ID
: durch Ihre Projekt-ID.ZONE
: durch die Zone, in der sich Ihre Instanz und das neue Laufwerk befinden.DISK_NAME
: Name des neuen LaufwerksDISK_SIZE
: durch die Größe des neuen Laufwerks in GB. Die zulässigen Größen reichen von 1 GB bis 65.536 GB für nichtflüchtige SSD-Speicher oder 200 GB bis 65.536 GB für nichtflüchtige Standardspeicher im Modus für mehrere Autoren.
Richten Sie eine
POST
-Anfrage an die Methodecompute.instances.attachDisk
und fügen Sie die URL zum zonalen nichtflüchtigen Speicher hinzu, den Sie gerade erstellt haben: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" }
Dabei gilt:
PROJECT_ID
: durch Ihre Projekt-ID.ZONE
: durch die Zone, in der sich Ihre Instanz und das neue Laufwerk befinden.INSTANCE_NAME
: durch den Namen der Instanz, der Sie den neuen nichtflüchtigen Speicher hinzufügen.DISK_NAME
: durch den Namen des neuen Laufwerks.
Wiederholen Sie den Befehl
disks.insert
, aber geben Sie stattdessen die zweite Instanz an.
Nachdem Sie ein neues Laufwerk erstellt und an die Instanz angehängt haben, formatieren Sie das Laufwerk und stellen Sie es mit einem freigegebenen Laufwerksdateisystem bereit. Die meisten Dateisysteme können freigegebenen Speicher nicht nutzen. Prüfen Sie, ob Ihr Dateisystem diese Funktionen unterstützt, bevor Sie es mit einem nichtflüchtigen Speicher für mehrere Autoren verwenden.