Linux mdadm 소프트웨어 RAID 6-비트 손상 복구를 지원합니까? 구현 이외의 유일한 표준

Wikipedia는 “RAID 2는 RAID 6의 일부 구현 이외의 유일한 표준 RAID 레벨로, 데이터의 단일 비트 손상으로부터 정확한 데이터를 자동으로 복구 할 수 있습니다”라고 말합니다.

Linux의 RAID 6 mdadm 구현이 단일 비트 데이터 손상을 자동으로 감지하고 복구 할 수있는 구현 중 하나인지 아는 사람이 있습니까? 이것은 다른 버전과 다른 경우 CentOS / Red Hat 6과 관련이 있습니다. 온라인 검색을 시도했지만 운이 없었습니다.

SATA 오류율이 1E14 비트에서 1이고 1.6TB13 비트를 포함하는 2TB SATA 디스크에서 특히 데이터 손상을 방지하는 데 관련이 있습니다.

2015 년 6 월 17 일 수정

나는 이것이 원래 생각했던 문제가 아니라고 생각합니다- 하드 디스크 / SSD-오류 감지 및 처리-자동 데이터 손상이 안정적으로 방지됩니까? 상세 사항은



답변

Linux 소프트웨어 RAID는 비트 손상으로부터 사용자를 보호하지 않으며 자동 데이터 손상은 잘 알려진 문제입니다. 실제로 커널이 한 디스크에서 데이터를 읽을 수 있다면 그것이 나쁜지 알 수 없을 것입니다. RAID는 데이터를 읽을 때 I / O 오류가있는 경우에만 시작됩니다.

데이터 무결성이 걱정되면 체크섬을 저장하고 확인하여 데이터 무결성을 보장하는 Btrfs 또는 ZFS 와 같은 파일 시스템 사용을 고려해야 합니다. 이러한 파일 시스템은 RAID 기능도 처리하므로 커널 소프트웨어를 사용할 필요가 없습니다.


답변

RAID5 및 RAID6은 전체 드라이브의 패리티를 확인하면 비트 손상을 감지하고 일반적으로 수정할 수 있습니다. 이를 “스크러빙”또는 “패리티 검사”라고하며 일반적으로 대부분의 프로덕션 RAID 시스템에서 24-48 시간이 걸립니다. 이 시간 동안 성능이 크게 저하 될 수 있습니다. (일부 시스템에서는 운영자가 읽기 / 쓰기 액세스 또는 그 아래에서 스크러빙의 우선 순위를 정할 수 있습니다.) RAID6은 두 번의 드라이브 오류가있는 경우이를 수정할 수있는 반면 RAID5는 1 개의 드라이브 오류 만 처리 할 수 ​​있으므로 수정할 가능성이 높습니다. 활동 증가로 인해 스크러빙 할 때 드라이브 오류가 발생할 가능성이 높습니다.


답변

나는 이것을 주석으로 추가했지만 충분한 평판을 얻지 못했다. RAID5가 비트 손상을 감지 할 수 있지만 읽기 오류없이 어떤 드라이브가 손상되었는지는 알 수 없습니다. 결과적으로 스크럽은 읽기 오류 없이이 문제를 해결할 수 없었습니다. 대부분 로그를 기록하고 일치하도록 패리티 비트를 업데이트합니다. RAID6의 알고리즘은 위치에 따라 다르므로 오류가 포함 된 드라이브를 감지하고 비트 손상을 수정할 수 있습니다.


답변

RAID 6의 기능과 관련하여 위의 모든 답변이 잘못되었습니다. RAID 6 알고리즘은 RAID 5와 마찬가지로 바이트 단위로 작동하며, 하나의 드라이브에서 단일 바이트가 손상되면 드라이브가 표시 한 오류가 없어도 감지되고 수정되었습니다. 이를위한 알고리즘은 완전히 설명되어 있습니다.

https://mirrors.edge.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf

이 점검을 수행하려면 데이터 드라이브와 함께 패리티 P 및 Q 드라이브도 읽어야합니다. 계산 된 패리티 P ‘와 Q’가 드라이브 오류없이 다르면 분석에서 어떤 드라이브가 잘못되었는지 정확하게 파악하고 데이터를 수정할 수 있습니다.

또한 드라이브 식별이 존재하지 않는 드라이브 (예 : 15 개의 드라이브가있는 경우 드라이브 137)에 대한 드라이브 인 경우 둘 이상의 드라이브가 THAT BYTE에 대해 손상된 데이터를 제공하여 수정할 수없는 오류 오류를 나타냅니다. 세트에 256 개보다 적은 수의 드라이브가있는 경우, 이는 바이트 당 높은 확률로 감지되며 블록에 많은 바이트가 있으므로 블록 당 매우 높은 확률로 감지됩니다. 드라이브 식별이 RAID 블록 내의 모든 바이트에 대해 일치하지 않는 경우에도 두 개 이상의 드라이브가 손상된 데이터를 제공하고 일반적으로 조건을 거부 할 수 있지만 모든 드라이브 식별이 유효한 한 블록이 반드시 필요한 것은 아닙니다. 거절 당하다

이 수정을 수행하는 데 일반적인 확인 시간보다 오래 걸리지 만 증후군 (P 및 Q) 계산으로 만 수행하면 오류가 표시됩니다.

그러나이 모든 것은 1 바이트 손상이 처리되는지 여부를 결정하기 위해 mdadm 코드를 검사하지 않았습니다. mdadm이 월간 검색에서 RAID6 증후군 오류를보고하지만 오류 메시지에서 수정 중인지 확실하지 않습니다. 드라이브 배열을 중지하거나 메시지에서 특정 드라이브를 식별하지 않습니다.