Bases de données transactionnelles
RAID-5 est relativement lent à écrire car le contrôleur doit charger suffisamment de données pour recalculer la parité lors d'une écriture. Les opérations d'écriture entraîneront au moins quatre opérations sur disque:
Lecture dans le bloc de parité
Lecture dans l'ancien bloc (en supposant qu'il n'est pas déjà dans le cache) pour XOR la valeur avec le bloc de parité.
Ecriture du nouveau bloc de parité (ancien bloc de parité XOR ancien bloc de données XOR nouveau bloc de données)
Écriture du nouveau bloc de données.
Si le système n'utilise pas la mise en cache en écriture différée, cela signifie que toutes ces opérations sont sur le chemin critique pour l'achèvement des E / S. C'est souvent le cas avec les écritures de base de données - en fait, Microsoft (par exemple) a un programme de certification pour les équipements SAN à utiliser avec SQL Server qui oblige les fournisseurs à garantir ce comportement. Parfois, les équipements RAID-5 plus anciens n'utilisaient pas cette optimisation et devaient recalculer la parité de toute la bande.
RAID-10 possède un miroir pour chaque disque et n'a pas besoin de lire des données supplémentaires pour calculer la parité. Cela signifie que les écritures nécessitent beaucoup moins d'E / S physiques.
Le RAID-50 se situe quelque part au milieu, avec le volume divisé en plusieurs volumes RAID-5, qui sont à leur tour entrelacés. Sur un RAID-50 constitué de groupes répartis dans un schéma 3 + 1, une écriture génère au plus trois demandes d'E / S disque supplémentaires. Si vous vous sentez si enclin, vous pouvez voir RAID-5 et RAID-10 comme des cas particuliers de RAID-50. RAID-50 est principalement utilisé pour fournir de gros volumes sur de nombreux disques physiques
Il existe également d'autres schémas de parité tels que RAID-6 (un schéma de parité avec deux disques redondants par jeu). la reconstruction est assez importante. RAID-6 atténue ce risque en disposant d'un deuxième disque de parité, nécessitant trois pannes de disque pour provoquer une perte de données. Une astuce similaire aux schémas RAID-50 peut être utilisée pour créer des matrices RAID-60.
Enfin, une seule paire en miroir (connue sous le nom de RAID-1) peut fournir une redondance et des performances suffisantes pour certaines tâches. En particulier, vous constaterez probablement que RAID-1 vous donne un débit suffisant pour un grand nombre de trafic de journaux de base de données. Plus d'informations ci-dessous.
Si vous avez une charge de travail importante en écriture, vous obtiendrez probablement un gain de performances à partir d'un volume RAID-10. Cela peut être une victoire car vous pouvez probablement obtenir votre débit requis à partir d'un plus petit nombre de disques physiques, en supposant que les disques ont suffisamment d'espace). Certains éléments tels que les journaux ou les zones temporaires sur un serveur de base de données doivent se trouver sur des volumes RAID-1 ou RAID-10, car ils obtiennent beaucoup de trafic d'écriture.
Journaux
Les volumes de journaux sont caractérisés par un modèle d'accès aux données principalement séquentiel, et sont essentiellement un tampon en anneau composé de commandes le long de la ligne `` écrire ces données dans ce bloc ''. par la fonction de lecture du journal. Une seule paire en miroir gérera en fait un volume important de trafic de journaux.
Systèmes et serveurs de fichiers lourds en lecture
Sur un système lourd en lecture tel qu'un entrepôt de données, vous souhaiterez peut-être utiliser un ou plusieurs volumes RAID-5. Sur un serveur de fichiers, les accès au disque se feront en grande partie sur la base d'un fichier entier, donc les écritures écriront probablement la plupart des blocs qui composent le bloc de parité de toute façon. Dans ce cas, la pénalité de performance pour RAID-5 sera plus légère.
Dans le passé, les économies de coûts sur disque pouvaient être importantes, mais il est moins probable que ce soit un problème maintenant.
Mise en cache en écriture différée et RAID-5
Sur un SAN ou un contrôleur RAID interne avec un cache sauvegardé par batterie, vous pouvez activer la mise en cache de réécriture. Cela met en cache les écritures et renvoie le contrôle à l'application. L'E / S est signalée par le contrôleur comme terminée. Cependant, il n'écrit pas nécessairement les données sur le disque immédiatement. Cette fonction permet d'optimiser considérablement les opérations de lecture / écriture de parité RAID-5 et peut atténuer la pénalité des performances d'écriture pour les volumes RAID-5x.
Cependant, cela comporte toujours un petit risque de problèmes d'intégrité des données. Le système hôte a été informé que cette écriture était terminée alors que ce n'était pas le cas. Il est possible qu'une défaillance matérielle crée des incohérences de données entre (par exemple) le journal et les volumes de données sur un serveur de base de données. Pour cette raison, la mise en cache en écriture différée n'est pas recommandée pour les systèmes transactionnels, bien qu'elle puisse être un gain de performances pour quelque chose comme un processus ETL.
Sommaire
L' espace disque est si bon marché de nos jours que les systèmes transactionnels devraient probablement utiliser RAID-1 ou RAID-10 pour les volumes de journaux et RAID-10 pour les volumes de données. La taille du disque physique est probablement beaucoup plus grande que la base de données et RAID-10 permettra un débit d'écriture plus important pour le même nombre de disques, ce qui pourrait réduire le nombre de volumes de disque nécessaires pour prendre en charge le système.
Sur quelque chose comme un entrepôt de données, vous pouvez toujours manger de l'espace avec de grandes tables de faits fortement indexées afin que vous puissiez obtenir un petit prix avec des volumes de données RAID-5 ou RAID-50. Cependant, les journaux et tempdb doivent toujours être placés sur un volume RAID-10 car ils nécessiteront probablement beaucoup de travail pendant le traitement ETL. Cependant, les économies de coûts sur le disque sont probablement assez faibles.