これを行うと、実際には何もせずに単にドライブをアレイにチャッキングします。つまり、ドライブはアレイのメンバーですが、アクティブではありません。デフォルトでは、これによりスペアになります:
sudo mdadm /dev/md0 --add /dev/sdb1
スペアがある場合は、アレイのアクティブ ドライブ数を強制的に増やすことで、スペアを増やすことができます。 3 台のドライブと 2 台の予想 アクティブな場合、アクティブ数を 3 に増やす必要があります。
mdadm --grow /dev/md0 --raid-devices=3
RAID アレイ ドライバは、ドライブが「不足」していることに気づき、スペアを探します。スペアが見つかると、アクティブ ドライブとしてアレイに統合されます。予備のターミナルを開き、このやや大雑把なコマンド ラインをそこで実行して、再同期の進行状況を監視します。必ず 1 行で入力するか、改行 (\) 文字を使用してください。再構築が完了したら、ターミナルで Ctrl-C を入力してください。
while true; do sleep 60; clear; sudo mdadm --detail /dev/md0; echo; cat /proc/mdstat; done
アレイには、同期している 2 つのアクティブなドライブがありますが、3 つのドライブがないため、100% クリーンではありません。故障したドライブを取り外してから、アレイのサイズを変更してください。 --grow
に注意してください flag は少し間違った名前です - いずれかを意味します 拡大または縮小:
sudo mdadm /dev/md0 --fail /dev/{failed drive}
sudo mdadm /dev/md0 --remove /dev/{failed drive}
sudo mdadm --grow /dev/md0 --raid-devices=2
エラーに関しては、ドライブ (つまり、PATA/SATA ポート、ケーブル、またはドライブ コネクタ) のリンクの問題は、ホット スペアのフェイルオーバーをトリガーするのに十分ではありません。 「不良」ドライブへのリンクをリセットしている間。私は 3 つのドライブ アレイ (2 つのホット、1 つのスペア) を実行しており、ドライブの 1 つが最近、ログに少しバーフアップすることを決定したため、これを知っています。アレイ内のすべてのドライブをテストしたところ、3 つすべてが SMART テストの「長い」バージョンに合格したため、プラッター、機械部品、またはオンボード コントローラーの問題ではありません。 SATAポートの不良。おそらくこれはあなたが見ているものです。ドライブを別のマザーボード ポートに切り替えるか、別のケーブルを使用してみて、改善するかどうかを確認してください。
フォローアップ:ミラーの 3 つのドライブへの拡張を完了し、失敗して不安定なドライブを md アレイから取り外し、ケーブルを新しいものにホットスワップし (マザーボードはこれをサポートしています)、ドライブを再度追加しました。再追加すると、すぐにドライブの再同期が開始されました。これまでのところ、ログに 1 つのエラーも記録されていません ドライブが頻繁に使用されているにもかかわらず。そうです、ドライブ ケーブルが壊れる可能性があります。
私はまったく同じ問題を抱えていました。私の場合、アクティブな RAID ディスクが同期中に読み取りエラーに苦しんでいることがわかりました。したがって、新しいディスクは新しいほうが正常に同期されたため、スペアとしてマークされたままになりました。
/var/log/messages およびその他のシステム ログでエラーを確認することをお勧めします。さらに、ディスクの SMART ステータスを確認することもお勧めします。
1) 短いテストを実行します:
"smartctl -t short /dev/sda"
2) テスト結果を表示します:
<ブロック引用>"smartctl -l selftest /dev/sda"
私の場合、これは次のようなものを返しました:
<ブロック引用>
===読み取りスマートデータセクションの開始 ===
SMART セルフテスト ログ構造のリビジョン番号 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
1 拡張オフライン 完了:読み取り失敗 90% 7564 27134728
2 短いオフライン 完了:読み取り失敗 90% 7467 1408449701
ライブ ディストリビューションを起動し、欠陥のあるディスクから新しい (現在は「予備」の) ディスクにデータを手動でコピーする必要がありました。
私はまったく同じ問題を抱えていて、アレイに再度追加したい 2 番目のディスクにエラーがあると常に考えていました。しかし、それは私の元のディスクに読み取りエラーがありました。
smartctl -t short /dev/sdX
で確認できます 数分後に smartctl -l selftest /dev/sdX
で結果を確認します .私にとっては、次のように見えました:
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed: read failure 20% 25151 734566647
私はこのマニュアルでそれらを修正しようとしました。それは楽しかった :-)。両方のディスクのエラーをチェックしたことは知っていますが、問題は、まだ md アレイにあるディスクに読み取りエラーがあるため、2 番目のディスクの追加に失敗することだと思います。
更新
smartctl -a /dev/sdX
を追加で実行する必要があります Current_Pending_Sector> 0 と表示される場合は、何か問題があります
197 Current_Pending_Sector 0x0012 098 098 000 Old_age 常に - 69
私にとっては、テストのためだけに RAID からディスクを削除し、読み取りエラーのために再同期できなかったことが間違いなく問題でした。同期は途中で中止されました。まだ RAID アレイにあるディスクを確認すると、smartctl で問題が報告されました。
上記のマニュアルでそれらを修正でき、保留中のセクターの数が減ったことがわかりました。しかし、多すぎて長くて退屈な手順なので、バックアップを使用して別のサーバーにデータを復元しました。
SMART を使用する機会がなかったので、セルフ テストでこれらの壊れたセクターが表示されなかったと思います。
私にとっては教訓です。アレイからディスクを取り外す前に、ディスクを確認してください。