Auteur de questions
10 disques en DAS (RAID 10/ RAID 5 ...)

Discussion générale
-
Bonjour à tous,
Je sais qu'il est généralement conseillé de séparer d'un coté les fichiers de log et de l'autre la base.
Je sais que la base temporaire a un rôle essentiel dans sql serveur.
Cependant je me pose la question de savoir dans le cas d'un système avec 10 disques en DAS, est-il plus pertinent de faire un gros RAID 10 qui est capable d'envoyer un gros volume IO en lecture comme en écriture ou
(comme c'est le cas actuellement) de privilégier
un raid 1 pour le système et la base temp
un raid 1 pour les log
et 2 Raid 5 de 3 disques chacun pour la base.Ma base fait environ 50Go je génère environ 1 giga de log par jour.
En faite le fond de ma question est : pourquoi dans les bonnes pratiques il est conseillé de faire plus de volumes moins performants plutôt que de faire un système fournissant beaucoup de performances de manière partagée entre les log la base temp et la base.
Merci à tous
J.D
- Type modifié Aurel BeraModerator lundi 25 mars 2013 14:44 Discussion
Toutes les réponses
-
Bonjour
Pour les questions de type « best practices » contactez le site dédiée :
http://www.microsoft.com/france/services/
Cordialement,
-
Bonjour
Votre RAID10 ne vous proposera guerre plus de 1500 IOPS. On est pas encore au niveau d'envoyer du lourd.
Pour répondre à votre question, la problématique se situe davanage sur la latence. Si votre RAID10 sur l'ensemble de votre enclosure est découpé en un ou N volumes, alors, logiquement un disque physique (au sens spindle) va stockers ET des données ET des journaux de transaction.
Donc, statistiquemnt, vous avez de bonnes chances, vu le nombre restreint de disques de "tomber" sur un même disque au mêm emoment pour vos données et votre journal.D'où une file d'attente some toute logique sur le disque, qui entrainera de la latence.
Pour faitre un parallèle, imaginez que votre baie DAS est un SAN. Avec les donnes d'un Exchange, d'un SQL Server, de serveurs de fichiers et autre services, là, cela vous parait évident que des accès concurrents vont devoir se partager les maigres ressrouces disques.
Est-ce que cela répond à votre question ?
Cdlt
Christophe
Christophe LAPORTE - Independent Consultant & Trainer - SQL Server MVP-MCM
-
Je suis d'accord avec Christophe, ce qu'il faut regarder c'est la latence. Cela dit, je pense que le concept de séparation vs agrégation est à évaluer. Je suis pour le fait d'aligner 30 disques pour mettre données + indexes + tempdb plutôt que de faire 3 volumes de 10 disques et de cloisonner, parce qu'on y gagne sur le lissage des performances. Le journal de transaction est un cas à part, mais il faut bien faire attention quand on parle de séparation entre données et journaux. Il a été démontré que si on ne place qu'un seul journal de transaction sur le volume séparé, alors on gagne parce les IO séquentielles sont isolées du reste, mais si on y place tous les journaux de transactions, du séquentiel avec du séquentiel ça peut être pire encore que de l'aléatoire avec du séquentiel (voir la présentation de Thomas Kejser ancien de sqlcat sur le sujet http://sqlbits.com/(S(fueva455qrdns245thsoiovo))/Sessions/Event5/Designing_I_O_systems_for_SQL_Server).
Bref, tout ça devrait se mesurer avant.
Et pour le RAID 5 il faut évaluer l'impact des écritures. Comment le contrôleur IO gère-t-il la chose (write-coalesce).
Je sais que c'est difficile de tester tout ça une fois que le projet est parti parce qu'on met dans 99% des cas la charrue avant les boeufs et qu'on pense stockage en pensant volumétrie, alors qu'on devrait penser stockage en termes de combien d'IOPS je veux tirer de mon système.
A+
David B.
-
Bonjour à tous merci pour vos retours.
J'ai besoin d'un peu plus de d'infos pour tout bien comprendre.Sur un RAID10 de 10 disques avec des block de 64k je parts du principe que si je fais 1 accès à un block alors la latence sera celle du disque sur lequel se trouve le bloc.
Si je fais 2 accès à 2 blocs, 2 possibilités soit les 2 sont sur le même disques soit les 2 sont sur 2 disques différents.
Cela me donne une formule de la forme latence Totale =(1+1/5)latence de 1 disque (en considérant que ma carte raid utilise toujours le même disque du raid1.
Ce raisonnement est -il juste ?
Dans mon cas, ma base est de taille assez réduite (60Go sur un serveur ayant 32Go de Ram). Je génère environ 3Go de logs par jour (sans compter la réorganisation des index).En prenant en compte vos précieux conseils concernant le problème des accès séquentiels cette configuration vous semble-t-elle intelligente ?
Raid 10 6 disques Log + système et base temp
Raid 5 4 disques baseou faut-il mieux
Raid 1 systeme + base temp
Raid 1 log2 x Raid 5 base
ou encore
Raid 10 4 disques système + base temp
Raid 10 4 disques logs
Raid 1 base
Encore merci
Cordialement
J.D -
Le gros de l'activité transactionnelle est sur une base ? Si c'est le cas , je ferais un RAID1 pour le système, un RAID 10 sur 6 disques pour les données +tempdb et un RAID 1 pour le journal de la base en question + éventuellement les backups, ou mettre les backups sur un share UNC.
David B.
-
-