Comparaison des différents types de RAID
Aller à la navigation
Aller à la recherche
RAID 0
- Stripping : les données sont écrites aléatoirement sur l'un des disques de l'array
- Aucune redondance de donnée donc aucune tolérance à la panne. La défaillance d'un disque entrain
- Nombre de disque minimum : 2
- Bonne performance en lecture et écriture (meilleure qu'un disque seul)
RAID 1
- Mirroring : les données sont dupliquées sur chaque disque de l'array
- La duplication des données assure la redondance
- Nombre de disque minimum : 2
- Performance en lecture : moyenne, meilleure qu'une disque seul
- Performance en écriture : moyenne, inférieur à un disque seul
RAID 3, RAID 4, RAID 5
- Même principe pour les 3 : les données sont écrites aléatoirement sur les disques, avec existence d'un système de parité.
- Pour RAID 3 et 4 : disque dédié à la parité, qui fait goulot d'étranglement
- Pour RAID 5 : parité distribution des bits de parités sur l'ensemble des disques de l'array, ce qui efface le goulot d'étranglement et améliore les performances
- Principal défaut : overhead pour le calcul de la parité, nécessitant un contrôleur hardware de qualité, ou un CPU puissant en raid software
- Nombre de disque minimum : 3
- Tolérance à la panne de 1 disque (reconstruction des données soit via les données restantes, soit données + parité)
- Performance en lecture : Bonne
- Performance en écriture : moyenne
RAID 6
- Même principe que le RAID 5 mais avec une double parité
- Nombre de disque minimum : 4
- Tolérance à la panne de 2 disque
RAID 7
- Nécessité un contrôleur hardware avec un cache. Similaire a un RAID 3 ou 4, mais les performances sont améliorés par le cache.
RAID 01(0+1) et 10(1+0)
- Mirroring et stripping sans parité
- Nombre de disque minimum : 4
- Combine la vitesse du RAID 0 et la redondance du RAID 1, sans nécessité d'une parité
- Grossièrement pour le RAID-10 : on créé 2 arrays RAID-1 avec chacune 2 disque. Ces arrays sont mergées au sein d'un array RAID-0.
- Tolérance à la panne : 1 disque par grappe raid 1. Si les 2 disques de la même grappe raid 1 tombent en panne : perte de donnée.
- RAID 1+0 permet une meilleur tolérance aux pannes et une meilleure performance que le RAID 0+1
Schéma d'un Raid 10 mdadm
avec mdadm on peut créer directement un raid10 en 1 étape en passant l'argument --level=10
. Par exemple : mdadm --create /dev/md2 --level=10 --raid-devices 4 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2
.
Il est par contre ensuite un peu complexe d'identifier quel disque fait parti de quelle grappe raid1.
https://documentation.suse.com/sles/15-SP1/html/SLES-all/cha-raid10.html#sec-raid10-complex
Number Major Minor RaidDevice State 0 8 2 0 active sync set-A /dev/sda2 1 8 18 1 active sync set-B /dev/sdb2 2 8 34 2 active sync set-A /dev/sdc2 3 8 50 3 active sync set-B /dev/sdd2 RAID0 ______________|______________ | | RAID1 RAID1 sda2 sdb2 sdc2 sdd2 A B A B
Notez les indications set-A
et set-B
qui sont trompeuses.
Vous pouvez identifier les disques ayant les données en miroir avec le script suivant en faisant varier la valeur de skip :
for disk in sda2 sdb2 sdc2 sdd2 do echo -n "$disk = "; dd if=/dev/$disk skip=3000 bs=1M count=1 2>/dev/null | md5sum; done
Dans mon cas, quelque soit le skip, j'ai un retour de ce type :
sda2 = d570440706bb54f2719083ce896c32c6 - sdb2 = d570440706bb54f2719083ce896c32c6 - sdc2 = b95d904384f093f21f73178e5dd34371 - sdd2 = b95d904384f093f21f73178e5dd34371 -
Qui signifie que sda et sdb sont des miroirs, et que sdc et sdd sont un autre miroir