固定MD RAIDをデバッグする方法は?

固定MD RAIDをデバッグする方法は?

多くのディスクを備えた古いバックアップサーバーがあり、mdRAID 5設定のマウントの1つが凍結されました。問題を診断して再び機能させるにはどうすればよいですか? 1つのサブシステムだけがこの特定のマウントポイントを必要とするため、システム全体を再起動しないようにします。

これまでの診断:

# cat /proc/mdstat
...
md0 : active raid5 sdn1[2] sdm1[1] sdo1[4] sdl1[0] sdg1[5] sda1[6]
      29301952000 blocks super 1.2 level 5, 512k chunk, algorithm 2 [6/6] [UUUUUU]
      [==========>..........]  check = 54.4% (3191189500/5860390400) finish=3314902.0min speed=13K/sec
      bitmap: 0/44 pages [0KB], 65536KB chunk

/proc/sys/dev/raid/speed_limit_max1時間調整して待っても/proc/sys/dev/raid/speed_limit_min進展はありません。

しかし、mdadmすべてが大丈夫に見えます。

# mdadm --query --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Wed Jun 15 23:50:50 2016
        Raid Level : raid5
        Array Size : 29301952000 (27944.52 GiB 30005.20 GB)
     Used Dev Size : 5860390400 (5588.90 GiB 6001.04 GB)
      Raid Devices : 6
     Total Devices : 6
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Mon Jul  5 01:42:59 2021
             State : active, checking 
    Active Devices : 6
   Working Devices : 6
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : bitmap

      Check Status : 54% complete

              Name : examplehost:md0  (local to host examplehost)
              UUID : ed0000c4:47000085:8000006f:221938f5
            Events : 404407

    Number   Major   Minor   RaidDevice State
       0       8      177        0      active sync   /dev/sdl1
       1       8      193        1      active sync   /dev/sdm1
       2       8      209        2      active sync   /dev/sdn1
       4       8      225        3      active sync   /dev/sdo1
       6       8        1        4      active sync   /dev/sda1
       5       8       97        5      active sync   /dev/sdg1

基本デバイスはうまく動作します。実行をテストしました。

dd if=/dev/sdX of=/tmp/test.img bs=1M count=1

このRAIDの各ディスクについて、予想されるディスクの起動と正常な応答時間を取得します。

したがって、基本的なハードウェアは正常に動作しているように見えますが、実際にはmd raidが停止しています。今回は、RAIDの実際のマウントポイントでエラーは発生しませんが、IO要求にまったく応答しないようです。単純なものでさえ、ls -la永遠にぶら下がるでしょう。

journalctl --since "7 days ago" | grep "blocked for more than"速度が遅いことを意味しますmd1が、md0まったく応答がなくてもシステムログには表示されません。

Jul 04 01:20:14 examplehost kernel: INFO: task jbd2/md1-8:2262 blocked for more than 120 seconds.
Jul 04 01:38:21 examplehost kernel: INFO: task jbd2/md1-8:2262 blocked for more than 120 seconds.
Jul 04 02:04:32 examplehost kernel: INFO: task jbd2/md1-8:2262 blocked for more than 120 seconds.

マウントポイントがmd1正常に動作していたので、その夜の負荷が大きすぎたようです。

このインストールの問題を解決する方法についてのヒントを提供できますか?私は明らかにサーバー全体を再起動せずに問題を解決する提案を好む。ファイルシステムをアンマウントせずにこの問題を解決するためのいくつかの提案を提案できる場合は、より良いでしょう。最初はこれがハードウェアの中断だと仮定しましたが、そうではありません。

以前はこのようなことがあったようですが、この場合はサーバーが再起動されました。しかし、実際の問題を理解して実際のソリューションを適用したいと思います。違いがある場合に備えて、システムはLinuxカーネルバージョン5.4.119を実行しています。

関連情報