14 votes

Lorsqu'on ajoute un nouveau disque au RAID 1, pourquoi synchronise-t-il l'espace inutilisé ?

J'ai récemment mis en place un RAID 1 sous Linux avec mdadm . Lorsque j'ai ajouté un nouveau disque dur au RAID 1, les données ont commencé à se synchroniser entre mes disques, ce qui est normal. Je ne m'attendais pas à ce qu'il commence à synchroniser l'ensemble du disque, y compris l'espace inutilisé. Les disques durs étaient de 6 To avec seulement environ 1 To de données, ce qui a pris beaucoup plus de temps que prévu. Pourquoi md doit synchroniser l'espace inutilisé ?

32voto

Grant Points 16706

RAID fonctionne en dessous du niveau du système de fichiers - il ne sait pas ou ne se soucie pas de savoir quelles parties du disque sont "utilisées" ou non, il voit juste un tas de blocs et leur contrepartie en miroir pour RAID1.

Il doit donc synchroniser l'ensemble du disque pour s'assurer qu'ils correspondent. S'il ne le faisait pas, il ne saurait pas quelles différences correspondent à une erreur et lesquelles sont simplement des parties que le système de fichiers ne pense pas avoir encore utilisées.

Il existe un --assume-clean que vous pouvez utiliser dans mdadm pour lui dire de ne pas le faire - mais vous ne devez le faire que si vous êtes certain que les disques ne contiennent que des zéros. Et je pense que cela ne fonctionne que pour le RAID1, pas pour le RAID5/6.

0 votes

C'est logique. J'étais curieux de savoir pourquoi il le faisait, car je pensais qu'il devait y avoir une bonne raison et je pense que cela l'explique. Merci !

1 votes

Je ne pense pas que --assume-clean ou l'ajout d'un dispositif rempli de zéros peut avoir un sens lorsque extension de un RAID1 (ou le remplacement d'un lecteur défaillant). Les composants d'un RAID1 doivent tous avoir des données identiques, de sorte que des lectures puissent être effectuées à partir de n'importe lequel d'entre eux, ou du moins des parties qui seront toujours en service. lire devront être synchronisés (les écritures se feraient automatiquement sur tous les composants). Soit cela, soit la couche RAID doit disposer d'un mappage des blocs sur lesquels les couches supérieures ont écrit, afin de synchroniser uniquement les parties nécessaires.

5 votes

Si vous regardez le page de manuel la partie concernant les dispositifs remplis de zéros sous --assume-clean est mentionné dans le contexte de un nouveau tableau où il n'y a pas encore de structure de la couche supérieure. (En outre, selon toute vraisemblance, les lecteurs n'ont pas besoin d'être exactement mis à zéro juste rempli de identique afin de s'assurer que les contrôles de synchronisation ne renvoient pas de faux positifs).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X