Tmpfs bind

Publié le 11/06/2008

Je vous en ai parlé il y a quelques temps, monter un répertoire en tmpfs peut vous faire gagner un temps conséquent. Pour mémoire, le montage d’un répertoire en tmpfs permet d’utiliser un répertoire dans la RAM au lieu du disque dur. Le souci, c’est que si votre machine redémarre, tout ce qui est écrit dans la RAM va se vider. Ce qui serait super utile, c’est un système de synchronisation des données pour que tout ce qui se passe en RAM soit aussi écrit sur le disque en temps voulu.

Et Linux (et seulement lui) sait faire cela en une seule commande, et ce grâce à l’option bind de mount. Voici un exemple:

mount --bind -t tmpfs /tmp /tmp

Cela veut dire que /tmp est monté dans la RAM **et** sur le disque dur ! Pour preuve:

$ mount
/tmp on /tmp type tmpfs (rw,bind)

Ce qu’il y a de génial, c’est que lors de l’appel à cette commande, les fichier inscrits sur le disque remontent en RAM. En gros, le fait de monter le disque de cette manière ne vous fait pas perdre les données qui était présentes avant le montage.

Par contre, cela implique que ces données se trouvent sur le disque et dans la RAM, donc en deux endroits différents. Mais tout est synchronisé ! Si vous démonter le volume, les donnée seront présentes sur le répertoire cible.

Je vais donc (après sauvegarde évidamment) monter mon répertoire WEB en tmpfs et vérifier les temps de réponses. Je suis près à parier que cela va grandement accélérer mes accès au cache :)

Avis aux amateurs !

comments powered by Disqus