고정된 MD RAID를 디버깅하는 방법은 무엇입니까?

고정된 MD RAID를 디버깅하는 방법은 무엇입니까?

우리는 많은 디스크가 포함된 오래된 백업 서버를 가지고 있으며, mdRAID 5 설정이 있는 마운트 중 하나가 이제 동결되었습니다. 문제를 진단하고 다시 작동시키려면 어떻게 해야 합니까? 하나의 하위 시스템에만 이 특정 마운트 지점이 필요하므로 전체 시스템을 재부팅하지 않으려고 합니다.

지금까지의 진단:

# 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_max한 시간 동안 조정하고 기다려도 /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를 실행하고 있습니다.

관련 정보