Performances RAID logiciel / matériel et utilisation du cache

73

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é?

C'est juste moi
la source
Quelque chose que j'ai remarqué qui favorise le raid de HW: D'après mon expérience, si vous exécutez un raid de SW et que le système ne fait rien d'autre qu'un arrêt complet, vous bloquez le module RAID et devez le reconstruire. HW Raid ne fait pas de reproches s'il n'a pas écrit au moment de la panne du système.
Loren Pechtel

Réponses:

146

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:

  1. si vos charges de travail ne sont pas sensibles à l'écriture aléatoire synchronisée, vous n'avez pas besoin d'une carte RAID.
  2. si vous avez besoin d'une carte RAID, n'achetez pas de contrôleur RAID sans cache WB
  3. Si vous prévoyez d'utiliser un logiciel SSD, le logiciel RAID est préférable, mais gardez à l'esprit que pour les écritures aléatoires hautement synchronisées, vous avez besoin d'un disque SSD protégé Powerloss (par exemple: Intel S4600, Samsung PM / SM863, etc.). Pour des performances pures, le meilleur choix est probablement le Linux MD Raid, mais de nos jours, j'utilise généralement des miroirs ZFS à bandes. Si vous ne pouvez pas permettre de perdre la moitié de l'espace en raison de miroirs et a besoin ZFS fonctionnalités avancées, aller avec ZRAID mais bien réfléchir à votre configuration de VDEVs.
  4. Si, même avec un disque SSD, vous avez vraiment besoin d’une carte RAID matérielle, utilisez-le avec des caches protégés en écriture (les Micron M500 / 550/600 bénéficient d’une protection partielle - pas vraiment suffisante mais c'est mieux que rien - tandis que les séries Intel DC et S subissent une perte de puissance totale. protection, et on peut en dire autant des SSD d’entreprise Samsung)
  5. Si vous avez besoin de RAID6 et que vous utiliserez des disques durs mécaniques normaux, envisagez d’acheter une carte RAID rapide dotée d’un cache WB de 512 Mo (ou plus). RAID6 est très pénalisé en termes de performances d’écriture, et un cache WB de taille appropriée peut au moins fournir un stockage intermédiaire rapide pour de petites écritures synchrones (par exemple: journal du système de fichiers).
  6. Si vous avez besoin de RAID6 avec disques durs mais que vous ne pouvez pas / ne voulez pas acheter une carte RAID matérielle, réfléchissez bien à la configuration de votre logiciel RAID. Par exemple, une solution possible avec Linux MD Raid consiste à utiliser deux baies: une petite baie RAID10 pour les journaux d'écriture de journal / bases de données et une baie RAID6 pour le stockage brut (en tant que serveur de fichiers). Par ailleurs, le logiciel RAID5 / 6 avec SSD est très rapide, vous n’avez donc probablement pas besoin d’une carte RAID pour une configuration entièrement SSD.
Shodanshok
la source
Merci beaucoup pour les excellentes explications, je ne savais pas que les cartes RAID désactivaient le cache sur les disques durs. Ce n'est pas le type de serveur qui garantit l'investissement de près de 800 $, je vais donc en apprendre un peu plus sur les configurations RAID logicielles et y aller sans doute.
ItsJustMe
2
Le PO parle d'un hyperviseur. RAID5 devrait être hors de question, et le cache en écriture deviendra un must.
ewwhite
1
En réalité, même en 2016, un logiciel RAID 5/6 à 6 disques écrit à <25 Mo / s, tandis qu'une carte RAID matérielle appropriée à partir de 2010 écrit à> 500 Mo / s. Cela concerne à la fois les espaces de stockage Intel RSTe et Windows. Je ne comprends tout simplement pas le goulot d'étranglement d'un processeur moderne.
Monstieur
1
Le problème avec le logiciel RAID 5/6 est que les écritures déclenchent souvent une lecture-modification-écriture, ce qui ralentit considérablement les disques. Un contrôleur RAID matériel compatible BBU peut fusionner plusieurs écritures dans un seul accès / transaction de disque, améliorant ainsi considérablement les performances.
Shodanshok
1
"[les lectures aléatoires] lorsqu'elles sont utilisées avec des disques SSD, elles excellent souvent" - Si le disque SSD n'est pas un disque SSD d'entreprise (généralement, cela signifie qu'il ne dispose pas d'un condensateur pour la protection contre les coupures de courant) et qu'il ne ment pas, alors même les disques SSD peuvent ont des IOPS extrêmement faibles pour des opérations comme séquentielles 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.
nh2
7

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.

ewwhite
la source
Par "les performances d'écriture vont être nul", vous voulez dire que ce sera à peu près le même que le RAID logiciel ou le RAID matériel sans cache? Ou existe-t-il une pénalité supplémentaire pour les performances d'écriture si la carte dédie le cache à la lecture?
ItsJustMe
Cela dépend de ce que vous faites. Si vous n'avez pas d'application intensive en écriture, l'impact sur les performances peut ne pas être un problème.
ewwhite
C'est un hôte Proxmox avec des machines virtuelles Windows utilisées pour l'hébergement de messagerie et Web. Il n'y a pas beaucoup d'utilisation de base de données, mais le service de messagerie a probablement beaucoup d'activité d'écriture. Actuellement, je me demande juste si avoir une carte cache en lecture seule en vaut la peine par rapport au logiciel RAID.
ItsJustMe
Utilisez un contrôleur RAID basé sur Flash pour la virtualisation.
ewwhite
1
Nous avons exécuté un serveur de messagerie cyrus avec environ 4 000 comptes utilisant un logiciel RAID. Tous les jours, les comptes actifs atteignaient entre 300 et 600. Les performances étaient nettement pires que celles de notre serveur de messagerie cyrus principal doté d’un RAID matériel et d’un BBU. Le cache du contrôleur BBU et RAID fournit une assurance des données, mais également des performances. En effet, une fois que les données arrivent sur le contrôleur, il peut indiquer au système d’exploitation que l’écriture est terminée. Sinon, le disque dur devra attendre que l’écriture soit terminée. Cela économise des cycles d'horloge importants. Déplacé vers un RAID matériel et résolu.
Labradort
7

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

hspaans
la source
3
Je ne suis pas d'accord. Beaucoup de gens sont satisfaits des contrôleurs RAID Dell, HP, IBM et haut de gamme. Mais honnêtement, la plupart des serveurs modernes de qualité disposent déjà de solutions RAID intégrées, de sorte que l’idée de choisir un contrôleur individuel est un peu dépassée. Les solutions logicielles RAID doivent également prendre en compte les charges de travail d'écriture à faible latence. ZFS a un ZIL, mais de nombreuses autres implémentations logicielles RAID manquent à cet égard.
ewwhite
2
Je différerais également avec votre dernier paragraphe, le RAID est la disponibilité pas la protection. La protection nécessite des sauvegardes, pas de RAID.
Rowan Hawkins
4

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.

Brent
la source
2

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".

poige
la source
1
Ceci est une autre raison d'éviter les cartes RAID matérielles sans un cache WB protégé adéquat. Une note sur Linux MD Raid: il n’est pas totalement à l’abri des failles d’écriture. Comme il n’est pas protégé contre les coupures de courant, en cas de coupure de courant soudaine, des données seront éventuellement perdues (pensez aux données en transit et / ou aux écritures partielles). Bien sûr, cela se produira même dans un scénario à disque unique, mais la nature de parité ou RAID5 / 6 l’amplifie. Dans le pire des cas, les métadonnées de système de fichiers critiques peuvent être corrompues, mais les systèmes de fichiers modernes sont suffisamment résilients pour permettre une récupération optimale. Certaines données peuvent cependant être perdues.
Shodanshok
@ Shodanshok, vous avez totalement tort. Pensez
poige
1
De nombreuses batteries, si elles sont maintenues en bon état, peuvent alimenter le cache WB pendant 24 à 96 heures, ce qui laisse beaucoup de temps pour rétablir le courant, sauf dans des situations vraiment extrêmes. De plus, le contrôleur moderne commuté NVRAM (lire: flash) mémoire de stockage à long terme, donc en cas de panne de courant une petite batterie / supercondensateur videra le contenu du cache dans une mémoire NV qui peut conserver des données pendant des mois ou des années dans d' autres mot, un contrôleur RAID BBU va éviter RAID5 / 6 trous dans (presque) toutes les circonstances.
Shodanshok
1
Vous avez dit qu'il est à l'abri d'écrire trou. Les développeurs disent que ce n'est pas le cas , bien qu'ils aient déclaré que cela ne devrait pas avoir beaucoup d'importance dans l'utilisation réelle.
Shodanshok
1
Désolé, mais vous avez écrit: "C’est la base qui permet de réclamer des unités de sauvegarde matérielle par pile de RAID matériels par opposition à l’absence d’un tel système pour les RAID logiciels" . C'est faux . Des cartes RAID matérielles appropriées apportent une protection supplémentaire , et je vous ai dit à plusieurs reprises qu'il s'agissait là de l'avis des mêmes développeurs LSR. Maintenant je vous pose une question: votre déclaration est bonne ou fausse? Comme c'est faux, veuillez éditer votre réponse ou un autre utilisateur peut être trompé par ce non-sens.
Shodanshok
0

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.

Le mec loufoque III
la source