4개 드라이브 BTRFS raid1을 2개 드라이브 "단일"(비 RAID) 모드로 변환하는 방법

4개 드라이브 BTRFS raid1을 2개 드라이브 "단일"(비 RAID) 모드로 변환하는 방법

BTRFS raid1 구성에 동일한 크기의 드라이브가 4개 있습니다. 다른 시스템에서 사용할 수 있도록 두 개의 드라이브를 확보하고 싶습니다.

나는 BTRFS가 이 작업을 수행할 수 있다고 확신하지만, 이를 올바르게 수행하는 방법을 잘 모르겠습니다.

FWIW 다른 곳에 모든 데이터를 백업했습니다.

답변1

저는 4개의 작은 LVM 논리 볼륨으로 구성된 임시 파일 시스템에서 이 프로세스를 빠르게 테스트했습니다. 첫 번째 질문은 미러링을 계속하시겠습니까(용량을 줄이시겠습니까)?

아래의 모든 내용 «PATH»은 btrfs 파일 시스템의 마운트 지점입니다. 이는 모두 온라인 작업입니다.

데이터 미러링을 원하지 않는 경우(예: 축소된 용량에 맞지 않기 때문에):

  • 미러를 제거하고 파일 시스템을 미러가 없는 상태로 변환합니다. 기본적으로 이는 중복 메타데이터이자 데이터의 단일 복사본입니다. 그러나 여전히 두 개의 디스크가 있으므로 raid1 메타데이터가 더 적합합니다. 재조정을 통해 이를 수행할 수 있습니다. 여기서 "소프트"는 필요한 청크 그룹만 변환됨을 의미합니다. 예를 들어 이미 raid1인 메타데이터는 건드리지 않습니다. (이미 "단일"인 데이터와 동일합니다. 이 작업을 중간에 취소하고 나중에 다시 시작하면 이런 일이 발생할 수 있습니다.)

      btrfs balance start -mconvert=raid1,soft -dconvert=single,soft «PATH»
    

Balance는 (기본적으로) 포그라운드에서 실행됩니다. --background터미널을 복원할 수 있습니다(그리고 Check Status를 사용할 수 있습니다 btrfs balance status «PATH»). 상태 메시지는 dmesg(커널 로그 및/또는 systemd 로그 포함)에도 인쇄됩니다. btrfs는 데이터 이동을 좋아합니다 ☹.

다음으로 btrfs에게 디스크 사용을 중지하라고 지시합니다.. 거울로 보관하든 안 하든 상관없이 이 작업을 수행할 수 있습니다.

  • 이제 btrfs 파일 시스템에서 다른 두 개의 디스크를 제거할 수 있습니다. 또한 많은 양의 데이터가 이동되므로 시간이 다소 걸립니다. 두 디스크를 동시에 삭제할 수 있으며 삭제해야 합니다. 그렇지 않으면 다음에 삭제하는 디스크로 데이터가 이동될 수 있습니다.

      btrfs device remove /dev/disk1 /dev/disk2 «PATH»
    

디스크/파티션 장치는 마운트 지점 앞에 있습니다. 이것은 다시 온라인 작업입니다. 커널 로그에서 상태를 볼 수 있습니다.

완료되면 시스템에서 디스크를 제거할 수 있습니다.

관련 정보