Installation

$ apt-get install cachefilesd $ sed -i 's/#RUN/RUN/' /etc/default/cachefilesd $ modprobe fscache

On peut changer le nom du cache dans /etc/cachedfilesd.conf : tag mycache → tag streamcache

Patching noyau

Obtenir les sources du noyau stable :

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-kernel-stable-git cd linux-kernel-stable-git

Regarder les différences entre la version dans Debian et upstream sur fscache :

git diff <tag_debian> <tag_upstream_stable> -- fs/fscache

Extraire les patches :

TODO

Le noyau distribué par Debian expose des bugs sur fscache, corrigés upstream pour la plupart, le mieux étant d'appliquer tous les patches upstream sur fscache.

Installation de la chaîne de compilation :

apt-get install fakeroot build-essential devscripts apt-get build-dep linux

Installation des sources du noyau de la distribution :

apt-get source linux cd linux-* svn export svn://svn.debian.org/svn/kernel/dists/trunk/linux/debian

Editer debian/changelog pour ajouter sous la forme “+vme.1”, qui est appropriée pour gérer différentes versions.

Ajouter sur le champs abi.abiname dans debian/config/defines la même ligne.

Ajouter les patches avec quilt.

TODO

Activation du cache sur un point de montage

$ lvcreate -L 180G -n fscache vme-frstd-stream06 $ mkfs -t ext4 /dev/mapper/vme--frstd--stream06-fscache $ mkdir /fscache

Mettre user_xattr sur le point de montage ext4 /fscache comme option :

/dev/mapper/vme--frstd--stream06-fscache /fscache ext4 defaults,user_xattr 0 2

Considérer les options barrier=0 noatime ou relatime nodiratime noacl (nobh) data=writeback et discard sur ext4 (ext3 aussi) sur des SSD éventuellement (mais pas tjs).

et

$ mount /fscache

Mettre l'option fsc au point de montage NFS dans /etc/fstab et

$ umount -f /data/VME/contents ... ... ... $ mount -a

Changer le chemin du cache dans /etc/cachefilesd.conf pour y mettre /fscache et démarrer le service cachefilesd

$ service cachefilesd start

Tuning SSD

$ apt-get install sysfsutils

Réduction des latences, à valider un peu plus …

$ vi /etc/sysfs.conf --- <8 --- /etc/sysfs.conf ... block/<device>/queue/scheduler = deadline block/<device>/queue/iosched/front_merges = 0 block/<device>/queue/iosched/read_expire = 150 block/<device>/queue/iosched/write_expire = 1500 ... --- 8> ---
$ service sysfsutils start

Surveillance

$ find /fscache -type f | wc -l $ watch -n0 cat /proc/fs/fscache/stats

cachefilesd sur Debian squeeze se met parfois dans une boucle sans fin qui pompe 100% d'un CPU. Il faut alors soit le rédémarrer soit utiliser une version plus récente.