Configuration RAID optimale pour le server SQL

Nous avons un backend de database SQL 2005 pour notre site Web, actuellement d'environ 10 Go. Il y a beaucoup plus de lectures que d'écritures, même si je n'ai pas les statistics exactes.

Nous mettons à jour notre server de database et je pensais à get 4 disques et à les installer dans deux baies RAID 1 – l'une pour les files de données et l'autre pour le operating system et les files journaux. Serait-ce la configuration optimale ou serait RAID 5 être meilleur pour les files de données? RAID 10 devient un peu cher et est probablement exagéré pour nous.

À ce stade, SQL Server devrait conserver la plus grande partie de la database en RAM (8 Go), mais il va augmenter, donc je ne veux pas me fier entièrement à cela.

Edit: nous voulons absolument de la redondance sur un server de production, donc RAID 0 est sorti. RAID 10 est sympa, mais peut-être un peu cher pour nous.

Votre concept d'utilisation de miroirs RAID 1 indépendants est la bonne stratégie.

Nous avons mis en place des scénarios similaires dans mon travail et ils fonctionnent très bien.

RAID 1

RAID 1 vous donne la vitesse de 1 disque pour l'écriture mais 2 disques pour la lecture.

Lorsque vous écrivez des données sur une masortingce RAID 1, vous devez écrire ces données sur les deux disques, afin de ne pas augmenter les performances, mais c'est là que vous bénéficiez de la security de vos données.

Lors de la lecture à partir d'une masortingce RAID 1, le controller lit les deux disques car ils ont les mêmes données.

RAID 5

Ceci est utile pour protéger de plus grandes quantités de données. Le coût de RAID 5 augmente beaucoup plus lentement que RAID 1 (ou RAID 0 + 1 une fois que vous avez des capacités supérieures à la taille des disques individuels) pour la même quantité de données.

Si vous voulez protéger 600 Go avec le RAID 5, vous pouvez le faire avec des disques 4×200 Go ou des disques 3×300 Go, ce qui nécessite 800 à 900 Go d'espace disque total. Le RAID 1 consisterait en disques de 2 x 600 Go nécessitant 1 200 Go d'espace acheté (avec des disques de 600 Go plus chers) ou en RAID 0 + 1 permettant d'utiliser des disques de capacité less coûteuse (4 x 300 Go ou 6 x 200 Go). espace acheté.

RAID 0 + 1

Offre des avantages similaires à ceux du RAID 1 qui prend un autre cran avec le ssortingping sur les disques. Je suppose que si vous êtes préoccupé par des lectures simultanées plus élevées, vous utiliserez également des multi-processeurs / multi-cœurs. Vous allez traiter plusieurs requêtes à la fois et le ssortingping ne va pas aider autant. Vous verrez un meilleur avantage sur un RAID 0 + 1 pour les applications uniques utilisant de gros files de données, tels que l'édition video.

Quand je faisais des searchs sur cette même question il y a un certain time pour un client, j'ai trouvé cet article très intéressant http://blogs.zdnet.com/Ou/?p=484 . Sur la deuxième page, il décrit le passage d'une masortingce RAID 0 + 1 à une masortingce RAID 1 indépendante, ce qui améliore considérablement les performances. C'était sur une échelle beaucoup plus grande (un SAN de 20 disques et 16 disques) mais les mêmes concepts. La capacité pour SQL Server à équilibrer datatables entre plusieurs volumes au lieu d'utiliser uniquement des bandes non informées basiques de RAID 0 + 1 est un concept génial.

Je passerais un peu de time à m'assurer que votre database est efficacement indexée; surveillez-le pour les parsings de table complètes, assurez-vous que les requêtes les plus fréquentes lisent le less de données possible; Je prendrais une database efficacement conçue sur une installation de disque lente au-dessus d'une database avec les index inadéquats sur les disques SSD.

Étant donné qu'il y a beaucoup plus de lectures que d'écritures, RAID 5 sera plus rapide pour vos files de données.

Si vous le pouvez, utilisez un tableau RAID 1 + 0 distinct pour les files du journal des transactions.

EDIT: vous aurez besoin d'au less 3 disques pour créer une masortingce RAID 5.

Sachez que la mesure de performance key sera le taux de search, pas le débit de données. En d'autres termes, une database typique liée au disque (telle que la vôtre peut se développer) sera limitée par le nombre d'ES par seconde que les disques peuvent supporter, plutôt que par le débit maximum qu'ils peuvent supporter pour les lectures séquentielles.

Cela signifie que si vous vous requestz comment utiliser 4 disques (par exemple), deux paires RAID1 devraient vous donner de meilleures performances qu'une seule stack RAID5 à 4 disques. Bien sûr, vous n'obtiendrez pas autant de stockage utilisable sur les deux paires RAID1.

Compte tenu de la petite taille de la database, j'utiliserais quatre disques SAS SFF 2,5 "15krpm, configurés comme deux miroirs RAID 1. Je les utiliserais comme un controller SAS Adaptec 5805 PCI-e x 8. Les données sur un tableau et les journaux sur un autre pour la security Bar mappage de memory toute la database, un très grand / cher SAN ou l'utilisation de SSD Je suis assez convaincu que ce sera la configuration la plus rapide pour l'argent.

J'espère que cela t'aides.

Deux choses,

La théorie est que RAID 1 vous donne deux lecteurs pour une lecture, mais ne pensez pas que cela équivaut à deux fois la performance. En fait, ce n'est pas le cas, la lecture séquentielle finit par être exactement la même que celle d'un lecteur. Surprenant, mais vrai … faire des tests du monde réel, ne countz pas sur la théorie.

Cela dit, je voudrais aller avec deux RAID 1 … mais pas comme vous l'avez dit, l'un pour le operating system, et l'autre pour datatables. Je voudrais avoir une petite partition de operating system sur l'un d'entre eux, mais certainement donner les deux raids au server SQL pour datatables. Donnez à SQL Server tous les sets possibles.

SQL Server peut ssortingpe à travers les paires, vous ne voulez absolument pas aller avec 0 + 1 malgré ce que quelqu'un ici dit. Ils regardent à nouveau des benchmarks théoriques, ne include pas que sql server peut rayer toutes ses données sur les disques, et peuvent le faire de manière optimisée.

Raid 1 est juste pour la redondance des données … autre que cela, donnez autant que vous le pouvez au server SQL, et laissez-le faire son truc … c'est très bon à ce qu'il fait.

Vous avez un 0 + 1 et le split en deux raid 1 …. faire des tests du monde réel, vous serez surpris de ce qui est le plus rapide pour le travail du server SQL.

RAID 5 est bon si vous utilisez un controller matériel avec une quantité décente de RAM de memory cache avec batterie. Sélectionnez une taille de bloc et configurez le DB de sorte que la taille de la bande (taille des blocs de données *) soit égale à la taille d'écriture de la database. Assurez-vous que votre partition de données [est alignée / est un multiple de] la taille de la bande.

Sinon, RAID 1 + 0 est toujours un bon choix pour les servers DB.

Je recommand également d'établir un set de valeurs de base qui vous permet à la fois de faire des prédictions plus fondées que de simplement mettre votre doigt en l'air (ou requestr StackOverflow, semble vaguement et curieusement similaire à ces deux concepts).

Avec certaines valeurs de base, vous pouvez également mesurer l'efficacité de vos changements et être une bonne base pour les mises à jour futures …

(Si vous ne le savez pas, prenez de la littérature (ou de la wikipedia) sur l'ingénierie de la performance, c'est tout un pan de trucs qui traite de ce type de problèmes).

BTW, où je travaille, ils ont un san haut de gamme, qui fait une tablecan dans environ 2 minutes. J'ai cassé les disques en simples sets de raid 1, et laissez le server sql manipuler le ssortingping … pas le san. 2 minutes sont tombées à 45 secondes.

il y a d'autres articles sur le net à ce sujet … c'est très difficile d'get des «vrais croyants» de raid à accepter ceci, c'est pourquoi je suis si emphatique, à propos de ce point.

Je préfère le raid 10 que j'ai déjà configuré sur mon server linux dell r210-II. Une performance incroyable …