비트 부패로부터 데이터 보호

비트 부패로부터 데이터 보호

나는 내 모든 사진을 비트 로트(하드 드라이브 또는 네트워크 전송 오류로 인해 무작위로 발생하는 파일 손상)로부터 보호해야 한다는 것을 깨달았습니다.

나는 최근에 중복 파일을 생성하고 파일 손상을 감지하고 복구하는 기능을 제공하는 훌륭한 프로그램처럼 보이는 par2를 발견했습니다.

저는 저널링 파일 시스템이 여기서 올바른 솔루션이라고 생각하지 않습니다. 왜냐하면 저는 백업에 있는 파일과 함께 새 노트북으로 마이그레이션할 때 보호 기능도 함께 제공되기를 원하기 때문입니다.

그래서 제가 필요하다고 생각하는 것은 cronjob으로 한 시간에 한 번씩 실행될 수 있는 스크립트입니다. 보호가 필요한 모든 파일을 살펴보고 파일이 추가되거나 변경된 경우(파일의 편집 타임스탬프가 중복 아카이브보다 최신임) 중복 파일을 업데이트하고, 파일이 손상된 경우(파일이 변경되었지만 편집됨) 파일을 복구합니다. 타임스탬프가 업데이트되지 않았습니다).

이를 수행하는 스크립트나 프로그램이 있습니까? 아니면 다른 방법으로 문제를 해결하는 프로그램이 있나요? 아니면 그런 스크립트를 직접 작성해야 합니까? (그렇지 않기를 원하며, 많은 사용자가 테스트할 수 있는 강력한 스크립트를 원합니다.)

답변1

표준 솔루션은 체크섬을 지원하고 정기적인 백업을 수행하는 파일 시스템을 사용하는 것입니다.

그 외에도 가능하면 파일 시스템 계층에서 RAID(중복 저장 구성표)를 사용하여 백업에서 복원하는 데 시간이 많이 걸리는 것을 방지할 수도 있습니다.

이러한 파일 시스템의 예는 다음과 같습니다.ZFS또는BTRFS.

이러한 파일 시스템의 체크섬 기능은 암호화 해시 기능을 사용하여 구현됩니다. 따라서 스토리지 스택 다운스트림의 비트 오류는 매우 높은 확률로 감지됩니다. 그 이유는 손상 감지 기능이 par2.

이러한 파일 시스템에는 RAID 레벨과 유사한 중복 스토리지 기능도 포함되어 있습니다. 기존 레이어링 RAID 접근 방식과의 차이점은 손상이 감지된 경우 파일 시스템이 '올바른' 구간, 즉 올바른 체크섬이 있는 블록을 반환하는 RAID 미러 측을 선택할 수 있다는 것입니다.

답변2

이것은 오래된 질문이지만 2019년에도 여전히 관련이 있습니다.

예, 패리티 파일은 비트 부패에 대한 실행 가능한 솔루션입니다.

파일 시스템 수준이 아닌 패리티 검사에는 단점이 있지만 한 가지 큰 이점도 있습니다.

이식성.

세계에서 가장 뛰어난 파일 시스템 기반 오류 검사는 이론적으로 데이터를 비트롯 없는 상태로 영원히 유지할 수 있지만 보호는 해당 파일 시스템에 잠겨 있습니다. 파일이 떠나자마자 보호되지 않습니다.

"너무 무거워"~에 의해브랩스아래에 따라 라이선스가 부여됩니다.CC BY-NC 2.0 (그는 데이터를 넣기 전에 실제로 ZFS와 지붕으로 전환해야 합니다)

옆에 패리티 파일이 있는 이미지는 USB 드라이브로 이동하고, 팩 손실 연결을 통해 전송하고, 압축하고, 다른 미디어에 개별적으로 백업하는 등 머리 속에서 떠올릴 수 있는 수백 가지 다른 작업을 수행할 수 있습니다.

또한 잘못된 프로그램(예: 실수로 잘못된 메타데이터를 쓰는 메타데이터 분석기)에 따른 변경을 방지할 수도 있습니다.

PAR2는 실행 가능한 패리티 파일 선택입니다.

PAR2 파일은 특히 크로스 플랫폼에서 사용할 수 있으며 대용량 사진을 보호하는 사용 사례에서는 실제로 가장 큰 문제가 되지 않습니다(PAR2는 하위 폴더를 지원하지 않으며 <1KB 파일을 효율적으로 처리하지 못합니다).

PAR 파일은 그 자체로는 완전한 백업 솔루션이 아닙니다.

특히 PAR 파일에는 변경 내역이 없으므로 "방탄"하려면 여전히 3개 복사본 백업 전략의 일부여야 합니다. 변경 사항이 유효한 것으로 감지되고 패리티 파일이 다시 생성되면 참조 없이는 되돌릴 수 없습니다. 별도의 백업(변경 내역이 내장된 오프사이트 백업 솔루션이 여기서는 승자입니다).

다음 단계

"[패리티 파일을 자동으로 생성하고 유지]하는 스크립트나 프로그램이 있습니까?"라는 원래 질문에 대한 대답입니다. 2019년에도 여전히 No입니다. 하지만 직접 스크립트를 만들거나 스크립트를 만드는 것은 상당히 사소한 일입니다. 이 경로를 택할 경우 제가 드릴 수 있는 최선의 조언은 생각할 수 있는 모든 극단적인 경우를 포함하는 테스트 환경을 만들고 이를 신뢰하기 전에 모든 테스트를 통해 스크립트를 실행하는 것입니다.

그리고 이 글을 읽는 누군가가 있다면하다이 길을 가려면 모든 사람의 이익을 위해 오픈 소스를 고려하십시오.

편집된 부록: PAR 파일에 사용되는 기술은 다음과 같습니다.https://en.wikipedia.org/wiki/Reed–Solomon_error_correctionPAR 개발이 중단된 동안 파일 수준 데이터 무결성/복구를 위해 Reed-Solomon을 사용하는 프로젝트는 수백 개는 아니더라도 수십 개가 있습니다.

답변3

나는 비트로트를 탐지하는 가벼운 도구를 작성했습니다.chkbit.

파일 시스템과 관계없이 데이터를 따르는 해시를 생성합니다. 따라서 chkbit기본 시스템, 백업 미디어 및 복원 후에 데이터의 무결성을 확인할 수 있습니다.

chkbit에서는 데이터 복구를 허용하지 않으므로 여전히 하나 이상의 백업이 필요합니다.

관련 정보