Speicherinterne RAM-Disks erstellen


Compute Engine-Instanzen bieten leistungsstarken Speicher auf Unternehmensniveau, mit dem Sie Ihre Anwendungen ausführen können. Sie können Teile des Speichers dazu nutzen, eine RAM-Disk mit außergewöhnlich geringer Latenz und hohem Durchsatz zu erstellen. RAM-Disks sind eine gute Wahl, wenn Anwendungen eine Dateisystemstruktur voraussetzen und Daten nicht einfach im Speicher abspeichern können. RAM-Disks bieten keine Speicherredundanz oder -flexibilität. Deshalb empfiehlt es sich, RAM-Disks in Verbindung mit anderen Speicheroptionen für Instanzen zu verwenden.

RAM-Disks teilen den Instanzspeicher mit Ihren Anwendungen. Falls Ihre Instanzen nicht genügend Speicher für die RAM-Disks und die Anwendungen haben, können Sie Instanzen mit highmem-Maschinentypen erstellen, z. B. N2 oder Führen Sie ein Upgrade Ihrer vorhandenen Instanzen durch, um zusätzlichen Speicher hinzuzufügen.

Hinweise

  • Lesen Sie mehr über den Unterschied zwischen RAM-Disks und anderen Speicheroptionen in der Compute Engine.
  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren.

    Wählen Sie den Tab für die Verwendung der Beispiele auf dieser Seite aus:

    Console

    Wenn Sie über die Google Cloud Console auf Google Cloud-Dienste und -APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.

    gcloud

    1. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init
    2. Legen Sie eine Standardregion und -zone fest.

    REST

    Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

      Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init

RAM-Disks erstellen

Sie können ein RAM-Laufwerk mit dem Dateisystem tmpfs erstellen, das standardmäßig in den meisten Linux-Distributionen enthalten ist.

  1. Wenn Ihre Instanz nicht genügend verfügbaren Speicher hat, können Sie optional den Maschinentyp Ihrer Instanz ändern und einen Maschinentyp mit mehr Speicher auswählen.

  2. Stellen Sie eine Verbindung zu Ihrer Instanz über SSH her. Öffnen Sie für dieses Beispiel die Seite VM-Instanzen und klicken Sie neben der Instanz, für die Sie eine RAM-Disk hinzufügen möchten, auf die Schaltfläche "SSH"

  3. Einen Bereitstellungspunkt für eine RAM-Disk erstellen.

    $ sudo mkdir /mnt/ram-disk
    
  4. Erstellen Sie eine neue tmpfs-RAM-Disk und stellen Sie es bereit. Für das Attribut size muss dabei ein Wert festgelegt werden, der Ihren Speicheranforderungen entspricht. Achten Sie darauf, dass genügend Arbeitsspeicher für Ihre Anwendungen bereitsteht und nicht der gesamte verfügbare Speicher ausgelastet wird. In diesem Beispiel hat die Instanz den Maschinentyp n1-highmem-32 mit 208 GB Arbeitsspeicher, daher ist die Größe der 50g-RAM-Disk angemessen.

    $ sudo mount -t tmpfs -o size=50g tmpfs /mnt/ram-disk
    
  5. Fügen Sie die RAM-Disk der /etc/fstab-Datei hinzu, damit das Gerät automatisch bereitgestellt wird, wenn Sie die Instanz neu starten:

    $ echo 'tmpfs /mnt/ram-disk tmpfs nodev,nosuid,noexec,nodiratime,size=50G 0 0' | sudo tee -a /etc/fstab
    

RAM-Disks löschen

Die Bereitstellung einer tmpfsRAM-Disk können Sie wie bei jedem anderen Datenträger aufheben. Dadurch werden die RAM-Disk und alle auf ihr gespeicherten Daten gelöscht. Entfernen Sie in diesem Beispiel eine RAM-Disk, die unter /mnt/ram-disk bereitgestellt ist:

$ sudo umount /mnt/ram-disk

Automatische Sicherung der RAM-Disk-Daten vor dem Neustart einer Instanz ausführen

Damit die Daten der RAM-Disk bei einem Neustart nicht verloren gehen, können Sie eine RAM-Disk sichern, bevor Ihre Instanz neu gestartet wird. Sichern Sie Ihre Daten in einem nichtflüchtigen Speicher.

  1. Erstellen Sie einen nichtflüchtigen Speicher und stellen Sie diesen bereit, um ihn als Sicherungslaufwerk für Ihre RAM-Disk zu verwenden. Das Laufwerk muss genügend Speicherplatz für die Daten Ihrer RAM-Disk haben.

  2. Erstellen Sie ein Shutdown-Skript für die Instanz mit einem rsync-Befehl, um die Daten der RAM-Disk auf das Sicherungslaufwerk zu kopieren. Fügen Sie für dieses Beispiel mit der gcloud CLI die shutdown-script-Metadaten zur Instanz hinzu, wobei die RAM-Disk unter /mnt/ram-disk und der nichtflüchtige Speicher unter /mnt/ram-disk-backup bereitgestellt wird.

    gcloud compute instances add-metadata example-instance --metadata shutdown-script="#! /bin/bash
    rsync -a --delete --recursive --force /mnt/ram-disk/ /mnt/ram-disk-backup/
    EOF"
    
  3. Optional können Sie ein Startskript erstellen, das die Dateien bei einem Neustart der Instanz auf der RAM-Disk wiederherstellt. Verwenden Sie die gcloud CLI, um die startup-script-Metadaten auf die Instanz zu übertragen.

    gcloud compute instances add-metadata example-instance --metadata startup-script="#! /bin/bash
    rsync -a --recursive --force /mnt/ram-disk-backup/ /mnt/ram-disk/
    EOF"