Créer des disques RAM en mémoire


Les instances de Google Compute Engine disposent d'une mémoire hautes performances de classe entreprise que vous pouvez utiliser dans l'exécution de vos applications. Une partie de cette mémoire peut également être allouée à la création d'un disque RAM, garantissant une latence exceptionnellement faible et un débit élevé. Les disques RAM représentent une bonne solution lorsque l'application attend une structure de système de fichiers et ne peut pas stocker simplement ses données dans la mémoire. Dans la mesure où les disques RAM n'assurent pas à eux seuls la redondance ni la flexibilité du stockage, il est préférable de les utiliser en combinaison avec d'autres options de stockage d'instances.

Les disques RAM partagent la mémoire des instances avec vos applications. Si vos instances ne disposent pas de suffisamment de mémoire pour contenir à la fois les disques RAM et les applications, créez des instances dotées des types de machines highmem, tels que N2 ou mettez à niveau les instances existantes pour ajouter de la mémoire.

Avant de commencer

  • Prenez connaissance des différences entre les disques RAM et les autres options de stockage de Compute Engine.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

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

      gcloud init
    2. Définissez une région et une zone par défaut.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

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

      gcloud init

Créer un disque RAM

Vous pouvez créer un disque RAM avec le système de fichiers tmpfs, qui est inclus par défaut dans la plupart des distributions Linux.

  1. Si une instance ne présente pas suffisamment de mémoire disponible, vous pouvez éventuellement remplacer le type de machine de cette instance par un type de machine comportant plus de mémoire.

  2. Connectez-vous à l'instance via SSH. Pour cet exemple, accédez à la page Instances de VM, puis cliquez sur le bouton SSH situé en regard de l'instance à laquelle vous souhaitez ajouter un disque RAM.

  3. Créez un point d'installation pour votre disque RAM.

    $ sudo mkdir /mnt/ram-disk
    
  4. Créez un disque RAM tmpfs, puis installez-le. Pour la propriété size, vous devez spécifier une valeur qui couvre vos besoins de stockage sans empiéter sur les besoins en mémoire de vos applications ni consommer la totalité de la mémoire disponible. Pour cet exemple, l'instance est associée au type de machine n1-highmem-32, qui est doté de 208 Go de mémoire. La valeur 50g représente donc une taille de disque RAM appropriée.

    $ sudo mount -t tmpfs -o size=50g tmpfs /mnt/ram-disk
    
  5. Ajoutez le disque RAM au fichier /etc/fstab. Cela permet la réinstallation automatique de ce périphérique en cas de redémarrage de l'instance :

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

Supprimer un disque RAM

Vous pouvez désinstaller un disque RAM tmpfs comme n'importe quel autre volume. Cela supprime le disque RAM et toutes les données qui y sont stockées. Pour cet exemple, vous allez supprimer un disque RAM installé dans /mnt/ram-disk :

$ sudo umount /mnt/ram-disk

Sauvegarder automatiquement les données d'un disque RAM entre les redémarrages d'une instance

Vous pouvez sauvegarder un disque RAM avant le redémarrage d'une instance afin de conserver les données qu'il contient jusqu'à ce que cette instance soit de nouveau active. Pour conserver ces données, sauvegardez-les sur un disque persistant.

  1. Créez et installez un disque persistant à utiliser comme disque de sauvegarde pour votre disque RAM. Assurez-vous que ce disque est assez volumineux pour contenir les informations stockées sur le disque RAM.

  2. Créez un script d'arrêt pour votre instance, en y insérant une commande rsync permettant d'écrire le contenu du disque RAM sur le volume de sauvegarde. Pour cet exemple, utilisez gcloud CLI pour ajouter les métadonnées shutdown-script à l'instance. Le disque RAM de cette instance est installé dans /mnt/ram-disk, et le disque persistant dans /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. Si vous le souhaitez, vous pouvez également créer un script de démarrage qui restaure les fichiers sur le disque RAM lorsque l'instance redémarre. Utilisez gcloud CLI pour ajouter les métadonnées startup-script à l'instance.

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