4つのディスクにソフトウェアRAID5アレイ(Linux md)があります。
アレイを劣化させずにディスクの1つを新しいディスクに交換したいと思います。、可能であればオンラインで。これがどのように可能ですか?
次のような作業をしたくないので、これは重要です。
- 他のディスクにストレスを与える危険があるため、再構築中に1つがクラッシュする可能性があります。
- 「パリティなしの状況」にさらされる危険があるため、しばらくの安全網はありません。
オンラインでこれを行うにはあまりにも多くのことが必要であるため、古いdd
ディスクのデータを新しいディスクにraw copy()する必要があります。オフラインそれでは、交換をしてみますが、理論的には可能です。
いくつかの背景:このディスクは5.5年以上ほぼ連続的に回転してきました。現時点では、まだ完全に動作し、すべて(長い)SMARTセルフテストに合格しました。しかし、4つのディスクのうちの1つが長期間持続しないと考える理由があります(予測エラーの仮定)。
ベストアンサー1
mdadm 3.3以降を使用
~からmdadm
3.3(2013年9月3日発行)3.2+カーネル、次のようにすることができます:
# mdadm /dev/md0 --add /dev/sdc1
# mdadm /dev/md0 --replace /dev/sdd1 --with /dev/sdc1
sdd1
これは交換したいデバイスであり、これにはsdc1
好ましいデバイスであり、アレイからスペアデバイスとして宣言する必要があります。
この--with
オプションはオプションであり、指定しない場合は使用可能な置換が使用されます。
以前のmdadmバージョン
注:また3.2+カーネル。
まず、新しいドライブをスペアドライブとして追加します(およびディスクデバイスをそれぞれRAIDとディスクデバイスに交換しますmd0
)sdc1
。
# mdadm /dev/md0 --add /dev/sdc1
sdd1
次に、次のように(失敗したデバイスに)コピー - 交換操作を開始します。
# echo want_replacement > /sys/block/md0/md/dev-sdd1/state
結果
システムは、で読み取ることができるすべてのブロックをコピーsdd1
しますsdc1
。読み取れないブロックが見つかった場合は、パリティに基づいてブロックを再構築します。操作が完了すると、前のスペアドライブ(ここでsdc1
:)がアクティブドライブになり、エラーが発生したドライブはエラー(F)と表示されるため、削除できます。
メモ:クレジットは次のとおりですフロストスーツそしてアンスガエステルのみ元の解決策を見つけた人(参照質問が重複しています。)。
古いカーネル
他の答えは以下を提案します。