btrfs 파일 시스템이 꽉 찼지만 파일을 삭제해도 공간이 확보되지 않습니다

btrfs 파일 시스템이 꽉 찼지만 파일을 삭제해도 공간이 확보되지 않습니다

내 시스템에서는 df -h루트 파일 시스템이 가득 찼다고( 100%사용 가능 0) 보고하고 btrfs fi usage /모든 공간이 할당되었다고 알려줍니다. 재부팅 후 필요한 서비스도 시작할 수 없어 이제 복구 모드에 들어갔습니다.

나는 다음과 같이 시스템의 균형을 맞추려고 노력합니다.btrfs 오류: 균형 조정 중 오류가 발생했습니다. 장치에 남은 공간이 없습니다.. 나는 btrfs balance start -dusage=27 /다음을 얻습니다.

Done, had to relocate 0 out of 56 chunks`

나는 btrfs balance start -dusage=28 /다음을 얻습니다.

ERROR: error during balancing '/': No space left on device

그래서 그 안에 있는 파일들을 삭제하기 시작했는데 /var/log/100MB 파일 여러 개를 삭제해도 df -h보고서에는 사용할 수 있는 비트가 하나도 없었습니다.

공간이 확보되면 그 공간을 채울 수 있는 서비스가 나올 것이라고 생각합니다. 하지만 복구 모드에 있으므로 서비스가 그렇게 많지는 않을 것입니다.

파일을 삭제한 후 즉시 공간을 채우는 것이 무엇인지 어떻게 알 수 있습니까?

btrfs가 재조정에 사용할 여유 공간이 있는지 어떻게 확인합니까?

내 시스템은 debian 10.3(buster)이고 파일 시스템 btrfs 및 docker가 설치되어 있습니다. 이것이 문제의 일부인 것으로 의심되지만 복구 모드에서 실행되지 않으므로...

답변1

역사적으로 btrfs의 일부 공간 부족 상황에서는 볼륨에 추가 디스크를 임시로 추가해야 했습니다. btrfs의 COW 특성으로 인해 이전 버전을 해제하기 전에 수정된 블록 버전을 보관할 임시 공간이 필요할 수 있기 때문입니다. 그러나 내가 아는 한, 이러한 사례 중 상당수는 btrfs 개발자에 의해 수정되었습니다.

btrfs 볼륨에 대한 응급 디스크 사용량 분석을 위해 제가 작성한 도구인 btdu를 추천하고 싶습니다.

https://github.com/CyberShadow/btdu

1% 분해능을 달성하려면 100개의 샘플만 수집하면 되기 때문에 몇 초 안에 대형 우주 돼지를 식별할 수 있습니다.

관련 정보