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
-
é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/
-
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
- si possible, fixez la taille de vos clusters à 64 Ko
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.