Linux mdadm 소프트웨어 RAID 6-비트 손상 복구를 지원합니까?


15

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-오류 감지 및 처리-자동 데이터 손상이 안정적으로 방지됩니까? 상세 사항은

답변:


15

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

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


감사. 누군가에게 도움이되는 경우 chutz의 답변에서 더 많은 검색 아이디어를 얻었으며 2011 년 2 월 17 일 mdadm 관리자가 모든 읽기에서 패리티 검사를 강제 할 수있는 능력을 추가 할 계획이 없다고 말했습니다. 참조 spinics.net/lists/raid/msg32816.html
sa289

3

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


1
RAID 스크럽 중에 성능이 눈에 띄게 저하된다는 것은 보편적으로 사실이 아닙니다. 스크럽이 사용 가능한 모든 시스템 자원을 사용하고 "멍청한"경우입니다. 그러나 모든 SAN과 저는 대부분의 RAID 컨트롤러가 우선 순위를 낮추거나 "좋은"우선 순위로 스크럽을 실행하여 자원 사용률을 동적으로 조정하여 프로덕션 성능을 유지하는 데 필요한 자원을 소비하지 않을 것이라고 생각합니다.
Jeremy

당신이 올바른지. 뉘앙스를 추가하기 위해 답을 편집했습니다.
vy32

mdadm raid 6 어레이가 / dev / md1 인 경우 패리티를 확인하고 단일 비트 손상 복구를 시도하는 명령입니다. "echo check> / sys / block / md1 / md / sync_action"
BeowulfNode42

2
그들은 "비트 손상으로부터 보호"하지 않으며, 당신이 문지르면 비트 손상감지 합니다. 자세한 내용은 여기 에서 내 질문 을 참조하십시오.

"RAID5 및 RAID6에서 비트 손상을 복구 할 수 있습니다"로 답변을 변경하는 것이 좋습니다.
Waxhead

2

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


그것이 사실이라면 그것은 좋을 것입니다! 문서화 된 위치에 대한 링크를 제공 할 수 있습니까 ??
Alek_A

2

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 증후군 오류를보고하지만 오류 메시지에서 수정 중인지 확실하지 않습니다. 드라이브 배열을 중지하거나 메시지에서 특정 드라이브를 식별하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.