Creazione di dischi RAM in memoria


Le istanze Compute Engine dispongono di memoria di classe enterprise ad alte prestazioni che puoi utilizzare per eseguire le tue applicazioni. Puoi allocare parte di questa memoria per creare un disco RAM con latenza eccezionalmente bassa e un'elevata velocità effettiva. I dischi RAM funzionano bene quando l'applicazione prevede una certa struttura del file system e non può semplicemente archiviare i dati in memoria. I dischi RAM da soli non forniscono alcuna ridondanza o flessibilità dell'archiviazione, quindi è meglio utilizzarli in combinazione con altre opzioni di archiviazione delle istanze.

I dischi RAM condividono la memoria dell'istanza con le tue applicazioni. Se le tue istanze non hanno memoria sufficiente per contenere i dischi RAM e le tue applicazioni, crea istanze con tipi di macchine highmem, ad esempio N2 o esegui l'upgrade delle istanze esistenti per aggiungere altra memoria.

Prima di iniziare

  • Scopri la differenza tra i dischi RAM e altre opzioni di archiviazione Compute Engine.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Per saperne di più, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Creazione di un disco RAM

Puoi creare un disco RAM con il file system tmpfs, incluso per impostazione predefinita nella maggior parte delle distribuzioni Linux.

  1. Se l'istanza non dispone di memoria disponibile sufficiente, puoi eventualmente modificare il tipo di macchina dell'istanza in un tipo di macchina con più memoria.

  2. Connettiti all'istanza tramite SSH. Per questo esempio, vai alla pagina Istanze VM e fai clic sul pulsante SSH accanto all'istanza in cui vuoi aggiungere un disco RAM.

  3. Crea un punto di montaggio per il disco RAM.

    $ sudo mkdir /mnt/ram-disk
    
  4. Crea e monta un nuovo disco RAM tmpfs. Devi determinare un valore per la proprietà size che soddisfi i tuoi requisiti di archiviazione senza competere con le tue applicazioni per la memoria o utilizzare tutta la memoria disponibile. Per questo esempio, l'istanza ha un tipo di macchina n1-highmem-32 con 208 GB di memoria, quindi è appropriata una dimensione del disco RAM di 50g.

    $ sudo mount -t tmpfs -o size=50g tmpfs /mnt/ram-disk
    
  5. Aggiungi il disco RAM al file /etc/fstab in modo che il dispositivo si monti di nuovo automaticamente se riavvii l'istanza:

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

Eliminazione di un disco RAM

Puoi smontare un disco RAM tmpfs come qualsiasi altro volume. Verrà eliminato il disco RAM e tutti i dati memorizzati al suo interno. Per questo esempio, rimuovi un disco RAM mounted su /mnt/ram-disk:

$ sudo umount /mnt/ram-disk

Eseguire il backup automatico dei dati del disco RAM tra i riavvii dell'istanza

Puoi eseguire il backup di un disco RAM prima del riavvio dell'istanza per preservare i dati del disco RAM fino al successivo avvio dell'istanza. Esegui il backup dei dati su un disco permanente per conservarli.

  1. Crea e monta un disco permanente da utilizzare come disco di backup per il disco RAM. Assicurati che il disco sia sufficientemente grande per contenere le informazioni del disco RAM.

  2. Crea uno script di arresto per l'istanza con un comando rsync che scriva i contenuti del disco RAM sul volume di backup. Per questo esempio, utilizza la gcloud CLI per aggiungere i metadati shutdown-script all'istanza con il disco RAM montato su /mnt/ram-disk e il disco permanente montato su /mnt/ram-disk-backup.

    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. Se vuoi, puoi anche creare uno script di avvio che ripristini i file sul disco RAM al successivo avvio dell'istanza. Utilizza gcloud CLI per aggiungere i metadati startup-script all'istanza.

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