하드 드라이브의 비트 부패가 실제 문제입니까? 그것에 대해 무엇을 할 수 있습니까?


32

친구가 비트 썩음의 문제에 대해 이야기하고 있습니다-드라이브의 비트가 무작위로 뒤집히고 데이터가 손상됩니다. 매우 드물지만 시간이 충분하면 문제가 될 수 있으며 감지하기가 불가능합니다.

드라이브는 불량 섹터로 간주하지 않으며 백업은 파일이 변경되었다고 생각합니다. 무결성을 검증하기 위해 체크섬이 없습니다. RAID 설정에서도 차이가 감지되지만 올바른 미러 사본을 알 수있는 방법은 없습니다.

이것이 진짜 문제입니까? 그렇다면 어떻게해야합니까? 제 친구는 zfs를 솔루션으로 추천하고 있지만 직장에서 파일 서버를 병합하여 Solaris와 zfs를 사용하는 것을 상상할 수 없습니다.


1
여기에 대한 기사는 다음과 같습니다 web.archive.org/web/20090228135946/http://www.sun.com/bigadmin/...
scobi

오래된 200GB Seagate 디스크에서 SMART 오류가 잘 발생했습니다. 비트는 너무 많이 썩었습니다 .- (5 년 보증 기간이 6 개월 짧으므로
번거 로움

답변:


24

우선 : 파일 시스템에 체크섬이 없지만 하드 드라이브 자체에 체크섬이있을 수 있습니다. 예를 들어 SMART가 있습니다. 한 비트가 너무 많이 뒤집어지면 물론 오류를 수정할 수 없습니다. 운이 좋지 않으면 체크섬이 유효하지 않게 비트가 변경 될 수 있습니다. 오류가 감지되지 않습니다. 따라서 불쾌한 일 일어날 수 있습니다 . 그러나 임의의 비트 뒤집기가 즉시 데이터를 손상 시킨다는 주장은 허위입니다.

그러나 그렇습니다. 수조 비트를 하드 드라이브에 넣으면 영원히 그렇게 유지되지는 않습니다. 그것은 진짜 문제입니다! ZFS는 데이터를 읽을 때마다 무결성 검사를 수행 할 수 있습니다. 이는 하드 드라이브 자체의 기능과 유사하지만 공간을 절약 할 수있는 또 다른 보호 장치이므로 데이터 손상에 대한 복원력이 향상됩니다.

파일 시스템이 충분히 양호하면 더 이상 탐지하지 않고 오류가 발생할 가능성이 낮아져 더 이상 신경 쓸 필요가 없으며 사용중인 데이터 저장소 형식에 체크섬이 내장되어 있는지 결정할 수 있습니다. 불필요한.

어느 쪽이든 : 아니오, 감지하는 것은 불가능하지 않습니다 .

그러나 파일 시스템 자체만으로는 모든 장애를 복구 할 수 있다고 보장 할 수 없습니다. 총알이 아닙니다. 오류가 감지 될 때 수행 할 작업에 대한 백업 및 계획 / 알고리즘이 여전히 있어야합니다.


wikipedia ( en.wikipedia.org/wiki/Error_detection_and_correction ) 에 따르면 최신 하드 드라이브는 CRC를 사용하여 오류를 감지하고 컴팩트 디스크 스타일 오류 복구를 사용하여 복구하려고합니다. 그것은 나에게 충분합니다.
scobi

1
그러나 CRC가 데이터와 동일한 위치 (섹터)에 저장된 경우 모든 오류에 도움이되지 않습니다. 예를 들어 헤드 포지셔닝 오류 데이터가 잘못된 섹터에 기록 될 수 있지만 올바른 체크섬 =>을 사용하면 문제를 감지 할 수 없습니다. 그렇기 때문에 ZFS의 체크섬이 보호하는 데이터와 별도로 저장됩니다.
knweiss 2009

ZFS에 Windows와 같은 유지 관리 기능이 있습니까? 기본적으로 자기 코딩을 새로 고치기 위해 데이터를 정기적으로 다시 작성합니다.
TomTom

최신 하드 드라이브는 CRC를 사용하지 않으며 Hamming 코드를 사용합니다. ECC 메모리가 사용하는 것과 동일합니다. 1 비트 플립 오류를 수정할 수 있고, 2 비트 플립 오류를 감지 할 수는 있지만 수정할 수는 없습니다. 어쨌든 데이터 백업을 대체 할 수는 없습니다. ZFS 및 기타 파일 시스템은 드라이브 플래터의 해밍 코드보다 더 나은 보호 기능을 제공하지 않습니다. 데이터가 손상된 경우 ZFS는 저장하지 않습니다.
Jody Lee Bruchon

@JodyLeeBruchon 현재 해밍 코드에 대한 소스를 얻었습니까? 내가 최근에 한 정보 수집은 드라이브 제조업체가 여전히 CRC-RS를 사용하고 있음을 나타냅니다. 1 2
Ian Schoonover

16

예, 주로 드라이브 크기가 증가함에 따라 문제가됩니다. 대부분의 SATA 드라이브는 10 ^ 14의 URE (수정 불가능한 읽기 오류) 속도를 갖습니다. 또는 12TB의 데이터를 통계적으로 읽을 때마다 드라이브 공급 업체는 드라이브가 읽기 실패를 반환 할 것이라고 말합니다 (일반적으로 드라이브 사양 시트에서 찾을 수 있습니다). 드라이브는 드라이브의 다른 모든 부분에서 계속 정상적으로 작동합니다. Enterprise FC & SCSI 드라이브는 일반적으로 10 ^ 15 (120TB)의 URE 속도와 적은 수의 SATA 드라이브를 사용하여 감소시킵니다.

디스크가 정확히 동시에 회전하는 것을 본 적이 없지만 5 년 전에 5400RPM 소비자 PATA 드라이브를 사용하여 raid5 볼륨이이 문제에 부딪 혔습니다. 드라이브에 장애가 발생하여 사용 불능으로 표시되고 예비 드라이브에 대한 재 구축이 수행됩니다. 문제는 재 구축 중에 두 번째 드라이브가 하나의 작은 데이터 블록을 읽을 수 없다는 것입니다. 누가 급습을하는지에 따라 전체 볼륨이 죽었거나 작은 블록 만 죽었을 수 있습니다. 하나의 블록 만 죽었다고 가정하면, 읽으려고하면 오류가 발생하지만, 쓰면 드라이브가 다른 위치로 다시 매핑합니다.

이중 디스크 장애로부터 보호하는 raid6 (또는 동급)이 가장 좋으며 ZFS와 같은 URE 인식 파일 시스템은 소규모 RAID 그룹을 사용하므로 통계적으로 URE 드라이브에 충돌 할 가능성이 낮습니다. 디스크 스크러빙 및 SMART는 한계 (미러 큰 드라이브 또는 raid5 작은 드라이브)를 제한하는 데 도움이되지만 실제로 자체적으로 보호 기능은 아니지만 위의 방법 중 하나에 추가하여 사용됩니다.

어레이에서 3000 개 가까이의 스핀들을 관리하고 있으며 어레이는 지속적으로 드라이브를 문질러 잠재적 인 URE를 찾고 있습니다. 그리고 raid6 대신 raid5를 사용하고 드라이브 중 하나가 완전히 죽어 버린 경우 상당히 일정한 스트림 (드라이브 오류보다 앞서 수정하고 경고 할 때마다)을받습니다. 특정 위치에 부딪히면 문제가 있습니다.


2
어떤 단위로 말하고 있습니까? "10 ^ 14"는 "rate"가 아닙니다.
Jay Sullivan

2
단위는 예를 들어 "오류 당 10 ^ 14 비트 읽기"이며, 이는 오류 당 12TB 읽기와 같습니다.
Jo Liss

2
물론, 에러율은 일반적으로 판독 된 비트 당 전체 섹터 에러의 관점에서 인용된다는 것을 명심하십시오. 따라서 제조업체가 URE 비율을 10 ^ -14로 표시하면 실제로 의미하는 것은 URE에 도달하는 임의의 섹터 읽기 확률이 10 ^ -14이며, 그렇다면 전체 섹터를 읽을 수없는 상태로 다시 나타냅니다. 그리고 이것이 통계라는 사실; 실제로는 URE가 일괄 처리되는 경향이 있습니다.
CVn

9

하드 드라이브는 일반적으로 데이터 비트를 단일 자기 도메인으로 인코딩하지 않습니다. 하드 드라이브 제조업체는 자기 도메인이 뒤집어지고 드라이브에 대한 오류 감지 및 수정이 발생할 수 있음을 항상 알고 있습니다.

비트가 뒤집 히면 드라이브에 충분한 중복 데이터가 포함되어 다음 번 섹터를 읽을 때 수정 될 수 있습니다. 드라이브의 SMART 통계를 '수정 가능한 오류율'로 확인하면이를 확인할 수 있습니다.

드라이브의 세부 사항에 따라 섹터에서 하나 이상의 플립 된 비트를 복구 할 수도 있습니다. 자동으로 정정 할 수있는 플립 된 비트 수에는 제한이 있으며 오류로 감지 할 수있는 플립 된 비트 수에는 또 다른 제한이있을 수 있습니다 (더 이상 신뢰할 수있는 데이터가 없어도이를 정정 할 수는 없음)

이로 인해 하드 드라이브는 대부분의 오류가 발생하면 자동으로 수정하고 나머지 대부분을 안정적으로 감지 할 수 있습니다. 단일 섹터에 많은 수의 비트 오류가 있어야하며, 해당 섹터를 모두 다시 읽기 전에 모든 비트 오류가 발생해야하며, 오류는 내부 오류 감지 코드가 해당 데이터를 다시 유효한 데이터로 인식하도록해야합니다. 조용히 실패했을 것입니다. 불가능한 것은 아니며, 매우 큰 데이터 센터를 운영하는 회사는 데이터 센터가 발생 하는 것을 볼 수 있지만 실제로 발생 하지 않는 것은 확실합니다. 그러나 생각보다 큰 문제는 아닙니다.


2
실제로, 나는 정기적으로 비트 로트 오류 (많은 부분을 읽지 못하는 부분)를 겪습니다.이 오류는 시스템이 자동으로 (올바르게) 복구합니다. 적어도 비트 썩음이 있다는 알림을 받으면 복구 할 수 없게되기 전에 데이터를 다시 읽어서 복구 할 수있었습니다. 복구 할 수없는 경우 다른 하드 드라이브와 비교할 수 있습니다.
Alex

Alex, HDD SMART 데이터 및 시스템 RAM을 확인하여 손상을 일으키는 다른 문제가 없는지 확인하십시오. 비트 부패 / 무작위 손상은 매우 드물기 때문에 컴퓨터에 다른 문제가있을 수 있습니다.
Brian D.

@BrianD. 한 가지 문제는 하드 드라이브를 (절연) 포장재 안에 보관하는 것이 었습니다. 이로 인해 작업하는 동안 하드 드라이브가 60 ° C 이상 열이 발생했습니다. 비트 부패가 발생한 합당한 이유처럼 들립니까?
Alex

대부분의 HDD에는 작은 공기 구멍이있어 제대로 작동하지 않도록하기 때문에 권장하지 않습니다. 문제가 비트 로트이든 다른 것이 든 관계없이 PC에서 전체 진단을 실행하여 모든 것이 올바르게 작동하는지 확인합니다.
Brian D.

4

최신 하드 드라이브 (199x부터)에는 체크섬뿐만 아니라 ECC도 있습니다.이 비트 맵은 상당히 "랜덤 한"비트 썩음을 감지하고 수정할 수 있습니다. http://en.wikipedia.org/wiki/SMART를 참조하십시오 .

반면, 펌웨어 및 장치 드라이버의 특정 버그는 드문 경우에 데이터를 손상시킬 수 있습니다 (그렇지 않은 경우 QA는 버그를 잡을 수 있음). SATA 및 NIC의 초기 장치 드라이버가 Linux 및 Solaris에서 데이터를 손상 시켰습니다.

ZFS 체크섬은 주로 하위 레벨 소프트웨어의 버그를 목표로합니다. Hypertable과 같은 최신 스토리지 / 데이터베이스 시스템에는 파일 시스템의 버그를 방지하기 위해 모든 업데이트에 대한 체크섬이 있습니다. :)


3

이론적으로 이것은 우려의 원인입니다. 실제로, 이것은 우리가 자녀 / 부모 / 조부모 백업을 유지하는 이유의 일부입니다. 연간 백업은 최소한 5 년 동안 IMO를 유지해야하며, 이보다 더 오래 걸리는 경우 파일은 그다지 중요하지 않습니다.

잠재적으로 누군가의 뇌에 해를 끼칠있는 비트를 다루지 않는 한 , 위험 대 보상이 파일 시스템을 변경하는 시점에 있는지 확실하지 않습니다.


1
자녀 / 부모 / 조부모 백업이 어떻게 도움이되는지 모르겠습니다. 사용자가 비트를 변경하려고했기 때문에 또는 드라이브가 자체적으로 수행 한 경우 비트가 뒤집힌 경우 해당 시스템을 알 수있는 방법이 없습니다. 어떤 종류의 체크섬이 없으면 아닙니다.
scobi

백업이 여러 개 있으면 데이터가 양호하다는 것을 모르면 도움이되지 않습니다. 파일을 수동으로 체크섬 할 수 있지만 ZFS는 훨씬 더 자동으로 수행하며 파일 시스템 관리를 쉽게합니다.
Amok

1
일주일 / 월보다 먼 시간에 백업이 있으면 파일을 잘 복사 할 가능성이 높아집니다. 아마 그것에 대해 더 명확했을 수 있습니다.
Kara Marfia

1
문제는 잘못된 사본이 있다는 것을 어떻게 알 수 있습니까? 그리고 백업 된 사본이 좋은 사본인지 어떻게 알 수 있습니까? 자동화 된 방식으로.
scobi

몇 년에 한 번씩 파일이 부패하여 비트 부패로 인한 것일 수 있지만 작은 물고기 증후군으로 고통 받고있을 수 있습니다. 쓸모없는 백업에 대한 이야기를 이해할 수 있으며, 불쾌한 경우 삭제하겠습니다. 관계없이 다른 답변을 읽는 데 시간이 많이 걸렸습니다. ;)
Kara Marfia

2

예, 문제입니다.

이것이 RAID6가 현재 인기를 끄는 이유 중 하나입니다 (HD 크기를 늘리면 어레이를 재 구축하는 시간이 증가 함). 두 개의 패리티 블록이 있으면 추가 백업이 가능합니다.

RAID 시스템은 또한 정기적으로 디스크 블록을 읽고, 패리티를 검사하고, 블록이 불량한 것으로 판명되면 교체하는 RAID 스크러빙을 수행합니다.


데이터 무결성이 모든 RAID 시스템의 기능은 아닙니다.
duffbeer703

1
테라 바이트 드라이브의 경우 운명을 공유하는 비트가 너무 많으며 비트의 물리적 저장 영역이 너무 작아서이 문제가 더욱 중요해집니다. 동시에, 테라 바이트 드라이브의 경우 실패 확률이 너무 높아 8 개 이상의 풀을 드라이브에 넣지 않으면 RAID6로는 충분하지 않습니다. 더 적은 수의 드라이브를 사용하면 RAID 10이라고하는 스트라이프 미러를 사용하는 것이 좋습니다. RAID 6 (raidz2)과 RAID 10 (zpool은 mypool 미러 c0t1d0 c0t2d0 미러 c0t3d0 c0t4d0)을 ZFS에서 모두 사용할 수 있습니다.
Michael Dillon

RAID는 어떤 데이터가 좋고 어떤 것이 좋지 않은지를 알 수 없으므로 오류를 수정할 수 없으며 단지 감지 할 수 있습니다.
Amok

Amuck : "RAID 표준"의 일부는 아니지만 고급 RAID 시스템 (펌웨어 등)
이이를

@ Michael Dillion-드라이브 수를 늘리면 RAID6 안정성이 향상되지 않습니다. 모든 데이터에 대해 원본 데이터 + 2 패리티 만 있습니다. 드라이브 수를 늘리면 데이터 중복성을 늘리지 않고 가능한 드라이브 고장률을 높이므로 안정성이 떨어집니다. 드라이브 수를 늘리는 유일한 이유는 사용 가능한 스토리지 크기를 늘리는 것입니다.
Brian D.

1

RAID에 관한 OP의 진술과 관련하여 어떤 데이터가 좋은지 나쁜지 이해하지 못합니다.

RAID 컨트롤러는 모든 데이터 스트라이프에서 최소한 (홀수 / 짝수) 패리티 비트를 사용합니다. 이것은 모든 것을위한 것입니다. 디스크상의 데이터 스트라이프 및 패리티 (백업) 데이터 스트라이프.

이는 중복을위한 스트라이핑 (RAID 5/6)이있는 RAID 유형의 경우, 컨트롤러는 원본 데이터 스트라이프가 변경되었는지 여부와 중복 데이터 스트라이프가 변경되었는지 여부를 정확하게 알 수 있습니다.

RAID6와 같은 두 번째 중복 스트라이프를 도입하는 경우, 세 개의 다른 드라이브에 3 개의 데이터 스트라이프가 있어야합니다. 3 개의 다른 드라이브는 모두 동일한 실제 파일 데이터에 해당합니다. 대부분의 RAID 시스템은 상대적으로 작은 데이터 스트라이프 (128kb 이하)를 사용하므로 "비트 썩음"이 동일한 128kb (같은 파일)까지 늘어날 가능성은 사실상 불가능합니다.


0

실제 문제입니다. 문제는 걱정해야하는지입니다.

당신이 hdd로 가득 찬 hdd를 얻었다면 노력할 가치가 없을 수도 있습니다. 그것은 중요한 과학적 데이터로 가득 차 있습니다. 그것은 또 다른 종류의 이야기 일 수도 있습니다. 아이디어를 얻었습니다.

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