재 구축 중에 RAID5 시스템에 URE가 발생하면 모든 데이터가 손실됩니까?


23

더 큰 드라이브가 재 구축 중에 URE를 경험할 가능성이 높아졌다는 주장을 이해하지만, 실제 영향이 무엇인지 잘 모르겠습니다. 이 답변에 따르면 전체 재 구축이 실패하지만 모든 데이터에 액세스 할 수 없습니까? 왜 그런가요? 드라이브의 단일 섹터에서 나온 단일 URE는 최대 몇 개의 파일과 관련된 데이터에만 영향을 미칩니다. 몇 개의 파일이 약간 손상 되어도 어레이가 여전히 재 구축되지 않습니까?

(여기서는 ZFS의 RAID5 구현에 특히 관심이 있지만 모든 RAID5 구현에서 논리는 동일하게 보입니다.)


1
일반적으로 RAID5 위험과 관련하여 " 재 구축 중 URE 발생 가능성 "이 논의 될 때 재 구축이 필요하도록 이전 손상이 이미 발생한 것으로 간주됩니다. 즉, "재 구축 중 URE"는 두 번째 URE이며 실제로 모든 데이터가 손실됩니다.
콜트

1
@Colt-나는 이것이 의미 함을 이해하지만, 내가 이해하지 못하는 것은 단일 URE (RAID5가 권장되지 않는 이유 분석에서 불량 섹터를 나타내는 것으로 보임)가 모든 데이터가 길을 잃다. 일반적으로 RAID5 어레이의 드라이브 1 개를 잃어버린 경우에도 여전히 모든 데이터가 있습니다. 나머지 드라이브에서 단일 섹터를 추가로 잃어 버린 경우 해당 섹터에 저장된 데이터를 잃어 버릴 있지만 해당 섹터가 (예를 들어) 여유 공간 인 경우 신경 쓰지 않고 해당 섹터 데이터가 있으면 몇 개의 파일에만 영향을 줄 수 있습니다.
process91

@Colt-아래 답변을 바탕으로 단일 URE의 관점에서 배열을 다시 작성하지 못하는 것이 하드웨어 RAID 제조업체의 선택이었습니다. 제 생각에는 이것이 잘못된 선택이지만 ZFS가 다르게 행동하는 것 같습니다.
process91

프로세스에 대해서는 @shodanshok의 답변을 참조하십시오. 그 이유에 대해 RAID는 다른 프로세스, 응용 프로그램 등의 안정적인 데이터에 대한 연속적인 액세스를 제공 하기 위한 것이며 백업이 아닙니다. URE가 재 구축에서 발생하면 많은 (대부분의) 하드웨어 컨트롤러가 중단되는 이유는 RAID가 더 이상해야 할 일을 할 수 없기 때문입니다 . 이 시점에서 신뢰할 수있는 데이터를 얻으려면 백업을 사용해야 합니다. RAID를 사용하는 또 다른 방법은 전혀 재 구축하는 것이 아니라 RAID를 사용하여 백업에서 복구 타이밍을 제어하는 ​​것입니다. 또한 복구 전에 최종 백업을 수행 할 시간이 있습니다 .
콜트

“ZFS의 RAID5 구현”을“raidz”또는“zraid”라고하며 하드웨어 RAID5와 다릅니다. 일반적으로“raidz”에 대해 묻는“ZFS RAID5”에 대한 더 나은 답변을 얻을 수 있습니다.
Josh

답변:


24

실제로 특정 RAID 구현에 따라 다릅니다.

  • 대부분의 하드웨어 RAID는 재구성을 중단하고 일부는 어레이를 실패한 것으로 표시하여 중단 시킵니다. 이론적 근거는 RAID5 재 구축 중에 URE가 발생하면 일부 데이터 손실 된다는 의미 이므로 자동 데이터 손상의 위험이 있으므로 어레이를 완전히 중지하는 것이 좋습니다. 참고 : 일부 하드웨어 RAID (주로 LSI 기반)는 대신 어레이에 구멍 을내어 영향을받는 섹터를 읽을 수없는 것으로 표시하면서 (Linux 소프트웨어 RAID의 동작 방식과 유사) 재 구축을 진행할 수 있습니다.

  • 리눅스 소프트웨어 RAID는 a) 어레이 재 구축 중지 ( "고대"MDRAID / 커널 빌드의 유일한 동작) 또는 b) 일부 LBA를 불량 / 접근 불가로 표시하는 재 구축 프로세스를 계속하도록 지시 할 수 있습니다. 이론적 근거는 사용자가 자신의 선택을하도록하는 것이 더 낫다는 것입니다. 결국, 단일 URE는 여유 공간에있을 수 있으며 데이터에 전혀 영향을 미치지 않거나 중요하지 않은 파일에만 영향을 줄 수 있습니다.

  • ZRAID는 일부 파일이 손상된 것으로 표시하지만 재 구축 프로세스를 계속합니다 ( 예는 여기 참조 ). 다시 한 번, 근거는 사용자에게 계속보고하고 다시보고하는 것이 더 좋다는 것입니다.


@ process91 조금 더 자세히 설명하겠습니다. RAID 구현에 개별 섹터를 불량으로 표시하는 데 필요한 추가 데이터 구조가없는 경우 재 구축에 실패하거나 자동 손상이 발생해야합니다. 개별 섹터를 불량으로 표시하는 것이 더 좋지만, 불량 섹터와 패리티 섹터를 공유하는 사람들로 인해 다른 섹터를 위험에 빠뜨릴 수 있습니다.
kasperd

@kasperd 물론, 대부분의 RAID 구현에는 사용자에게 불량 섹터를 경고하는 기능이 있다고 생각합니다. 하나의 드라이브에 불량 섹터가 있으면 재 구축 후 새 드라이브에 잘못된 섹터가 있는지 이해합니다. 즉, RAID 구현이 사용자에게 "가능한 한 최선을 다해 드라이브를 재 구축했지만 프로세스에서 1 URE를 경험했습니다"라고 경고 한 후에도 해당 섹터에 대한 쓰기 시도를 계속 허용했습니다. 다른 부문이 어떻게 위험에 처할 수 있는지 살펴보십시오 . 잘못된 섹터는 원본, 새 섹터 및 패리티 일 수 있습니다.
process91

위의 @Colt의 의견을 기반으로 한 설명-하드웨어 RAID의 경우 어레이가 실패한 것으로 표시 할 때 여전히 데이터에 대한 액세스를 허용합니까? 예를 들어, 복구 시도의 목적으로 읽기 전용 액세스가 가능합니까?
process91

@ process91 섹터가 손상되도록 허용하는 것은 해당 사실이 로그 파일에 기록 된 경우에도 좋은 아이디어로 간주되지 않습니다. 어떤 파일이 손상되었을 지 모릅니다. RAID는 해당 파일을 읽을 때 오류가 발생했는지 확인해야합니다. 또한 불량 섹터를 덮어 쓰고 싶지 않다는 것은 데이터를 복구 할 수있는 마지막 기회를 잃어 버렸기 때문입니다. 따라서 하나의 디스크에는 읽을 수없는 섹터가 있고 무엇을 쓸지 모르는 새 디스크에는 섹터가 있습니다. 두 개의 다른 파일이 손상되었을 수 있습니다.
kasperd

1
@ process91 LSI 기반 배열에 대한 메모를 추가했습니다. 한번보세요.
shodanshok

8

URE가 발생하면 일반적으로 크기가 256KB-1MB 인 블록에서 일부 데이터 손상이 발생하지만 볼륨의 모든 데이터가 손실되는 것은 아닙니다. RAID5에서 그리 좋지 않은 것은 완전히 다른 것입니다. 재구성 자체는 스트레스가 많으며 두 번째 디스크 장애가 연속으로 발생할 가능성이 높습니다. 이 경우 모든 데이터가 손실됩니다.


2
RAID5 재 구축은 RAID1 재 구축보다 단일 드라이브에서 어떻게 더 스트레스가 있습니까? CPU에 더 많은 스트레스가 있음을 알지만 특정 드라이브의 경우 모든 데이터를 단순히 읽는 중입니다. 일반적으로 사람들이 더 큰 드라이브로 인용 할 위험은 재 구축 과정에서 URE가 발생할 가능성이 있지만 단일 섹터가 손상되었다는 의미 만 있으면 괜찮습니다.
process91

3
확률 이론입니다. N (드라이브 수) 인 경우 실패 할 가능성이 N 배 높습니다.
BaronSamedi1958

1
그것은 계산이 작동하는 방식이 아닙니다. 실제로 실패 가 없을 확률을 계산하고 싶지만 그 부분을 이해합니다. RAID5를 재 구축하는 행위가 디스크 자체 (어딘가에서 읽은)에 대해 더 많은 스트레스를 가해 URE의 가능성을 높이는 것으로 암시하는 것으로 귀하의 진술을 잘못 해석 한 것 같습니다. 다시 말하고 동의합니다.
process91

2

나는 다른 방법으로 설명 할 것이다.

RAID 컨트롤러가 URE에서 멈추지 않으면 어떻게됩니까?

나는 서버에서 그것을 살았고, RAID는 URE를 발견하지 못했으며, 재구성 후 손상이 전체 RAID 볼륨에 쌓이기 시작했습니다.

재 구축 후 디스크의 불량 섹터가 증가하기 시작했으며 데이터가 손상되기 시작했습니다.

디스크가 RAID 볼륨에서 시작되지 않았습니다. 컨트롤러 실패는 데이터 무결성을 보호하는 작업입니다.

이 예제는 볼륨이 백업이 아니라 디스크 장애에 대한 복원력을 가지기 때문에 컨트롤러가 데이터 무결성을 위해 URE로 볼륨을 전혀 스러스트 할 수 없다고 생각하도록 작성되었습니다.


1
새 중재자가 사이트를 지속적으로 확인하고 수행 할 작업을 찾고있는 것을 확인합니다.
Ward-Reinstate Monica

1
단일 URE가 전체 RAID 볼륨에서 손상을 일으키는 이유는 무엇입니까?
process91

2
죄송합니다. 답변을 다시 읽습니다. 재 구축 중에 단일 URE가 불량한 것 같지만 문제가되지 않았습니다. 문제는 재 구축 후에도 섹터가 계속 나 빠지고 드라이브가이를보고하지 않았다는 것입니다. 그러나 이것은 재구성 중에 RAID 컨트롤러가 URE를인지하는지 여부와는 별개의 문제인 것 같습니다. RAID 컨트롤러는 재 구축 중에 URE를 감지하고이를 경고하지만 재 구축을 계속 진행할 수 있습니다. 일부 데이터는 항상 데이터가없는 것보다 낫습니다.
process91

2
2009 년에 RAID5가 "죽은"것으로 여겨지는 이유를 분석하는 데 관심이 있는데, 이는 단일 URE의 가능성에 달려 있습니다. 이제는이 분석이 수학적으로 부정확하며 ZFS와 같은 방식으로 실제로 적용되지 않는다는 것을 이해하고 있습니다.
process91

1
@RobMoir 나는 당신의 마지막 진술이 내가 동의하지 않는 곳이라고 생각합니다. 다른 백업이 있어도 어레이에서 거의 모든 데이터를 가져 오는 것이 유용 할 수 있습니다. 파일이 중요하지 않거나 (하드웨어 RAID의 경우) 여유 공간에 오류가 발생했을 수 있습니다. 하드웨어 RAID (어떤 파일이 영향을 받았는지 구체적으로 알지 못하는)에 대한 올바른 결정은 사용자에게 경고하고 재 구축을 완료하며 어레이를 읽기 전용 모드로 전환하는 것입니다. 나는 이것에 대한 단점을 보지 못한다. (물론 ZFS와 같은 파일 시스템은 영향을받는 파일을보고 할 수 있기 때문에 더 잘 수행 할 수 있습니다.)
process91

1

이 질문을 읽고 조금 더 배경에 대한 답변을 제안 합니다. 그런 다음 다시 연결 한 질문을 다시 읽으 십시오 .

누군가가이 상황에 대해 "RAID 실패"라고 말하면 RAID의 이점을 잃어 버렸음을 의미합니다. 처음에 RAID 어레이를 설정 한 이유 인 데이터에 대한 지속적인 액세스 권한을 상실했습니다.

모든 데이터를 잃어버린 것은 아니지만 하나의 죽은 드라이브와 (일부) 나머지 드라이브에서 (일부) URE를 복구하는 가장 일반적인 방법은 어레이를 처음부터 완전히 다시 작성하는 것이므로 모든 데이터를 복원해야합니다. 백업에서.


1
일반적으로 다운 타임을 최소화하는 것이 목표 일 때 RAID를 사용합니다. 어레이가 알 수없고 복구되지 않은 손상으로 계속 진행되도록하는 것이 일반적으로 해당 목표와 상반됩니다.
David Schwartz

1
감사합니다. 처음 연결 한 질문은 매우 유익했습니다. 왜 데이터에 지속적으로 액세스하지 못하게 되었습니까? 어레이는 여전히 재 구축 중에 작동하며 재 구축 중에 URE가 발생하면이 한 섹터의 데이터가 손상되었지만 계속 진행될 것으로 예상됩니다. 그렇지 않습니까?
process91
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.