Creazione di dischi RAM in memoria

Le istanze di 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 velocità effettiva elevata. I dischi RAM funzionano bene quando l'applicazione prevede una struttura di file system e non può semplicemente archiviare i dati in memoria. I dischi RAM da soli non offrono flessibilità o ridondanza dello spazio di archiviazione, perciò è preferibile utilizzare dischi RAM in combinazione con altre opzioni di archiviazione delle istanze.

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

Prima di iniziare

  • Scopri la differenza tra i dischi RAM e altre opzioni di archiviazione di Compute Engine.
  • 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

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Imposta una regione e una zona predefinite.

    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

Creazione di un disco RAM

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

  1. Se l'istanza non dispone di memoria sufficiente, puoi facoltativamente cambiare 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 da 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 una dimensione del disco RAM 50g è appropriata.

    $ 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 venga montato 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. Questa operazione elimina il disco RAM e tutti i dati archiviati al suo interno. Per questo esempio, rimuovi un disco RAM montato in /mnt/ram-disk:

$ sudo umount /mnt/ram-disk

Backup automatico dei dati del disco RAM tra i riavvii delle istanze

Puoi eseguire il backup di un disco RAM prima del riavvio dell'istanza per conservare i dati del disco RAM fino al riavvio 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 abbastanza grande per contenere le informazioni nel disco RAM.

  2. Crea uno script di chiusura per l'istanza con un comando rsync che scrive i contenuti del disco RAM nel volume di backup. Per questo esempio, utilizza gcloud CLI per aggiungere i metadati shutdown-script all'istanza con il disco RAM montato in /mnt/ram-disk e il disco permanente montato in /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. Facoltativamente, puoi anche creare uno script di avvio che ripristini i file sul disco RAM quando viene riavviata l'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"