RAID가 일치하지 않는 데이터를 어떻게 처리 할 수 ​​있습니까?


8

RAID 1 및 RAID 5 (및 해당 형제 10 및 50)는 미러링 및 패리티 검사를 통해 각각 데이터 중복성을 달성합니다. 따라서 디스크의 섹터 (또는 전체 디스크)를 읽을 수없는 경우 RAID 어레이가 데이터에 계속 액세스 할 수 있습니다. RAID 6 (또는 60)은 추가 검사를 사용하여 이중 오류를 허용합니다.

그러나 RAID 어레이는 전혀 읽을 수 없지만 일관성이없는 데이터를 어떻게 처리 할 수 ​​있습니까?

스트라이프의 fe 데이터가 디스크에서 변경되었지만 변경이 다른 데이터로 전파되지 않는 등의 오류가 발생하면 전체 스트라이프가 일치하지 않게됩니다. 미러링 된 세트에서 디스크에 "this bit is 0"이 표시되고 다른 디스크에 "this bit is 1"이 표시되면 RAID 컨트롤러가 어떤 것이 올바른지 어떻게 알 수 있습니까? RAID-5 스트라이프에 동일한 추론을 적용 할 수 있으며, 스트라이프에서 실제로 어떤 섹터가 잘못되었는지 쉽게 알 수없는 복잡성이 추가되었습니다 . 또한 RAID 6은 이중 문제로이 문제를 완화합니까, 아니면 데이터를 실제로 읽을 수 있지만 특히 RAID 6 어레이에 많은 디스크가있는 경우 어딘가 잘못되어 데이터 손상을 복구하는 데 문제가있을 수 있습니까?

이는 이론적으로 보장하기 위해 체크에 의해 해결 될 수 있는 데이터 (또는 패리티) 정확한 하나의 복사; 그러나 RAID 컨트롤러는 실제로 이런 종류의 체크섬을 구현합니까 (물론 추가 공간을 차지할 것입니까)? 아니면 대부분의 파일 시스템이 내용을 검사 할 수있는 OS 수준에서 처리해야합니까? 이 경우 RAID 컨트롤러의 일반적인 접근 방식이 기본 스토리지 계층에서 OS 를 추상화 하는 경우 RAID 컨트롤러에게 "스트라이프 Z의 디스크 Y에있는 섹터 X의 데이터가 잘못됨"을 어떻게 알릴 수 있습니까? 가능한?


이것이 바로 "Patrol Read"또는 백그라운드 일관성 검사입니다.
ewwhite

2
불량 블록 을 조기에 감지 하고 실제 오류가 발생하기 전에 다른 곳으로 데이터를 이동하는 데 유용 합니다. 그러나 여전히 읽을 수 있지만 일관성이없는 데이터 를 처리해야 합니다. RAID-1 예제를 보자 : 디스크의 블록을 읽을 수 있고 "0"이라고 말하고 다른 디스크의 동일한 블록 읽을 수 있고 "1"이라고 말하면 컨트롤러가 어떤 것이 옳은지 어떻게 알 수 있습니까?
Massimo

RAID 1은 패리티를 제공하지 않으므로 시스템은 문제를 감지하고 수정하는 데 매우 어려움을 겪습니다. 손상된 파일을 얻으려면 드라이브를 당겨 개별적으로 읽어야 할 것입니다.
Brian D.

쉬운 솔루션
Patrick

답변:


3
RAID VOLUMES WITH PARITY STRIPE

일관성 검사 중에 우리가 사용하는 Areca 컨트롤러 (및 모든 최신 하드웨어 RAID 컨트롤러)에서 컨트롤러는 패리티 데이터, 디스크의 물리적 데이터 또는 둘 다에 손상이 있는지 여부를 감지 할 수 있습니다. 대부분의 컨트롤러는 패리티 데이터 및 디스크 데이터에 대한 간단한 체크섬 비트로이를 수행합니다.

패리티 데이터가 손상된 경우 일관성 검사를 실행하고 물리 디스크를 올바른 비트로 다시 읽고 패리티 스트라이프를 다시 쓸 때 컨트롤러가 문제를 감지합니다. 파일을 열 때 디스크에서 데이터를 읽고 있기 때문에 문제가 발생하지 않습니다. 손상된 패리티 스트라이프를 다시 작성하는 원인을 다시 저장하면 문제가 해결됩니다.

반대의 상황이 발생하고 디스크의 실제 데이터가 약간 바뀌면 컨트롤러는 일관성 검사 중에 패리티 스트라이프를보고 변경 여부를 확인합니다. 이 경우 컨트롤러는 패리티 데이터와 일치하도록 디스크의 데이터를 덮어 쓰므로 변경되지 않았거나 양호 함을 확인할 수 있습니다. 일관성 검사가 실행될 때까지 데이터의 내용에 따라 CRC 오류 또는 손상된 파일이 표시되고 오류가 수정됩니다.

디스크의 특정 데이터에 대한 패리티 데이터는 실제 데이터와 동일한 드라이브에 저장되지 않으므로 단일 드라이브 장애로 인해 데이터 손상 문제가 발생하지 않아야합니다. 또는 RAID6 등을위한 2 개의 디스크

일관성 검사는 가능한 한 정확하게 데이터를 유지하며 손상된 데이터를 볼륨에 오래 보관하면 패리티 데이터에 기록 될 수 있습니다. 즉, 파일이 손상되어 백업에서 복원해야합니다. 드라이브가 일관성 검사 중에 오류를 표시하는 사전 실패 상태 인 경우 컨트롤러가 드라이브를 실패로 표시하기를 기다리지 않고 즉시 드라이브를 교체하십시오. 소규모 볼륨에서는 매일 일관성 검사를 실행하고 큰 볼륨에서는 매주 일관성 검사를 실행합니다.

RAID VOLUMES WITHOUT PARITY STRIPE (EX. RAID1)

하드 드라이브 컨트롤러 / 펌웨어가 문제를 해결할 수 있습니다. 이것이 가능하지 않은 경우 RAID 컨트롤러는 문제를 해결하기가 매우 어려울 것입니다. 이 경우 데이터를 복구하기 위해 드라이브를 개별적으로 읽어야 할 것입니다.

GENERALLY SPEAKING

RAID 카드 제조업체에서 권장하는 간격으로 일관성 검사를 실행하십시오. 실제로 손상이 걱정되면 탄력적 인 파일 시스템을 RAID 볼륨에 쌓을 수 있습니다. 최신 탄력적 파일 시스템은 이러한 많은 데이터 무결성 문제를 해결할 수 있으며 RAID6에 탄력적 FS를 스태킹하면 손상없이 뛰어난 데이터 가동 시간을 제공 할 수 있습니다. 또한 2 개의 동시 드라이브 장애가 발생하더라도 사용자에게 손상된 데이터가 표시되지 않도록 FS 패리티 데이터를 계속 사용할 수 있습니다.


2

한 디스크가 오류를 쓰거나 읽는 상황을 효과적으로 설명합니다. RAID 컨트롤러에는 이러한 상황을 방지 할 수있는 실용적인 방법이 없습니다 (예 : 쓰기 및 읽기로 인해 성능이 저하 될 수 있음). 디스크에 의존하여 이러한 종류의 오류를 감지하고 다른 블록을 사용하거나 볼륨을 구제하여 RAID 성능을 저하시켜야합니다.

단일 디스크 상황에 대해 생각할 경우 일관성없는 쓰기 (또는 읽기)에 대한 유일한 보호는 디스크 자체입니다. RAID는이를 기반으로하지만 추가 보호 기능을 제공하지는 않습니다.

NB 저는 XFS가 어레이의 잘못된 디스크에 상당히 민감하다는 것을 경험을 통해 알고 있습니다. 따라서 적어도 저급 컨트롤러가 아닌 컨트롤러와 OS는 불일치 (디스크에 결함이있는 것으로 알려진 볼륨이 강제로 추가됨)를 인식했지만 보호하지 못했습니다.

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