![]() |
|||||||||||||||||||||||||||||||||||||||||||||||
|
Oracle et RAID Pourquoi ne pas utiliser du RAID5 dans un environnement Oracle ? C’est simple. Avant d’entrer dans des détails complexes, voici ce que mon expérience (dont le début date d’un bon bout de temps) dit :
Vous obtiendrez des gains des performances considérables si vous migrerez votre architecture disque du RAID5 vers RAID10, migration associée avec une bonne redistribution des fichiers sur les axes dont vous disposez. Le coût actuel des architectures RAID10 n’est plus si onéreux qu’il y a quelques années. De ce fait le document pondu il y a bien d’années (http://www.tafora.fr/dba/dispositiontbs.html) est de moins en moins obsolète.
Et surtout, mettez sur des disques stand-alone (même pas besoin que ça soit en RAID) les fichiers à écriture séquentielle (redo logs, archive de redo logs). Dans ce cas, multiplexez-les avec Oracle (ni par l’OS, ni par le Hardware).
On me dit TRES souvent : 'Oui, mais le RAID5 hardware est tellement rapide aujourd’hui . . .'. C’est vrai, mais réfléchissez au gain obtenu si la même architecture mirobolante ne serait pas en RAID5 mais en RAID10. Quoi qu’il advienne, RAID5 nécessite plus de boulot que le RAID10.
Depuis un moment, même Oracle privilégie l'architecture de type SAME (Stripe And Mirror Everything). Je dis 'même' parce que bien de DBAs avaient trouvé ceci avant qu’Oracle ne l’’officialise’.
Pour se faire une idée de la réalité RAID, jetez un coup d’œil ici et ici :
http://www.miracleas.com/BAARF/BAARF_members_sql.php
Mais c'est pratiquement aussi rapide . . .Oui, c'est pratiquement vrai. Et votre investissement est déjà dépensé pour cette architecture balaise qui vous protége de tout. De tout, dites-vous ? Vous a présenté le vendeur le cas de la restauration en cas de catastrophe ? Quel est le degré de lenteur d'un ensemble RAID lors du resilvering d'un disque explosé ? (N'oublions pas que votre base devrait pouvoir fonctionner pendant cette opération). 80% vous dit quelque chose ? Je parie que si vous avez assez d'argent pour acheter Oracle, d'acheter une bonne machine et que si vous tenez à votre applicatif, vu le prix par MegaOctet, vous ne devriez pas faire fine bouche devant quelques MegaOctets supplémentaires. Ceci est important, mais nous savons tous que tout le monde fait de sauvegardes, mais peu de gens font des restaurations pour valider leurs sauvegardes (qui devraient être conçues en fonction des paramètres de restauration souhaitée – dont le plus important est la durée).
Oracle et RAID (encore) Et n'oublions pas une chose: au lieu de garder un seul membre de redo log sur deux disques miroirs, privilégions deux membres de redo log multiplexés par Oracle sur deux disques stand alone. Oui, mais nous devrions avoir des dizaines de disques, direz-vous. Exact, mais vous serez surpris par les gains D R A M A T I Q U E S de performance obtenues dans ce cas. Vous trouverez dans vos tiroirs des disques de faible capacité qui feront parfaitement l'affaire.
AnnexeLe concept RAID, Redundant Array of of Independent (ou Inexpensive) Disks (ensemble redondant de disques indépendants (ou peu coûteux)), a été créé à l'université de BERKELEY pour fournir de grandes capacités logiques (volumes) de stockage, relativement bon marché et fiables.
Par rapport à une simple addition de disques sur une ou plusieurs interfaces de connexion (appelée JBOD – Just a Bundle Of Disks), l'association de disques en RAID permettra selon la technique utilisée d'améliorer soit les performances (temps d'accès), soit la sécurité (tolérance de panne), soit les deux.
Accessoirement, cette technique permet également d'accroître la capacité de stockage. L'association par exemple de six disques de 18 Go produira un disque virtuel de 90Go (compte tenu de la redondance de l'information), vu par le serveur comme un disque ordinaire.
En 1987 les chercheurs de Berkeley ont défini six niveaux de RAID, numérotés de 0 à 5. Chaque niveau correspond à la manière dont les données sont stockées sur les différents disques (un compromis entre coût, sécurité et vitesse). Ultérieurement, des nouvelles architectures hybrides ou propriétaires sont apparues.
Le principe est de répartir l'information sur plusieurs petits disques moins chers qu'un seul de grande capacité. Conceptuellement, un système RAID est composé de deux ou plusieurs disques qui constituent un volume logique, où les disques constituants travaillent à tour de rôles. En ayant une dizaine de disques de 4 Go, nous pouvons constituer un espace de stockage d'un peu moins de 40 Go (il faut déduire la place pour la parité). Cette solution est moins coûteuse qu'un disque de 40 Go et surtout plus fiable. Aujourd'hui le prix des disques diminue. Ce système peut être également utilisé dans le cadre de la tolérance aux pannes. Plusieurs niveaux RAID peuvent assurer la distribution des données, leur sécurité et parfois l'accélération d'accès aux données.
Trois conceptsQuand nous parlons RAID, trois concepts sont sous entendus: striping, mirroring et parity.
Striping Le striping est le résultat de la distribution des données sur une plage de disques (qui sont constitués en un volume logique). Ce volume peut avoir une capacité supérieure et des performances accrues en E/S à un seul disque. L’amélioration des accès est basée sur la distribution des données sur les n disques.
Mirroring Le mirroring est le résultat de l’écriture d’une même donnée dans un autre volume, membre du miroir. Ceci assure une protection des données et des performances accrues en lecture, ainsi qu’une réponse plus rapide pour les lectures, une donnée peut récupérée sur le membre le plus disponible.
Parité La parité est le concept qui assure la vérification des erreurs. Divers architectures RAID (niveaux) assurent des calculs de contrôle pendant la lecture et écriture. Les calculs pour la lecture sont nécessaires lors de la chute d’un ou plusieurs disques qui constituent le volume. Globalement, un ensemble de données est éparpillé sur n+1 disques sur le principe (grossier) d1 + d2 + d3=P. Si d3 tombe, la donnée correspondante peut être recalculé avec P-d1-d2.
Les types de RAIDL’architecture RAID peut être organisée au niveau software OS. Ce choix nécessite des ressources OS importantes mais pas dramatiques. La chute des performances ne devrait pas toucher d’une manière significative les performances du système qui utilise cette architecture (dans notre cas la base de données), vu que l’architecture de stockage est encapsulé dans un système hôte. La même architecture peut être implémenté au niveau hardware, assuré par le code implémenté dans les contrôleurs des disques.
RAID 0: concaténation En mode RAID 0 (Striping), la donnée à stocker est répartie sur différents disques synchronisés et aucune information de redondance n'est stockée. Il en résulte une vitesse de transfert importante (multiplication des axes), mais bien entendu, la moindre panne disque entraîne la perte irrémédiable de données ; en fait le RAID 0 n'est pas redondant, il ne sera utilisé que lorsqu'on recherchera des performances maximales en terme de temps d'accès. Le système permet d'effectuer une concaténation de disques sans de gestion d'erreurs. Avec deux disques de 4 Go, un disque virtuel de 8 Go peut être constitué. On peut aussi effectuer un découpage en lamelles ou striping. Ceci permet de gagner en temps d'accès à l'information si chaque disque possède son propre contrôleur. Le striping répartit les données sur les n disques utilisés dans cette méthode. La taille des lamelles est paramétrable.
RAID 1 : miroir Dans cette architecture, le but est de répliquer les données sur un disque miroir à chaque écriture (d'où une redondance utile en cas de panne disque). Le coût est bien évidemment élevé puisque la capacité installée est le double de la capacité utile.
Il peut y avoir plusieurs disques miroirs. On obtient alors deux ou plusieurs disques dont le contenu est strictement le même. Il n'y a pas de contrôle d'erreurs dans la méthode théorique mais rien n'empêche les cartes contrôleurs ou les systèmes d’exploitation de gérer le contrôle d'erreurs. Il peut y avoir un contrôleur miroir pour tous les disques. Si on étend la tolérance de pannes jusqu’au niveau du contrôleur du disque, il est possible d’utiliser la méthode du duplexing (dans le jargon informatique, on parle de "Mirroring" quand les deux disques sont sur le même canal SCSI, et de "Duplexing" quand on utilise deux canaux SCSI différents). Dans ce dernier cas, chaque disque est piloté par un contrôleur distinct. La prise en charge de cette technique n’est envisageable qu’au niveau du système d'exploitation. La gestion des miroirs entraîne quelques répercussions sur le débit des entrées/sorties :
RAID 2 En mode RAID 2 ("Hamming code parity"), les mots de données sont répartis par bits sur plusieurs disques, le système génère un code de correction d'erreur selon l'algorithme de Hamming et le stocke sur un ou plusieurs disques. Les performances sont bonnes mais le coût est élevé. De plus, la plupart des contrôleurs de disque intègrent aujourd'hui des algorithmes de correction d'erreur et de ce fait, cette technique n'est plus utilisée.
RAID 3 En mode RAID 3 ("Byte level parity"), la donnée est répartie ("Striping") par octets sur plusieurs disques. Le système gère et stocke la parité sur un seul disque. Les performances sont bonnes en lecture et en écriture et la panne d'un disque a peu d'influence sur les performances.
Ce système utilise n disques contenant des données et un disque de parité (pour le contrôle d'erreur et pour pouvoir reconstruire un disque défectueux). Le nombre de disques minimum pour cette solution est de trois:
De plus, on utilise la méthode d'entrelacement entre les disques en prenant l'octet comme unité d'entrelacement. Ceci se révèle très utile pour les applications qui ont besoins d'accéder aux données sous forme de flux continu, ce qui est le cas du traitement du son et des images animées (vidéo). Par contre, ce même entrelacement pénalise l'écriture.
RAID 4 Ce système est similaire au précédent si ce n’est que l'entrelacement est fait sur la base du secteur ou du bloc. Les calculs de parité et la gestion de leur emplacement sur le disque de parité sont simplifiés.
En mode RAID 4 ("Block level parity"), un bloc entier de données est stocké sur un seul disque et le système gère et stocke une parité de plusieurs blocs provenant de différents disques sur un seul disque de parité. Les taux de transfert sont très importants en lecture de gros fichiers mais ce mode est peu performant en écriture. La reconstruction de données en cas de panne d'un disque est difficile car la parité est calculée à partir des données de plusieurs disques.
RAID 5 Le disque de parité dans les systèmes RAID 3 et RAID 4 engendre un problème pour les performances des entrées/sorties. Il entraîne un étranglement au niveau des accès. Avec le RAID 5, ce problème disparaît. Les informations concernant la parité sont disposées et réparties sur l'ensemble des disques. Le point négatif de cette méthode est qu'elle peut constituer un frein à l'écriture puisque toute modification aboutit à la modification des informations de parité, et donc nécessite des accès supplémentaires. En conclusion un avantage cache un autre problème !
HDA HDB HDC HDD HDE +-----+------+------+-----+ I I I I I (BA0) (BB0) (BC0) (BD0) (P0 ) (BA1) (BB1) (BC1) (P1 ) (BE1) (BA2) (BB2) (P2 ) (BD2) (BE2) (BA3) ( P3) (BC3) (BD3) (BE3) ( P4) (BA4) (BC4) (BD4) (BE4) Les données 0,1,2,3,4 se trouvent dans les blocs A, B, C, D, sur les disques HDA, HDB, HDC, HDD, HDE et elles sont 'protégées' par un bloc de parité (P)
RAID 01 Les deux architectures suivantes sont semblables en essence.
Ce système utilise des stripes mirrorés.
RAID 10 Ce système utilise des miroirs stripés (c’est l’architecture SAME – stripe and mirror everything)
A suivre . . .Conclusion: Raid ou pas raid ? Du point de vue sécurité (physique des données), le choix de la disposition des fichiers sur un seul volume est largement inefficace. En prenant en considération le même hardware, l’ensemble RAID 0+1 est largement plus rapide q’un ensemble RAID-5. Historiquement, à l’époque ou les cartes RAID ainsi que les softwares qui implémentaient le RAID étaient très peu performantes, le meilleur choix pour le DBA était "Plein de petits disques".
Aujourd'hui, le prix de l'unité de stockage de masse est très bon marché et les combinaisons des disques en volumes sécurisés deviennent de plus en plus accessibles.
Depuis un moment déjà, Oracle préconise du point de vue hardware une architecture de type SAME (Stripe Anything, Mirror Everything). Pour simplifier, tout disque physique est mirroré, les fichiers sont en stripe sur les disques existants.
Nous pouvons obtenir des performances accrues lors de l'utilisation du striping OS, surtout lors des full table scans. Le mieux est de striper deux disques (gérés par deux contrôleurs). Utilisez de grands blocs OS (32k-64k). RAID-5 est pénalisant lors des mises à jour nombreuses. Notre avis est que RAID 0 ou bien RAID 0+1 détermine les meilleures performances dans le monde RAID.
Bibliographie Inra, l'éditeur de liens, Mai 1999
Stats
|
||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||