URL: https://linuxfr.org/users/briaeros007/journaux/zfs-sous-linux Title: Zfs sous linux Authors: briaeros007 Date: 2007年01月14日T14:27:03+01:00 Tags: Score: 0 Le 26 décembre, Ricardo Correia annoncait sur son blog [1] la sortie d'une alpha de zfs sous fuse. Force est de constater que c'est assez prometteur : La compilation est aisé il suffit de : - avoir un noyau avec le support de fuse - récupérer les sources [2] - installer fuse-utils, les librairies de développement de fuse, et scons. - aller dans le répertoire des source et tapé scons puis su -c 'scons install' . Et voila c'est fait. Ensuite pour se servir de zfs il suffit d'aller dans le répertoire zfs-fuse (qui est dans le répertoire des sources) et de lancer ./run.sh Il ne faut pas oublié de mettre fuse dans le noyau si on l'a compilé en module : modprobe fuse et voila on peut utiliser les commandes de zfs. Si on ne veut pas abimer ses dd, on peut le tester sur des fichiers (15 petit disques dur pour tester ;) ): for i in `seq 1 15`; do dd if=/dev/zero of=/zfs/zfs0 bs=1M count=128; done l'avantage de zfs est de gérer les disques dur directement. Pas besoin d'avoir un lvm et ou de gérer le raid à coté. On peut créer un pool de stockage de façon extremement simplement, y compris en se basant sur du raidz2 (comme du raid5 mais avec 2 disques de redondances, et pas le write hole du raid5 qui obligeait à utiliser de la nvram). zpool create test raidz2 /zfs/zfs{1,2,3,4,5} (il faut donner le chemin complet, sinon il cherche dans /dev je crois ) et on peut observer que tout est bien pris en compte avec un zpool list . On voit que le pool de stockage test a bien été crée. (La taille indiqué est la taille physique et ne tient pas compte de la redondance crée par le raidz2. Voir plus loin comment l'avoir ;) ) si plus tard on veut rajouter des disques dur on peut faire zpool add test raidz2 /zfs/zfs{6,7,8,9,10} et comme on est prévoyant, on décide de mettre 5 disques en spare pour le pool de stockage : zpool add test spare /zfs/zfs{11,12,13,14,15} on regarde ce qui est disponible avec un petit zpool status on peut créer plusieurs files systems dans ce pool (il faut voir qu'il est aussi simple de faire un fs qu'un répertoire avec zfs. Ils sont un peu plus difficile a gérer en ce qui concerne le renommage (il faut passer par zfs) mais permettent d'attribuer la réservation, quota, snapshot etc... facilement) Supposons qu'on ai deux utilisateur : miu et shigure (private joke) donc on peut créer leurs répertoires utilisateurs : zfs create test/users zfs create test/users/miu zfs create test/users/shigure zfs list permet de savoir si les fs sont bien monté, leurs statut etc... A noter , supposons que j'avais déjà fait zfs test/users mais que je l'ai démonté (avec zfs umount ) , lorsque je crée le home de miu, zfs va me monter automatiquement users pour pouvoir créer et monter miu. Bien entendu on peut ajouter quelques caractéristiques aux différents fs zfs set compression=on test/users #active la compression zfs set checksum=on test/users #active les sommes de controles zfs quota=60M test/users/shigure zfs quota=120M test/users zfs list On constate qu'il ne change pas la taille disponible. Mais si je fais: zfs reservation=60M test/users/miu zfs list La il prend bien en compte la reservation. Faire un snapshot est aussi très aisé : zfs snapshot test/users/miu@snap1 voila c'est fait ! récupérer d'un snapshot est aussi très simple : il suffit d'utiliser la commande rollback zfs rollback test/users/miu@snap1 Bon on vois que l'administration d'un tel système est pas franchement compliqué. Et que tout est centralisé en deux commande (plus d'options sont disponibles avec zfs help ou zpool help , ou simplement regarder la documentation [3]) Maintenant supposons que l'on ai écris quelquechose sur une partition , et qu'un problème disque survienne ... par exemple : shred /zfs/zfs4 un premier zpool status ne détecte rien (pas de lecture sur le disque). Mais si on essaie de lire par exemple find test -type f alors, bien que les données soient toujours correct , un zpool status nous informe des problèmes (et de quel type de problème ), ainsi que le mode de fonctionnement (online , dégradé, unavailable, ...). On peut bien entendu utiliser les spares avec un simple zpool replace test /zfs/zfs4 /zfs/zfs11 . Il s'occupe de tout . Après que le resilver soit bien fait, un zpool offline -t test/zfs/zfs4 ensuite (je suis même pas sur qu'on ai besoin de mettre offline si le disque est marqué unavail) on peut changer le disque dur (refaire un dd zero sur /zfs/zfs4) . puis un zpool online test /zfs/zfs4 zpool detach test /zfs/zfs11 permet de remettre le disque spare dans l'ensemble de disque de spare, et de conserver zfs4. (note , j'avais des problèmes de checksum après cela, mais normalement après un changement de dd , zfs le remarque et agis en conséquence. C'est peut etre que je me suis trompé , ou alors qu'il a des problèmes avec les fichiers à la place des dd. Pour réparé ce problème un simple zpool scrub test permet de tout resynchroniser) Si bien entendu on souhaite conserver le spare dans le nouveau raidz2 et ne plus entendre parlé de /zfs/zfs4 on peut faire zpool detach test /zfs/zfs4 Il enlevera /zfs/zfs11 de l'ensemble de spare pour qu'il reste tout le temps dans le raidz2 ayant des problème enfin une fois que tout est fait un petit zpool clear test permet de supprimer les erreurs . Il y a un guide d'adminitration bien fait pour zfs en [3]. Ce que j'en ai pensé , bien que je n'ai pas vraiment pu testé les performance, j'ai trouvé - ce projet est vraiment bien avancé, bien que certains bugs subsistent (on ne peut pas lancé un executable sous fuse ou quelquechose comme ca) , le code , lors de mon test, était très stable, bien plus que le code de 'pre release' de certains projets. - le fait de pouvoir ajouté du raidz,du raidz2 , des miroir (raid1) , ou de simple disque au même pool (en gros de faire un raid0 par dessus) , et ce de facon dynamique m'a bien plus (je n'ai jamais toutefois touché au raid , donc ce n'est pas du tout pour comparer avec les solution actuelles) - l'intuitivité des commandes : les deux commandes utilisé sont bien pensé. L'aide est facilement accessible (zpool help , zfs help. voir par exemple pour rajouter des caractéristiques : zfs set help etc... ) , et la doc sur le site de sun [3] bien faite aussi je trouve. Bref, amha, c'est quelquechose a suivre ;) [1] [http://zfs-on-fuse.blogspot.com/](http://zfs-on-fuse.blogspot.com/) [2] [http://developer.berlios.de/project/showfiles.php?group_id=6(...)](http://developer.berlios.de/project/showfiles.php?group_id=6836) [3] [http://opensolaris.org/os/community/zfs/docs/](http://opensolaris.org/os/community/zfs/docs/)

AltStyle によって変換されたページ (->オリジナル) /