홈페이지 » 어떻게 » 손상에 대한 경고없이 하드 드라이브의 데이터가 악화 될 수 있습니까?

    손상에 대한 경고없이 하드 드라이브의 데이터가 악화 될 수 있습니까?

    우리는 데이터 및 파일을 안전하고 손상되지 않게 유지하는 것에 대해 모두 염려하지만 문제에 대한 어떤 종류의 알림이나 경고없이 사용자가 데이터를 손상시키고 액세스 할 수 있습니까? 오늘의 수퍼 유저 Q & A 게시물에는 걱정되는 독자의 질문에 대한 답변이 있습니다..

    오늘의 질문 및 답변 세션은 Q & A 웹 사이트의 커뮤니티 중심 그룹 인 Stack Exchange의 하위 부문 인 수퍼 유저의 도움으로 이루어졌습니다..

    사진 제공 : generalising (Flickr).

    질문

    수퍼 유저 리더 topo morto는 손상에 대한 경고없이 하드 드라이브의 데이터가 저하되고 액세스 할 수 있는지 알고 싶어합니다.

    하드 드라이브의 물리적 성능 저하로 인해 운영 체제가 변경 사항을 인식하지 않고 파일 내용을 "뒤집어"사용자가 파일을 읽을 때이를 알릴 수 있습니까? 예를 들어 ASCII 텍스트 파일의 "p"(이진 01110000)가 "q"(이진 01110001)로 바뀔 수 있고 사용자가 파일을 열면 실패가 발생했음을 알지 않고 "q"가 표시됩니다?

    나는 FAT, NTFS 또는 ReFS (차이가 나는 경우)와 관련된 답변에 관심이 있습니다. 운영 체제에서 사용자를 보호할지 여부 또는 시간 경과에 따라 사본 간의 차이에 대한 데이터를 확인해야하는지 알고 싶습니다..

    손상에 대한 경고없이 하드 드라이브의 데이터를 저하시키고 액세스 할 수 있습니까??

    대답

    수퍼 유저 기고가 인 Guntram Blohm이 우리에게 대답 해줍니다.

    예, 비트 썩음이라는 것이 있습니다. 하지만 아니, 주목받지 못한 사용자에게 영향을 미치지 않습니다..

    하드 드라이브가 섹터를 플래터에 쓸 때 RAM에 저장된 것과 같은 방법으로 비트를 쓰는 것이 아니라 너무 긴 동일한 비트의 시퀀스가 ​​없는지 확인하기 위해 인코딩을 사용합니다. 또한 ECC 코드를 추가하여 몇 비트에 영향을 미치는 오류를 복구하고 몇 비트 이상 영향을 미치는 오류를 감지 할 수 있습니다.

    하드 드라이브가 섹터를 읽을 때 필요에 따라이 ECC 코드를 검사하여 데이터를 복구합니다 (가능한 경우). 다음은 드라이브의 지정에 영향을받는 하드 드라이브의 환경과 펌웨어에 따라 다릅니다..

    • 섹터를 읽을 수 있고 ECC 코드 문제가없는 경우 운영 체제로 전달됩니다.
    • 섹터를 쉽게 복구 할 수있는 경우 복구 된 버전을 디스크에 기록하고 다시 읽은 다음 오류가 임의의 오류 (예 : 우주선 등)인지 또는 미디어와의 체계적인 오류가 있는지 확인합니다.
    • 하드 드라이브가 미디어에 오류가 있다고 판단하면 섹터를 재 할당합니다.
    • 섹터를 몇 번의 읽기 시도 후에 (RAID 하드 드라이브로 지정된 하드 드라이브에서) 읽거나 수정할 수 없으면 하드 드라이브가 포기하고 섹터를 다시 할당하고 컨트롤러에 문제가 있음을 알립니다 . RAID 컨트롤러를 사용하여 다른 RAID 구성원의 섹터를 재구성하고이를 실패한 하드 드라이브에 다시 기록한 다음 재 할당 된 섹터에 저장합니다 (문제가없는 것으로 보입니다).
    • 섹터를 데스크탑의 하드 드라이브에서 읽거나 수정할 수없는 경우 하드 드라이브는 더 많은 시도를 읽습니다. 하드 드라이브의 품질에 따라 헤드 재배치, 반복해서 읽을 때 뒤집어 쓰는 비트 검사, 가장 약한 비트 검사 및 기타 몇 가지 작업이 포함될 수 있습니다. 이러한 시도가 성공하면 하드 드라이브는 섹터를 재 할당하고 복구 된 데이터를 다시 기록합니다.

    이것은 "데스크탑", "NAS / RAID"또는 "비디오 감시"하드 드라이브로 판매되는 하드 드라이브 간의 주요 차이점 중 하나입니다. RAID 하드 드라이브는 신속하게 포기하고 컨트롤러가 섹터를 복구하도록하여 사용자 측의 대기 시간을 피할 수 있습니다. 데스크탑 하드 드라이브는 사용자가 몇 초 기다리는 것이 데이터가 손실되었다고 말하는 것보다 낫기 때문에 몇 번이고 계속 시도 할 것입니다. 손상된 프레임은 일반적으로주의를 기울이지 않기 때문에 비디오 하드 드라이브는 오류 복구보다 지속적인 데이터 전송률을 중요시합니다.

    여하튼, 하드 드라이브는 비트 썩음이 있었는지 알 것이며, 일반적으로 하드 드라이브에서이를 복구 할 수 있습니다. 그렇지 않으면 하드 드라이브가 컨트롤러에 알려서 운영 체제에 알려줄 드라이버를 알려줍니다. 그런 다음 오류를 사용자에게 제시하고 이에 대한 조치를 취하는 것은 운영 체제에 달려 있습니다. 이런 이유로 cybernard는 밝힌다 :

    • 나는 단 하나의 비트 오류를 ​​직접 목격하지 못했지만 전체 섹터가 실패한 많은 하드 드라이브를 보았습니다..

    하드 드라이브는 섹터에 문제가 있는지 알 수 있지만 어떤 비트가 실패했는지 알 수 없습니다. 실패한 단일 비트는 항상 ECC에 의해 포착됩니다..

    자동으로 자체적으로 복구하는 chkdsk 및 파일 시스템은 파일 내의 데이터 복구를 다루지 않습니다. 이것은 디렉토리 항목과 할당 된 블록 수 사이의 파일 크기 차이와 같이 파일 시스템 자체 구조 내에서의 손상을 목표로합니다. NTFS의자가 치유 기능은 구조적 손상을 감지하여 데이터에 영향을 미치지 않도록 방지하지만 이미 손상된 데이터는 복구하지 않습니다..

    물론 데이터가 손상 될 수있는 다른 이유가 있습니다. 예를 들어 컨트롤러의 RAM이 불량하면 하드 드라이브로 보내기 전에 데이터가 변경 될 수 있습니다. 이 경우 하드 드라이브의 어떠한 메커니즘도 데이터를 감지하거나 복구하지 못하며 파일 시스템의 구조가 손상된 이유 중 하나 일 수 있습니다. 다른 이유는 소프트웨어 버그, 하드 드라이브에 쓰는 동안의 정전 (파일 시스템 저널링으로 해결되었지만) 또는 불량 파일 시스템 드라이버 (NTFS가 리버스 엔지니어링 된 이후 장시간 읽기 전용으로 기본 설정된 Linux의 NTFS 드라이버, 문서화되지 않았으며 개발자는 자신의 코드를 신뢰하지 않았습니다..

    • 필자는이 시나리오를 한 번 응용 프로그램이 모든 파일을 두 개의 다른 데이터 센터에있는 두 개의 서로 다른 서버에 저장하여 모든 상황에서 사용할 수있는 데이터 복사본을 유지할 수있게했습니다. 몇 달 후, 우리는 모든 복사 된 파일의 약 0.1 %가 응용 프로그램이 데이터베이스에 저장 한 MD5 체크 합계와 일치하지 않는다는 것을 알게되었습니다. 서버와 SAN 사이에 결함이있는 광섬유 케이블로 판명되었습니다..

    ZFS와 같은 일부 파일 시스템이 오류를 감지하기 위해 추가 체크섬 정보를 유지하는 이유는 이러한 다른 이유 때문입니다. 그들은 비트 썩음보다 잘못 될 수있는 많은 것들로부터 당신을 보호하기 위해 고안되었습니다..


    설명에 추가 할 것이 있습니까? 의견에서 소리가 나지. 다른 기술에 정통한 Stack Exchange 사용자의 답변을 더 읽고 싶습니까? 전체 토론 스레드를 여기에서 확인하십시오..