btrfs : 거대한 메타 데이터 할당


14

내 ext4 루트 FS를 btrfs로 변환 한 256GB SSD 디스크가 있습니다. ext4 백업 하위 볼륨을 지우고 압축을 활성화하고 재귀 적으로 조각 모음하여 모든 파일에서 활성화했습니다.

btrfs fi df / 그래도 걱정되는 출력이 있습니다.

Data: total=148.00GB, used=106.11GB
System: total=32.00MB, used=16.00KB
Metadata: total=65.00GB, used=2.04GB

출력을 올바르게 이해하면 65GB (디스크의 1/4)가 메타 데이터 용으로 예약되어 파일을 저장할 수 없습니다. 이것이 맞으면 디스크 공간이 많이 낭비 될 것입니다. 올바르게 이해하고 있습니까? 디스크의 메타 데이터 할당 부분의 크기를 조정할 수 있습니까?

답변:


16

먼저 커널과 BTRFS 사용자 공간이 최신인지 확인하십시오.

BTRFS FAQ 에 따르면 메타 데이터 블록 크기를 조정할 수 없습니다. 그러나 btrfs balance start -m <mount point> 을 실행 하여 전체 디스크에 메타 데이터를 재 할당하고 부작용으로 할당되지 않은 공간을 확보 할 수 있습니다.

그래도 작동하지 않으면 데이터를 백업하고 파일 시스템을 다시 만들어야 할 수도 있습니다. ( 자세한 내용 은 이것을 보십시오 .)


답변 해주셔서 감사합니다. 커널은 3.11.2이고 btrfs-tools는 v0.20-rc1이므로 여기서 오래되었다고 생각하지 않습니다. 균형을 잡으려고했지만 spinics.net/lists/linux-btrfs/msg26977.html 과 같은 버그가 발생 했으며이를 위해 새로운 커널을 컴파일하고 싶지 않습니다. : P이 65GB가 크기를 조정할 수없는 메타 데이터 블록인지 아니면 그 용어가 다른 것을 가리키는 지 궁금합니다. 그렇지 않으면 메타 데이터 블록이 처음에 해당 크기로 어떻게 생성되었는지 이해하지 못합니다.
Gnurou

불행히도, 나는 btrfs의 사용자이고 전문가는 아니기 때문에 나의 도움은 제한적입니다. 어쨌든 ext4의 변환 프로세스에 결함이있을 수 있습니다.
hololeap

11
따라서 필요한 패치는 안정적인 커널로 만들었고 제안한 것을 시도했습니다. 실제로 밸런싱은 메타 데이터를위한 예약 영역의 양을 3GB로 줄였으며, 청구 된 공간은 이제 'df'에서 여유 공간으로 나타납니다. 전체 디스크를 재조정 할 필요는 없습니다. btrfs balance start -m <mount point> 을 수행하면 메타 데이터 만 재조정 할 수 있으므로 훨씬 빠릅니다. 통찰력있는 답변 감사합니다!
Gnurou

기꺼이 도와 드리겠습니다!
hololeap

"메타 데이터 블록 크기를 조정할 수 없습니다". 이 질문과 관련이 없습니다. FAQ는 메타 데이터에 할당 된 공간의 양이 아니라 할당 단위 크기에 대해 설명합니다.
블라디미르 판 텔레 예프

1

메타 데이터 크기가 줄어 듭니다.

sudo btrfs balance start -v -musage=0 /path
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.