En bref : si vous utilisez une carte RAID bas de gamme (sans cache), faites-vous une faveur et passez au RAID logiciel. Si vous utilisez une carte moyen-haut de gamme (avec BBU ou NVRAM), le matériel est souvent (mais pas toujours ! voir ci-dessous) un bon choix.
Longue réponse : lorsque la puissance de calcul était limitée, les cartes RAID matérielles présentaient l'avantage considérable de décharger le calcul de la parité/du syndrome pour les schémas RAID les impliquant (RAID 3/4/5, RAID6, ecc).
Cependant, avec l'augmentation constante des performances des CPU, cet avantage a pratiquement disparu : même l'ancien CPU de mon ordinateur portable (Core i5 M 520, génération Westmere) a des performances XOR de plus de 4 Go/s et des performances de syndrome RAID-6 de plus de 3 Go/s. par noyau d'exécution unique .
L'avantage que le RAID matériel conserve aujourd'hui est la présence d'un cache DRAM protégé contre les pertes de puissance, sous forme de BBU ou de NVRAM. Ce cache protégé offre une latence très faible pour les accès en écriture aléatoire (et les lectures qui frappent) et transforme essentiellement les écritures aléatoires en écritures séquentielles. Un contrôleur RAID sans un tel cache est presque inutile. . De plus, certains contrôleurs RAID bas de gamme sont non seulement dépourvus de cache, mais désactivent de force le cache DRAM privé du disque, conduisant à des performances plus faibles que sans carte RAID du tout. Les cartes PERC H200 et H300 de DELL en sont un exemple : elles désactivent totalement le cache privé du disque et (si un firmware plus récent ne l'a pas modifié) interdisent activement de le réactiver. Faites-vous une faveur et faites pas, jamais, jamais acheter de tels contrôleurs. Même si les contrôleurs haut de gamme désactivent souvent le cache privé du disque, ils ont au moins leur propre cache protégé, ce qui rend le cache privé du disque dur (mais pas celui du disque SSD !) quelque peu redondant.
Mais ce n'est pas la fin. Même les contrôleurs les plus performants (ceux qui disposent d'une BBU ou d'un cache NVRAM) peuvent donner des résultats incohérents lorsqu'ils sont utilisés avec des SSD, essentiellement parce que les SSD sont vraiment besoin de un cache privé rapide pour une programmation/effacement efficace des pages FLASH. Et si certains contrôleurs (la plupart ?) vous permettent de réactiver le cache privé du disque (ex : PERC H700/710/710P), si ce cache privé est volatile, vous risquez de perdre des données en cas de coupure de courant. Le comportement exact dépend du contrôleur et du firmware (ex : sur un DELL S6/i avec 256 MB de cache WB et a activé le cache du disque J'avais pas de lors de tests multiples et planifiés de perte de puissance), ce qui donne lieu à des incertitudes et à de nombreuses inquiétudes.
Les RAID logiciels à source ouverte, en revanche, sont des bêtes beaucoup plus contrôlables - leur logiciel n'est pas enfermé dans un micrologiciel propriétaire, et ils ont des modèles et des comportements de métadonnées bien définis. Les RAID logiciels partent de l'hypothèse (juste) que le cache DRAM privé du disque n'est pas protégé, mais en même temps il est critique pour des performances acceptables - donc plutôt que de le désactiver, ils utilisent les commandes ATA FLUSH / FUA pour écrire les données critiques sur un stockage stable. Comme ils fonctionnent souvent à partir des ports SATA attachés au chipset SB, leur bande passante est très bonne et le support des pilotes est excellent.
Cependant, s'il est utilisé avec des disques durs mécaniques, les modèles d'accès en écriture synchronisés et aléatoires (ex : bases de données, machines virtuelles) souffriront grandement par rapport à un contrôleur RAID matériel avec cache WB. D'autre part, lorsqu'il est utilisé avec des SSD d'entreprise (c'est-à-dire avec un cache d'écriture protégé contre les pertes de puissance), le RAID logiciel excelle souvent et donne des résultats encore plus élevés que les cartes RAID matérielles. Malheureusement, les SSD grand public ne disposent que d'un cache d'écriture volatile, ce qui donne des IOPS très faibles dans les charges de travail d'écriture synchronisée (bien que très rapides en lecture et en écriture asynchrone).
Il faut également savoir que les RAID logiciels ne sont pas tous égaux. Le RAID logiciel Windows a une mauvaise réputation, en termes de performances, et même Storage Space ne semble pas trop différent. Le MD Raid de Linux est exceptionnellement rapide et polyvalent, mais la pile d'E/S de Linux est composée de multiples pièces indépendantes que vous devez comprendre soigneusement pour en extraire des performances maximales. ZFS parity RAID (ZRAID) est extrêmement avancé mais, s'il n'est pas correctement configuré, il peut vous donner muy faibles IOPs ; le mirroring+striping, par contre, fonctionne très bien. Quoi qu'il en soit, il faut un périphérique SLOG rapide pour la gestion synchrone des écritures (ZIL).
En résumé :
- si vos charges de travail ne sont pas sensibles aux écritures aléatoires synchronisées, vous n'avez pas besoin d'une carte RAID
- si vous avez besoin d'une carte RAID, faites no acheter un contrôleur RAID sans cache WB
- si vous prévoyez d'utiliser un SSD, le RAID logiciel est préférable mais gardez à l'esprit que pour des écritures aléatoires synchronisées élevées, vous avez besoin d'un SSD protégé contre les pertes de puissance (c'est-à-dire Intel S/P/DC, Samsung PM/SM, etc.). Pour des performances pures, le meilleur choix est probablement Linux MD Raid, mais aujourd'hui, j'utilise généralement des miroirs ZFS en bandes. Si vous ne pouvez pas vous permettre de perdre la moitié de l'espace à cause des miroirs et que vous avez besoin des fonctionnalités avancées de ZFS, optez pour ZRAID mais soigneusement pensez à la configuration de vos VDEVs.
- si, même en utilisant un SSD, vous avez vraiment besoin d'une carte RAID matérielle, utilisez des SSD avec des caches protégés en écriture.
- si vous avez besoin de RAID6 en utilisant des disques durs mécaniques normaux, envisagez d'acheter une carte RAID rapide avec 512 Mo (ou plus) de cache WB. RAID6 a une forte pénalité de performance en écriture, et un cache WB correctement dimensionné peut au moins fournir un stockage intermédiaire rapide pour les petites écritures synchrones (ex : journal du système de fichiers).
- si vous avez besoin de RAID6 avec des disques durs mais que vous ne pouvez pas / ne voulez pas acheter une carte RAID matérielle, réfléchissez bien à votre configuration RAID logicielle. Par exemple, une solution possible avec Linux MD Raid est d'utiliser deux matrices : une petite matrice RAID10 pour les écritures de journal / journaux de BD, et une matrice RAID6 pour le stockage brut (comme serveur de fichiers). D'autre part, le RAID5/6 logiciel avec les SSD est très rapide, donc vous n'avez probablement pas besoin d'une carte RAID pour une configuration tout-SSD.