체크섬이 있는 파일 시스템?

체크섬이 있는 파일 시스템?

나는 하드 드라이브를 가지고 있습니다. 저장 공간을 줄이는 파일 시스템을 사용하고 싶지만, 그에 대한 대가로 데이터 무결성을 유지하는 데 도움이 되는 체크섬이나 기타 방법을 알려주시기 바랍니다.

내가 이해한 바로는 ext4나 xfs와 같은 것들은 이 작업을 수행하지 않으므로 비트로트(bitrot)라고도 불리는 조용한 데이터 손상으로 고통받을 수 있습니다.

zfs는 좋은 선택인 것처럼 보이지만 내가 읽은 모든 내용에 따르면 이를 사용하려면 여러 개의 디스크가 필요하다고 나와 있습니다. 왜 이런거야? 디스크가 하나만 있으면 단일 디스크 오류를 허용할 수 없다는 것을 알고 있지만 이것이 다중 백업 구성표의 목적입니다. 어떤 백업에 익숙해도움말은 비트롯(bitrot)과 같은 것입니다.

그러면 비트로트 방지라는 단일 목적으로 단일 하드 드라이브에서 zfs를 사용할 수 있습니까? 그렇지 않다면 무엇을 추천하시나요?

답변1

ZFS 또는 btrfs를 사용할 수 있습니다.

둘 다 쓰기 중 복사 파일 시스템이지만 버그가 있습니다.발각또한 수정(미러링된 드라이브 또는 RAID-Z와 같이 원본 데이터를 복구할 만큼 충분한 중복이 있는 경우), 투명 압축, 스냅샷 등을 수행할 수 있습니다.

ZFS를 사용하면 데이터 집합에 속성을 설정하여 copies파일의 여러 복사본을 보관할 수 있습니다. 예를 들어 ZFS에서는 zfs set copies=2 pool/dataset특정 데이터 집합에 있는 모든 항목의 복사본 두 개를 보관하도록 ZFS에 지시할 수 있습니다. 확인 man zfsprops하고 검색할 수 있습니다 copies=. btrfs에도 비슷한 기능이 있다고 생각하는데 오랫동안 btrfs를 사용하지 않아서 문서에서 찾을 수 없습니다.

이러한 추가 복사본은 오류 수정(비트 부패의 경우)을 위한 중복성을 제공하지만 디스크 오류로부터 사용자를 보호하지는 않습니다. 이를 위해서는 최소한 미러링된 vdev(예: RAID-1)가 필요하거나 정기적인 백업을 해야 합니다(그러나 어쨌든 해야 합니다 - RAID 또는 ZFS 또는 btrfs와 같은 RAID 유사 기술).아니요백업 대안).

백업은 USB를 통해 연결된 단일 드라이브 zfs 풀에 초기 및 증분 백업을 사용 zfs snapshotzfs send/ 또는 전송하는 것만큼 간단할 수 있습니다 . zfs receive또는 네트워크를 통해 다른 컴퓨터의 풀에 연결합니다. 그럼에도 불구하고 zfs sendZFS가 아닌 파일 시스템의 파일에 백업을 저장하는 것이 아무것도 없는 것보다 낫습니다.

컴퓨터에 두 번째 드라이브를 지원할 수 있는 물리적 공간과 하드웨어가 있는 경우 드라이브를 추가해야 합니다. 풀을 처음 생성할 때 이 작업을 수행할 수 있습니다. 또는 를 사용하여 언제든지 단일 드라이브 또는 미러링된 vdev에 미러링된 드라이브를 추가할 수 있습니다 zpool attach pool device new-device.

참고: 이를 사용하는 zpool attach것이 아니라 를 사용하는 것이 중요합니다 . vdev의 기존 드라이브에 미러를 추가하고 기존 풀에 다른 vdev를 추가합니다. 기존 풀에 단일 드라이브 vdev를 추가하면 풀의 다른 vdev와 함께 RAID-0이 효과적으로 형성되어 모든 데이터가 위험해집니다. 이는 매우 일반적인 오류이며(풀에 RAID-Z vdev가 포함된 경우) 이 문제를 해결하는 유일한 방법은 전체 풀을 백업하고 삭제하고 처음부터 다시 만든 다음 복원하는 것입니다. 풀에 미러링된 드라이브 vdev 또는 단일 드라이브 vdev만 있는 경우(즉, RAID-Z vdev가 없음) 실수로 추가된 단일 드라이브를 제거하는 데 사용할 수 있습니다 .zpool addattachaddzpool remove

답변2

블록 수준에서도 체크섬을 수행할 수 있다는 @cas의 답변을 추가하고 싶습니다.DM-무결성그런 다음 모든 파일 시스템을 사용할 수 있습니다. btrfs의 체크섬과 마찬가지로 dm-integrity는 오류 감지만 제공하므로 실제로 오류를 수정하려면 RAID가 필요합니다. 다음을 사용하여 RAID 1의 각 분기 아래에 무결성 장치를 배치하여 이 작업을 수동으로 수행할 수 있습니다.무결성 설정그리고미다뎀그러나 이것은 약간 복잡할 수 있습니다. 최신 버전의 LVM은 생성을 지원합니다.논리 볼륨 디스크 어레이그냥 무결성을 갖는 데 사용

lvcreate --type raidN --raidintegrity y

앞서 말했듯이 RAID 논리 볼륨 위에 파일 시스템을 배치할 수 있으며 LVM은 읽기 시 오류를 감지하고 수정합니다.

관련 정보