외부 비트맵이 있는 MD RAID 1이 완전히 재동기화되지 않습니다.

외부 비트맵이 있는 MD RAID 1이 완전히 재동기화되지 않습니다.

흥미로운 구성이 있습니다. Windows와 Linux 모두에서 표시되어야 하는 RAID 1이 포함된 이중 부팅 시스템입니다. Windows 설치는 Win 7 Enterprise이고 Linux 설치는 Kubuntu 10.04입니다. RAID가 작동하도록 하기 위해 Windows의 "동적 디스크" RAID 1을 사용하여 설정하고 영구 슈퍼 블록이 없는 MD와 다른 파티션의 쓰기 전용 비트맵을 사용하여 Linux에서 이를 가져왔습니다. (이 비트맵이 없으면 MD는 어레이가 동기화되었는지 알 수 없으며 어레이가 시작될 때마다 완전한 재동기화를 수행합니다.) 어레이는 다음과 같이 조립됩니다.

mdadm --build /dev/md1 -l 1 -n 2 -b /var/local/md1.bitmap /dev/sdb2 /dev/sdc2

나는 이 명령을 처음 실행했을 때 배열을 다시 동기화하고 더티 청크 없이 비트맵을 작성하면 모든 것이 잘 될 것이라고 예상했습니다. 이는 사실이 아니었습니다. 재동기화를 완료한 후 비트맵이주로깨끗하지만 약 5%의 더러운 블록이 남아 있음이 밝혀졌습니다.

mdadm -X /var/local/md1.bitmap

나는 /dev/md1에 파일 시스템을 마운트하거나 다른 방식으로 건드리지 않았습니다.

그런 다음 어레이를 중지하고 다시 시작하는 것을 발견했습니다.

mdadm --stop /dev/md1
mdadm --build /dev/md1 -l 1 -n 2 -b /var/local/md1.bitmap /dev/sdb2 /dev/sdc2

대부분의 블록이 깨끗한 것으로 표시되었기 때문에 빠르게 진행된 재동기화와 함께 실제로 비트맵을 읽었습니다. 혼란스러운 부분은 이 재동기화로 인해 더티 블록의 수가 더 줄어들었지만 여전히 모두 제거되지는 않았다는 것입니다. 반복적으로 중지하고 다시 시작하면 더티 블록 수를 천천히 약 0.6%로 낮출 수 있었는데, 그 수준은 평준화되는 것처럼 보였습니다.

이 문제의 원인은 무엇입니까? 어딘가에서 동기화 중에 블록을 건너뛰거나 비트맵에서 제대로 지워지지 않는 경쟁 조건이 있다는 냄새가 나지만 실제로 이를 증명할 증거는 없습니다. 두 드라이브 모두 새 드라이브이고 읽기 오류가 없고 smartctl -a에 의해 보고된 섹터가 재할당되었기 때문에 하드웨어 문제처럼 보이지 않습니다.

답변1

이런 빠른 추측으로 인해 기분이 상하지 않기를 바랍니다. 하지만 확인하기 전에 작업이 완료되었는지 /proc/mdstat확인하기 위해 파일을 모니터링하셨나요 ?--buildmdadm -X

# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 nbd0[3] sda10[0]
      53246315 blocks super 1.2 [3/1] [U__]
      [>....................]  recovery =  1.0% (537088/53246315) finish=203.0min speed=4326K/sec
      bitmap: 1/1 pages [4KB], 65536KB chunk

두 번째로 확인해야 할 것은 /var/local이 man을 인용하여 ext2/ext3인지 여부입니다.

참고: 외부 비트맵은 ext2 및 ext3에서만 작동하는 것으로 알려져 있습니다. 다른 파일 시스템에 비트맵 파일을 저장하면 심각한 문제가 발생할 수 있습니다.

관련 정보