Si vous avez deux disques physiques:
RAID0: rapide mais sans redondance. Toute erreur de lecteur tue l'ensemble de la baie. Certaines personnes mettent du stockage temporaire sur RAID0 (c.-à-d. Tempdb sous MSSQL) mais je considérerais toujours cela dangereux car pendant que vous ne perdrez aucune donnée significative si le tableau tombe, vous aurez une panne de serveur jusqu'à ce qu'il soit réparé.
RAID1: optez pour cela si vous avez deux disques. Il n'y a aucun avantage en termes de performances d'écriture bien que vous puissiez voir une augmentation des performances de lecture avec un bon contrôleur. La caractéristique clé de RAID1 est de survivre à l'un des disques en train de mourir.
Si vous avez trois disques physiques:
Vos options sont RAID5, le RAID10 non standard à 3 disques (ou RAID1E comme les contrôleurs IBM s'y réfèrent) si pris en charge. Vous pouvez bien sûr utiliser RAID1 et conserver le disque supplémentaire comme pièce de rechange en cas de défaillance de l'un des autres, mais vous devez de toute façon conserver des pièces de rechange dans un environnement critique pour la mission, cela va donc de soi.
RAID5 offre plus d'espace que RAID10 (deux disques valent au lieu d'un et demi) mais a un problème potentiel de performances d'écriture car pour chaque bloc écrit, le contrôleur doit lire le bloc de parité, le mettre à jour et le réécrire. Ce problème de performances d'écriture peut être doublé pour les écritures de base de données car il y a au moins deux écritures pour chaque mise à jour: une dans le journal des transactions et une dans les zones de données réelles. Comme l'espace est bon marché de nos jours, je recommanderais un RAID10 à 3 disques s'il est pris en charge pour de meilleures performances d'écriture. Le RAID logiciel de Linux offre cela, comme le font de nombreux contrôleurs IBM (ils l'appellent RAID1E). Vous pouvez également le trouver sous d'autres noms car il n'est pas considéré comme un arrangement standard et n'a donc pas de nom standard.
Les deux R5 et R10 sur trois offrent la même redondance (n'importe quel lecteur peut tomber en panne à la fois et la matrice survivra) et des mesures de performances de lecture similaires (similaires à une matrice RAID0 à deux lecteurs).
Si vous avez quatre disques physiques:
Si vous créez une seule baie, il y a deux options (en ignorant les variantes "avec disque de rechange"): RAID6 et RAID10 "traditionnel" (un RAID0 de RAID1).
Les deux donnent le même espace (deux lecteurs de vos quatre). RAID6 offre une meilleure redondance car deux disques peuvent tomber en panne à un moment où, comme RAID10 ne peut survivre que quatre des six situations possibles avec deux disques. Les deux donnent des performances de lecture simialr mais RAID6 a un problème de performances d'écriture similaire à RAID5 (le même sur un bon contrôleur, bien qu'il puisse être plus lent que RAID5 sur un mauvais contrôleur ou avec un RAID logiciel selon le système d'exploitation et les capacités de contrôle des E / S. RAID10 est généralement préféré pour les bases de données pour des raisons de performances - si vous avez besoin de la redondance supplémentaire, vous pouvez utiliser six disques et avoir un RAID0 ou 2 RAID1 à 3 disques.
Une fois que vous avez quatre disques ou plus, les choses deviennent plus intéressantes, car vous pouvez avoir une paire distincte de baies RAID1. Cela peut offrir des avantages de performances significatifs avec les disques rotatifs en gardant vos magasins de données sur une baie et les journaux de transactions sur une autre - cela peut réduire considérablement les mouvements de tête dans certains cas et les temps de recherche dus à un accès "aléatoire" sont un véritable tueur de performances. Pour un entrepôt de données, en supposant que cela signifie qu'il y aura très peu d'écritures relativement parlant, la séparation des journaux de transactions des fichiers de données peut être d'un avantage plus limité, mais vous voudrez peut-être toujours envisager plusieurs tableaux et plutôt partitionner vos données dessus pour des performances de lecture potentiellement meilleures .
Si vous avez plus de quatre disques:
Vos options deviennent grandes ouvertes ici et cela dépend vraiment de vos données et de vos charges / modèles de mise à jour / lecture attendus. Par exemple, une fois que nos services fonctionnent sur des disques de 12 à 70 Go:
- 4x en RAID10 pour les zones système (OS, SQL Server (MSSQL dans notre cas), swap, tempdb).
- 4x en RAID10 pour les fichiers de données
- 4x en RAID10 pour les journaux de transactions
Tempdb est conservé sur la baie système. Nous pourrions le déplacer vers les deux autres baies et simplement exécuter la baie système en tant que 2 disques en RAID1 car la vitesse supplémentaire n'est pas très nécessaire pour les morceaux de système (car cela n'est vraiment important qu'au démarrage ou lors de l'échange et nous nous assurons qu'il y a assez de RAM pour qu'il n'ait jamais besoin d'être échangé), mais avec la façon dont nous payons le fournisseur d'hébergement pour cet ensemble de machines, il ne nous coûterait pas moins de supprimer les deux disques. Les sauvegardes vont également à la baie système, avant d'être copiées vers les emplacements de sauvegarde hors serveur, hors site et hors ligne.
Bien sûr, cela est sérieusement exagéré pour certaines bases de données (il ne serait pas utile d'exécuter un petit serveur de blog de cette façon!), Mais notre application principale fonctionne très bien avec cet arrangement.
Si vous avez six disques, vous pouvez envisager trois baies RAID1 ou deux baies RAID10 à trois disques.
Généralement
Il n'y a malheureusement pas de véritable "meilleure pratique" simple, car cela dépend beaucoup de la taille de votre système et des modèles d'utilisation. Les seules règles générales que je peux penser ou sont:
- évitez RAID5 et 6, sauf si vous savez que le problème de performances d'écriture ne vous affectera pas de manière significative
- avec quatre disques ou plus basés sur des disques en rotation, envisagez de répartir les éléments sur plusieurs baies pour réduire les mouvements de la tête (le plein avantage de plusieurs baies ne s'appliquera pas aux bons SSD car il n'y a pas de mouvements physiques de la tête à considérer, bien que vous puissiez voir une différence en fonction de la stratégie de combinaison d'écriture du contrôleur des SSD, etc.)
- testez, testez et testez à nouveau: il est toujours bon d'essayer de trouver du temps pour vérifier que votre arrangement choisi est bien optimal
RAID matériel ou logiciel?
Auparavant, les performances du RAID logiciel étaient inférieures à celles du RAID matériel pour RAID 5 en raison des calculs de parité et pour tous les arrangements en raison de la lenteur des interfaces entre les disques et le CPU. Avec les processeurs modernes, le problème de calcul de parité n'est pas vraiment un problème, mais si vous avez des disques très rapides, le RAID matériel peut toujours gagner si la vitesse totale des disques peut arriver n'importe oùproche (dans un ordre de grandeur, à une estimation) de la vitesse à laquelle la machine peut parler au contrôleur de disque. Si vous disposez d'une matrice RAID1 à quatre disques (c'est-à-dire quatre copies des mêmes données pour beaucoup de redondance) avec RAID logiciel, chaque opération d'écriture entraînera l'envoi par le système d'exploitation de quatre lots de données au contrôleur d'E / S, éventuellement séquentiellement - avec un matériel contrôleur, le système d'exploitation envoie simplement une demande d'écriture et le contrôleur envoie cela aux quatre disques, probablement en parallèle.
Un bon RAID matériel peut également offrir d'autres avantages: certains contrôleurs de haute qualité ont un cache d'écriture avec une batterie de secours afin que les écritures en attente ne soient pas perdues lors d'une coupure de courant, même en cas de panne de votre onduleur, par exemple.
Le RAID logiciel est évidemment moins cher et plus portable, vous n'êtes donc pas lié à un contrôleur particulier si vous devez déplacer les baies en raison d'une défaillance du contrôleur / de la machine.
Un RAID matériel bon marché combine généralement les inconvénients du RAID logiciel et matériel avec peu (ou aucun) des avantages des deux, il est donc préférable d'éviter.
J'ai tendance à utiliser le RAID logiciel sur nos serveurs de développement, de test et UAT et un bon RAID matériel pour les serveurs exécutant des services en direct client / public.