私は最近、mdadm raid1ボリュームで構成されたNASを拡張することにしました。ディスクスロットは限られているので、プロセスはおおよそ次のようになります。
- ディスクの1つを取り出し、大きなディスクに交換してください。
- 質問
mdadm /dev/md0 --add /dev/sda1
- 新しいディスクで再同期が完了するまで待ちます。
- 別のディスクを取り出して交換してください。
- 質問
mdadm /dev/md0 --add /dev/sdb1
- 再同期が完了するまで待つ
- 質問
mdadm /dev/md0 --grow --size=max
ステップ7が必要です。そうでなければ、md0 は、より大きなディスクに完全に常駐していても、以前のサイズに保たれるためです。
私の質問はmdadm
ステップ7の後に再同期する必要があるのはなぜですか?どのデータをどこからどこに同期していますか?以前のボリュームのすべてのデータは、フェーズ2と5の後の再同期プロセス中に完全に同期されているため、ステップ7以降の唯一の新しいデータは、ディスクの2番目の半分のジャンクを置き換えるだけです。
答え1
RAID 1の「ガベージ」も同じでなければなりません。これは、MDアレイを作成した後に発生する再同期と同じです。初期アレイの作成カーネルウィキから。
初期再同期(および成長後の再同期)の最大の理由は、作業の確認と修正のためです。四半期の違いにより、検証中にエラーが発生する可能性があります。
ディスクの内容が同じであると確信している場合(たとえば、0に設定されている場合)、--assume-clean
拡張操作で使用できます。 mdadmのマンページから:
--grow --size= を使用して配列のサイズを大きいサイズに調整すると、通常、配列全体が作成されたときに再同期されるのと同じ方法で新しいスペースが再同期されます。 Linuxバージョン3.0以降、--assume-cleanをこのコマンドと一緒に使用すると、自動再同期を防ぐことができます。