Ceci est une ancienne révision du document !
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
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.
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 git diff <tag_debian> <tag_upstream_stable> -- fs/cachefiles
Extraire les patches :
TODO
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.