Système de fichier en RAM

A propos

Cela consiste à simuler un périphérique ou un système de fichier en mémoire, donc volatile.

Tout ce que contient ce disque sera perdu si le système plante ou lors de l'arrêt, il est donc important de prévoir la sauvegarde du contenu si vous voulez le garder.

Pourquoi en utiliser un?

Du fait que c'est stocké en RAM, il est beaucoup plus rapide, de plus, utiliser la RAM plutôt que le disque, seul partie mécanique peut améliorer la gestion d'énergie ou, dans le cas de disques flash, augmenter la durée d'utilisation.

Etant donné la quantité de RAM disponibles dans les configurations actuelle, on peut sans limiter les performances utiliser ~ 100 Mo de RAM.

Différents types

Il existe 3 manières d'utiliser un système de fichier en RAM:

  1. ramdisk: l'implémentation la plus vielle, elle nécessite une configuration au niveau du noyau, limite la taille disponible (à 16 Mo par défaut) et nécessite le chargement du module brd. Elle était utilisée pour l'image initrd avant le noyau 2.6
  2. ramfs: utilisé actuellement pour les images générée par mkinitcpio, elle n'est pas limité en taille sans pour autant pouvoir en spécifier une et comporte donc un risque de saturation de mémoire si elle est mal utilisée.
  3. tmpfs: dernière implémentation basée sur ramfs. On peut spécifier une limite de taille, et le système permet de swapper en cas de besoin de RAM.

Création d'un système tmpfs

Cela se fait de la même façon que n'importe quelle partition en spécifiant none comme périphérique et tmpfs comme type de fichier:

mount -t tmpfs none /chemin/de/montage


Pour /etc/fstab:

none /chemin/de/montage tmpfs defaults 0 0


Les permissions par défaut du point de montage seront 1777 (“rwxrwxrwxt”), pareil que celle de /tmp, on peut les modifier avec mount ou chmod:

mount -t tmpfs none /chemin/de/montage -o mode=755
# ou
chmod 755 /chemin/de/montage


L'autre option intéressante est size qui peut prendre une valeur représentant la taille de la partition. On peut rajouter k,m,g ou % pour spécifier la taille en kilo, méga, giga ou en pourcentage par rapport à la taille totale de la RAM. Si on omet l'option size, la taille est celle de /dev/shm qui est par défaut 50% de la RAM.

Exemple d'utilisation

L'utilisation la plus courante consiste à monter le /tmp en tmpfs en le spécifiant dans le /etc/fstab:

none /tmp tmpfs defaults 0 0

Mais on peut imaginer toutes sortes d'utilisations:

  • Le cache du navigateur, sous firefox par exemple, on peut le mettre sous /tmp/$USER à l'aide de la clé browser.cache.disk.parent_directory depuis about:config ou dans le prefs.js de votre profile.
  • Un répertoire pour la compilation.
  • Les journaux de logs. Ceci implique quand même une augmentation du temps de démarrage et d'arrêt pour cause de sauvegarde du répertoire. Un exemple est disponible ici
 
howto/kernel/ramfs.txt · Dernière modification: 2008/07/21 15:57 par tuxce
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki