btrfs RAID10을 RAID0으로 변환

btrfs RAID10을 RAID0으로 변환

그래서 4개 드라이브 btrfs RAID10 어레이에서 파일 시스템 오류가 발생하기 시작했고 btrfsck이를 성공적으로 수정할 수 없었습니다(무한 루프에 빠져 며칠 동안 동일한 출력이 생성됨).

대부분의 데이터는 여전히 읽을 수 있으므로 파일 시스템을 다시 구축하는 것이 가장 현명한 접근 방식인 것 같습니다.

보유하고 있는 예비 드라이브가 없다는 점을 고려하면 지금까지의 계획은 다음과 같습니다.

  1. 중복성을 제거하고 RAID10을 RAID0으로 "변환"하여 두 개의 드라이브를 확보합니다.
  2. 새로 해제된 드라이브를 다시 포맷하십시오.
  3. 이전 파일 시스템에서 읽을 수 있는 데이터를 새 파일 시스템( rsync/ btrfs send | btrfs receive)으로 복사합니다.
  4. Nuke 레거시 파일 시스템;
  5. 기존 드라이브를 새 파일 시스템에 추가하고 다시 RAID10으로 균형을 재조정합니다.

문제는 무엇을 먼저 해야 하는가이다. 내가 이해한 바에 따르면 btrfs device delete이는 RAID1 프로필을 지속적으로 만족시키려고 하기 때문에 여기에 적합하지 않습니다. 그리고 수행해야 하는 데이터 랭글링 양을 최소화하기 위해 제거할 수 있는 두 개의 드라이브를 어떻게 찾을 수 있습니까?

답변1

RAID10에서 RAID0으로 변환하려면:

  1. man btrfs-balance대부분의 작업을 수행하는 명령에 익숙해지려면 실행하세요 . 일부 커널 버전별 경고는 물론 혼합 블록 사용 여부와 관련된 경고도 있습니다.
  2. 파일 시스템 메타데이터 및 데이터를 변환하는 데 사용됩니다 btrfs balance start -mconvert=raid0 -dconvert=raid0 /path(시스템 블록도 변환됨). 설명서에 나와 있듯이 스트립 변환에는 각 드라이브에 많은 여유 공간이 필요하므로 메타데이터와 데이터를 별도로 변환해야 할 수도 있습니다.
  3. 문제가 있는 장치를 제거 하는 데 사용됩니다 btrfs device delete /dev/somedevice.

사용량에 따라 삭제할 드라이브를 결정하려면 다음을 사용할 수 있습니다.btrfs fi usage /path

관련 정보