Linux에서 btrfs의 가장 큰 장점 중 하나는 블록별 체크섬이 있기 때문에 중복 데이터가 있는 경우 비트 감쇠를 수정할 수 있다는 것입니다. 두 개의 디스크로 raid1을 설정하면 중복 데이터를 얻을 수 있습니다. 하지만 단일 디스크에서 비트 감쇠를 방지하기 위해 중복 데이터를 얻을 수도 있나요?
-m dup
btrfs에는 각 드라이브에 두 개의 메타데이터 복사본을 저장하는 메타데이터 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는 데이터를 복구할 수 있습니다.(예: 내부 미러링), 데이터 복사본이 손상되지 않았고 체크섬이 일치한다고 가정합니다. (또는 그 이상) 을 지정하여
copies=2
추가 풀 내 중복성을 제공하는 옵션이 있습니다copies=3
. 즉, 데이터가 디스크에 두 번(또는 세 번) 저장되어copies=3
스토리지 용량이 효과적으로 절반(또는 1/3로 줄어듭니다)을 의미합니다. 디스크. 또한 보안상의 이유로 ZFS가 풀을 관리하는 데 사용하는 일부 데이터 유형은 기본copies=1
설정을 사용하더라도 기본적으로 여러 번 저장됩니다.