RAID5는 RAID1보다 강력합니다


12

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

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

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

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

답변:


22

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

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

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

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

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


6

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

SATAssure (tm) Plus의 PDF에서 :

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

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


이 링크는 흥미로워 보이지만 실제로는 해당 페이지 나 브로셔의 모든 위치에서 모든 판독 값의 패리티를 재 계산한다고 명시 적으로 말하고 있습니까?
andynormancx

pdf에서 인용문을 추가했습니다. S2A 박스는 조용한 하이 엔드입니다.
James

3

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 기술 토론에서이를 배웠습니다.


"더 효과적인"이라는 용어를 사용하지 않을 것입니다. "더 많은 용량"이 더 적합합니다. 내 마음에, 내 데이터를 잃을 가능성을 높이는 솔루션은 더 효과적이지 않습니다.
duffbeer703

모든 것은 비용-가치 상충 관계입니다. RAID-5는 스토리지 비용 효율성이 높고 RAID-1 또는 RAID-1 + 0 (0 + 1)은보다 강력합니다.
David Mackintosh

0 + 1보다 1 + 0을 선호하는 다른 이유는 1 + 0이 6 개 중 4 개에서 생존 할 수 있기 때문입니다. "첫 번째 장애가 발생한 드라이브를 교체하고 어레이를 재 구축하기 전에 두 번째 드라이브가 실패합니다."시나리오는 0 + 1 만 2에서 살아남을 수 있습니다. 0 + 1은 한 팔에서 컨트롤러 장애 (0 + 1에서는 불가능)에서 살아남을 수 있지만 드라이브 장애 (복수의 드라이브 장애)보다 훨씬 드 rare니다.
David Spillett

RAID-DP (NetApp의 이중 패리티 구현)는 RAID-6입니다. RAID-6 (RAID-5와 달리)은 기능적으로 두 개의 디스크 장애가 지속될 수있는 RAID로 정의됩니다. RAID-DP는 패리티를 분배하지 않는다는 점에서 일반적인 RAID-6과 다릅니다. WAFL은 무작위 쓰기를 무작위로 쓰지 않으므로 패리티를 분배해도 아무런 이점이 없습니다.
함장 Segfault

3

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

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

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

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


0

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

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

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

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

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


그는 패리티에 대해 이야기하고있었습니다. 그는 RAID5에서 패리티 정보가 읽기에서 검색되고 다른 디스크에서 오는 데이터와 비교되어 읽기 오류가 없는지 확인했다고 주장했습니다.
andynormancx

5
모든 경우에 소프트웨어에 대한 하드웨어 RAID 권장 사항에 동의하지 않습니다. 최신 하드웨어를 사용하면 서버에 충분한 여분의 CPU가 있으면 소프트웨어 RAID는 하드웨어만큼 빠릅니다. 또한 하드웨어 RAID에는 몇 가지 단점이 있으며, 주요 단점은 복구 상황에서 일치하는 RAID 카드가 필요합니다. 소프트웨어 RAID를 사용하면 시스템에서 드라이브를 꺼내 다른 드라이브에 꽂고 기존 RAID 카드와 정확히 일치하는 새 RAID 카드를 얻지 않고도 멀리 갈 수 있습니다.
andynormancx

나는 그가 무엇에 관해 이야기하고 있는지에 대해 바닥에 닿으려고 노력했다. 내가 이해할 때 체크섬은 디스크 쓰기시 (RAID에 관계없이) 사용된다. 패리티는 다른 디스크에 데이터 청크를 배치하고 디스크 장애시 어레이를 재 구축하는 데 사용됩니다. 패리티가 모든 RAID 레벨에서 사용되는 것은 아닙니다
Ben Quick

1
소프트웨어 대 하드웨어 RAID에 대한 자세한 내용은 en.wikipedia.org/wiki/… 를 참조하십시오. 분명히 선택한 구현은 환경과 요구 사항에 따라 다릅니다. 제가 선호하는 것은 소프트웨어 RAID보다 하드웨어 RAID
Ben Quick

나는 체크섬을 언급 한 것을 잊었다. 혼란을 해결하기 위해 질문을 업데이트했습니다. 문제는 RAID5 시스템이 일반적으로 읽기시 패리티 데이터를 검사하는지 여부에 관한 것입니다.
andynormancx

0

오래된 하드웨어 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 품질 등


나는 당신이 질문에 대답하지 않았다는 것을 두려워합니다. 이것은 읽기에서 패리티 데이터를 검사하는 것과 관련하여 실제로 실제 RAID5 구현이 무엇을하는지에 관한 것입니다.
andynormancx

0

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

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

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

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


0

RAID5 시스템은 읽기시 패리티 데이터를 점검합니까?

실제로 이해가되지 않습니다. 패리티 불일치를 발견하면 어떻게합니까? (어떤 블록이 잘못되었는지 어떻게 알 수 있습니까?)

임의 읽기의 경우 패리티를 검사하는 것이 비용이 많이 듭니다. 일반적으로 단일 디스크를보고 임의 읽기를 처리 할 수 ​​있지만 패리티를 확인하려면 각 읽기에서 모든 디스크를 읽어야합니다. (당신이 할 수있는 일이 있다면 여전히 이해가 될 것입니다!)

RAID-1에도이 문제가 있습니다. RAID-1을 두 개의 디스크 RAID-5로 볼 때 의미가 있습니다.


0

RAID-1은 한 번에 두 드라이브를 모두 읽으므로 RAID-5보다 읽기 속도가 빠르다는 주장에 대해 약간 생각하고 있습니다.

이제 어레이를 재구성해야하는 경우가 아니면 RAID-5에서 패리티를 읽을 수 없으므로 실제로 읽기 측면에서 RAID-0 어레이와 같습니다. 맞습니까?

RAID-0은 일반적으로 가장 빠른 수준으로 간주됩니다 (중복성이 없기 때문에 "AID"로 이름을 지정해야 함). :-디

hdparm을 사용한 간단한 테스트 인 Linux 소프트웨어 RAID에 대해이 이론을 확인합니다. RAID-5 어레이는 항상 RAID-1 어레이보다 읽기 속도가 빠릅니다.

그러나 성능이 저하 된 어레이는 일반적인 실행중인 어레이보다 훨씬 느리게 수행됩니다. 방금 다른 RAID 레벨의 4 개의 WD 1TB 드라이브에서 실행되는 Fedora 9로 이것을 테스트했습니다. 결과는 다음과 같습니다.

저하 된 RAID-5 : 읽기 속도 43MB / 초 일반 RAID-5 : 읽기 속도 240MB / 초 (!) RAID-1 : 읽기 속도 88MB / 초

허용되는 디스크 손실은 RAID-1 및 RAID-5 (즉, 하나)에서 동일하므로 RAID-5는 모든 측면에서 RAID-1보다 성능이 우수해야하므로 어레이에 사용 된 디스크 수와 관련하여 더 많은 용량을 제공해야합니다. 결함 허용. 이는 RAID-6이 일반 읽기에서 RAID-0만큼 빠르기 때문에 (두 패리티 디스크에서 패리티 읽기가 없음) RAID-6이 다른 모든 RAID 레벨보다 성능이 뛰어나고 배열 구성원. ;-)


흥미로운 것들이지만, 항상 듣게되는 RAID1 오류를 반복했습니다. RAID1은 않습니다 하지 그것은 단지 하나의 디스크 오류를 살아남을 수 있다는 것을 의미합니다. RAID1 어레이에 디스크가 두 개만있을 필요는 없습니다. 예를 들어, 당신은 3 개 디스크가있는 RAID1 어레이는 두 개의 디스크 오류를 살아남을 것입니다 (또한 읽기 성능이 증가한다이 경우 귀하의 RAID 시스템이 읽기에 여러 드라이브에서 읽기됩니다).
andynormancx

-1

개인적으로 RAID 시스템의 궁극적 인 테스트는 장애를 얼마나 잘 견딜 수있는 가라고 생각합니다. 이 경우 RAID5와 RAID1은 단일 드라이브 장애를 처리 할 수 ​​있지만 그 이상을 견딜 수는 없습니다.

패리티 비트에 대한 귀하의 질문에 대해서는 RAID 드라이버에 의존한다고 생각합니다. 재구성하는 동안 확실히 읽히지 만 정상적인 사용에서는 대역폭이 낭비되므로 그렇게하는 것이 의미가 없습니다.


귀하의 답변이 "RAID5 구현이 읽기에서 패리티를 검사하는지 여부를 모르겠습니다"에 해당하므로 질문에 답변하지 않습니다.
andynormancx

실제로 드라이버를 작성한 사람을 제외하고는 아무도 알 수 없기 때문에 올바른 답변 입니다.
sybreon

-2

afaik, 나는 24/7 스토리지 프로가 아니며 컨트롤러는 항상 디스크에 쓰여지고 읽은 내용을 확인합니다. 즉, raid1을 사용하면 단일 디스크보다 쓰기 속도가 약간 떨어지지 만 읽기 속도는 약간 빨라집니다 (파일을 두 개의 디스크에 써야하지만 한 부분은 디스크 1에서, 다른 부분은 디스크 2에서 읽을 수 있음).

어쩌면 공격 수준에 대한 데이터 검사를 비활성화 할 수 있지만이 시점은 모든 중복 수준 (0 제외)이 데이터 중복성을 제공하기 때문에 왜 자신을 방해합니까?

RAID 5에서는 최소 3 개의 디스크가 필요하며 데이터에 N-1 디스크를 사용할 수 있습니다. RAID 1을 사용하면 항상 짝수의 디스크가 필요하며 데이터에 N / 2 디스크를 사용할 수 있습니다.

따라서 급습이 클수록 레벨 5는 더 많은 저장 공간을 제공하고 급습 1은 더 많은 중복성을 제공합니다.

더 강력하다면 어느 것이 이중화보다 더 많은 중복성을 제공한다는 의미입니다.

RAID 크기에 따라, 오류가 발생한 경우의 재 구축 시간 (얼마나 많은 디스크가 있는지, 하나의 디스크가 얼마나 큰지, 어떤 종류의 RAID (소프트, 가짜, 하드웨어), 레벨 등)도 고려해야합니다. )

따라서 하나의 공격대가 다른 공격대보다 강력하다고 말할 수는 없습니다 (어쩌면 스토리지 공간을 잃는 비용으로 공격대 6이 공격대 5보다 항상 강력 할 수도 있습니다)


1
이것이 실제로 내 질문에 대답하지 않는 것이 두렵습니다. 제 질문은 일반적인 RAID5 구현이 패리티 데이터를 읽을 때 확인하는지 여부에 관한 것입니다. 그리고 레코드의 경우 RAID1에는 짝수의 디스크가 필요하지 않습니다. 디스크가 3 개 이상인 RAID1 어레이를 사용하면 중복성을 높이면서 쓰기 속도를 줄일 수 있습니다.
andynormancx

1
"컨트롤러는 항상 디스크에 쓰고 읽은 내용을 확인합니다." 컨트롤러가 두 디스크 모두에서 읽을 수있는 경우는 아니지만 일부 컨트롤러는 첫 번째 데이터를 반환합니다.
James

RAID1에는 짝수의 디스크가 필요하고 세 번째 미러는 RAID1 이외의 디스크라고 말할 수 있습니다. 용어가 표준화 된 적이없는 세 번째 미러를 지원하는 구현은 거의 없습니다.
carlito
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.