데이터 손실 없이 동일한 디스크를 사용하여 btrfs RAID5를 RAID6으로 변환할 수 있습니까?

데이터 손실 없이 동일한 디스크를 사용하여 btrfs RAID5를 RAID6으로 변환할 수 있습니까?

데이터를 교체하지 않고 동일한 디스크를 사용하여 사용 가능한 충분한 디스크 공간이 있는 경우 기존 RAID5(단일 패리티) btrfs 설정을 이중 패리티 RAID6 구성으로 어떻게 변환합니까?

기본적으로 btrfs가 나머지 드라이브의 모든 것을 재배포하고 제거된 디스크를 다시 추가할 수 있도록 디스크를 제거하고 중복 드라이브를 유지해야 합니까?

그렇다면 권장되는 프로세스는 무엇입니까?

뭔가 비슷한 생각을 하고 있었어

btrfs device delete /dev/sdx /mnt/fs
btrfs balance start -dconvert=raid6 -mconvert=raid6 /mnt/fs
btrfs device add /dev/sdx /mnt/fs

디스크를 삭제하고 추가해야 합니까, 아니면 설정을 직접 변환할 수 있습니까? 즉

btrfs balance start -dconvert=raid6 -mconvert=raid6 /mnt/fs

답변1

https://www.howtoforge.com/a-beginners-guide-to-btrfs-p2

이는 여유 공간이 충분하다는 가정 하에 실행 중인 어레이에서 RAID 수준을 변경할 수 있다고 주장합니다. 안정적인 최신 Linux 커널을 실행하고 있는지 확인하세요.

예(링크에서): btrfs 균형 시작 -dconvert=raid1 -mconvert=raid1 /mnt

-dconvert는 데이터용입니다.

-mconvert는 메타 파일용입니다(이 파일을 복제하고 싶으시면 저를 믿으세요).

/mnt는 BTRFS 볼륨이 마운트되는 위치입니다. 이 작업은 마운트 해제하여 수행할 수 있지만 시도한 적이 없으며 정직하게 유지하고 싶습니다.

raid0, raid1, raid5, raid6이 있습니다. 여유 공간이 충분하다면 n-2 또는 raid6의 경우 드라이브 수 [여유 공간]에서 2를 뺀 값이라고 생각합니다. BTRFS를 사용하면 더 적은 비용으로 작업을 수행하고 대신 데이터를 사용하여 측정을 수행할 수 있습니다. 소량의 데이터를 저장하는 경우 허용되는 드라이브 수보다 적은 수의 드라이브로 raid6과 같은 기능을 가질 수 있습니다. 가능하지만 권장되지 않습니다.

또한 드라이브에 있는 데이터의 양에 따라 시간이 다소 걸릴 수 있습니다. 또한 균형이 실패하여 어레이가 완전히 종료되거나 불안정한 읽기 전용 모드로 전환될 가능성도 적습니다. 언제나 그렇듯이 백업을 유지하세요.

답변2

RAID6 - 위키피디아

  • RAID5에는 1-1/n 공간 효율성을 갖춘 3개 이상의 드라이브(n)가 필요합니다.
  • RAID6에는 1-2/n 공간 효율성을 갖춘 4개 이상의 드라이브(n)가 필요합니다.

1TiB 어레이의 총 공간(대략) 및 RAID5 -> RAID6의 변화(%):

  • 4 x 250GiB ~ 1TiB -> RAID5 ~ 768GiB -> RAID6 ~ 512GiB -> -50%
  • 5 x 200GiB ~ 1TiB -> RAID5 ~ 819.2GiB -> RAID6 ~ 614.4GiB -> -25%
  • 6 x 170GiB ~ 1TiB -> RAID5 ~ 853.3GiB -> RAID6 ~ 682.6GiB -> -20%

여유 공간과 드라이브가 충분하다는 가정 하에 실행 중인 어레이에서 RAID 수준을 변경할 수 있습니다.

  • 최종 어레이에서 원하는 드라이브를 삭제하거나 제거하지 마십시오.
  • 삭제 -> 추가 -> 변환하면 "이중" 균형이 유지됩니다.
    • 제거/삭제 중에 메타데이터 및 데이터 청크가 나머지 드라이브에 재배포된 다음 드라이브를 추가하게 되며 RAID6으로 변환할 때 다시 균형을 맞춰야 합니다.

드라이브를 추가해야 하는 경우 균형/변환 전에 드라이브를 모두 추가하세요.

btrfs device add /dev/sdc /mnt
btrfs device add /dev/sdd /mnt

밸런스 필터 - btrfs.wiki.kernel.org

링크의 btrfs 잔액 "변환" 예(업데이트됨):

btrfs balance start -dusage=90 -dconvert=raid6 -mconvert=raid6 /mnt

-dusage는 데이터 청크 밸런싱을 위한 사용량 임계값입니다.

-dconvert는 데이터용입니다.

-mconvert는 메타데이터용입니다.

/mnt는 BTRFS 볼륨이 마운트되는 위치입니다. 마운트 해제된 상태에서는 이 작업을 수행할 수 없습니다.

btrfs 데이터 및/또는 메타데이터는 다음과 같습니다.

  1. 하나의
  2. raid0
  3. raid01
  4. 습격 1
  5. 습격5
  6. 습격 6
  7. raid1c3
  8. raid1c4

일시 중지, 재개, 취소 또는 상태 가져오기 명령을 사용할 수 있습니다.

btrfs balance pause /mnt
btrfs balance resume /mnt
btrfs balance cancel /mnt
btrfs balance status -v /mnt

주의사항

  1. 드라이브에 있는 데이터의 양에 따라 균형을 맞추는 데 시간이 걸립니다.
  2. 균형이 실패하고 어레이가 손상되거나 불안정한 읽기 전용 모드로 전환될 가능성이 있습니다.
  3. 변환하기 전에 데이터를 백업하십시오.
  4. 안정적인 최신 Linux 커널을 실행하고 있는지 확인하세요.

관련 정보