Raid 1, étant un miroir, dépend de tous les disques dans un miroir étant des copies exactes les uns des autres. Prenez votre disque dur aléatoire et un autre disque dur aléatoire, et vous disposez peut-être de données différentes, violant ainsi cette présomption. C'est pourquoi l'initialisation est nécessaire. Il copie simplement le contenu du premier lecteur sur d'autres. Notez que dans certaines conditions, vous pouvez vous en tirer sans initialiser les disques - généralement, les nouveaux appareils d'usine ont déjà des zéros partout, vous pouvez donc simplement ignorer cela. L' mdadm
option --assume-clean
fait cela, mais vous avertit:
--assume-clean
Dites à mdadm que la baie préexistait et est connue pour être propre. Cela peut être utile lorsque vous tentez de récupérer après une panne majeure, car vous pouvez être sûr qu'aucune donnée ne sera affectée à moins que vous n'écriviez réellement dans la baie. Il peut également être utilisé lors de la création d'un RAID1 ou RAID10 si vous souhaitez éviter la resynchronisation initiale, mais cette pratique - bien que normalement sûre - n'est pas recommandée. N'utilisez ceci que si vous savez vraiment ce que vous faites.
Si vous ne le faites pas, il y a une différence entre les lecteurs et leur lecture, vous ne savez pas ce que le lecteur lira. Vous devriez être assez en sécurité avec un système de fichiers (mais notez ci-dessous), car vous écrivez probablement avant de lire quoi que ce soit sur cet appareil, puis vous êtes clair.
Notez qu'au moins Linux mdadm
initialisera le tableau en arrière-plan. Vous pouvez facilement créer FS au-dessus de lui la première seconde. La performance va souffrir jusqu'à la fin de l'initialisation, mais c'est tout.
Mais:
a) Lorsque vous effectuez mkfs
certains utilitaires, vérifiez s'il y a déjà quelque chose sur ce disque. Bien que cela ne touche que quelques régions bien connues du lecteur, il lit avant d'écrire quoi que ce soit, vous mettant ainsi en danger.
b) Si vous effectuez une resynchronisation périodique de votre baie, le périphérique RAID ne sait rien de votre FS. Il lit simplement chaque bloc de chaque appareil et les compare. Et si vous n'utilisez pas un FS de copie sur écriture (par exemple ZFS ou BTRFS) et ne remplissez jamais votre FS, il est parfaitement plausible qu'un bloc reste non initialisé du point de vue FS pendant des années.
Pourquoi resynchroniser avec des périphériques RAID1?
Pour la même raison, vous resynchronisez avec des périphériques RAID5 ou tout autre niveau (sauf RAID0). Il lit toutes les données et compare / vérifie les sommes de contrôle RAID (en RAID 5 ou 6). Si un peu a été retourné de quelque manière que ce soit (parce que la mémoire HD a été retournée spontanément, parce que les téléphones portables de vous et de vos 5 voisins viennent d'interférer accidentellement sur cette région particulière du plateau, peu importe), il détectera une incohérence, mais ne pourra pas T'aider. Si, OTOH, l'un des disques durs signale simplement "Je ne peux pas lire ce bloc", ce qui est plus probable avec un disque défectueux, vous venez de détecter une panne tôt et de réduire le temps que vous utilisez en mode dégradé (en comptant à partir de l'échec du lecteur, pas à partir du moment où vous le remarquez). Raid ne vous aidera pas si un disque tombe en panne et un mois plus tard, l'autre échoue si vous ne le faites pas.
RAID10
Maintenant, pour RAID10, tout ce qui précède est valable. Après tout, RAID10 n'est qu'un moyen intelligent de dire «Je mets mes deux périphériques RAID1 dans une paire RAID0».
Caveat:
C'est tout un comportement indéfini. Pourquoi j'ai vérifié sur Linux, en utilisant mdadm
, d'autres implémentations RAID logicielles peuvent se comporter différemment. Les autres versions du noyau Linux et / ou des mdadm
outils que j'utilise peuvent également se comporter différemment.