Un système de fichiers en mémoire vive

Les ordinateurs récents disposent d’un microprocesseur rapide et d’une quantité de mémoire vive confortable, si bien que l’élément limitant la réactivité de la machine est généralement le disque dur. C’est vrai pour les ordinateurs de bureau, et ça l’est encore plus pour les portables. Linux permet d’utiliser la mémoire vive directement comme système de fichier.

Pourquoi utiliser la mémoire vive à la place du disque dur ? Les temps d’accès comme le débit de la RAM sont véritablement superlatifs par rapport à ceux du disque dur. Si les accès au disque sont pénalisants pour votre application (par exemple pour si vous travaillez du son ou de la vidéo), vous apprécierez un tel gain de vitesse. C’est également utile sur un portable car les accès disque sont consommateurs d’énergie.

Le principe exposé ici repose sur l’utilisation du système de fichier en mémoire vive tmpfs. Il est disponible est standard dans les distributions Linux. Pour cet exemple, j’ai utilisé Ubuntu Edgy.

Comme pour un système de fichier normal, il va falloir spécifier un point de montage dans l’arborescence Linux. Si vous choisissez un répertoire qui contient déjà des fichiers, vous ne pourrez plus y accéder tant que notre tmpfs sera monté car ils seront masqués[1].

Prenons par exemple /mnt. À l’invite de commandes, tapez simplement :

$ sudo mount -t tmpfs -o size=512M none /mnt

Vous remarquerez que la taille du système de fichiers est spécifiées par l’option size. J’ai mis ici 512 mégaoctets ; je dispose d’un gigaoctet de RAM.

On peut vérifier que le tmpfs a bien été monté en faisant appel à mount :

$ mount
 ...
 none on /mnt type tmpfs (rw,size=512M)

Que se passe-t’il si vous spécifiez une taille supérieure à l’espace disponible en mémoire physique ? Linux va alors placer l’excédent en mémoire virtuelle, autrement dit en swap, donc sur le disque dur, ce qui nous fait perdre le bénéfice de la rapidité.

Vous pouvez désormais utiliser le répertoire /mnt comme un disque dur ultra-rapide, en copiant les fichiers dessus.

ATTENTION : le contenu de la mémoire vive est perdu en cas d’extinction ou de redémarrage de la machine. Je vous conseille fortement de prendre vos précautions en termes d’alimentation électrique (onduleur, travail sur secteur dans le cas d’un portable…) et de sauvegarde des données (on travaille sur une copie en mémoire vive, et on la sauvegarde régulièrement sur le disque dur).

 

Notes

[1] Pas d’inquiétude, toutefois : ils ne sont pas effacés et vous les retrouverez dès que vous aurez démonté le tmpfs.

Tags: ,

4 commentaires pour “Un système de fichiers en mémoire vive”

  1. Manu dit :

    Mais c’est excellent ca ! Désolé si je me trompe, mais ce système de fichier, c’est bien lui dont il s’agit lorsque l’on utilise un live CD ou DVD ?

    Merci pour ce billet !

    P-S : … et hop ! je m’en vais placer ce site directement dans mon agrégateur RSS :)

  2. Benjamin Delagoutte dit :

    Je ne sais pas si c’est ce principe qui est utilisé dans les live-cd, mais tu peux facilement le vérifier en lancant mount depuis le live-cd et en voyant ce que ça donne. En tout cas, ravi d’être lu.

  3. Algo dit :

    Bonsoir tout le monde,

    Très intéressant comme article, merci infiniment !

    Je me pose une question soudaine, peut-on ou pas crypter ce système de fichier n’exploitant que la RAM (tmpfs) ?

  4. Benjamin Delagoutte dit :

    Bonjour Algo,

    Il existe certainement des systèmes de fichiers chiffrés qui peuvent être utilisés en RAM et qui répondraient à tes attentes.

    Moi ce que je vois directement, c’est de créer un fichier “image” sur ce FS en mémoire vive qui contiendrait lui-même un FS chiffré. Tu peux suivre le tuto suivant :
    http://forum.ubuntu-fr.org/viewtopic.php?pid=268552#p268552

    Benjamin

Laisser un commentaire