Plan du KiWi
Si vous n'avez pas trouvé votre bonheur dans les liens plus haut, le plan vous montrera les quelques pages “cachées” de ce kiwi !
Pour installer ZFS sur la partition root (histoire de bien en profiter). Lire ce pdf !freebsd_zfs.pdf
Exemples de scénario : Créer un groupe de volumes nommé data avec deux disques-dur en RAID-0 :
# zpool create data <disque 1> <disque 2>
En RAID-1 :
# zpool create data mirror <disque 1> <disque 2>
Une fois cette commande exécutée, le groupe de volume est immédiatement opérationnel. Par défaut, un volume logique qui couvre tout le groupe de volumes est créé.
Ajouter trois disques-dur en RAID-Z au groupe de volumes data :
# zpool add data raidz <disque 1> <disque 2> <disque 3> La place créée par les trois disques-dur est automatiquement ajoutée au groupe de volumes.
Créer un nouveau volume logique nommé music sur le groupe de volumes data :
# zfs create data/music
Un nouveau volume logique est créé. L'espace libre est partagé entre les différents volumes logique existant.
Pour avoir des NAS qui défoncent tout, suivez ce tips.
Je le copie/colle ici (au cas ou) :
Salut à toi utilisateur de la boule rouge à cornes. Si comme moi tu en as eu marre de faire joujou avec geom les drivers et cartes chelous, et que tu as quelques disques d'un joli gabarit tu t'es sûrement dit et si je tentais l'aventure ZFS ?
Pour l'installation du zfs en tant que sysème de fichier racine je vous donne ce petit howto bien foutu : http://ish.com.au/solutions/articles/freebsdzfs
Mais là n'est pas l'intérêt de ce tip. Il se trouve que je n'avais qu'un vieux p4 32bits et que je rencontrais des locks dans le system de fichiers. Après moult recherches et moult docs lues ça et là, je suis tombé sur une recette de cuisine qui a fait de mes 3 NAS de prod des boites à données rock solid. Oui je partage et je me tais :
L'implémentation de zfs se fait niveau kernel chez freebsd. Tout le monde sait que zfs est assez gourmand en ram, du coup il faut prévoir. Permiere tâche permettre au kernel de s'étendre en ram en le recompilant avec par exemple :
options KVA_PAGES=512
NB: ceci n'est nécessaire qu'en environnement 32 bits
Maintenant que le kernel est prêt à remplir les barettes on tune un poil son /boot/loader.conf avec :
vm.kmem_size="768M" vm.kmem_size_max="768M" vfs.zfs.arc_max="40M" vfs.zfs.vdev.cache.size="5M" #en cas de besoins particuliers (mysqld par exemple) jouer avec ces paramètres #vfs.zfs.cache_flush_disable="1" #vfs.zfs.zil_disable="1" #vfs.zfs.prefetch_disable="1"
Les classiques qui évitent les surprises en cas de grosse charge
kern.maxfiles=65536 kern.maxfilesperproc=32768 kern.maxvnodes=200000
Avoir du zfs c'est bien, mais snapshoter c'est mieux. Comme vous le savez certainement déjà, ZFS permet de générer des snapshots sur simple commande. J'ai dont fait un petit script sh très simple qui effectue une rotation des snapshots sur N jours. Je vous présente zfsrotatesnapshots.sh :
#!/bin/sh
export zfs="/sbin/zfs"
$zfs destroy tank/root@15dago
for i in `jot - 15 2`;
do
$zfs rename -r tank/root@$((i-1))dago @${i}dago
done
$zfs snapshot -r tank/root@1dago
touch /lastzfssnapshot
sinon dans le genre à ne pas oublier j'ai mis un scrub dans la crontab. Comme ça l'intégrité du raid0+1 de la box est vérifiée quotidiennement :
0 0 * * * /usr/local/sbin/zfsrotatesnapshots.sh 0 1 * * 1 /sbin/zpool scrub tank
Une fois tout ce bazar réglé, je n'ai plus eu de soucis avec un freebsd 7.0-STABLE un p4 2.4 ghz datant un peu et 1go de ram. Le meilleur test que j'ai trouvé pour vérifier la stabilité de zfs : lancer une foultitude de clients bittorrents sur la dite machine. Au bout de quelques heures (pas plus de 2 jours) on est fixés.