BTRFS RAID0을 RAID1로 변환

BTRFS RAID0을 RAID1로 변환

어떻게 든 BTRFS 파일 시스템을 만들 때 실수를 저질러 RAID1 대신 RAID0으로 끝났습니다. 그러나 나는 274GB의 데이터를 추가한 후에야 이것을 발견했습니다(알고 있습니다. 정말 바보입니다).

Total devices 2 FS bytes used 136.12GiB
        devid    1 size 465.76GiB used 137.03GiB path /dev/sdb
        devid    2 size 465.76GiB used 137.03GiB path /dev/sdc

A 방법을 원합니다. 이것이 실제로 RAID0인지 확인합니다(확실하지만 명확한 출력이 있는 명령을 찾지 못했고 다음에 데이터를 추가하기 전에 확인하고 싶습니다). B: 가능하다면 데이터를 RAID1에 재할당하세요.

답변1

여러 장치에 걸쳐 btrfs 파일 시스템을 생성할 때,기본적으로 RAID0은 데이터를 저장하는 데 사용되고 RAID1은 메타데이터를 저장하는 데 사용됩니다.. 이 설정을 변경하려면 mkfs 명령에 인수를 전달하여 데이터(-d) 및 메타데이터(-m)에 대한 RAID 수준을 변경할 수 있습니다.

mkfs.btrfs -d raid1 -m raid1 /dev/sda /dev/sdb

기존 파일 시스템에서 어떤 RAID 레벨이 사용되고 있는지 확인하려면 다음을 사용할 수 있습니다.btrfs 유틸리티:

$ btrfs fi df /mountpoint
Data, RAID1: total=15.00GiB, used=14.65GiB
System, RAID1: total=8.00MiB, used=16.00KiB
Metadata, RAID1: total=1.00GiB, used=15.59MiB

샘플 출력은 데이터 및 메타데이터에 사용되는 RAID1을 보여줍니다. 실행하면 btrfs fi usage /mountpoint자세한 내용이 제공됩니다.

기존 파일 시스템을 다른 RAID 레벨로 변환할 수 있습니다.balance명령 에 인수를 전달합니다 .

btrfs balance start -dconvert=raid1 -mconvert=raid1 /mountpoint

Balance는 모든 데이터를 파일 시스템에 다시 기록하며, 매개변수를 추가하면 데이터가 다시 기록될 때 변환됩니다. 이 작업은 시간이 걸릴 수 있습니다. 실행하여 btrfs balance status /mountpoint상태를 확인할 수 있습니다. 완료되면 모든 데이터가 예상대로 변환되었음을 확인할 수 있습니다 btrfs fi df. 밸런싱 중에 작성된 데이터는 여전히 이전 형식일 수 있으므로 두 번째 밸런싱이 필요할 수 있습니다.

일반 명령 등과 df같은 유틸리티는 btrfs fi showbtrfs 자체에서 수행되는 RAID 설정을 고려하지 않습니다. 이러한 도구는 디스크에 할당된 총 btrfs 양만 표시하며 btrfs가 데이터를 저장하는 데 어떤 형식을 사용하는지 전혀 모릅니다. 이는 또한 SAMBA 또는 기타 도구를 통한 공유에는 RAID가 고려되지 않음을 의미합니다.자세한 내용은 btrfs FAQ를 참조하세요.

답변2

글쎄, 이 서버를 나의 완전한 실패에 대한 기념비로 삼으십시오.

RAID 구성 확인:btrfs fi df /mountpoint

내가 틀리지 않았다는 사실이 밝혀졌습니다. SAMBA를 통해 btrfs RAID1 fs에 연결할 때 Windows는 어떻게 든 두 배의 데이터 (및 두 배의 공간)를 보고합니다.

실제로 BTRFS 파일 시스템을 설정할 때 실수를 저질렀을 수도 있습니다.이것도움이 될 수도 있지만 다행히 시도할 필요는 없었습니다.

답변3

하나만 사용해도 됩니다밸런스드 필터 설치할 때

  1. 귀하가 raid0이고 올바른 배열인지 확인하십시오.

    $ btrfs fi df /mnt
    
    Data, RAID0: total=16.00GiB, used=14.17GiB
    System, RAID1: total=32.00MiB, used=16.00KiB
    Metadata, RAID1: total=1.00GiB, used=376.92MiB
    GlobalReserve, single: total=39.20MiB, used=0.00B
    
  2. 실시간 변환
    btrfs fi balance start -dconvert=raid1 /mnt
    
  3. 지금 raid1인지 확인해보세요

    btrfs fi df /
    
    Data, RAID1: total=15.00GiB, used=14.22GiB
    System, RAID1: total=32.00MiB, used=16.00KiB
    Metadata, RAID1: total=1.00GiB, used=377.19MiB
    GlobalReserve, single: total=39.41MiB, used=0.00B
    

메타데이터가 아직 raid1이 아닌 경우 추가하세요 -mconvert=raid1.

관련 정보