btrfs는 사용 필터를 사용하여 raid 5를 1로 변환합니까?

btrfs는 사용 필터를 사용하여 raid 5를 1로 변환합니까?

btrfs는 파일 시스템을 부분적으로 변환하는 것을 지원합니까?

나는 현재 이 상태에 있습니다:

btrfs fi df .
Data, RAID5: total=9.83TiB, used=7.68TiB
System, RAID1: total=32.00MiB, used=704.00KiB
Metadata, RAID1: total=12.00GiB, used=8.61GiB
GlobalReserve, single: total=512.00MiB, used=0.00B

그리고 raid5 모드에서 발견된 버그로 인해 raid1로 마이그레이션 하려고 합니다. 지금 당장 전체 변환을 수행하지 않는 데에는 여러 가지 이유가 있습니다. 타겟 모드를 raid1로 설정하고 싶습니다. 따라서 새로운 데이터는 raid1에 저장되며 시간이 되면 전체 재조정(또는 소프트)을 실행할 수 있습니다.

그럼 이런 일이 가능할까요?

btrfs balance start -dconvert=raid1 -dusage=10 .

답변1

글쎄, 다른 사람은 정보가 없었기 때문에 나는 간단히 시도하고 여기에 내 단계를 문서화했습니다.

btrfs balance start -dconvert=raid1 -dusage=10 .

이 명령은 단순히 필터(사용량=10%)를 충족하는 청크를 변환했습니다. (일반 밸런스처럼) 청크 압축이 없었고, raid5에서 raid1까지 대상 raid 레벨 설정도 없었습니다. 그래서 이것은 상당히 쓸모가 없었고 대부분 빈 데이터와 낭비되는 시간으로 큰 덩어리를 만들었습니다.

다음 접근 방식은 한계 필터와 소프트 매개변수를 사용하여 단계별로 변환을 수행하는 것이었습니다.

btrfs balance start -dconvert=raid1 -dlimit=500,soft .

따라서 파일 시스템은 단계별로 변환되었습니다.

노트:

  1. 변환하기 전에 "빈 청크"의 균형을 유지하십시오. 이렇게 하면 시간이 절약됩니다.
  2. 이 프로세스 동안 btrfs는 항상 이전 RAID 프로필의 덩어리에 새 데이터를 넣습니다. 나는 이것을 바꿀 방법을 찾지 못했습니다. 따라서 새로운 데이터는 항상 raid5 청크에 들어가거나 데이터를 보관하기 위해 새로운 raid5 청크가 생성됩니다. 전체 파일 시스템이 변환되면 이 동작은 물론 사라집니다.
  3. 이것은 완전히 온라인에서 작동했습니다 :)

관련 정보