誤ってドライブの 1 つに障害が発生した場合、RAID5 を復元するにはどうすればよいですか?

誤ってドライブの 1 つに障害が発生した場合、RAID5 を復元するにはどうすればよいですか?

Xubuntu 20.04 に mdadm で作成した RAID5 があります。3 つのドライブのうち 1 つを誤って故障してしまいました。アレイはまだ動作していますが、完全な操作を復元しようとすると、理解できないエラーや応答が表示されます。

SO: なんとか修正できたかな、できなかったら今何ができるかな...

/proc/mdstat の内容に「(F)」があるため、ドライブはまだ故障していると思われます。

root@camelot-b:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] 
md3 : active raid5 sdf1[0](F) sdg1[3] sde1[4]
      7813771264 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU]
      bitmap: 0/30 pages [0KB], 65536KB chunk

unused devices: <none>
root@camelot-b:~# 

ただし、--examine の出力は問題を示しておらず、実際、最後の行には 3 つのドライブすべてがアクティブであるというアレイの状態が示されています。

root@camelot-b:~# mdadm --examine /dev/sdf1
/dev/sdf1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 07c3d55f:2c9b1534:6b0d5b78:dd9856ed
           Name : camelot-x:3
  Creation Time : Sun Apr  2 19:07:19 2017
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 7813771264 (3725.90 GiB 4000.65 GB)
     Array Size : 7813771264 (7451.79 GiB 8001.30 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262056 sectors, after=0 sectors
          State : clean
    Device UUID : 24275237:b493169e:9e88df0d:ebaae551

Internal Bitmap : 8 sectors from superblock
    Update Time : Fri Feb 18 17:15:50 2022
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : c9840d0f - correct
         Events : 26597

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 0
   Array State : AAA ('A' == active, '.' == missing, 'R' == replacing)

答え1

ディスクが故障してからアレイ上のデータにほとんど変更がないかまったく変更がない場合は、--re-add を使用できる可能性があります。各ドライブのイベント数を確認できます。

mdadm --examine /dev/sd[e-g]1 | egrep 'Event|/dev/sd'

イベントの数がそれほど遅れていない場合 (ビットマップが有効になっている場合)、再度追加できます。

mdadm /dev/md3 --re-add /dev/sdf1

それでも問題が解決しない場合は、ディスクを再度追加する必要があります(これにより、完全な再構築がトリガーされる可能性があります)。

mdadm /dev/md3 -a /dev/sdf1

ドキュメントによると、mdadm は add (-a, --add) コマンドを発行するときに最初に再追加を試みます。再追加が機能しない場合にすぐに再同期に戻らないように、再同期なしでドライブの追加を試みたい場合は、再追加を実行すると便利です。

答え2

これは技術的な対応ではありませんが、有効です...実際に私自身も同じような状況に陥ったことがあります。この方法は、マシンがローカルであり、別のローカル コンピューターがある場合にのみ機能します。

**RAID5 には、1 つのドライブ障害からの回復機能があることを覚えておいてください。つまり、回復プロセス中に別のドライブに問題が発生しない限り、残りのドライブからアレイを再構築します。

  • 故障したシステムからドライブを物理的に取り外す
  • 別のマシンを使用して故障したドライブをフォーマットする
  • 新しくフォーマットしたドライブを元のマシンに戻します
  • RAIDアレイは回復プロセスを開始し、故障したドライブを再構築する必要があります。
  • 回復が完了すると、再び稼働状態に戻ります。

よく知らない構成の変更はお勧めできません。データが回復できない場合は、アレイを再構築して正常性状態を修正するのに時間を無駄にする必要はありません。

関連情報