btrfs가 일치하지 않는 드라이브로 raid1 생성을 허용하는 이유는 무엇입니까?

btrfs가 일치하지 않는 드라이브로 raid1 생성을 허용하는 이유는 무엇입니까?

다음을 사용하여 btrfs를 만들고 있습니다.

sudo mkfs.btrfs -m raid1 -d raid1 <small-disk> <large-disk> or
sudo mkfs.btrfs -m raid1 -d raid1 <large-disk> <small-disk>

생성되는 파일 시스템은 두 디스크/파티션을 합친 크기와 같지만

 btrfs fi df <mountpoint>

데이터, 시스템 및 메타데이터의 RAID1 제공

이것이 어떻게 정확할 수 있습니까?

mdadm과 비슷한 방법이 있습니까?

cat /proc/mdstat

btrfs가 무엇을 하고 있는지 확인하고 내 raid1이 안전한지 확인하세요. 별로 중요한 데이터는 아니기 때문에 btrfs를 사용할 수 있지만, 잃어버리고 싶지도 않습니다.

답변1

메일링 리스트에 질문해서 답을 찾았습니다.

btrfs는 볼륨별로 RAID를 수행하지 않고 블록별로 RAID를 수행합니다. 파일 시스템은 (pe) 1GB 블록 단위로 "원시" 공간을 예약합니다. raid1을 사용하여 fs를 초기화한다는 것은 블록을 할당하려고 할 때마다 해당 블록의 복사본을 다른 장치에 할당하려고 시도한다는 의미입니다.

아키텍처는 다양한 크기의 장치를 허용하며 향후 기능에는 파일별 RAID 수준이 포함될 수 있습니다.

디스플레이 장치에서 현재 df사용할 수 있는 원시 공간의 양으로, 모든 장치 크기의 합계입니다. 블록 크기를 1GB로 가정하면 raid1-btrfs에 5MB 파일만 쓰면 원래 공간이 2GB 줄어듭니다. 이것이 바로 btrfs에 btrfs fi df실용적인 사용법을 제공하는 명령이 포함된 이유입니다. 앞으로 진행 상황을 더 정확하게 표시하기 위해 조정될 수 있습니다.

관련 정보