RAID 컨트롤러는 어떤 디스크에 결함이 있는지 어떻게 확인합니까?

RAID 컨트롤러는 어떤 디스크에 결함이 있는지 어떻게 확인합니까?

그래서 XOR 패리티를 사용하면 스트라이프 세트에서 어떤 디스크에 결함이 있는지 확인할 수 없다는 생각이 들었습니다.

예를 들어 잘못된 펌웨어로 인해 세트의 디스크 중 하나가 플래터의 비트를 자동으로 뒤집고 있다고 가정합니다(비트 부패라고도 함). 디스크가 실패하거나 불량 블록을 보고하지 않지만 때때로 입력된 내용이 아닌 다른 내용을 디스크에 커밋합니다.

다른 체크섬과 마찬가지로 XOR을 사용하면 스트라이프의 어떤 디스크가 잘못된 패리티 계산의 원인인지 알 수 없지만 디스크 중 하나에 문제가 있다는 것을 알 수 있습니다.

이 시나리오는 레이드 5의 제약을 고려하여 어느 정도 해결해야 하지만 솔직히 이해하기 어렵습니다. 수평(raid-4'ish) 및 대각선 패리티가 있는 raid-6이 불량 블록을 삼각 측량하고 불량 영역이 포함된 디스크를 보여줄 수 있다고 상상할 수 있습니다.... 하지만 이 질문은 raid-5 세트와 관련이 있습니다.

미리 감사드립니다.

답변1

RAID 컨트롤러는 I/O 오류가 발생하거나 응답하지 않는 디스크를 확인하여 결함이 있는 디스크를 결정합니다.

최신 하드 드라이브(즉, 지난 20년 정도에 만들어진 드라이브)는 섹터 수준 ECC를 사용하여 비트 플립 오류를 찾아 수정합니다. 현재 사용 중인 ECC 시스템은 섹터의 모든 단일 비트 오류를 ​​수정할 수 있으며 모든 이중 비트 오류를 ​​찾아낼 수 있습니다. 섹터를 반복적으로 읽을 때 지속적으로 단일 비트 오류가 발생하는 경우 드라이브 펌웨어는 해당 섹터를 드라이브의 사용되지 않은 부분에 자동으로 다시 매핑합니다(모든 최신 하드 드라이브에는 이 목적을 위한 약간의 여유 공간이 있습니다). 이중 비트 오류가 발생하면 펌웨어는 컨트롤러에 I/O 오류를 보고하고 RAID 컨트롤러는 드라이브를 실패로 표시합니다. 데이터가 감지할 수 없을 정도로 손상되려면 단일 섹터에서 최소 3비트를 뒤집어야 합니다. 이는 거의 발생하지 않는 일입니다.

잘못된 펌웨어로 인해 비트 플립이 발생한다고 의심되는 경우 일관성 검사를 실행하여 RAID 수준(RAID 1, 10, 5 및 6의 경우)에서 이를 발견할 수 있지만 이는 패리티/ 미러링이 일치하지 않습니다. 어떤 드라이브가 불량인지는 알려주지 않습니다. 어레이에서 드라이브를 가져와 즐겨 사용하는 디스크 검사 도구를 사용하여 불량 블록에 대한 "표면 스캔"을 실행하여 불량 드라이브를 찾을 수 있습니다. 펌웨어가 불량인 경우 스캔을 통해 수십만 개의 불량 섹터를 찾아야 합니다.

관련 정보