Aidez-moi à choisir une combinaison de niveaux RAID pour une instance SQL Server 2008

11

Je vais reconstruire un serveur IBM 3400 à partir de zéro. Ce serveur est dédié à une instance SQL Server 2008 exécutée sur Windows 2008 R2.

Je vais faire une nouvelle configuration RAID. J'ai 6 disques SCSI 73 Go à l'intérieur de la machine et un contrôleur IBM ServerRAID 8K. Quelle serait une bonne façon de définir les niveaux RAID? Dois-je avoir deux, trois ou un champ sur mon contrôleur?

J'envisage de faire l'une des solutions suivantes:

  1. Utilisez tout le disque et créez un pool RAID 10.
  2. Utilisez 4 disques pour un pool RAID 1e et utilisez-les pour stocker les données de la base de données et le système d'exploitation, et utilisez les 2 autres disques dans un pool RAID 0 et utilisez-les pour stocker les journaux de la base de données.
  3. Une autre combinaison.

Une taille de bande plus grande est-elle meilleure?

Ce serveur sera abonné à une base de données répliquée. Sa tâche principale sera la génération de rapports et la récupération de données, seul l'agent de réplication effectuant des écritures. La taille de la base de données est d'environ 90 Go.

adopilot
la source
utilisez-vous les termes RAID1E et RAID10 de manière interchangeable?
Jack dit d'essayer topanswers.xyz
aussi, 3x73 ~ 220 Go - dans quelle mesure prévoyez-vous que votre base de données de 90 Go augmente chaque année?
Jack dit d'essayer topanswers.xyz
@JackDouglas Cette base de données de 90 Go date de 2006 jusqu'à maintenant, je pense qu'elle peut grandir dans les deux prochaines années au maximum autour de 30%
adopilot
J'aime surapprovisionner le stockage autant que possible lors de la construction d'un serveur à partir de zéro. Avez-vous également un stockage de deuxième niveau (par exemple SATA)? Cela peut être très pratique pour une quantité décente de respiration, surtout lorsque vous vous retrouvez dans une situation de RD.
Jack dit d'essayer topanswers.xyz

Réponses:

6

Je vote pour l'option 1. Gardez à l'esprit que RAID 0 signifie "aucune protection" - vos journaux sont-ils importants? (oui ils le font).

Il a également l'avantage de la simplicité

Les documents SQL Server disent:

Pour un parallélisme d'E / S optimisé, utilisez une taille de bande de 64 Ko ou 256 Ko.

Mais il est généralement bon d'aller avec le contrôleur IMO par défaut

Jack dit d'essayer topanswers.xyz
la source
5

Remarques:

  • Les binaires OS + seront de 40 Go
  • 6 disques ne vous laisse pas beaucoup d'options
  • Où voulez-vous vos sauvegardes?
  • Laissez le contrôleur RAID choisir la taille de bande (dépend du niveau RAID). Ceci est une micro optimisation et vous verrez des données contradictoires
  • La vitesse d'écriture du fichier journal détermine votre débit
  • Vous devez autoriser l'espace libre = 1,2 fois la plus grande table à l'intérieur de votre MDF pour les reconstructions d'index
  • RAID 0 = idiot dans un serveur qui contient des données de n'importe quelle valeur

J'irais pour une matrice RAID 10

gbn
la source
4

Je choisirais soit deux volumes RAID1 avec trois miroirs chacun, soit un RAID10 avec répartition sur deux ensembles de trois miroirs.

Justification: deux miroirs, c'est trop peu, point final. Votre serveur ne pourra pas effectuer les vérifications de cohérence appropriées plus d'une fois par mois, il est donc très probable que vous ayez quelques blocs défectueux. Celles-ci n'ont pas d'importance tant que l'autre miroir est toujours intact, mais lorsqu'un disque tombe en panne, il est probable que vous ne pourrez pas récupérer de l'autre. Par conséquent, trois miroirs.

RAID6 est une mauvaise idée dans une configuration de base de données car les écritures ont tendance à être petites, ce qui les transforme en opérations de lecture-modification-écriture en arrière-plan.

Que deux volumes RAID1 ou un RAID10 vous conviennent le mieux dépend de votre application. S'il est probable que vous ayez besoin de tout l'espace, optez pour RAID10, sinon je suggérerais un volume pour le système et les index, et un pour les pages de données. Si vous optez pour deux volumes, vérifiez que votre contrôleur permet d'étendre un RAID1 à un RAID10 plus tard au cas où vous auriez besoin d'étendre.

Simon Richter
la source
+1 pour avoir mentionné le problème de la mise en miroir ne résout pas (du moins de lui-même). Il est possible de configurer le scrubbing pour qu'il ait lieu plus régulièrement sous Linux, est-ce la même chose pour Windows? Cependant, vous répétez le mythe selon lequel les index et les données devraient idéalement être séparés - il y a un argument pour garder les journaux séparés, mais les index et les données sont mieux regroupés (sur autant de broches que possible)
Jack dit: essayez topanswers.xyz
Je pense qu'il devrait être possible de configurer des vérifications plus fréquentes - mais les performances de la base de données diminuent généralement massivement, donc je préfère utiliser des disques supplémentaires et moins de vérifications.
Simon Richter
En général, je garde les index séparés afin de pouvoir utiliser différents comportements de cache et de lecture anticipée - une analyse complète de la table bénéficie généralement de la lecture anticipée, tandis que les analyses d'index le font moins souvent.
Simon Richter
Sur mon système Debian, / usr / share / mdadm / checkarray s'exécute avec le drapeau --idle par défaut, donc je ne m'attendrais pas à un impact notable sur les performances. Dans le cas des OP, cela sera géré par le contrôleur RAID et je suppose que cela le fera indépendamment du fait que vous ayez 2 ou 3 miroirs, de sorte que le hit (le cas échéant) sera là de toute façon.
Jack dit d'essayer topanswers.xyz
concernant les analyses d'index, bon point, mais je dirais que c'est de la micro-optimisation et non des conseils de réglage généraux :) Je vais demander dans le chat pour voir ce que les autres pensent - n'hésitez pas à participer ...
dit Jack essayez topanswers.xyz
3

Je suis d'accord avec Douglas. Un raid-10 commun est un bon début tant que vous ne manquez pas d'espace disque. Une taille de bande plus petite serait préférable pour l'accès DB. L'utilisation de différentes partitions vous permet de manquer d'espace sur une seule partition plus rapidement.

Le problème avec raid-0 n'est pas seulement que les données peuvent être extraites des sauvegardes ou supprimables, mais cela signifie également des temps d'arrêt à chaque fois que votre disque se casse. Votre machine est-elle en train de croquer des données là où les temps d'arrêt de quelques jours n'auront pas d'importance? Même sur la prise en charge de NBD, l'obtention d'un nouveau disque peut prendre environ six jours.

Antti Rytsölä
la source