Question Logiciel vs performances RAID matérielles et utilisation du cache


J'ai beaucoup lu sur les contrôleurs / configurations RAID, et l'un des problèmes récurrents 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'une BBU n'est pas une priorité?


62
2018-04-24 11:13


origine


Quelque chose que j'ai remarqué qui favorise HW Raid: D'après mon expérience, si vous exécutez SW Raid et que le système effectue autre chose qu'un arrêt complet, vous bloquez le module RAID et devez le reconstruire. HW Raid ne fait pas la moindre faute s'il n'écrivait pas lorsque le système est tombé en panne. - Loren Pechtel


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.

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, etc.).

Toutefois, avec les performances sans cesse croissantes du processeur, cet avantage a pratiquement disparu: même le processeur ancien de mon ordinateur portable (Core i5 M 520, génération Westmere) offre des performances XOR de plus de 4 Go / s et des performances de syndrome RAID-6 supérieures à 3 Go / s. sur un noyau d'exécution unique.

L’avantage actuel du RAID matériel 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 très faible latence 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 seulement d'un cache, ils désactivent également le cache DRAM privé du disque, entraînant des performances plus lentes que 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 faites pas, jamais, jamais acheter 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 SSD avoir besoin 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 microprogramme (par exemple: sur un DELL S6 / i avec 256 Mo de cache WB et cache du disque activé, J'ai eu non pertes au cours d'essais multiples planifiés de perte de puissance), ce qui donne une incertitude et une grande inquiétude.

Les logiciels Open Source RAID, quant à eux, 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 qu’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 sûrs 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'ils sont utilisés avec des disques SSD, ils excellent souvent et donnent des résultats encore plus élevés que ceux pouvant être obtenus avec des cartes RAID matérielles.

Considérez également que les RAID logiciels ne sont pas tous créés égaux. Les logiciels RAID Windows ont 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 correctement configuré, il peut vous donner très pauvres IOP; la mise en miroir + entrelacement, de l’autre côté, donne de très bons résultats. 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, faites ne pas acheter un contrôleur RAID sans cache WB
  3. Si vous prévoyez d'utiliser un disque SSD, le logiciel RAID est préférable. Mon meilleur choix est Linux MD Raid. Si vous avez besoin des fonctionnalités avancées de ZFS, utilisez ZRAID, mais réfléchissez bien à votre configuration vdev!
  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 Samsung de l’entreprise)
  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 de 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 100% SSD.

127
2018-04-24 13:23



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
@ItsJustMe: certaines applications désactivent également la mise en cache d'écriture sur disque, si le lecteur prend en charge l'accès forcé aux unités. Microsoft Active Directory, Exchange me viennent à l’esprit. - Greg Askew
Le PO parle d'un hyperviseur. RAID5 devrait être hors de question, et le cache en écriture deviendra un must. - ewwhite
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 les espaces de stockage Intel RSTe et Windows. Je ne comprends tout simplement pas le goulot d'étranglement d'un processeur moderne. - Monstieur
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 sur disque, ce qui améliore considérablement les performances. - shodanshok


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% lis cache et 0% écrire cache supprime le besoin de protection BBU. Votre performance d'écriture va juste sucer.

Je ne peux pas répondre à votre question sur le logiciel RAID car cela dépend. Linux MD RAID est différent de Windows Software RAID, qui est différent de quelque chose comme ZFS. Des solutions comme ZFS pouvez fonctionnent mieux que le matériel, car ils exploitent la RAM et les ressources du processeur du serveur.


6
2018-04-24 11:20



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
Il s’agit d’un hôte Proxmox avec des machines virtuelles Windows utilisées pour l’hébergement courrier 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
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


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 rechange 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 transport 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.


6
2018-04-24 12:24



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. L’idée d’acheter 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
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


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 et 2 contrôleurs RAID LSI 9361-8i avec des systèmes basés 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 coeurs 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 logiciel RAID 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. J'attribue cela au contrôle de cache optimisé par RAID matériel.

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.


3
2017-07-29 12:54





La plupart des écrivains ici ignorent tout simplement "trou d'écriture". C’est la base qui permet de réclamer des unités de sauvegarde matérielle de secours RAID complètes par opposition à un tel système pour les RAID logiciels. Ainsi, par exemple, l’implémentation du RAID logiciel Linux prend en charge les bitmaps des opérations d’écriture ou effectue une" parité "complète. - calcul en cas d'arrêt non propre. ZFS s'efforce toujours d'écrire des bandes complètes - pour éviter cette incohérence ou tout report de sa nouvelle vérification. Ainsi, en résumé, un RAID logiciel suffisamment intelligent est aujourd'hui assez bon pour être utilisé à la place. de "qui sait ce qu'il y a à l'intérieur" dit "RAID matériel".

En ce qui concerne la partie cache de la question, peu importe, car le cache en écriture du système d'exploitation lui-même peut être beaucoup plus volumineux que l'adaptateur "matériel".


1
2018-04-24 17:17



C'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 la parité ou RAID5 / 6 l’amplifie. Dans le pire des cas, les métadonnées de système de fichiers critiques peuvent être corrompues. Toutefois, 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. Pense - poige
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 vraiment situations extrêmes. De plus, le contrôleur moderne a basculé vers la mémoire NVRAM (lecture: flash) comme stockage à long terme. Ainsi, en cas de panne de courant, une petite batterie / supercap va vider le contenu du cache dans une mémoire NV pouvant conserver des données. pendant des mois ou des années En d'autres termes, un contrôleur RAID BBU volonté éviter les trous RAID5 / 6 dans (presque) toutes les circonstances. - shodanshok
Vous avez dit qu'il est à l'abri d'écrire trou. Les développeurs disent que ce n'est pas, bien qu'ils aient dit que cela ne devrait pas avoir beaucoup d'importance dans les conditions réelles d'utilisation. - shodanshok
Désolé mais vous a écrit: "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". C'est faux. Les cartes RAID matérielles appropriées donnent ajoutée protection, et je vous ai dit plusieurs fois que c’était l’opinion des mêmes développeurs de LSR. Maintenant je vous pose une question: votre déclaration est bonne ou fausse? Comme c'est faux, veuillez modifier votre réponse ou un autre utilisateur peut être trompé par ce non-sens. - shodanshok


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. Alors parfois, vous devrez peut-être acheter un matériel pour exécuter ESXi ... Sauf si vous utilisez des connexions SATA.


-1
2018-02-22 18:55