RAID 1은 손상을 방지합니까?


14

Raid 1은 데이터 손상을 방지합니까? 예를 들어 RAID 1에서 2 개의 디스크를 사용하는 NAS에 중요한 파일을 모두 보관한다고 가정 해 봅시다. 하나의 하드 드라이브에 일종의 내부 문제가 있고 데이터가 손상된 경우 RAID가이를 자동으로 인식하고 올바르게 수정합니까? 다른 좋은 디스크의 데이터를 사용합니까?

어떤 사본이 좋은지 알 수 있습니까?

RAID 5는 손상을 방지합니까?

RAID는 백업 솔루션이 아니라는 것을 알고 있습니다. 손상된 데이터를 백업하지 않는 방법을 알아 내려고 노력하고 있습니다!

답변:


13

RAID-1은 두 드라이브 중 하나의 완전한 장애로부터 보호합니다. 드라이브가 실패한 것으로 표시되지 않으면 내용이 정확한 것으로 간주됩니다. 그러나 어떤 이유로 든 두 드라이브 중 하나가 일치하지 않는 데이터를 반환하면 RAID 시스템에서 해당 오류를 감지하지 못하고 응용 프로그램의 데이터가 잘못 될 수 있습니다.

많은 컨트롤러에는 주기적으로 실행되는 확인 프로세스가 있지만이 작업의 목적은 데이터 무결성이 아닌 디스크 오류를 테스트하는 것입니다. 하드 드라이브는 불량 섹터를 발견하는 데 사용하는 자체 데이터 무결성 테스트 및 체크섬을 구현하지만이 알고리즘은 빠르고 컴팩트하며 철저하지 않고 설계되어 오류가 발생할 수 있습니다.

데이터 손상은 규칙이 아니라 예외이지만 전례도 없습니다. 예를 들어, ZFS 팀의 구성원은 인터뷰에서 ZFS가 해당 파일 시스템 수준에서 체크섬을 구현한다는 사실로 인해 하이 엔드 RAID-5 장치에 의해 손상된 데이터가 제공되는 것을보고했습니다.


5

부패의 원인에 따라 다릅니다. RAID 1 미러의 드라이브가 불완전하고 넌센스로 쓰는 경우 RAID 미러가 저하되고 양호한 드라이브가 사용 중이며 양호한 파일을 갖게됩니다. RAID 5의 경우 이는 2 개의 데이터 드라이브와 패리티 드라이브 (가장 간단한 형식)로 수행되며 3 개의 드라이브 중 하나가 올바른 파일을 쓰지 못하면 실패하고 2 개의 데이터가 남게됩니다 드라이브 또는 1 개의 데이터 드라이브 및 패리티 드라이브

이제 바이러스 나 프로그램의 버그로 인해 손상이 발생한 경우 어떻게되는지 살펴 보겠습니다. RAID 1 및 RAID 5에서는 드라이브가 올바르게 쓰기 때문에 드라이브가 작동하지 않습니다. 아무것도 실패하지 않았습니다. 그러나 바이러스 나 버그가 정크를 쓰고 있기 때문에 파일이 손상되며 RAID 1 미러의 드라이브와 RAID 5 시스템의 3 개의 드라이브 모두에 ​​파일을 씁니다.

이것이 RAID가 백업이 아닌 이유입니다. 디스크 오류 일 가능성이 가장 높은 오류를 방지하지만 다른 많은 시나리오를 설명하지는 않습니다.


4
+1 "이것은 RAID가 백업이 아닌 이유입니다."하나님은 내가 여러 번 들었습니다 "괜찮습니다. 백업으로 RAID를 적용했습니다"
Urda

2
RAID는 어떤 데이터가 좋은지 나쁜지 구분하는 방법은 무엇입니까?

1
Shaun ... 바이러스에 의해 데이터를 먹거나 실수로 삭제 한 경우 RAID는 데이터를 좋은 것으로 나쁘게 구분할 수 없습니다. 담당하는 모든 RAID는 (RAID 1에서) 두 디스크가 동일한 지 확인합니다. 섹터가 체크섬에 실패하면 RAID 컨트롤러가이를 복구하거나 보상을 트리거합니다. RAID 5에서 섹터가 패리티 검사에 실패하면 재 구축이 트리거됩니다. RAID는 물리적 드라이브의 고장 및 데이터 손실로 인한 결과를 방지합니다. 프로그램 오류나 바이러스로 인해 손실 된 데이터로부터 보호 할 수는 없습니다.
Urda

6
RAID 5 특성이 정확하지 않습니다. 별도의 패리티 드라이브는 없지만 모든 드라이브에 패리티가 분산됩니다. 사용 가능한 총 공간은 n-1이지만 패리티 전용 드라이브는 없습니다.
MDMarra

2
나는 이것을 공감해야한다. RAID1은 체크섬을 수행 하지 않으며 전체 드라이브 장애에 대해서만 보호합니다. 하나의 드라이브가 가비지 리턴을 시작하면 어떤 드라이브가 옳은지 알 수 없으며 가비지 데이터를 행복하게 리턴합니다. RAID5 패리티 검사로 인해 확실하지 않습니다. 이것이 바로 ZFS 및 BTRFS와 같은 파일 시스템이 발명 된 이유이므로, 데이터 블록을 확인하기 위해 체크섬을 사용하여 가비지 데이터를 적절하게 수정할 수있는 '데이터 인식'RAID 유사 시스템을 얻을 수 있습니다.
Alex

5

다른 사람들이 지적했듯이, raid1 시스템은 두 섹터 중 어느 섹터가 나쁜지를 알 수있는 방법이 없습니다.

더 높은 엔드 레이드 시스템은 백그라운드에서 스크럽 작업을 실행하여 사본과 플래그 차이를 비교합니다. 더 좋은 방법은 매번 드라이브에서 두 블록을 모두 읽고 시스템을 읽는 시간에 비교하는 시스템입니다. 그러나 이러한 차이점을 해결하는 것은 RAID 컨트롤러에서는 불가능합니다.

mdadm 하의 Unix 시스템에서 "sync_action"을 사용하여 스크럽 검사를 시작할 수 있습니다.

장치의 sysfs 디렉토리에있는 md / sync_action 파일에 check 또는 repair를 작성하여 md 배열을 제거 할 수 있습니다.

스크럽을 요청하면 md는 어레이의 모든 장치에서 모든 블록을 읽고 데이터가 일치하는지 확인합니다. RAID1 및 RAID10의 경우 이는 사본이 동일한 지 확인하는 것을 의미합니다. RAID4, RAID5, RAID6의 경우 이는 패리티 블록이 올바른지 (또는 블록이 올바른지) 확인하는 것을 의미합니다.

raid1은 갑작스러운 전체 드라이브 장애로부터 보호하는 것입니다. 부패 방지를 위해 다른 곳을 찾으십시오. Raid1은 "히스토리"를 제공하지 않으므로 사람 또는 소프트웨어 오류에서 복구 할 수 없습니다. 손상으로부터 보호하기 위해 ZFS와 같은 파일 시스템 또는 Hammer와 같은 파일 시스템을 보존하십시오.


3

실제로는 그렇습니다. 대부분의 하드 드라이브 오류는 전혀 또는 전혀 발생하지 않습니다. (a) 케이블이 분리되었거나 드라이브 마이크로 컨트롤러에 오류가 발생하여 RAID 컨트롤러가 전혀 응답하지 않습니다. 명백히 실패한 드라이브입니다. 또는 (b) 케이블 및 드라이브 마이크로 컨트롤러는 양호하지만 섹터를 읽으려고하면 내부 ECC 체크섬이 실패하여 내부 드라이브 마이크로 컨트롤러가 데이터 손상을 감지하고 해당 섹터를 반복적으로 읽으려고 시도합니다 (일시적인 읽기 결함 인 경우) ) 결국 시간이 초과되어 RAID 컨트롤러는 정중 한 "죄송한"응답을 얻습니다. 명백히 실패한 드라이브입니다. 어느 쪽이든, RAID-1 또는 RAID-5 컨트롤러에게는 드라이브가 고장 났음을 알 수 있습니다.

원칙적으로 하드 드라이브가 넌센스를 작성하는 중 심하게 잘못된 일이 있었지만 넌센스에 대한 올바른 내부 ECC 코드를 작성하기에 충분한 정도로 작동하는 경우 RAID-1은 어느 드라이브가 올바른지 알 수 없습니다. RAID-1 시스템은 재 동기화에서 손상된 데이터로 양호한 데이터를 겹쳐 쓰게됩니다. RAID-5는 낫지 않습니다. 액티브 쓰기 중 "RAID-5 쓰기 홀"정전은 드문 일이지만 불가능하지 않은 경우입니다.

내가 아는 한, 이러한 손상을 피할 수있는 유일한 방법은 파일 미러링 (ZFS 또는 Btrfs)의 일부로 자동으로 또는 주기적으로 또는 수동으로 (rsync 체크섬 재 계산, 간단한 파일 확인, Parchive 파일 세트 등); SHA-256과 같은 암호화 해시에 이상적입니다.


당신이 이것에 대한 답변을 줄 수있는 기회 .... superuser.com/questions/736612/…
Mick
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.