안녕하세요 여러분, 최선을 다하시길 바랍니다.
그래서 최근에 나는 어떤 일을 하고 있었습니다.만자로 21.2.5최신 업데이트 호스팅윈도우 11게스트 가상 머신은 다음에서 실행됩니다.qemu/kvm그리고라이브러리 가상 머신그리고동적으로 크기가 조정된 가상 디스크, 게스트(Win 11)에 일부 무거운 소프트웨어를 설치한 후디스크 공간이 꽉 찼습니다.여유 공간이 14MB 밖에 없어서 libvirt의 GUI를 사용하여 VM을 삭제한 후 발견했습니다.여유 공간을 돌려받지 못했습니다.확실해가상디스크를 삭제했어요. Vm이 사용하는 호스트 파티션 형식은 다음과 같습니다.BTRFS.
다들 감사 해요! 감사해요.
답변1
Linux의 btrfs가 디스크 공간을 해제하지 않는 세 가지 주요 방법이 있습니다.
삭제한 파일은 아직 열려 있습니다. 이는 btrfs에만 해당되는 것이 아니라 대부분의 Unix 스타일 운영 체제에 해당됩니다. Linux에서는 삭제된 파일을 계속 사용할 수 있습니다. 마지막 사용자가 사라지면 완전히 해제됩니다. VM을 삭제하기 위해 libvirt를 사용하는 것이 이런 경향이 있는지 확실하지 않습니다. 다음을 통해 이러한 경우인지 확인할 수 있습니다.
lsof full/path/imagefile
btrfs는 아직 이러한 블록을 해제할 기회가 없었습니다. 이 작업은 다소 시간이 걸릴 수 있지만 일반적으로 몇 분을 넘지 않습니다. 디스크 공간이 부족하면 이 백그라운드 작업이 중단될 수도 있습니다.
btrfs fi sync .
이미지 파일이 있는 디렉터리에서 실행해 볼 수 있습니다 . 그래도 도움이 되지 않으면 다른 파일을 삭제하고 균형 작업을 실행해야 할 수도 있습니다.
드문 경우지만 먼저 -musage0
및/또는 -dusage0
옵션(두 개의 개별 명령에 대해)을 사용하여 "실제" 균형 조정 작업을 위한 공간을 만들어야 할 수도 있습니다. 예를 들면 다음과 같습니다.
btrfs balance start -musage=0 .
btrfs balance start -dusage=0 .
btrfs balance start .
- 마지막으로 동일한 볼륨에 btrfs 스냅샷이 있을 수 있습니다. 이는 볼륨 상태가 안전하다는 것을 의미하므로 삭제한 파일 수에 관계없이 스냅샷은 삭제하려는 파일을 계속 참조합니다. 이 경우 스냅샷을 삭제해야 합니다(그리고 삭제할 수 있는 다른 항목도 고려해야 합니다). 확인
btrfs subv list .
하고btrfs subv del (snapshotname)
주문하세요.