Le RAID5, comment ça marche [résolu]

Le RAID5, comment ça marche [résolu] - Stockage - Systèmes & Réseaux Pro

Marsh Posté le 02-05-2012 à 17:09:22    

Bonjour à tous,
 
Voilà, comme le titre l'indique, j'aimerai que l'on m'explique le fonctionnement du raid5 ( soyez prévenus: il faut être enseignant dans l'âme, après avoir essayer de lire moultes articles sur le sujet qui avait l'air plutôt bien réalisés, j'en reviens au même problème ). Je m'explique:
 
Je ne comprend pas comment 1 bloc peut contenir l'ensemble des données de 3 blocs si ceux-ci sont pleins. Je prend l'exemple de cette image:  
 
http://www.labo-microsoft.org/articles/web/raid_1/8/RAID5.gif
 
Ici, dans la case "parité 1,2,3", je ne vois pas comment en un quart de disque dur 80go, on peut contenir 3 blocs d'1/4 de disques dur 80 Go.  
Ou alors ai-je mal compris le mot "parité" ?
 
J'en appelle donc a votre savoir pour m'aider, surtout que je vais avoir besoin de ces connaissances dans le cadre professionnel.
 
Merci pour vos réponses!


Message édité par sayz le 03-05-2012 à 09:55:27
Reply

Marsh Posté le 02-05-2012 à 17:09:22   

Reply

Marsh Posté le 02-05-2012 à 17:25:14    

La parité est calculée avec un "ou exclusif" (ou XOR) et se base sur une des propriétés du "ou exclusif" (http://fr.wikipedia.org/wiki/OU_exclusif) :
Si "A xor  B = C" alors "C xor B = A" et "A xor C = B"
 
Dans ton exemple d'un RAID en 3+1 (3 disques de données et 1 disque de parité) tu as :
A xor B xor C = D
Si tu perds par exemple le disque A, grâce à la parité tu retrouves le bit de données comme suit :
A = B xor C xor D
Pareil pour les autres disques

Reply

Marsh Posté le 02-05-2012 à 17:57:08    

Merci pour ta réponse rapide couak.  
 
Si j'ai bien compris, tant que tous les disques sont OK ( donc A,B et C a valeur 1 ), D=0.  
Et lorsque je perds A, D passe donc a 1 ( donc en mode disque de données )
 
Ceci dit, malgré sa, je ne comprend toujours pas comment il est capable de "reconstruire" les données du disque A après sa perte. J'ai lu qu'il les avait au préalable copiés, mais où? puisque si il copie A, il copie forcément B et C. Sachant qu'en capacité, A=B=C=D, comment a-t-il les 3 disques copiés sur un seul?

Reply

Marsh Posté le 02-05-2012 à 18:10:09    

non ce n'est pas cela, D = A xor B xor C
Si A=1, B=1, C=1 alors D = 1 xor 1 xor 1 = 1
Si A=0, B=1, C=1 alors D= 0 xor 1 xor 1 = 0
etc.
 
Si tu perds A, tu peux deviner sa valeur initiale avec B xor C xor D
Si B=1, C=1, D=1 alors A = 1 xor 1 xor 1 = 1
Si B=1, C=1, D=0 alors A= 1 xor 1 xor 0 = 0

Reply

Marsh Posté le 02-05-2012 à 18:41:58    

Cela veux dire qu il reconstruit les donnees en passant un XOR sur B,C et D en resolvant bit apres bit donc et qu avec cette formule seulement il est capable de reconstituer A ?
Merci pour ton aide precieuse en tout cas

Reply

Marsh Posté le 02-05-2012 à 20:26:05    

tout à fait, c'est pour cela qu'en ---théorie--- un groupe de RAID5 :
- a de moins bonnes performances en écriture, à cause du calcul de parité à chaque écriture
- a des performance fortement dégradé lorsqu'un disque est défectueux, à cause du calcul de parité à chaque lecture ou écriture
 
Mais c'est un bon compromis capacité/coût tant que l'on dimensionne pas n'importe comment du genre mettre 2 jours à reconstruire le RAID

Reply

Marsh Posté le 03-05-2012 à 09:05:01    

OK merci beaucoup!  
 
Juste une dernière question:
le contrôleur pose les données de manière a ce que ce calcul soit juste, ou il les poses comme sa et sa marche tout le temps?  
J'ai toujours eut des difficultés en maths, désolé, je sais que c'est pas pratique pour un informaticien ^^

Reply

Marsh Posté le 03-05-2012 à 09:51:03    

J'ai eut ma derniere réponse en cherchant a droite a gauche.  
Voilà ma réponse pour ceux qui sont dans mon cas:
Si tes 3 blocs font 8 bits, ta parité fait également 8 bit et non 24 (3*8). La parité est calculée avec l'opérateur XOR (ou exclusif) et permets de retrouver n'importe quelle données à partir des deux autres.
Bloc1 XOR Bloc2 XOR Bloc3 = parité
Bloc1 XOR Bloc2 XOR parité = Bloc3
Bloc1 XOR Bloc3 XOR parité = Bloc2
Bloc2 XOR Bloc3 XOR parité = Bloc1
Si tu as par exemple dans tes 3 blocs de données 45 (0010 1101), 12 (0000 1100) et 7 (0000 0111), la parité est 38 (0010 0110). La parité occupe bien la même place que chacun des blocs de données.
Et 45^12^38 = 7, 45^7^38 = 12, 7^12^38 = 45.
 
Merci beaucoup couak. je considère le sujet comme résolu, encore merci !

Reply

Marsh Posté le 03-05-2012 à 10:48:32    

Maintenant que t'as compris le principe, on va affiner certaines choses sur le RAID5 : en réalité il n'y a pas de disque qui fait la parité, la parité est répartie circulairement par bandes sur l'ensemble des disques
Donc chaque disque de ton RAID stockera la parité de portions des autres disques http://fr.wikipedia.org/wiki/RAID_ [...] 3.A9partie
 
Pour ta question sur le contrôleur, la réponse est : ça dépend des contrôleurs et de comment le fabricant/concepteur l'a implémenté. Personne n'est à l'abri d'un bug dans la conception

Reply

Marsh Posté le 03-05-2012 à 14:04:45    

Le reste est assimilé il n'y a pas de soucis, c'était juste cette histoire de parité qui me posait problème :)  
 
Merci beaucoup :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed