Un seul grand RAID 10 – Une nouvelle norme pour le stockage serveur
À la fin des années 1990, la règle empirique habituelle pour construire un nouveau serveur consistait à placer le système d'exploitation sur sa propre petite grappe RAID 1 et à séparer les applications et les données dans une grappe RAID 5 distincte. Cela se faisait pour plusieurs raisons, dont beaucoup nous ont échappé, perdues dans les sables du temps. Les principaux facteurs déterminants étaient que la capacité de stockage coûtait extrêmement cher, que les disques étaient petits, que les systèmes de fichiers se corrompaient régulièrement et que les disques durs physiques tombaient en panne à un taux très élevé par rapport aux autres types de défaillances. Les gens étaient animés par la nécessité de se prémunir contre les pannes physiques des disques durs, de se protéger contre la corruption des systèmes de fichiers et d'acquérir une capacité suffisante pour répondre à leurs besoins.
Aujourd'hui, le paysage du stockage a changé. Les systèmes de fichiers sont incroyablement robustes et la corruption provenant du système de fichiers lui-même est pratiquement inconnue et, grâce à des technologies telles que la journalisation, peut presque toujours être corrigée rapidement et efficacement, protégeant les utilisateurs finaux contre la perte de données. Presque plus personne ne se soucie aujourd'hui de la corruption des systèmes de fichiers.
Les systèmes de fichiers modernes sont également capables de gérer une capacité bien supérieure à ce qu'ils pouvaient auparavant. À la fin des années 1990 et au début des années 2000, il n'était pas rare de pouvoir facilement créer une grappe de disques plus grande que ce qu'un seul système de fichiers pouvait gérer. Aujourd'hui, ce n'est raisonnablement plus le cas, car tous les systèmes de fichiers courants gèrent au moins plusieurs téraoctets et souvent des pétaoctets, des exaoctets, voire davantage de données.
Les disques durs sont bien plus fiables qu'ils ne l'étaient à la fin des années 1990. Les taux de défaillance d'un disque entier sont très faibles, même pour les disques les moins onéreux. Si faibles, en fait, que les défaillances de grappes (la perte de données dans l'ensemble de la grappe RAID) concernent principalement les grappes défaillantes, plutôt que la panne des disques durs. Nous ne remplaçons plus les disques durs à tout va. Il n'est pas rare que de grandes grappes fonctionnent durant toute leur durée de vie sans perdre un seul disque.
Les capacités ont augmenté de façon spectaculaire. Au lieu de disques durs de 4,3 Go, nous installons des disques de 3 To. Près de mille fois plus de capacité sur un seul axe par rapport à il y a moins de quinze ans.
Ces facteurs se conjuguent pour créer un besoin d'approche radicalement différente de la conception du stockage serveur et un changement de la « règle empirique » quant au point de départ lors de la conception du stockage.
L'ancienne approche peut s'écrire RAID 1 + RAID 5. L'espace RAID 1 était utilisé pour le système d'exploitation tandis que l'espace RAID 5, vraisemblablement bien plus grand, était utilisé pour les données et les applications. Cette conception séparait les deux préoccupations de stockage en consacrant un effort maximal à la protection du système d'exploitation (très difficile à récupérer en cas de sinistre et dont dépendait l'accessibilité des données) sur un RAID 1 hautement fiable. Le RAID 5, moins coûteux mais quelque peu plus risqué, était généralement choisi pour les données, car le coût de stockage des données sur RAID 1 était trop élevé dans la plupart des cas. C'était un compromis qui avait du sens à l'époque.
Aujourd'hui, avec nos préoccupations très différentes, une nouvelle approche s'impose, et cette nouvelle approche est connue sous le nom de « Un seul grand RAID 10 » – c'est-à-dire une seule grande grappe RAID 10 dans laquelle le système d'exploitation, les applications et les données sont tous stockés ensemble. Bien sûr, ce n'est qu'une formule commode ; dans un système sans besoins de performance ou de capacité dépassant ceux d'un seul disque, nous dirions « Un seul grand RAID 1 », mais beaucoup de gens incluent le RAID 1 dans le groupe RAID 10, il est donc simplement plus facile d'employer la première formule.
Pour être encore plus commode, nous abrégeons cela en OBR10.
Parce que le coût du stockage a considérablement baissé et qu'au lieu d'être une denrée rare il est généralement abondant aujourd'hui, parce que les systèmes de fichiers sont incroyablement fiables, parce que le RAID 1 et le RAID 10 partagent les mêmes caractéristiques de performance et parce que les défaillances de grappes déclenchées par autre chose qu'une panne de disque sont passées du bruit de fond à la cause principale de perte de données, le passage au RAID 10 et l'élimination du fractionnement des grappes sont devenus la nouvelle approche standard.
Avec le RAID 10, nous disposons désormais, pour l'ensemble de nos données, du stockage hautement disponible et résilient autrefois réservé au seul système d'exploitation. Nous bénéficions de l'avantage des performances du RAID en miroir, auquel s'ajoute l'avantage d'axes supplémentaires pour l'ensemble de nos données. Nous obtenons une meilleure utilisation de la capacité des disques et des performances accrues grâce à cette meilleure utilisation.
Même le fractionnement traditionnel des fichiers journaux, habituellement réalisé avec les bases de données (la fameuse approche RAID 1 + RAID 5 + RAID 1), n'est plus nécessaire, car le RAID 10 conserve des caractéristiques de performance optimales pour l'ensemble des données. Avec le RAID 10, nous éliminons presque tous les facteurs qui nous poussaient autrefois à fractionner les grappes.
Le seul facteur significatif qui n'a pas été mentionné, et pour lequel les grappes fractionnées étaient traditionnellement considérées comme avantageuses, est la contention d'accès – la nécessité pour différents processus d'accéder simultanément à différentes parties du disque, ce qui fait que la tête de lecture se déplace selon un schéma loin d'être idéal, réduisant les performances du disque. La contention était un problème majeur à la fin des années 1990, lorsque l'ancienne règle empirique a été élaborée.
Aujourd'hui, la contention des disques existe toujours mais a été fortement atténuée par l'utilisation de grands caches RAID. À la fin des années 90, les caches de disque faisaient quelques mégaoctets tout au plus et étaient souvent inexistants. Aujourd'hui, 256 Mo constituent un cache minuscule et les serveurs moyens sont déployés avec 1 à 2 Go de cache rien que sur la carte RAID. Certains systèmes commencent à intégrer des caches supplémentaires à base de disques SSD pour ajouter un cache secondaire au-delà du cache mémoire du contrôleur. Ceux-ci peuvent facilement ajouter des centaines de gigaoctets de cache extrêmement rapide, capable d'absorber presque n'importe quelle opération sur les axes sans avoir à se soucier de la contention. Le problème de la contention a donc été résolu par d'autres moyens au fil des ans mais, comme d'autres évolutions technologiques, il nous a effectivement libérés des préoccupations traditionnelles qui nous obligeaient à fractionner les grappes.
Comme pour la contention des grappes, une autre raison, bien moins courante, de fractionner les grappes à la fin des années 1990 était d'améliorer les performances du bus de communication en raison des limites des technologies SCSI et ATA de l'époque. Celles-ci ont elles aussi été éliminées avec le passage aux mécanismes de communication série, SAS et SATA, dans les grappes modernes. Nous ne sommes plus limités à la capacité d'un seul bus pour chaque grappe et pouvons croître bien davantage avec une bien plus grande flexibilité qu'auparavant. La contention de bus a été quasiment éliminée.
S'il est nécessaire de réserver de l'espace à des fins de protection, comme la croissance des fichiers journaux, cela peut être réalisé par partitionnement plutôt que par fractionnement physique de la grappe. En général, vous voudrez minimiser le partitionnement, car il augmente la surcharge et réduit la capacité des disques à s'auto-optimiser, mais il existe des cas où c'est la meilleure approche. Cela n'exige cependant pas que le stockage physique sous-jacent soit fractionné comme il l'était traditionnellement. Mieux encore que le partitionnement, lorsqu'elle est disponible, la gestion par volumes logiques permet des séparations de type partition sans les limites des partitions.
En fin de compte, la nouvelle règle empirique pour le stockage serveur est donc « Un seul grand RAID 10 ». Plus de RAID 5, plus de fractionnement de grappes. Il s'agit de fiabilité, de performance, de facilité de gestion et d'une rentabilité raisonnable. Comme toutes les règles empiriques, celle-ci ne s'applique pas à chaque cas particulier, mais elle s'applique bien plus largement que l'ancienne norme ne l'a jamais fait. Le RAID 1 + RAID 5, en tant que norme, a toujours été une tentative de « faire avec » quelque chose d'indésirable et de tirer le meilleur parti d'une mauvaise situation. OBR10 n'est pas ainsi. La nouvelle norme est une norme désirée – c'est ainsi que nous voulons réellement fonctionner, et non quelque chose avec lequel nous serions « coincés ».
Lors de la conception du stockage d'un nouveau serveur, commencez par OBR10 et ne vous en écartez que lorsqu'il ne répond pas spécifiquement à vos besoins technologiques. Vous ne devriez jamais avoir à justifier l'utilisation d'OBR10, mais seulement à justifier de ne pas l'utiliser.
