Le jeu de commande SATA est très restreint.
Le jeu de commande SAS peut gérer 64 commandes simultanément, de plus:
- la carte SAS possède un processeur et de la mémoire (une carte SAS2: un powerpc et de la DDR3 par exemple), elle regarde les blocs demandés et va aller chercher les données en fonction de la position des têtes, ce qui explique le fonctionnement un peu "mitrailleuse" des disques (alors que le SATA fait plutôt penser à une machine à coudre).
- la mémoire de la carte SAS passera par le PCIexpress en 4x ou 8x (bus "généralement" utilisé pour la vidéo)
Ce qu'il faut comprendre, c'est que ZFS va toujours chercher là oû c'est le plus rapide en se posant la question:
- est-ce dans la RAM ? (primarycache)
- est-ce dans le cache-résumé ? (secondarycache=none),
- est-ce dans le cache-(branches de l'arbreZFS) ? (secondarycache=metadata),
- est-ce dans le cache-(données) ? (secondarycache=all),
- est-ce dans le pool ?
Donc, si on veut que le système aille vite, il faut donner à ZFS un Zcache véloce, car quelquefois il va se dire:
"Bon, le cache est occupé, et j'aurai plus vite fait d'aller chercher mes données dans le pool directement".
Un Zcache peut être en
- primarycache=none (une clé usb ... si si!)
- primarycache=metadata (un petit SSD qu'on ne veut pas user ou du SAS)
- primarycache=all (un SSD ou du SAS)
Le point fort du SSD est le temps d'accès, un peu le débit, et, la consommation.
Le point faible du SSD est l'usure des cellules (compensé par le TRIM mais si on passe 100Go par jour dans son SSD çà ne va pas trop lui plaire, en plus, chaque fois que ZFS est arrêté, tout le Zcache est perdu (volonté délibérée des barbus)
Le point fort du SAS est le débit (130m/s réel avec un disque d'occase à 5/15 euros ! (15000tr/min) ou genre avec 6 Seagate Cheetah en 15K7, on peut copier l'équivalent d'un DVD de 4,5Go en 3 sec (je parle de réalité, du vécu, au bout de 3 secondes la copie est belle est bien finie)
Les disques SAS tournent à 15000tr/min et sont pro (peu de bruit et solides: fait pour des serveurs 24/24), ils sont deux à quatre fois plus lourd que les SATA mais chauffe deux fois plus.
Le point faible du SAS est le prix et le matos (câbles, etc) et la consommation. Ceci étant au lieu d'acheter une carte à 800 euros neuve, on peut trouver une estampillé"LSI" pour 15 ou 25 euros avec 256Mo de cache (genre perc/6i)
On peut mettre des disques SATA sur une carte SAS, ceci est une astuce pour bénéficier du cache de la carte (de 256Mo à 2Go) et de l'autoroute fait par le PCIexpress.
Pour info, en fouinant bien, j'ai pu monter pour 60 euros un ensemble SAS complet sur une carte mère ASRock combo en 775 qui me donne un débit de 465Mo/s en toutes circonstances (si je copie un fichier de 500Go, il transfert réellement à 465Mo/s ! (c'est même la carte mère qui limite les choses) Ce qui fait que sur cette carte mère ridicule, il tourne plusieurs MV sans soucis (en SATA, la led du disque s’allumerait constamment ... et ramerait comme un pauvre malheureux)
Le SATA peut avoir un débit théorique très bon et l'USB aussi, mais c'est la réalité qui compte, copier un fichier de 100Go ou 500Go va vite calmer les esprits les plus enthousiastes (ceux qui font des scrub avec çà regarde le débit plusieurs fois de suite, en ce disant "bin non ... c'est pas possible !" ... hé hé ... bin si !)
De plus en ZFS, si on met un Zcache en SATA, ce dernier va se retrouver au même niveau que le pool (même transit des données), donc, il y a de fortes chances que ZFS utilse le pool en premier.
Le juge de paix est un zpool status -v 1 lorsqu'on fait travailler ZFS, si on veut une machine ultra perfomante, au départ on admet qu'il lise dans le pool, mais après TOUT doit passer par le Zcache (le plus possible on va dire)
En fait, ZFS va réguler, entre le pool et le Zcache, si ce dernier est en SATA, alors il va picorer un peu partout, si on a 2 disques en miroir, il y a de forte chance pour que le Zcache ne soit pas du tout utilisé. Un Zcache sur un bon disque SATA ne sera pas lu sur un pool de 4 disques médiocres entrelacés
Pour savoir si son Zcache est bon, c'est simple, on fait un dd if=dev/zero of=/dev/ada1 bs=1M count=100000
et on regarde ce qui se passe
en Linux (liveCD), on peut utiliser hdparm -t /dev/sda par exemple (peut-être que sous N4F on peux installer hdparm)
ma meilleure performance a été de 1,5Go/s (de moyenne en réel sur 500Go) avec 8 disques en raid0 hard (pour info ZFS n'a pas besoin d'un dev fiable en Zcache, car il fait un checksum en sortie).
Perso, j'utilise mes pools en iscsi (donc lent puisqu'en réseau) et j'ai deux types de Zcache (SSD ou SAS), en SSD lors de la deuxième lecture ... c'est quasiment instantané (mon firefox tournant pourtant dans une MV stocké en iscsi)
Sinon, les choix ne sont pas toujours évident, car par exemple, on peut mettre un SSD sur un pool d'un disque de 2To, mais, pour le même prix on peut mettre un 2ème disque de 2To en miroir (ce qui doublera les accès) et augmentera la sécurité, et çà ce n'est pas négligeable.
Et ensuite on peut mettre le tout sur une carte SAS, et on a un pool performant et qui fera un scrub rapidement !
Donc, il faut tenir compte de plusieurs choses, mettre un SSD ne sera pas "magique" dans toutes les circonstances.
Prenons quatre config (à RAM identique):
1) un disque SATA de daube avec un superSSD
2) quatres disques SATA entrelacés
3) deux disques SATA sur une carte SAS
4) un seul disque SAS
Sur quelques demande répétitives de mêmes petits fichiers le 1 sera le meilleur, mais sur un scrub du pool, pour des copies monstrueuses ou pour des travaux lourds simultanés, le 4 sera le mieux même sans SSD !
De plus, et çà c'est très important, chaque fois que le pool est lu, ZFS charge le Zcache, donc, avoir un Zcache plus lent que ce qui vient du pool ne va pas l'aider dans sa tâche.
Bref, cela dépend surtout de ce que l'on veut faire en ZFS (... et aussi de ses moyens!)
Il n'y a pas vraiment de recette miracle, mais une bonne adaptation en fonction de son utilisation: un pauvre SATA peut suffire dans certains cas (mon nas principal n'a pas de Zcache et est en SATA), mais ma machine perso possède de multiples Zcache en SSD et SAS que j'alloue en fonction des utilisations (car le Zcache se met et s'enlève à volonté).
Pour en revenir à l'idée de départ de tuner ZFS, on peut peut-être améliorer un peu ... comme sur un 50cm3 quand on se couche pour aller plus vite

Mais, j'essaierai quand même, par contre, je pense que savoir ce qu'il faut toucher ne sera pas évident.