RAID는 자동으로 재동기화됩니까?

RAID는 자동으로 재동기화됩니까?

RAID 어레이의 상태를 무작위로 확인한 cat/proc/mdstat결과 어레이 중 하나가 재동기화 중인 것으로 나타났습니다.

md1 : active raid1 sdb7[1] sdc7[0]
      238340224 blocks [2/2] [UU]
      [==========>..........]  resync = 52.2% (124602368/238340224) finish=75.0min speed=25258K/sec

왜 그런 겁니까? 그게 무슨 뜻이야? 권한을 통해 마운트 지점에 액세스할 수 있는 것 같습니다 r/w.

편집 1(에 대한 응답SLM의 답변)

grep통과하면 실제로 아무것도 표시되지 않으며 스위치는 나에게 많은 것을 알려주지 않습니다. 즉 dmesg, --detail진행 중인 재동기화를 표시하지만... 왜 동기화되지 않을 수 있는지에 대한 힌트는 없습니다. - 하드웨어 교체를 시작하기 전에 좀 지켜봐야 할 것 같습니다.

답변1

이는 RAID의 두 구성원 간의 동기화가 서로 동기화되지 않았음을 나타내는 것 같습니다.

1. 조사일지

dmesg로그를 조사하여 어레이를 구성하는 물리적 HDD에 하드웨어 오류를 나타내는 메시지가 있는지 확인하겠습니다 .

2. mdadm을 확인하세요

mdadm아래와 같이 스위치를 사용하여 --detail재동기화에 대한 자세한 정보를 찾을 수도 있습니다 .

$ sudo mdadm --detail /dev/md0
/dev/md0:
        Version : 00.90.03
  Creation Time : Sat Jan 26 09:14:11 2008
     Raid Level : raid1
     Array Size : 976759936 (931.51 GiB 1000.20 GB)
  Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Fri Jan  1 01:29:16 2010
          State : clean, resyncing
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

 Rebuild Status : 50% complete

           UUID : 37a3bfcb:41393031:23c133e6:3b879f08
         Events : 0.2178969

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

두 장치 모두 괜찮아 보이고 어떤 장치가 문제를 일으키는지 정확히 알 수 없는 경우 각 HDD에서 HDAT2 또는 SpinRite와 같은 진단 도구를 일시적으로 실행하여 상태를 확인해야 할 수 있습니다.

3. 배선

하드 드라이브가 점검되면 케이블 연결 점검을 시작하고 일반적으로 교체합니다.

4. 컨트롤러

다음으로 컨트롤러 자체를 자세히 살펴보고 영향을 받는 시스템에서 드라이브를 제거하고 보조 시스템에서 진단하거나 영향을 받는 시스템에 타사 컨트롤러 카드를 추가하여 문제를 추가로 진단합니다.

5. 전원 공급 장치

믿거나 말거나, 저는 과거에 HDD 및 RAID 문제를 겪은 적이 있으며 고장이 나거나 결함이 있는 전원 공급 장치를 교체하면 RAID 상태 문제가 해결되었습니다.

답변2

cron 파일을 확인하세요. 많은 배포판에서는 일주일에 한 번 예정된 재동기화/재확인을 수행합니다.

CentOS 7.1에서는 /etc/cron.d/raid-check에 있습니다.

# Run system wide raid-check once a week on Sunday at 1am by default
0 1 * * Sun root /usr/sbin/raid-check

동작을 구성하려면 /etc/sysconfig/raid-check를 편집하세요.

답변3

데비안에서는 다음에서 수행됩니다:

/etc/cron.d/mdadm

장애가 있는:

chmod -x /usr/share/mdadm/checkarray

cron 작업은 checkarray실행 전에 실행 가능한지 확인합니다.

당신은 또한 볼 수 있습니다.

답변4

최신 Ubuntu(22.04 이상)에서는 시스템 타이머에 의해 시작된 CRON 작업을 통해 RAID가 확인/재동기화됩니다.

$ systemctl list-timers
NEXT                        LEFT                LAST                        PASSED        UNIT                           ACTIVATES                       
___________________________________________________________________________________________________________________________________________________
Tue 2023-06-06 12:52:04 PDT 5h 17min left       Mon 2023-06-05 02:36:42 PDT 1 day 4h ago  mdmonitor-oneshot.timer        mdmonitor-oneshot.service
Sun 2023-07-02 22:17:28 PDT 3 weeks 5 days left Sun 2023-06-04 21:31:43 PDT 1 day 10h ago mdcheck_start.timer            mdcheck_start.service
n/a                         n/a                 Tue 2023-06-06 03:17:46 PDT 4h 16min ago  mdcheck_continue.timer         mdcheck_continue.service

(다른 타이머는 표시되지 않습니다)

다른 사람들이 언급했듯이 그들은 귀하의 데이터가 안전한지 확인하기 위해 적어도 한 달에 한 번 이 작업을 수행 mdcheck합니다 . resync데이터(테라바이트)가 많으면 시간이 오래 걸릴 수 있습니다.

show다음 명령을 사용하면 각 항목에 대한 자세한 정보를 얻을 수 있습니다 .

systemctl show mdcheck_start

그러면 검사가 시작됩니다. 종료되었는지 확인하십시오 mdcheck_continue(재부팅으로 인해 중단된 경우).

수표는 어떻게 작동하나요?

mdadm매뉴얼 페이지를 보면 다음과 같이 나와 있습니다.

_ --action= _

모든 MD 장치에 대해 유휴, 정지, 확인, 수리 중 하나의 "sync_action"을 설정합니다. 유휴로 설정하면 현재 실행 중인 작업이 중단되지만 일부 작업은 자동으로 다시 시작됩니다. 동결로 설정하면 현재 작업이 중단되고 다른 작업이 자동으로 시작되지 않습니다.

점검 및 수리에 대한 자세한 내용은 "Scrubs and Mismatches" 아래의 md(4)에서 찾을 수 있습니다.

그래서 우리는 이렇게 합니다:

man md

그리고 스크럽을 검색해 보세요...

문질러서 일치하지 않음

저장 장치는 언제든지 불량 블록을 생성할 수 있으므로 어레이에 있는 모든 장치의 모든 블록을 주기적으로 읽어 가능한 한 빨리 이러한 불량 블록을 잡아내는 것이 중요합니다. 이 과정을 스크러빙이라고 합니다.

md 배열은 장치의 sysfs 디렉터리에 있는 md/sync_action 파일에 검사 또는 복구를 작성하여 정리할 수 있습니다.

[...]

systemctl명령은 복구 작업을 md로 보내고 계속하면 명령이 실제로 실행되고 있는지 확인됩니다. 이를 통해 다시 시작 프로세스가 프로세스를 완전히 중단하고 다시 시작할 수 있습니다.

관련 정보