web-dev-qa-db-fra.com

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

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

J'ai des difficultés à comprendre comment RAID-5 atteint la parité et combien de disques sont réellement nécessaires. On pourrait supposer qu'il faut 5 lecteurs, mais je peux me tromper. La plupart des diagrammes que j'ai vus ne m'ont encore confondu. Il semble que c’est comme cela que RAID-5 fonctionne, corrigez-moi, je suis sûr de ne pas le comprendre 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 que le ou les lecteurs de parité sauvegardent ces lecteurs. Ce qui me semble étrange, c'est que je vois généralement 3 disques de stockage ou plus dans un diagramme, mais seulement 1 ou 2 disques de parité. Supposons que nous utilisions 4 disques de 1 To dans une matrice RAID-5, 3 stockage en cours 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 quelque chose me manque, 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 priorité la plus haute pour moi à ce stade, puisqu’elle fonctionnera sur un réseau uniquement pour un usage domestique, la vitesse n’est pas extrêmement importante , mais critique. .

31
Naftuli Kay

Il se limite à 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 soit le XOR des autres colonnes, et tant que vous ne perdez qu'un seul lecteur, vous pouvez déterminer 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 lecteurs, mais le concept est le même.

Ainsi, pour RAID-5, quel que soit le nombre de disques, il vous suffit d’un disque pour une parité égale ou supérieure au plus petit disque de la matrice que vous souhaitez mettre en RAID.

RAID-5 pour une utilisation personnelle est probablement préférable car la complexité de calcul est bien inférieure à celle de RAID-6.

RAID-6 est plus compliqué en utilisant les champs de Galois pour calculer la parité. Et cela peut imposer les calculs de parité. Cependant, vous pouvez perdre plus de disques, mais si vous reconstruisez votre ensemble dès que vous rencontrez un seul échec, vous devriez vous en tenir à RAID-5.

30
Matt

Voici ce que je pense être un meilleur diagramme pour montrer comment fonctionne la parité dans 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
7
camster342

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. Ainsi, pour la bande A d'une grappe de 4 disques, il écrit le contrôle de parité sur le 4e disque, avec les données sur les disques 1, 2 et 3.

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

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

Si la bande B avait une parité de "2" et que le disque 1 avait des données de "1" et le disque 2, des données de "0", le disque 4 devait avoir des données égales à "1", de sorte que le disque était écrit avec des données = "1"

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

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

L'article de Wikipedia explique ceci mieux!

4
markfknight

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

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 sorte que tous les lecteurs XOR soient mis à zéro . Cela signifie que RAID 5 est restreint 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. Ceci est utile car le processus de " résilience " d'une matrice après une panne de disque unique peut être suffisamment stressant pour provoquer la panne d'un second disque.

3
sblair

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.

0
Nate