RAID5는 RAID1보다 강력합니다 것도 알 수 있습니다. 확실히

오래된 하드웨어 RAID5 어레이를 Linux 소프트웨어 RAID1 어레이로 교체하려고합니다. 친구와 대화를 나누면서 RAID5가 RAID1보다 강력하다고 주장했습니다.

그의 주장은 RAID5에서 모든 드라이브가 올바른 데이터를 반환하는지 확인하기 위해 패리티 데이터를 읽었다는 것입니다. 또한 RAID1에서 그러한 검사가 수행되지 않기 때문에 드라이브에서 발생하는 RAID1 오류는 눈에 띄지 않을 것이라고 주장했습니다.

이것이 어떻게 가능한지 알 있지만 문제의 RAID 시스템이 어떻게 구현되는지에 달려 있다는 것도 알 수 있습니다. 확실히 RAID5 시스템은 읽기에서 패리티 데이터를 읽고 확인할 필요 가 없으며 RAID1 시스템 읽기에서 모든 드라이브에서 쉽게 읽을 수 있으므로 모두 동일한 데이터를 보유하고 있는지 확인하여 동일한 수준의 견고성을 달성 할 수 있습니다 ( 이에 상응하는 성능 손실).

따라서 실제 세계에서 RAID5 / RAID1 시스템은 실제로 무엇을 하는가? RAID5 시스템은 읽기시 패리티 데이터를 점검합니까? 모든 드라이브에서 읽은 데이터와 읽은 데이터를 비교하는 RAID1 시스템이 있습니까?



답변

RAID-5는 데이터 무결성 솔루션이 아니라 내결함성 솔루션 입니다.

RAID는 Redundant Array of Inexpensive Disks를 의미 합니다. 디스크는 중복성의 원자 단위입니다. RAID는 실제로 데이터를 신경 쓰지 않습니다. 데이터 중복성과 무결성을 해결하기 위해 WAFL 또는 ZFS와 같은 파일 시스템 을 사용하는 솔루션을 구매 합니다.

RAID 컨트롤러 (하드웨어 또는 소프트웨어) 읽을 때 블록의 패리티를 확인하지 않습니다 . 이는 RAID-5를 실행하는 주요 위험입니다. 드라이브에서 일부 미디어 오류가 발생하면 (불량 블록이 “나쁜”것으로 표시되지 않은 상황) 이제 데이터가 자동으로 발생한 상황입니다 손상되었습니다.

썬의 RAID-Z / ZFS는 실제로 엔드-투-엔드 데이터 무결성 을 제공하며 CPU에서 사용 가능한 코어 수가 계속 증가함에 따라 다른 파일 시스템과 RAID 시스템이 향후이 기능을 제공 할 것으로 생각합니다.

RAID-5를 사용하고 있다면 저렴하다고 생각합니다. RAID 1은 성능이 향상되고 보호 기능이 뛰어나며 드라이브 장애시 생산에 영향을 미치지 않으므로 비용이 거의 들지 않습니다.


답변

예를 들어 컨트롤러 / 소프트웨어에 따라 답이 달라진다고 생각합니다. 예를 들어 미러링 시스템이 한 쌍의 디스크를 하나만 읽고 잘못된 데이터를 전달할 수있는 경우가 일반적입니다. 데이터가 두 디스크에 기록 될 때 결과가 해당 데이터에 의존하는 경우 두 디스크 모두에서 손상됩니다.

SATAssure ™ Plus의 PDF에서 :

“혁신적인 SATAssure 기술은 저렴한 대용량 SATA 디스크 드라이브를 사용하여 엔터프라이즈 급 데이터 보호 및 안정성을 제공합니다. SATAssure는 모든 읽기 작업에서 작동하여 데이터 무결성을 보장하고 실시간으로 문제를 자동으로 수정합니다. 개별 드라이브의 전원을 껐다 켜는 새로운 기능으로 드라이브 RMA를 줄입니다.

일부 제조업체 는 항상 패리티를 계산한다는 사실에 대해 혼란을 겪고 있다는 것이 흥미 롭습니다. 이는 하드웨어 컨트롤러에서 비교적 드문 것으로 생각하게 만듭니다. ZFS 및 WAFL (netapp)과 같은 시스템은 모든 읽기에 대해 패리티 계산을 수행합니다.


답변

RAID-5를 사용하면 패리티는 일반적으로 일반 읽기가 아닌 어레이 재 구축에서만 읽습니다. 따라서 배열에서 1K의 데이터를 원할 때마다 전체 스트라이프에 대한 패리티를 읽고 계산할 필요가 없기 때문에 읽기가 더 임의적이고 빠를 수 있습니다.

RAID-1을 사용하면 일반적으로 읽기 성능을 높이기 위해 가능할 때마다 드라이브에서 읽기가 단계적으로 진행됩니다. 앞서 언급했듯이 RAID 하위 시스템이 두 드라이브를 모두 읽으려고 시도 할 때 두 드라이브가 다를 경우 하위 드라이브는 어떤 드라이브가 잘못되었는지 알 수 없습니다.

대부분의 RAID 하위 시스템은 드라이브에 의존하여 컨트롤러 나 컴퓨터에 문제가 발생했을 때 알립니다.

RAID-5는 “보다 강력”합니까? 그 대답은 다릅니다. RAID-5를 사용하면 RAID-1보다 지정된 수의 디스크에 대해보다 효과적인 스토리지를 얻을 수 있습니다. 하나의 디스크를 넘어 효과적인 스토리지를 제공하기 위해 RAID-1은 RAID-1 어레이의 스트라이프 또는 두 개의 RAID-0 스트라이프에서 RAID-1과 같이 RAID-0과 결합되어야합니다.

(단일 드라이브 장애는 단일 RAID-1 요소를 취하기 때문에 전자를 선호합니다. 즉, 단일 드라이브 만 재 구축해야합니다. 후자는 단일 드라이브 장애로 인해 RAID-0 요소를 종료합니다. 드라이브 교체시 디스크가 재 구축에 관여합니다.)

이것은 또한 “팬텀 쓰기 (phantom writes)”에 대한 논의로 이어지며, 여기서 쓰기는 드라이브 전자 장치에 의해 성공한 것으로보고되지만, 어떤 이유로 든 쓰기는 디스크에 기록하지 않습니다. 이런 일이 발생합니다. RAID-5 어레이의 경우, 드라이브 장애가 발생하면 어레이가 복구하기 위해 남아있는 모든 드라이브의 모든 섹터를 반드시 읽어야합니다. NetApp에 ​​따르면 대용량 드라이브와 대용량 공격대 그룹에 따라 재 구축 중 실패 할 가능성이 10 분의 1 정도로 나빠질 수 있습니다. 따라서 대규모 RAID 그룹의 대용량 디스크는 이중 패리티 (RAID-6과 관련이 있다고 생각)를 사용하는 것이 좋습니다.

두 엔지니어가 제공 한 NetApp 기술 토론에서이를 배웠습니다.


답변

일반적인 RAID 구현은 일반적으로 데이터 액세스의 패리티를 확인하지 않습니다. 나는 한번도 본 적이 없다. 일부 RAID5 구현은 불필요한 읽기를 방지하기 위해 스트리밍 읽기를 위해 패리티 데이터를 읽습니다 (드라이브가 모든 n 번째 블록을 검색하도록하는 것보다 n 번째 블록마다 더 저렴한 가격으로 버림). RAID1 구현은 성능을 위해 두 디스크 모두에서 읽었으므로 확인할 수 없습니다 (대부분의 RAID1 구현에서). 한 개의 디스크를 선택하면 한 디스크가 다른 디스크보다 훨씬 느리고 쓰기 집약적이지 않은 경우 유용 할 수 있습니다 하중.)

일부는 배경 ‘수세미’로 확인합니다. 이 경우 데이터를 복구 할 수 있으므로 RAID6가 승리하고 RAID5와 RAID1이 같은 상황에 있으면 식별 할 수는 있지만 수정할 수는 없습니다. (드라이브가 잘못된 CRC를 감지하고 오류를 반환하며 패리티에서 블록을 다시 쓸 수 있기 때문에 이것은 사실이 아닙니다. 이것은 매우 일반적으로 발생합니다).

데이터 무결성을 원하면 응용 프로그램 계층에서 모든 블록 (또는 레코드 또는 분할)으로 해시를 저장하십시오. Sybase와 Oracle은 이것을 수행하고 (페이지 수준에서 믿습니다) 많은 경우에 거대한 데이터베이스를 저장하는 것을 보았습니다. (예 : 컨트롤러가 잘못된 데이터를 반환하기 시작하고 sybase가 명확한 오류로 충돌하므로 데이터베이스가 불일치 한 상태에서 오류가 발생한 하드웨어에서 실행될 때 쓰기가 수행되지 않았습니다).

이를위한 유일한 파일 시스템 솔루션 및 유일한 RAID 솔루션은 ZFS입니다.


답변

친구가 일부 RAID 레벨 과 관련된 패리티 비트 또는 디스크에 기록 된 데이터 의 체크섬 에 대해 이야기하고 있습니까?

이들이 패리티에 관한 경우 RAID1에는 패리티 비트가 없습니다. 동일한 데이터의 사본이 두 개 있습니다. 디스크에 기록 된 내용이 와이어에 기록 된 내용과 일치하는지 확인하기 위해 디스크에 의해 수행되는 체크섬이 있어야합니다.

RAID5에는 패리티 비트가 있습니다. 즉, RAID 세트에서 디스크를 잃어 버리고 아무 일도 일어나지 않는 것처럼 계속할 수 있습니다. 그래도 디스크에 기록 된 데이터에 대해 체크섬을 수행하여 와이어와 연결된 데이터와 일치하는지 확인해야합니다.

이 경우 체크섬은 여러 디스크로 수행되거나 수행되지 않을 수있는 RAID와 완전히 독립적입니다.

추가 편집 : 하드웨어 RAID에서 소프트웨어 RAID 로의 이동을 언급했습니다. 기본 설정은 항상 소프트웨어 RAID보다 하드웨어 RAID입니다. 구현하려는 RAID 레벨을 제공하는 데 필요한 하드웨어를 구입할 수 있다면 그렇게하도록 제안합니다. 이렇게하면 호스트가 아닌 RAID 카드가 모든 패리티 계산을 수행 할 수 있습니다. 따라서 호스트에서 자원을 비 웁니다. 의심 할 여지없이 다른 이점은 있지만 지금 당장 나를 탈출합니다.


답변

오래된 하드웨어 RAID5 어레이를 Linux 소프트웨어 RAID1 어레이로 교체하려고합니다. 친구와 대화를 나누면서 RAID5가 RAID1보다 강력하다고 주장했습니다.

이는 RAID (Rapid Implementation Type), 디스크, RAID 컨트롤러 (있는 경우) 및 기능에 따라 다릅니다.

그의 주장은 RAID5에서 모든 드라이브가 올바른 데이터를 반환하는지 확인하기 위해 패리티 데이터를 읽었다는 것입니다. 또한 RAID1에서 그러한 검사가 수행되지 않기 때문에 드라이브에서 발생하는 RAID1 오류는 눈에 띄지 않을 것이라고 주장했습니다.

약간의 의미가 있지만 실제로는 아닙니다. 데이터 읽기 / 쓰기 검사는 디스크 및 컨트롤러 펌웨어에 의해 수행되며 RAID 레벨과는 아무런 관련이 없습니다.

So the question is, what do RAID5/RAID1 systems in the real world

실제로합니까? RAID5 시스템은 읽기시 패리티 데이터를 점검합니까? 모든 드라이브에서 읽은 데이터와 읽은 데이터를 비교하는 RAID1 시스템이 있습니까?

내가 말했듯이, 검사는 레이드 알고리즘의 일부가 아니지만 일부 컨트롤러에는 추가 구현이있을 수 있습니다.

어레이의 견고성은 드라이브의 품질에 달려 있습니다 (2.5 “드라이브는 RV 속도 감소로 인해 3.5″보다 오래 사는 경향이 있습니다. 내 경험으로는 결코 maxtor SCSI / SAS 드라이브를 구입하지 마십시오-끔찍한 펌웨어 결함이 있습니다), 환경 (온도 및 습도 제어), 컨트롤러 자체 (BBU가 있습니까? 펌웨어가 최신입니까? 실제 급습입니까, 가짜 급습입니까?), 서버의 PSU 양, UPS 품질 등


답변

나는 이것을 모른다 . 그러나 나는 그것을하지 않을 것 같다. 패리티를 계산하려면 RAID 세트의 모든 드라이브에서 블록을 읽은 다음 정확성을 결정하기 위해 수학을 수행해야하지만 그렇지 않은 경우 한 드라이브의 읽기만 수행합니다.

또한 읽기가 한 블록 미만인 경우 패리티 검사 읽기는이를 전체 블록으로 확장해야하지만 일반 읽기는 그렇지 않습니다. (물론 RAID 블록이 디스크 블록보다 크다고 가정합니다. 디스크에서 읽은 것이 전체 블록이어야 한다고 생각 합니다. 그렇지 않으면 내 요점이 훨씬 더 유효합니다.)

그래서 내 관점에서 볼 는 있지만 그렇게 할 수 있다면 비효율적 일 것입니다.

그러나 실제 구현에 대한 개인적인 지식은 없습니다.