Comment fonctionne la parité sur une matrice RAID-5?


31

Je cherche à construire une jolie petite matrice RAID pour des sauvegardes dédiées. J'aimerais avoir environ 2 à 4 To d'espace disponible, car j'ai cette petite habitude désagréable de tout numériser. Ainsi, j'ai besoin de beaucoup de stockage et de beaucoup de redondance en cas de panne de disque. Je vais aussi essentiellement sauvegarder 2-3 /homedossiers d' ordinateurs en utilisant l'un des clones "Time Machine" pour Linux. Cette baie sera accessible sur mon réseau local via SSH.

J'ai du mal à comprendre comment RAID-5 atteint la parité et combien de disques sont réellement nécessaires. On pourrait supposer qu'il a besoin de 5 disques, mais je peux me tromper. La plupart des diagrammes que j'ai vus ne m'ont encore que confus. Il semble que c'est ainsi que fonctionne RAID-5, veuillez me corriger car je suis sûr que je ne le saisis pas correctement:

/---STORAGE---\    /---PARITY----\
|   DRIVE_1   |    |   DRIVE_4   |
|   DRIVE_2   |----|     ...     |
|   DRIVE_3   |    |             |
\-------------/    \-------------/

Il semble que les lecteurs 1 à 3 apparaissent et fonctionnent comme un seul lecteur massif ( capacity * number_of_drives) et les lecteurs de parité sauvegardent ces lecteurs. Ce qui me semble étrange, c'est que je vois généralement plus de 3 disques de stockage dans un diagramme avec seulement 1 ou 2 disques de parité. Supposons que nous exécutons 4 disques de 1 To dans une matrice RAID-5, 3 de stockage en cours d'exécution et 1 parité en cours d'exécution, nous avons 3 To de stockage réel, mais seulement 1 To de parité!?

Je sais que je manque quelque chose ici, quelqu'un peut-il m'aider? Aussi, pour mon cas d'utilisation, quoi de mieux, RAID-5 ou RAID-6? La tolérance aux pannes est la plus haute priorité pour moi à ce stade, car il va fonctionner sur un réseau pour un usage domestique uniquement, la vitesse n'est pas extrêmement critique.

Réponses:


30

Il ne fait que XOR chaque bit correspondant de chaque lecteur - Si vous perdez un lecteur, vous pouvez reconstruire les données manquantes.

Pour le fond:

A B (A XOR B)
0 0    0
1 1    0
0 1    1
1 0    1

Supposons que D est le XOR des autres colonnes, puis tant que vous ne perdez qu'un seul lecteur, vous pouvez comprendre ce que vous avez perdu.

A B C D
1 0 0 1
0 1 0 1
1 1 0 0

Parfois, le bit de bande sera distribué sur les disques, mais le concept est le même.

Ainsi, pour RAID-5, quel que soit le nombre de disques, vous n'avez besoin que d'un disque pour une parité égale ou supérieure au plus petit disque de la matrice que vous souhaitez RAID.

RAID-5 pour un usage personnel est probablement le meilleur car la complexité de calcul est beaucoup plus faible que RAID-6.

RAID-6 est plus compliqué à l'aide des champs de Galois pour calculer la parité. Et cela peut taxer les calculs de parité. Cependant, vous pouvez perdre plus de disques, mais si vous reconstruisez votre baie dès que vous obtenez un seul échec, vous devriez vous en tenir à RAID-5.


Excellente réponse. Je pensais à une trop grande échelle, sur une base réelle de disque dur complet, plutôt qu'à un niveau binaire. RAID-5 utilise-t-il donc un lecteur dédié pour la parité, ou plutôt tous les lecteurs pour la parité? Je suis confus là-dessus.
Naftuli Kay

2
Je crois que l'approche moderne consiste à répartir la parité en diagonale sur tous les disques. Cela a pour effet d'accélérer le temps de lecture sur les bits de parité, car plusieurs demandes d'E / S peuvent être envoyées en parallèle à différents lecteurs, mais ne me citez pas à ce sujet.
Matt

Existe-t-il une formule mathématique que je peux utiliser pour déterminer la capacité donnée des xdisques et des yGo disponibles sur chaque disque?
Naftuli Kay

2
Oui, c'est la (plus petite taille de disque) * (nombre de disques dans la baie - 1)
Matt

1
Si la parité n'est qu'un XOR des deux autres disques, comment savez-vous lequel des deux disques a été corrompu? Un retournement de bit sur l'un ou l'autre des disques n'entraînerait-il pas un retournement de bit dans la parité?
Jay Sullivan

8

Voici ce que je pense être un meilleur diagramme pour montrer comment fonctionne la parité en RAID4 et RAID5

RAID4

Disk1  Disk2  Disk3  Disk4
----------------------------
data1  data1  data1  parity1
data2  data2  data2  parity2
data3  data3  data3  parity3
data4  data4  data4  parity4

RAID5

Disk1   Disk2   Disk3   Disk4
----------------------------
parity1 data1   data1   data1   
data2   parity2 data2   data2  
data3   data3   parity3 data3
data4   data4   data4   parity4

Ou, jetez un œil à ce SVG sur Wikipedia en.wikipedia.org/wiki/Standard_RAID_levels#/media/…
Giuseppe Crinò

4

Je recommanderais de lire cet article Wikipedia sur Raid 5 et Raid 6

http://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_5_parity_handling

RAID 5 écrit un bloc de parité dans chaque bande, donc pour la bande A d'une matrice de 4 disques, il écrit le contrôle de parité sur le 4ème disque, avec les données sur les disques 1, 2 et 3

Pour la bande B, le bloc de parité est sur le disque 3, avec les données sur les disques 1,2 et 4 .. etc.

Si le disque 4 échoue, les données peuvent être récupérées pour la bande B car vous connaissez les données des disques 1 et 2 et effectuez le contrôle de parité sur le disque 3.

Si la bande B avait une parité de "2" et que le disque 1 a des données de "1" et le disque 2 des données "0", alors le disque 4 doit avoir des données égales à "1" pour que le disque soit écrit avec data = "1"

Le disque entier peut être recréé de cette façon, RAID 6 étend cela en ayant 2 blocs de partie par bande.

En ce qui concerne l'espace pour Raid 5, vous ne perdez qu'un seul disque pour la parité, car il écrit uniquement sur le bloc de parité par bande, tandis qu'avec Raid 6, vous perdrez 2 disques mais vous pouvez également perdre deux disques plutôt que celui dans lequel vous pouvez le perdre. Raid 5;)

L'article Wikipedia explique mieux cela!


3

RAID 5 utilise un lecteur pour la parité, quel que soit le nombre de lecteurs de données dans la baie. Cela signifie qu'il devient plus efficace, en termes d'espace utilisable, plus il y a de disques ajoutés.

La parité est obtenue en effectuant une opération XOR sur le même bloc dans chaque lecteur; le contenu du lecteur de parité est ajusté de telle sorte que tous les lecteurs XOR à zéro . Cela signifie que RAID 5 est limité par la plus petite capacité de tous les disques de la matrice.

RAID 6 est similaire, sauf que deux pannes de disque simultanées peuvent être tolérées. Cela est utile parce que le processus de « réargenture » d'un module RAID après une seule panne de disque peut être suffisamment stressant pour provoquer la panne d'un deuxième disque.


Donc, cela signifie essentiellement que je peux avoir 4 disques de 2 To et 6 To de stockage efficace et redondant?
Naftuli Kay

@TK Kocheran Avec RAID 5, oui. Notez que le stockage effectif sera un peu moins dû au système de fichiers. Par exemple, mon NAS avec 4 disques de 2 To en RAID-Z1 (la version ZFS de RAID 5) dispose d'un espace utilisable de 5,18 To.
sblair

Eh bien oui, bien sûr :) Ça se passe toujours comme ça. La question suivante est quel système de fichiers utiliser ...
Naftuli Kay

0

Si la tolérance aux pannes est votre objectif, RAID-6 fournira suffisamment de redondance pour perdre deux disques. En règle générale, RAID-5 ne tolérera qu'une seule panne de disque.


Quel est le rapport disques / parité (stockage total) pour RAID-6? drive_size * (drive_count - 2)?
Naftuli Kay

1
En plus de la tolérance de panne pour un deuxième disque qui tourne mal avant de pouvoir remplacer le premier, il y a une autre situation pour laquelle il est idéal et je suis tombé sur plus d'une fois: un disque va mal dans une matrice RAID, et donc un un nouveau lecteur est commandé. Un type aléatoire qui ne sait rien des matrices RAID entre dans la salle des serveurs avec un nouveau disque en main, perturbe la numérotation et éjecte le mauvais disque de la matrice pour le remplacer. Sous RAID5, votre baie est vissée juste là. RAID6 signifie que vous pouvez toujours récupérer.
camster342
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.