2 votes

Quelle serait la configuration optimale du disque pour SQL Server 2008 R2 ?

Nous avons un nouveau serveur Dell R710 qui a été livré avec la configuration de stockage suivante :

8 disques SAS 146GB 10k 6Gbps
1 x Contrôleur intégré Perc H700 (2 x 4 disques - 2 ports supportant chacun 4 disques)

  1. Quelle serait la configuration optimale si nous ne recherchions que la performance ?

  2. Quelle serait la configuration optimale si nous recherchions la performance mais voulions la résilience des données.

  3. Comme au point 2 ci-dessus mais avec un disque de secours à chaud ?

Nous prévoyons d'utiliser Windows 2008 R2 et SQL Server 2008 R2.

L'optimisation de la capacité de stockage n'est pas une préoccupation majeure.

Après avoir parcouru Server Fault et d'autres ressources, mes premières réflexions ont été les suivantes :

2 x disques en RAID 1 pour l'OS
4 x disques en RAID 10 pour les fichiers de données
2 x disques en RAID 1 pour les journaux de transactions

J'ai également pensé à mettre la tempdb sur les disques du journal des transactions ou sur les disques du système d'exploitation ?

0 votes

Nous avons joué un peu avec la configuration de notre disque et nous avons constaté que cela ne fait pas une si grande différence que cela. La mise en cache de SQL est TRES bonne. Oh, une petite note... Nous avons constaté qu'avec plus de 8 processeurs, nous rencontrons de sérieux problèmes de latching/performance. Notre machine actuelle, qui fonctionne très bien avec 8 cœurs, devient inutilisable au-delà. Des requêtes de moins d'une seconde peuvent prendre plusieurs minutes, etc. Donc, juste un avertissement que vous aurez besoin de tester avec vos données, il n'y a pas une seule "meilleure" façon ...

0 votes

Le verrouillage peut être géré, en fonction des goulots d'étranglement spécifiques, par 1) l'ajout de groupes de fichiers supplémentaires (ce qui réduit la contention sur les structures d'allocation), 2) le partitionnement des données (en particulier avec les colonnes IDENTITY : hachage de l'identité et utilisation de celle-ci pour la fonction de partition, de sorte que les insertions soient distribuées), 3) le remplissage des lignes de sorte que moins de lignes puissent tenir sur une page.

1voto

sfonck Points 131

J'ai à peu près la même configuration - vous pouvez trouver des réponses ici : 1 lecteur logique vs 2 lecteurs logiques sur 1 contrôleur raid pour séparer les données des fichiers journaux ?

1voto

benphane Points 180

Je sais que c'est une vieille question mais elle est toujours d'actualité.

Tout d'abord, quelques remarques sur les performances. Comme vous le mentionnez, il y a trois "morceaux" : les fichiers de données, les fichiers journaux et tempdb.

1) Fichiers de données : généralement des entrées/sorties aléatoires. S'il s'agit d'une charge de travail lourde en lecture, RAID 5 est un bon choix. Si les écritures sont importantes, privilégiez le RAID 1+0.

2) fichiers journaux : généralement des écritures séquentielles. Le RAID 1+0 est optimal, mais probablement surdimensionné compte tenu de vos contraintes, sur lesquelles je reviendrai bientôt. Il est préférable de les séparer pour des raisons de performance et de sécurité( http://support.microsoft.com/kb/2033523/en-us )

3) tempdb : souvent un goulot d'étranglement important, et nécessite beaucoup de lectures/écritures aléatoires. N'a pas besoin d'être "sûr" car SQL le recrée au démarrage.

Une option, comme vous l'avez fait, est de mettre en place deux jeux de RAID 1+0. Les fichiers de données peuvent aller sur l'un, les fichiers journaux et le système d'exploitation peuvent aller sur l'autre. La question de savoir si tempdb est mieux placé sur le premier ou le second dépend de votre charge de travail. S'il s'agit d'une charge d'écriture importante, il faut le mettre avec les données (pour que les fichiers journaux ne soient pas engorgés), mais si les fichiers journaux ne sont pas un problème, il vaut mieux mettre tempdb avec eux.

C'est également une option sûre, car il faut que de nombreux disques tombent en panne pour que vous perdiez des données.

Une autre option serait le RAID 1 pour les fichiers journaux (2 disques). Ensuite, vous pouvez utiliser le RAID 1+0 / RAID 5 pour les fichiers de données (3-4 disques). Vous pouvez ensuite dédier les autres disques à tempdb. Vous n'avez pas besoin d'utiliser RAID 0, vous pouvez simplement créer plusieurs fichiers pour tempdb et en attribuer un à chaque disque.

Si vous voulez ajouter une réserve à chaud, vous êtes dans une situation délicate en raison du nombre de disques : Le RAID 1+0 nécessite un nombre pair. Notez que le RAID 5 présente un certain risque de perte de données lors de la reconstruction, car il s'agit d'un processus long et parce que vous devez calculer la parité.

EDITAR J'ai lu un peu plus, et le RAID 5 n'est plus vraiment recommandé - il n'est pas vraiment sûr à cause de la reconstruction. Le RAID 1+0 est vraiment la meilleure solution. Voir, par exemple : http://en.community.dell.com/dell-groups/dtcmedia/m/mediagallery/19861480/download.aspx (pp. 9-10 dans le PDF). Une (ou plusieurs) sources : http://www.reddit.com/r/sysadmin/comments/ydi6i/dell_raid_5_is_no_longer_recommended_for_any/ .

Notes universelles

  1. éviter que vos fichiers journaux ne soient fragmentés. Assurez-vous de leur taille raisonnablement avec un facteur d'auto-croissance important.
    http://www.sqlskills.com/blogs/kimberly/8-steps-to-better-transaction-log-throughput/

  2. assurez-vous que votre partitions sont alignées correctement.

Il existe deux corrélations qui, lorsqu'elles sont satisfaites, constituent une condition préalable à l'obtention de performances optimales en matière d'E/S sur disque. Les résultats des calculs suivants doivent aboutir à une valeur entière :

Partition_Offset ÷ Stripe_Unit_Size

Stripe_Unit_Size ÷ File_Allocation_Unit_Size
http://technet.microsoft.com/en-us/library/dd758814(v=sql.100).aspx

  1. si possible, fixez la taille de vos clusters à 64 Ko

0 votes

Considérations sur les pièces de rechange chaudes : smbitjournal.com/2012/07/hot-spare-or-a-hot-mess

0 votes

Merci pour cette réponse détaillée, je la lirai plus tard quand j'aurai plus de temps.

0voto

wgthom Points 234

Je pense que oui :

  1. Pour la performance uniquement : RAID 0 (cela serait vu comme un seul disque ayant un espace de stockage total de 1168GB ;

  2. Pour la performance, mais avec la résilience des données : RAID 5+0 (6 disques minimum requis), ou vous pouvez également opter pour une configuration RAID 1+0, en faisant 4 paires de RAID 1, et en faisant une matrice de 4x2 disques en RAID 0 ;

                                     RAID 0
    
     RAID 1           RAID 1                    RAID 1                 RAID 1 
    (2x146GB)        (2x146GB)                 (2x146GB)              (2x146GB)

Pour un espace de stockage total de 584 Go, cela sera considéré comme un seul disque en raison de la fonction de dépouillement RAID 0.

En 3, si vous préférez avoir un disque de rechange à chaud, alors le RAID 0+5 peut devenir pratique.

EDIT #1

Après avoir lu votre suggestion pour une configuration de 2-4-2 disques, je suppose que cela ne serait pas nécessaire. Je préférerais personnellement une configuration RAID 1+0 comme illustré ci-dessus. Je ne pense pas que le gain sera si important, puisque vous avez 8 disques de la même vitesse. Cela aurait été différent si vous aviez eu deux disques plus lents que les 6 autres, alors j'aurais envisagé d'utiliser ces deux-là pour l'OS. Mais dans la situation actuelle, je pense que le gain serait négligeable.

De plus, il est très négligeable que vos DBA ou programmeurs créent les bons index pour les bonnes données dans leur base de données. Avec quatre disques qui s'assemblent rapidement et une résilience assurée par le RAID 1, je pense que vous n'aurez pas de problème de cette manière.

J'espère que cela vous aidera ! =)

Cela vous aide-t-il ?

0 votes

C'est un plaisir ! Je suis content si j'ai aidé de toute façon. =)

0 votes

Nous avons opté pour une configuration 2 x RAID 10 (4 disques chacun).

0 votes

Je suis désolé, mais c'est très mal. 1) Le RAID 0 est très dangereux et cela doit être noté. La perte de n'importe quel lecteur perd tout et ce n'est guère une option viable. 2) Il est fortement recommandé de séparer les fichiers de données et les journaux de transactions ( support.microsoft.com/kb/2033523/fr-us ). La configuration de @Kev est à peu près optimale (en supposant que les fichiers journaux et le système d'exploitation sont partagés, par opposition aux fichiers journaux et aux fichiers de données partagés). L'indexation ne change pas l'importance d'une configuration d'E/S correcte.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X