Linux의 단일 하드 드라이브에서 오류 감지 및 수정을 수행하는 방법(btrfs 또는 기타 방법 사용)

Linux의 단일 하드 드라이브에서 오류 감지 및 수정을 수행하는 방법(btrfs 또는 기타 방법 사용)

Linux에서 btrfs의 가장 큰 장점 중 하나는 블록별 체크섬이 있기 때문에 중복 데이터가 있는 경우 비트 감쇠를 수정할 수 있다는 것입니다. 두 개의 디스크로 raid1을 설정하면 중복 데이터를 얻을 수 있습니다. 하지만 단일 디스크에서 비트 감쇠를 방지하기 위해 중복 데이터를 얻을 수도 있나요?

-m dupbtrfs에는 각 드라이브에 두 개의 메타데이터 복사본을 저장하는 메타데이터 DUP 옵션( )이 있다는 것을 확인했습니다 . 그러나 문서에는 dup이 데이터에 대한 옵션이 아니라고 나와 있습니다(즉, -d dup옵션이 아님). 이 문제를 해결할 좋은 방법이 있나요? 단일 디스크를 두 개의 동일한 부분으로 나누고 함께 습격하시겠습니까?

또는 Linux에서 파일 시스템 수준 오류 감지 및 수정을 수행하는 또 다른 간단한 방법이 있습니까(파일 시스템의 자동 보관과 유사)?

(두 개의 드라이브를 사용하라는 답변에는 관심이 없습니다.)

편집하다:내가 찾았어이것, 오류 수정 파일을 일반 파일처럼 마운트할 수 있는 FUSE 파일 시스템입니다. 즉, 이것은 누군가가 2009년에 작성한 작은 해킹/개념 증명이며 그 이후에는 실제로 다루어지지 않았습니다.

답변1

혼합 블록 그룹이 활성화된 경우 Btrfs는 중복 블록을 지원합니다.

mkfs.btrfs --mixed --metadata dup --data dup /dev/<device>

편집:수리하다이렇게 하면 블렌딩 모드를 사용하지 않고도 이를 수행할 수 있습니다. 2015년 11월 스레드에 이어 메인라인 btrfs 코드에 추가된 것으로 보입니다.

답변2

예를 들어, LVM을 사용하여 드라이브를 10개의 파티션으로 분할하고 블록 수준에서 이들을 raid-5로 분할하는 것은 어떻습니까? 이는 오류 수정을 위해 약 10%의 중복성을 제공하지 않습니까?

답변3

Btrfs와 유사하게 ZFS를 사용하면 다음을 사용하여 dup --data데이터 블록의 여러 복사본을 저장할 수 있습니다.zfs set copies

zfs set copies=2 users/home

바라보다ZFS 사용자 데이터의 여러 복사본 저장

데이터이든 메타데이터이든 블록에 액세스하면 해당 체크섬이 계산되어 저장된 체크섬 값과 비교됩니다. 체크섬이 일치하면 데이터는 프로그래밍 스택을 통해 이를 요청한 프로세스로 전달됩니다.저장소 풀이 데이터 중복성을 제공하는 경우 ZFS는 데이터를 복구할 수 있습니다.(예: 내부 미러링), 데이터 복사본이 손상되지 않았고 체크섬이 일치한다고 가정합니다. (또는 그 이상) 을 지정하여 copies=2추가 풀 내 중복성을 제공하는 옵션이 있습니다 copies=3. 즉, 데이터가 디스크에 두 번(또는 세 번) 저장되어 copies=3스토리지 용량이 효과적으로 절반(또는 1/3로 줄어듭니다)을 의미합니다. 디스크. 또한 보안상의 이유로 ZFS가 풀을 관리하는 데 사용하는 일부 데이터 유형은 기본 copies=1설정을 사용하더라도 기본적으로 여러 번 저장됩니다.

https://en.wikipedia.org/wiki/ZFS#Data_integrity

관련 정보