RAID6 스크러빙 불일치 복구?

RAID6 스크러빙 불일치 복구?

를 사용하여 mdadm 배열 스크럽을 시작할 수 있으며 echo 'check' > /sys/block/mdX/md/sync_action, 불량 섹터가 발견되면자동으로 다시 작성(미러 또는 RAID5/6의 패리티 정보에서).

그러나 만일모든 블록을 성공적으로 읽었으나 일관성이 없는 것으로 확인되면 불일치로 간주됩니다.. 이 경우 mdadm은 어떤 미러에 올바른 데이터(RAID1/10)가 포함되어 있는지 또는 손상된 데이터나 패리티인지(RAID5) 여부를 알 수 없기 때문에 복구가 복잡합니다.

이론적으로 RAID6을 올바르게 이해하면 RAID6의 경우에는 해당되지 않습니다. 이중 패리티가 존재하기 때문에 데이터인지 패리티인지 단일 손상이 어디에 있는지 정확히 찾아내는 것이 가능해야 합니다.

  1. 내 이해가 정확합니까? 이것이 이론적으로 가능해야합니까?
  2. 맞다면 mdadm은 어떤 블록이 손상되었는지 추측하지 않고 이 불일치 데이터를 복구할 수 있습니까?

답변1

이론적으로는 가능합니다. 데이터+패리티는 데이터가 어떠해야 하는지에 대한 세 가지 의견을 제공합니다. 그 중 두 개가 일관성이 있으면 세 번째가 잘못된 것이라고 가정하고 처음 두 개를 기반으로 다시 작성할 수 있습니다.

Linux RAID6에서는 이 작업을 수행하지 않습니다. 대신 불일치가 있을 때마다 두 패리티 값이 잘못된 것으로 간주되어 데이터 값에서 다시 계산됩니다. '과반수 투표' 시스템으로 변경하자는 제안도 있었지만 아직 시행되지 않았습니다.

패키지 mdadm에는 다음이 포함됩니다.raid6check 유틸리티패리티가 일치하지 않는 경우 어떤 디스크가 불량인지 알아내려고 시도하지만 가장자리가 약간 거칠고 기본적으로 설치되지 않으며 발견된 오류를 수정하지 않습니다.

답변2

raid6check의 유틸리티에는 버전 3.3(2013-09-03에 출시됨) 이후의 모드가 mdadm포함되어 있습니다 (보다 정확하게는 이 커밋 이후:repairhttps://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=8a63c73123b9d022107c82bd684e17bf87bc081e)

관련 정보