Configuration rapide mdadm RAID avec disques vides?


9

Je recrée certains disques RAID5 en RAID6 avec mdadm. Il n'y a aucune donnée sur les disques dont je me soucie.

La configuration du RAID prend un certain temps pour configurer la forme - j'accepte que lorsqu'il y a des données qui doivent être agrégées et la parité calculée, cependant avec ces disques, elles sont vides - ou du moins je veux qu'elles soient considérées comme vides.

Alors, y a-t-il un moyen d'ignorer le calcul de parité et de dire à mdadm de simplement configurer les superblocs et de le faire, ou sinon, que dépense-t-il exactement tout ce temps lorsqu'il n'y a pas de données à déplacer?

md3 : active raid6 sdf3[5] sde3[4] sdd3[3] sdc7[2] sdb3[1] sda3[0]
      1953114112 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/6] [UUUUUU]
      [>....................]  resync =  1.3% (6790144/488278528) finish=409.3min speed=19604K/sec

Notez que je ne parle pas de l' --assume-cleanendroit où vous reconstruisez une matrice à partir d'un ensemble de disques préexistant qui contient une matrice RAID que vous savez être correcte. Je parle d'un tableau qui devrait être considéré comme vide, pas comme correctement rayé.

Disons donc pour cette question que les appareils ont été pré-remplis de zéros.

Réponses:


8

Vous pouvez l'utiliser, --assume-cleanmais à moins que vous n'utilisiez raid5 (et non raid6) et que les disques soient réellement remplis de zéros, la première fois qu'il exécute un contrôle de parité, il y aura des erreurs qui devront être corrigées, vous ne devriez donc pas faire cela. Vous n'avez pas besoin d'attendre la fin de la resynchronisation avant de pouvoir commencer à utiliser le tableau; il avancera en arrière-plan jusqu'à ce qu'il soit terminé.


Merci psusi - cela ne résout pas la question.
Paul

2
@Paul, umm .. oui, c'est le cas. Il n'y a pas de "vide", il n'y a que synchronisé ou pas synchronisé.
psusi

Cela ne répond pas à la question que je pose. Le xor d'un bloc de zéros est zéro. Donc, si je pouvais dire à mdadm que l'espace peut être considéré comme vide, cela pourrait créer la parité très rapidement. La parité n'aurait besoin d'être calculée correctement que lorsqu'un bloc spécifique est écrit, auquel cas il importe peu qu'il ait été "incorrect" auparavant. Je pourrais même mettre à zéro le disque.
Paul

2
@Paul, encore une fois, il n'y a rien de tel que "vide". Généralement oui, peu importe que la parité sur les bandes qui n'ont jamais été écrites soit erronée, c'est pourquoi vous pouvez vous en sortir avec --assume-clean, même lorsque les disques ne sont pas remplis de zéros, mais la mauvaise parité sera être détecté et corrigé lorsque mdadm effectue un contrôle de parité.
psusi

2
@Paul, la signification de "vide" n'est pas bien définie. La plupart des gens l'utilisent pour signifier qu'ils n'ont placé aucun fichier ou système de fichiers sur l'appareil, et ne savent pas ou se soucient de ce qu'il contient actuellement. Si vous savez que les disques sont tous remplis de zéros, alors --assume-clean est ce que vous voulez. Il vous faudra croire sur parole que les disques sont tous mis à zéro et ne recalculent pas la parité, et comme vous le mentionnez, une parité de zéro sera correcte pour les disques de données de tous les zéros, au moins pour raid5 (pas pour raid6).
psusi

2

Vous ne pouvez pas le faire avec un RAID logiciel ou matériel. Toutes les sommes de contrôle doivent être écrites sur les disques, ce qui prend du temps. Vous pouvez le faire plus tard, mais les parties du disque qui ne sont pas écrites devront le faire avant de pouvoir les utiliser.

C'est essentiellement parce que le système RAID et les systèmes de fichiers ne se connaissent pas. ZFS a une solution à cela, mais là, les parties RAID sont profondément intégrées au système de fichiers. Ainsi, le sous-système RAID sait réellement quelles parties des disques sont utilisées pour stocker des données et lesquelles peuvent être utilisées plus tard, puis leur écrit les sommes de contrôle.

Vous pouvez ajouter une vitesse de débit au RAID logiciel ou commencer à utiliser le RAID avant que toutes les sommes de contrôle ne soient écrites, et laisser le RAID logiciel le gérer pour vous plus tard. C'est ce qu'a écrit @psusi.


Je comprends comment fonctionne RAID, j'essaie de comprendre ce qui se passe avec les sommes de contrôle sur un disque vide. Les sommes de contrôle doivent être calculées chaque fois que quelque chose est écrit sur le disque, donc les calculer avant que des données ne soient présentes n'a pas beaucoup de sens - "le faire plus tard" est judicieux lorsqu'il n'y a rien. Il n'y a pas de système de fichiers à considérer dans ce scénario.
Paul

6
Il y a toujours des données présentes. Cela peut ne pas être important ou significatif, mais chaque secteur a toujours une valeur. (Zéro est aussi une valeur!) L'implémentation RAID ne sait pas quels secteurs contiennent des données importantes, elle doit donc les traiter tous comme importants et calculer leur parité.
Wyzard
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.