mdadm은 무엇이 변경되었는지 어떻게 알 수 있나요?

mdadm은 무엇이 변경되었는지 어떻게 알 수 있나요?

약 10일 전에 mdadm을 사용하여 관리했던 RAID 1이 실패했습니다. 어레이는 USB를 통해 연결된 2개의 외부 2TB 드라이브로 구성되어 있으며 느슨한 연결로 인해 오류가 발생한 것으로 의심됩니다.

내 bash 기록을 바탕으로 다음 명령을 입력했습니다.

sudo mdadm --manage /dev/md1 --fail /dev/sda1
sudo mdadm --manage /dev/md1 --remove /dev/sda1
cat /proc/mdstat
sudo mdadm --manage /dev/md1 --add /dev/sda1
cat /proc/mdstat
mailx
cat /proc/mdstat

온라인에서 지침을 찾았지만 iirc, 첫 번째 및/또는 두 번째 명령은 /dev/sda1더 이상 배열의 일부가 아니기 때문에 실패합니다.

오류가 발생한 시간과 위 명령을 입력한 시간 사이에 데이터가 어레이의 파일 시스템에 기록되었을 것입니다.

나는 네 번째 명령을 실행한 후에 mdadm이 모든 데이터를 복사할 것이라고 가정합니다. /dev/sdb1/dev/sda1작업에는 꽤 시간이 걸릴 것입니다. 그런데 몇 분 뒤에 마지막 줄을 확인해보니 이미 완료되어 있었습니다.

변경된 데이터만 복사하는 방법을 모르기 때문에 처음 128MiB가 다르다는 것을 알고 있기 때문에 처음 128MiB를 제외하고 RAID 및 sha256summed 에 /dev/sda1저장된 데이터의 무결성이 걱정됩니다. /dev/sdb1나머지 디스크는 각각 정확히 동일한 데이터를 저장한 것으로 밝혀졌으므로 mdadm은 어레이의 무결성을 복원했습니다.

어떤 부분이 변경되었는지 어떻게 알 수 있나요? 실패한 시점과 위 명령을 실행한 시점 사이에 재부팅하면 계속 작동합니까?

답변1

cat /proc/mdstat해당 RAID에 대한 비트맵이 표시되어야 합니다. 이는 파일 시스템의 로그와 유사합니다. 시스템이 충돌하거나 RAID가 손상된 경우 동기화 기능을 통해 어떤 데이터가 손상되었는지 확인할 수 있습니다. 다른 모든 것은 무시할 수 있습니다. 그래서 재구축 속도가 매우 빠릅니다.

비트맵 라인의 의미

~에서https://raid.wiki.kernel.org/index.php/Mdstat

bitmap: 0/10 pages [0KB], 16384KB chunk

예: 23/234는 무엇을 의미합니까?

이는 메모리의 비트맵을 나타냅니다(기본적으로 디스크의 비트맵 내용 캐시 - 비트맵 작업을 더욱 효율적으로 만듭니다).

23/234라면 234페이지 중 23페이지가 메모리 비트맵에 할당되었다는 뜻이다. 이러한 페이지는 요청 시 할당되고 비어 있으면(모두 0) 해제됩니다. 인 메모리 비트맵은 비트맵 블록당 16비트를 사용하여 해당 블록에 대해 진행 중인 모든 쓰기를 처리하므로 사실상 디스크 비트맵보다 16배 더 큽니다.

관련 정보