btrfs 및 누락 된 여유 공간


8

내 ext4 파티션을 btrfs로 변환하고 저장 하위 볼륨을 삭제했습니다. 그런 다음 fstab 파일에서 파일 시스템의 압축 (lzo)을 활성화했으며 지금까지 모든 것이 정확합니다.

그런 다음 새 압축이 모든 파일에 적용된다는 매개 변수 -c와 함께 조각 모음 명령을 사용하여 모든 파일을 압축했습니다.

그렇게하면서 여유 공간이 6 기가되기 전에 내 SSD가 완전히 채워지는 것을 알았습니다. 아니요, 남은 것이 없습니다.

easteregg@x201s:~$ btrfs fi df /
Data: total=50.00GB, used=49.17GB
System: total=32.00MB, used=4.00KB
Metadata: total=24.50GB, used=9.86GB

easteregg@x201s:~$ df -ha
Filesystem        Size  Used Avail Use% Mounted on
/dev/sda1          75G   60G  852M  99% /

그래서 지금. 여유 공간을 어떻게 되 찾을 수 있습니까? lzo 압축으로 인해 더 많은 공간을 확보 할 것으로 예상했습니다. 그리고 지금!

fs가 올바르게 장착되었습니다.

easteregg@x201s:~$ mount
/dev/sda1 on / type btrfs (rw,noatime,ssd,compress=lzo)

이 문제를 해결하는 방법에 대한 아이디어가 있습니까?


나는 지금 요점을 얻었다 : 당신은 온라인 재조정을 할 수 없다. 그것은 왜 아무것도 효과가 없었습니다. 방금 구조 시스템을 부팅하고 전체 디스크의 균형을 다시 조정 한 후 압축을 사용하여 조각 모음 명령을 수행했습니다. 이제 약 17 기가의 여유 공간이 생겼습니다! nice :)
easteregg

1
btrfs는 시간이 지남에 따라 더 많은 데이터 블록이 변경되므로 btrfs는 기록 중 복사 파일 시스템이므로 볼륨의 공간 낭비를 피하기 위해 최소한의 스냅 샷 세트 만 유지하고 불필요한 스냅 샷을 제거하는 것이 가장 좋습니다. 따라서 스냅 샷이 디스크에서 점점 더 많은 공간을 차지하게됩니다.
Terry Wang

2
자세한 설명과 유용한 주석이있는 이 질문 도 참조하십시오 .
ignis

답변:


8

나는이 질문이 오래되었다는 것을 알고 있지만 오늘날 현재 balance 명령은이 문제를 해결합니다.

변환하는 동안 많은 공간이 할당되어 물건을 옮길 수 있습니다. 일단 할당되면 더 이상 "무료"또는 "할당되지 않은"것으로 표시되지 않습니다. 이 문제를 해결하려면 단순히 균형을 시작하십시오

btrfs balance start "path"

또한 청크가 균형을 이루도록 청크 만 균형을 잡도록 밸런스 명령에 지시 할 수 있습니다. 청크는 비어 있습니다. 청크가 비어 있음을 의미하는 0 %와 같습니다.

btrfs balance start "path" -dusage=0 -musage=0

매개 변수 -d는 데이터 옵션을 의미합니다. 매개 변수 -m은 메타 데이터에 대한 옵션을 의미합니다.

밸런스 명령으로 플레이하면 도움이됩니다.


5

의 출력을보십시오 btrfs fi df:

Data: total=50.00GB, used=49.17GB
System: total=32.00MB, used=4.00KB
Metadata: total=24.50GB, used=9.86GB

total동안 부분은 할당 된 공간입니다 used실제로 btrfs를하는 데 사용됩니다. (약 15GB) 의 차이는 누락 된 공간입니다. totalused보다시피 이미 메타 데이터 블록에 할당되어 있습니다.

btrfs에 대한 취미 경험 만 있지만 ext4 변환이 잘 구성된 btrfs 파일 시스템을 만드는 가장 좋은 방법이라고 생각하지 않습니다. 다행히 전체 파일 시스템의 균형을 조정하여 모든 할당을 다시 수행 할 수 있습니다.

항상 그렇듯이 백업을 사용하십시오.

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