GNU/Linux >> Linux の 問題 >  >> Linux

Linux RAID5 アレイでまだ故障していないディスクを安全に交換するにはどうすればよいですか?

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 以降のカーネルが必要です。

まず、新しいドライブをスペアとして追加します (md0 を置き換えます)。 および sdc1 それぞれ、RAID とディスク デバイスで):

# mdadm /dev/md0 --add /dev/sdc1

次に、次のようなコピー置換操作を開始します (sdd1 失敗したデバイスです):

# echo want_replacement > /sys/block/md0/md/dev-sdd1/state 

結果

システムは sdd1 からすべての読み取り可能なブロックをコピーします sdc1 へ .読み取り不能なブロックになると、パリティから再構築されます。操作が完了すると、元のスペア (ここでは:sdc1 ) がアクティブになり、障害のあるドライブは障害 (F) としてマークされるため、それを取り外すことができます。

注: クレジットは frostschutz にあります アンスガル エステルマン 元の解決策を見つけた人 (重複した質問を参照)。

古いカーネル

他の回答が示唆するもの:

  • ジョニー のアプローチ:アレイを RAID6 に変換し、ディスクを「交換」してから、RAID5 に戻します。
  • ハウケ・ラギング のアプローチ:RAID5 アレイからディスクを簡単に取り外し、新しいディスクで RAID1 (ミラー) の一部にし、そのミラー ドライブを RAID5 アレイに戻します (理論上)...

RAID-6 (1 つではなく 2 つのパリティ ディスク) を実行することに問題がなく、mdadmin 3.1.x 以降を実行している場合は、RAID-5 アレイを RAID-6 に変換して、パリティ ディスクを追加することができます。 .ただし、これにより、再構築中にアレイに負荷がかかります。また、書き込み中に更新するパリティ ディスクが増えるため、パフォーマンスに影響があります。

ただし、正常に完了した場合は、障害が発生したディスクをそのままにしておくことができ、最終的に障害が発生した場合でも、アレイのパリティ保護を維持できます。 RAID6 のままにしておくのを待たなければ、アレイを RAID6 から RAID5 に戻すことができると思います。

アレイをRAID-5のままにして、アレイを劣化モードにせずにディスクを交換するオンラインの方法はわかりません。交換に失敗したとマークする必要があると思います。あなたの dd コピーのアイデアがその方法かもしれません。


これは要件を満たす可能性があります

<オール>
  • オンライン
  • 交換するディスク以外のディスクに負荷をかけないでください
  • しかし、次の方法がうまくいくとしても、そのような推奨事項はおそらく「書籍」には見当たらないでしょう...

    アイデア:

    <オール>
  • アレイからディスク OLD を取り出します (少しの間):mdadm --manage /dev/raid5 --fail /dev/OLD
  • 古いディスクと新しいディスクから新しい md デバイス (RAID-1) を作成します:mdadm --build /dev/md42 --level=mirror --raid-devices=2 /dev/OLD /dev/NEW
  • RAID-1 を (/dev/OLD の代わりに) アレイに戻します:mdadm --manage /dev/raid5 --re-add /dev/md42
  • すべきこと :-) 起こる:

    <オール>
  • RAID-5 は /dev/md42 を同期します。これにはそれほど時間はかかりません。
  • RAID-5 は正常に動作するようになりました (ただし速度は遅くなります)。
  • /dev/NEW は /dev/OLD と同期されます。
  • 同期の進行状況を監視します (cat /proc/mdstat または mdadm --monitor )。同期が完了したら、RAID-1 を RAID-5 から取り出し、RAID-1 を停止し、/dev/NEW を RAID-5 に再度追加します。問題がなければ、問題を回避するために /dev/OLD の mdraid スーパーブロックを上書きします:mdadm --zero-superblock

    警告: 高速 RAID-5 同期は、ビットマップを使用する場合にのみ機能する場合があります。持っていない場合は、最初にダミーの RAID-5 (ビットマップなし) でテストすることをお勧めします。または、1 つ追加します。少なくとも外部のものを追加できるはずです。そうしないと、デバイスを変更する前に RAID-5 を停止する必要がある場合があります。ただし、RAID-5 から起動する場合、これは少し複雑になります。


    Linux
    1. ディスクを破壊せずにLinuxでddを使用する方法

    2. Linuxでディスクをパーティション分割する方法

    3. mdadm に RAID5 アレイを強制的に停止させる方法は?

    1. LinuxでディスクがSSDかHDDかを確認する方法

    2. LinuxでSSDまたはHDDのディスクを見つける方法は?

    3. Linux で UID または GID を安全に変更する方法

    1. Linuxでハードドライブを交換する方法

    2. Linuxでディスク容量を確認する方法

    3. Linuxでパーティションを削除する方法