RAID 1はミラーであるため、ミラー内のすべてのディスクが相互の正確なコピーであることに依存しています。ランダムなハードドライブと別のランダムなハードドライブを使用すると、データが異なる可能性があるため、この推定に違反します。これが、初期化が必要な理由です。最初のドライブの内容を他のドライブにコピーするだけです。一部の条件では、ドライブを初期化しなくても済むことに注意してください。通常、工場出荷時の新しいデバイスには、すでにゼロが配置されているため、単にこれを無視できます。mdadm
オプションでは、--assume-clean
これを行いますが、あなたを警告します:
--assume-clean
mdadmに、アレイが既に存在し、クリーンであることがわかっていることを伝えます。実際にアレイに書き込みを行わない限り、データが影響を受けないことが確認できるため、重大な障害から回復しようとする場合に役立ちます。RAID1またはRAID10を作成するときに、最初の再同期を避けたい場合にも使用できますが、この方法は(通常は安全ですが)推奨されません。これは、自分が何をしているか本当にわかっている場合にのみ使用してください。
これを行わないと、ドライブと読み取りの間に矛盾が生じ、ドライブが何を読み取るかがわかりません。ほとんどの場合、そのデバイスから何かを読み取る前に書き込みを行うため、ファイルシステムはかなり安全であるはずです(ただし、以下に注意してください)。
少なくともLinux mdadm
はバックグラウンドでアレイを初期化することに注意してください。最初の1秒でその上にFSを楽しく作成できます。初期化が完了するまでパフォーマンスは低下しますが、それだけです。
だが:
a)mkfs
一部のユーティリティを実行するときは、そのドライブにすでに何かがあるかどうかを確認します。これはドライブのよく知られたいくつかの領域にしか触れませんが、何かを書き込む前に読み取るため、危険にさらされます。
b)アレイを定期的に再同期する場合、RAIDデバイスはFSを認識しません。それは単にすべてのデバイスからすべてのブロックを読み取り、それらを比較します。また、コピーオンライトFS(ZFSやBTRFSなど)を使用しておらず、FSを一杯にしない場合は、ブロックがFSの観点から何年も初期化されていない状態が続く可能性が非常に高くなります。
RAID1デバイスと再同期する理由
同じ理由で、RAID5デバイスまたはその他のレベル(RAID0を除く)と再同期します。すべてのデータを読み取り、RAIDチェックサム(RAID 5または6)を比較/検証します。ビットが何らかの方法で反転された場合(HDメモリが自発的に反転したため、あなたとあなたの5人の隣人の携帯電話がプラッターのこの特定の領域で偶然干渉したため)、それは不整合を検出しますが、できません助けます。OTOH、ハードドライブの1つが単に「そのブロックを読み取れません」と報告する場合は、ドライブの障害が発生している可能性が高く、障害を早期に検出し、低下モードで実行している時間を短縮します(ドライブの故障ではなく、気づいたときから)。1つのドライブに障害が発生した場合、RAIDはあなたを助けません。
RAID10
現在、RAID10の場合、上記のすべてが成り立ちます。結局のところ、RAID10は、「2つのRAID1デバイスをRAID0ペアに入れている」ことを伝える賢い方法にすぎません。
警告:
これはすべて未定義の動作です。mdadm
他のソフトウェアRAID実装を使用してLinuxで確認した理由は、動作が異なる場合があります。mdadm
私が使用しているもの以外のバージョンのLinuxカーネルやツールも、動作が異なる場合があります。