Nichtflüchtigen Speicher für VMs freigeben

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 im gcloud-Tool 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 Zonen us-central1-a und us-central1-c)
    • us-east1 (nur in der Zone us-east1-d)
    • us-west1 (nur in den Zonen us-west1-b und us-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.
  • Beim Erstellen einer VM mit dem gcloud-Befehlszeilentool ist es nicht möglich, einen nichtflüchtigen Speicher mit mehreren Autoren mit dem Flag --create-disk zu 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–60.000*
Schreibe-IOPS pro Instanz 15.000–60.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*
* Die IOPS- und Durchsatzleistung nichtflüchtiger Speicher ist neben anderen Faktoren von der Laufwerkgröße, der Anzahl der Instanz-vCPUs und der E/A-Blockgröße abhängig.
Das Anhängen eines Laufwerks mit mehreren Autoren zu mehreren VM-Instanzen hat keine Auswirkungen auf die Gesamtleistung oder die Kosten. Jede Maschine erhält innerhalb des Leistungslimits des Speichers einen bestimmten Anteil.

Informationen zum Freigeben nichtflüchtiger Speicher zwischen mehreren VMs finden Sie unter Nichtflüchtige Speicher zwischen VMs freigeben.

Zonalen nichtflüchtigen Speicher für VM-Instanzen freigeben

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:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite VM-Instanzen.

    Zu „VM-Instanzen“

  2. 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.

  3. Klicken Sie auf der Seite "Instanzdetails" auf Bearbeiten.

  4. Klicken Sie im Bereich Zusätzliche Laufwerke auf eine der folgenden Optionen:

    1. Neues Laufwerk hinzufügen, um der Instanz ein Laufwerk im schreibgeschützten Modus hinzuzufügen.
    2. Vorhandenes Laufwerk hinzufügen, um ein vorhandenes Laufwerk auszuwählen und es im schreibgeschützten Modus an Ihre Instanz anzuhängen.
  5. Legen Sie weitere Optionen für das Laufwerk fest.

  6. Klicken Sie auf Fertig, um die Änderungen zu übernehmen.

  7. Klicken Sie auf Speichern, um die Änderungen auf die Instanz anzuwenden.

  8. Stellen Sie eine Verbindung zur Instanz her und stellen Sie das Laufwerk bereit.

  9. Wiederholen Sie diesen Vorgang, um das Laufwerk anderen Instanzen im Lesemodus hinzuzufügen.

gcloud

Verwenden Sie im gcloud-Tool 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

Ersetzen Sie:

  • 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"
}

Ersetzen Sie Folgendes:

  • 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 befindet
  • DISK_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 dem gcloud-Tool zu erstellen und anzuhängen:

  1. 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
    

    Ersetzen Sie Folgendes:

    • 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.
  2. 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
    

    Ersetzen Sie Folgendes:

    • INSTANCE_NAME: durch den Namen der N2-Instanz, der Sie den neuen zonalen nichtflüchtigen Speicher hinzufügen
    • DISK_NAME: Name des neuen Speichers, den Sie an die Instanz anhängen
  3. 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.

  1. Senden Sie mit der API eine POST-Anfrage zum Erstellen eines zonalen nichtflüchtigen Speichers mithilfe der Methode disks.insert. Fügen Sie die Attribute name, sizeGb und type 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 Attribut multiWriter mit dem Wert True 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 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.
  2. Richten Sie eine POST-Anfrage an die Methode compute.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"
    }
    

    Ersetzen Sie Folgendes:

    • 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.
  3. 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.

Nächste Schritte