Je construis un serveur SQL avec 48 Go de RAM, 1 processeur et 8 disques SSD SATA III (6 Go / s) (128 Go Crucial m4) et un contrôleur LSI MegaRAID (SAS 9265-8i). Je m'attends à ce que la charge de travail typique soit principalement lue. Il y aura des périodes d'activité d'écriture plus intense (synchronisation des données toutes les heures avec des fournisseurs de données tiers - sauvegardes nocturnes), mais je pense que le rapport de lecture / écriture typique est d'environ 90% de lectures / 10% d'écritures.
Option 1:
Disque logique C: - RAID 1 (2 disques physiques) - Disque
logique du système d'exploitation D: - RAID 10 (6 disques physiques) - Fichiers DB / journaux / tempdb / sauvegardes?
OU
Option 2:
Disque logique C: - RAID 1 (2 disques physiques) - Disque
logique OS D: - RAID 1 (2 disques physiques) - Fichiers Db Disque
logique E: - RAID 1 (2 disques physiques) - fichiers journaux / sauvegardes?
Disque logique F: - RAID 1 (2 disques physiques) - tempdb
OU
Option 3:
Autres suggestions?
Je pense que l'option 1 me donnerait de meilleures performances, car toute l'activité de la base de données serait répartie sur 3 disques (et reflétée sur les 3 autres de la matrice), bien que l'option 2 semble imiter la sagesse conventionnelle (qui semble s'appliquer davantage aux mécaniques lecteurs que SSD). Il semble que Stack Overflow soit parti avec l' option 1 .
Je suppose qu'avec les disques SSD, il est OK de tout mettre sur un seul lecteur logique car votre serveur est probablement plus contraint par le processeur que par les E / S à ce stade?
Une autre question que j'ai est de savoir où dois-je placer les sauvegardes nocturnes? Nous ne voulons pas que les sauvegardes ralentissent le reste du serveur SQL, et je suppose que l'écriture des sauvegardes au même emplacement que les journaux est une bonne pratique car le comportement de lecture / écriture dans ces deux cas est une écriture séquentielle.
la source
Réponses:
La sagesse conventionnelle sur le RAID ne s'applique pas bien aux SSD. Ils n'ont pas vraiment besoin de striping (RAID0). Ils sont sujets aux pannes de par leur conception, mais RAID-1 n'est généralement pas la bonne réponse pour les SSD pour deux raisons: a) est un gaspillage, réduit de moitié la capacité de la matrice SSD (et ils sont coûteux) et 2) les caractéristiques des pannes des SSD conduisent vers les deux disques dans le miroir pour échouer à des intervalles très proches (c.-à-d. défaillances corrélées) et ainsi rendre l'ensemble de la baie inutilisable. Voir RAID différentiel: repenser le RAID pour la fiabilité des SSD pour une discussion plus longue. Certains ont recommandé d'utiliser Raid-6 pour les SSD.
En outre, la sagesse conventionnelle de la disposition des fichiers SQL Server ne s'applique pas aux SSD. Je vous recommande de regarder SQL sur les SSD: Hot and Crazy Love et de parcourir les liens de référence dans cette réponse .
la source
L'approche standard consistant à séparer les modèles d'E / S aléatoires pour les données de la séquence des journaux ne s'applique tout simplement pas aux SSD, donc je choisirais votre option 1 avec des mises en garde:
La question de la séparation des journaux des données lorsque des disques SSD sont utilisés est une question de RPO (objectif de point de récupération) pour le système, plutôt que de performances. Si le RPO est défini en quelques minutes, utilisez une baie partagée et effectuez des sauvegardes de journal toutes les [RPO] minutes. Si le RPO est défini en quelques secondes, utilisez des tableaux séparés.
Pour être honnête, si le RPO était serré, je garderais les SSD pour la matrice de données et j'utiliserais une paire miroir de spinners fiables (d'entreprise) pour le journal.
la source
Vous devriez choisir l'option 2 comme suit:
En séparant vos données et vos index dans 2 fichiers de données différents qui sont ensuite stockés dans 2 lecteurs logiques physiques différents, vous gagneriez une énorme augmentation du disque io simplement parce que lorsque vous interrogez, vous auriez un disque en rotation pour vos données de table et un autre tourner pour votre index en même temps.
Laissez également tempdb séparé de vos sauvegardes, car il se passe également beaucoup de choses. Ne mélangez pas vos sauvegardes et votre fichier de données. même si les sauvegardes ne sont pas effectuées quotidiennement, lorsqu'elles se produisent, elles prennent un énorme coup sur votre E / S. en fonction de votre entreprise et de l'utilisation de votre base de données, certaines personnes ou BEAUCOUP de personnes peuvent se plaindre pendant la sauvegarde.
J'espère que cela t'aides
la source