====== Installation ====== $ apt-get install cachefilesd $ sed -i 's/#RUN/RUN/' /etc/default/cachefilesd Optionnel pour tests préliminaires sur noyau non patché. $ 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 -- fs/fscache git diff -- fs/cachefiles Extraire les patches : FIXME 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. FIXME ===== Installation nouveau noyau ===== Le déposer sur le dépôt apt interne pour les paquets customisés. ====== 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 -l /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 ====== ===== Scheduler de blocs ===== $ apt-get install sysfsutils Réduction des latences, à valider un peu plus ... $ vi /etc/sysfs.conf --- 8< --- /etc/sysfs.conf ... block//queue/scheduler = deadline block//queue/iosched/front_merges = 0 block//queue/iosched/read_expire = 150 block//queue/iosched/write_expire = 1500 ... --- >8 --- Ou $ vi /etc/sysfs.conf --- 8< --- /etc/sysfs.conf ... block//queue/scheduler = noop ... --- >8 --- $ service sysfsutils start ===== Alignement des partitions ===== Le but est d'aligner les partitions sur le SSD Erase Block et avec le niveau de RAID de surcroît. Voir ici : http://tytso.livejournal.com/2009/02/20/ FIXME : expliquer le calcul en détail, les configs sur LVM, les options sur mkfs -t ext4 et comment le faire sans destruction des datas mais pas à chaud. ====== Surveillance ====== $ find /fscache -type f | wc -l $ watch -n0 cat /proc/fs/fscache/stats ====== Workarounds ====== 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.