J'ai beaucoup lu sur les contrôleurs / configurations RAID et une chose qui apparaît souvent est la manière dont les contrôleurs matériels sans cache offrent les mêmes performances qu'un logiciel RAID. Est-ce vraiment le cas?
J'ai toujours pensé que les cartes RAID matérielles offriraient de meilleures performances même sans cache. Je veux dire, vous avez du matériel dédié pour effectuer les tâches. Si tel est le cas, quel est l’avantage d’obtenir une carte RAID sans cache, quelque chose comme un LSI 9341-4i qui n’est pas vraiment bon marché.
De plus, si un gain de performances est uniquement possible avec le cache, existe-t-il une configuration de cache qui écrit immédiatement sur le disque, mais conserve les données dans le cache pour les opérations de lecture, ce qui fait qu'un BBU n'est pas une priorité?
la source
Réponses:
En bref: si vous utilisez une carte RAID bas de gamme (sans cache), faites-vous une faveur et passez au logiciel RAID. Si vous utilisez une carte de milieu de gamme (avec BBU ou NVRAM), le matériel est souvent (mais pas toujours! Voir ci-dessous) un bon choix.
Réponse longue: lorsque la puissance de calcul était limitée, les cartes RAID matérielles présentaient l'avantage considérable de réduire le calcul de parité / syndrome pour les schémas RAID les impliquant (RAID 3/4/5, RAID6, etc.).
Cependant, avec les performances du processeur de plus en plus, cet avantage essentiellement disparu: même CPU ancienne de mon ordinateur portable (Core i5 M 520, génération Westmere) a des performances XOR de plus de 4 Go / s et les performances du syndrome RAID-6 sur 3 Go / s sur une noyau d'exécution unique .
L’avantage que le RAID matériel maintient aujourd’hui réside dans la présence d’un cache DRAM protégé contre les coupures de courant, sous la forme de BBU ou de NVRAM. Ce cache protégé donne une latence très faible pour les accès en écriture aléatoires (et les lectures correspondantes) et transforme fondamentalement 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 ne disposent pas uniquement d'un cache, ils désactivent également de force le cache DRAM privé du disque, ce qui entraîne des performances plus lentes que celles sans carte RAID. Les cartes PERC H200 et H300 de DELL en sont un exemple: si le micrologiciel le plus récent n’a pas changé, elles désactivent totalement le cache privé du disque (et il ne peut pas être réactivé tant que les disques sont connectés au contrôleur RAID). Faites-vous une faveur et faitesn'achetez jamais de tels contrôleurs. Même si les contrôleurs les plus avancés désactivent souvent le cache privé du disque, ils ont au moins leur propre cache protégé, ce qui rend le cache privé des disques durs (mais pas des disques SSD!) Quelque peu redondant.
Ce n'est pas la fin, cependant. Même les contrôleurs capables (celui avec cache BBU ou NVRAM) peuvent donner des résultats incohérents lorsqu'ils sont utilisés avec SSD, essentiellement parce que les SSD ont vraiment besoin d' un cache privé rapide pour une programmation / effacement efficace des pages FLASH. Et tandis que certains (la plupart?) Contrôleurs vous permettent de réactiver le cache privé du disque (par exemple: PERC H700 / 710 / 710P laisser l'utilisateur le réactiver), si ce cache privé n'est pas protégé en écriture, vous risquez de perdre des données en cas de perte de puissance. Le comportement exact dépend vraiment du contrôleur et du micrologiciel (par exemple: sur un DELL S6 / i avec 256 Mo de cache WB et le cache de disque activé , je n’ai subi aucune perte lors de multiples tests de perte de puissance planifiés), ce qui crée de l’incertitude et de nombreuses préoccupations.
Les logiciels Open Source, par contre, sont beaucoup plus contrôlables: leur logiciel n’est pas contenu dans un micrologiciel propriétaire et présente des schémas et des comportements de métadonnées bien définis. Les logiciels RAID supposent (à droite) que le cache DRAM privé du disque n’est pas protégé, mais il est également essentiel pour des performances acceptables. Par conséquent, ils ne le désactivent généralement pas. Ils utilisent plutôt les commandes ATA FLUSH / FUA pour être certain que les données atterrissent sur un stockage stable. Comme ils fonctionnent souvent à partir des ports SATA connectés au chipset SB, leur bande passante est très bonne et le support des pilotes est excellent.
Toutefois, s’il est utilisé avec des disques durs mécaniques, un schéma d’accès en écriture synchronisé et aléatoire (par exemple: bases de données, machines virtuelles) en souffrira considérablement par rapport à un contrôleur RAID matériel avec cache WB. D'autre part, lorsqu'il est utilisé avec des disques SSD d'entreprise (c'est-à-dire avec un cache en écriture protégé Powerloss), le logiciel RAID excelle souvent et donne des résultats encore supérieurs à ceux obtenus avec des cartes RAID matérielles. Cela dit, vous devez vous rappeler que les disques SSD grand public (avec le cache d'écriture différé non protégé), tout en étant très performants en lecture et en écriture async, fournissent des IOPS très faibles dans les charges de travail en écriture synchronisée.
Considérez également que les RAID logiciels ne sont pas tous créés égaux. Le logiciel Windows RAID a une mauvaise réputation en termes de performances, et même l'espace de stockage ne semble pas trop différent. Linux MD Raid est exceptionnellement rapide et polyvalent, mais la pile d’E / S Linux est composée de plusieurs éléments indépendants que vous devez bien comprendre pour obtenir des performances maximales. Le RAID de parité ZFS (ZRAID) est extrêmement avancé mais, s’il n’est pas configuré correctement, il peut vous donner de très mauvais IOP; En miroir + entrelacement, de l’autre côté, fonctionne assez bien. Quoi qu'il en soit, il nécessite un périphérique SLOG rapide pour la gestion d'écriture synchrone (ZIL).
Ligne de fond:
la source
fsync()
. Voir cet article , qui montre qu'un disque dur SSD NVMe Samsung sans condensateur ne fait que ~ 250 fsyncs par seconde (moi aussi, j'ai mesuré cela). Les disques SSD avec condensateur donnent environ 30 fois plus de synchronisation numérique / seconde, ainsi qu’un contrôleur RAID matériel avec une batterie 100 fois plus.Vous aurez besoin d'une solution de cache sur batterie ou sur disque flash pour tout contrôleur de matériel que vous achetez. La plupart regrettent de ne pas l'avoir fait .
Mais pour répondre à votre question, la plupart des contrôleurs ont des ratios de cache configurables ... donc 100% de cache en lecture et 0% de cache en écriture suppriment le besoin de protection BBU. Votre performance d'écriture va juste sucer.
Je ne peux pas répondre à votre question sur les logiciels RAID car cela dépend. Linux MD RAID est différent du Windows Software RAID, qui est différent de quelque chose comme ZFS . Des solutions telles que ZFS peuvent être plus performantes que le matériel, car elles exploitent la RAM et les ressources du processeur du serveur.
la source
Le contrôleur RAID que vous avez sous les yeux est bon marché et est fondamentalement un fakeraid. Cela dépend même de votre carte mère pour fournir certaines fonctions telles que la mémoire et peu de cartes mères ont un support, ce qui vous empêche de charger le pilote.
À propos de HW vs SW-RAID lui-même. Je n'utilise plus HW-RAID à moins que ce soit une boîte avec un logo EMC dessus, par exemple. Pour tout le reste, je suis retourné à SW-RAID plusieurs lunes de nouveau pour quelques raisons très simples.
Vous avez besoin de matériel supplémentaire et devez les faire correspondre. Vous devez également faire correspondre le micrologiciel et le synchroniser. Beaucoup de disques ne fonctionneront pas correctement et vous aurez des pics dans votre latence IO sans raison claire.
Du matériel supplémentaire coûte cher, vous pouvez donc utiliser ces 1 000 $ supplémentaires (contrôleur décent avec deux / trois disques) pour améliorer une petite solution. Investissez dans plus de disques et de contrôleurs standard, mémoire ECC, processeur plus rapide. Et un disque de secours sur site peut-être si vous envisagez de l’exécuter plus longtemps que la période de garantie ou si vous ne souhaitez pas payer les frais de courrier express pour une expédition le lendemain.
La mise à niveau est une tâche ardue, car vous devez suivre les correctifs et les microprogrammes du système d'exploitation pour le disque et le contrôleur. Cela peut entraîner une situation dans laquelle la mise à niveau / mise à jour n'est plus possible.
Sur les formats de disque. Un nombre suffisant de fournisseurs utilisent une structure interne pour stocker les données liées à une révision de la combinaison matériel / micrologiciel. Cela peut entraîner une situation dans laquelle une pièce de rechange vous empêche d'accéder à vos données.
C'est un SPOF et un goulot d'étranglement. Avoir un seul contrôleur derrière un seul pont PCI ne vous donne pas les performances et la redondance dont vous avez vraiment besoin. De plus, aucun chemin de migration n’existe pour migrer les données vers un autre ensemble de disques en dehors du périmètre des contrôleurs.
La plupart de ces points ont été pris en charge avec les nouvelles générations de logiciels SW-RAID ou de solutions telles que ZFS et BtrFS. N'oubliez pas qu'à la fin, vous souhaitez protéger vos données, ce qui n'est pas un accès rapide, mais des ordures redondantes.
la source
Durant la dernière année (2014-2015), j'ai testé plusieurs configurations parallèles CentOS 6.6 RAID 1 (en miroir) à l'aide de 2 contrôleurs HBA LSI 9300 vers 2 contrôleurs RAID LSI 9361-8i avec des systèmes reposant sur les éléments suivants: Supermicro CSE 2U - Châssis 826BAC4-R920LPB, une carte mère ASUS Z9PE-D16, 2 processeurs Intel Xeon E5-2687W v2 à huit cœurs à 3,4 GHz, miroir Seagate ST6000NM0014 de 12 To, 512 Go de RAM, 512 Go de RAM. Notez qu'il s'agit d'une configuration entièrement compatible SAS3 (12 Gbps).
J'ai parcouru des articles sur le logiciel de réglage et j'utilise RAID logiciel Linux depuis plus de 10 ans. Lors de l'exécution de tests d'E / S de base (dd-oflag = fichiers directs de 5 000 à 100 Go, hdparam -t, etc.), le RAID logiciel semble se comporter de manière favorable pour le raid matériel. Le logiciel RAID a été mis en miroir par des HBA distincts. Je suis allé jusqu'à faire des tests avec les configurations standard de noyau CentOS 6, kernel-lt et kernel-ml. J'ai également essayé divers mdadm, systèmes de fichiers, sous-systèmes de disques et réglages optimisés suggérés par divers articles en ligne écrits sur le RAID logiciel Linux. Malgré le réglage, les tests, le réglage et les tests, lors de l'exécution dans un système de traitement de transactions (ayant une base de données MySQL ou Oracle), j'ai constaté qu'exécuter un contrôleur RAID matériel entraînait des performances 50 fois plus élevées.
Pendant de nombreux mois, je n’étais pas convaincu que le RAID matériel pourrait être bien meilleur. Cependant, après des recherches approfondies sur le RAID logiciel Linux, les tests et les réglages, c’était mes résultats.
la source
La plupart des écrivains ici ignorent tout simplement le " trou d'écriture ". C’est la base qui permet de réclamer des unités de sauvegarde matérielle RAID complètes par opposition à l’absence d’un tel système pour les RAID logiciels. Par exemple, l’implémentation RAID logicielle Linux prend en charge les bitmaps des opérations d’écriture ou effectue un nouveau calcul de «parité» en cas d’arrêt non propre. ZFS s’efforce toujours d’écrire des bandes complètes afin d’éviter cette incohérence ou de remettre à plus tard sa nouvelle vérification. Donc, en résumé, le RAID logiciel assez intelligent de nos jours est souvent assez bon pour être utilisé à la place de "qui sait ce qu'il y a à l'intérieur" de ce qu'on appelle le "RAID matériel".
En ce qui concerne la partie cache de la question, peu importe, car le cache d’écriture du système d’exploitation lui-même peut être beaucoup plus volumineux que l’adaptateur "matériel".
la source
Je travaille tout le temps. Cela dépend beaucoup de ce que vous faites et du niveau de votre soutien. Un contrôleur SW exécutant un raid 0 ou 1 pour le système d’exploitation et rien de spécial ne pose de problème. Exécuter un contrôleur SW avec un Raid 5 sur une base de données, c'est poser des problèmes! CERTAINS contrôleurs matériels vous offrent de meilleures performances, mais cela dépend de la capacité du cache et du chipset processeur de la carte RAID. De plus, tous les contrôleurs logiciels ne sont pas pris en charge par tous les systèmes d'exploitation. Donc, parfois, vous devrez peut-être acheter un matériel pour exécuter ESXi ... Sauf si vous utilisez des connexions SATA.
la source