몇 년 동안 Discourse를 운영해 왔는데, 한 가지 반복되는 문제를 제외하면 전반적으로 훌륭한 경험이었습니다:
업데이트 화면에서 **“You are running an old version of the Discourse image”**라는 메시지가 보이면, 나는 어두운 공포와 극심한 두려움에 휩싸입니다.
왜일까요?
업그레이드가 제대로 완료될 때까지 몇 시간 동안 DigitalOcean 드롭렛을 커맨드 라인으로 직접 다루어야 하기 때문입니다. 저는 이 작업을 보통 매우 싫어합니다.
그리고 이번에는 아예 작동조차 되지 않는 것 같습니다
제 판단으로는 내장 공간이 /dev/vda1 디렉터리 때문에 소진되고 있는 것 같습니다. 하지만 이 디렉터리를 조사하면 사용하는 방법에 따라 결과가 다릅니다!
아래 이미지는 이 이상한 상황을 보여줍니다. 상단 부분(df -h 명령어 출력)을 보면 /dev/vda1 폴더에 7.1GB의 여유 공간이 있는 것처럼 보입니다.
하지만 같은 폴더에 대해 런처(Launcher)는 여유 공간이 4GB밖에 없다고 표시합니다!
이 부분에 대해 더 많은 통찰을 가진 분이 있을까요?
구체적으로, 파일의 여유 공간을 확인하는 두 가지 다른 방법이 왜 서로 다른 여유 공간 크기를 반환하는지 조언을 구하고 있습니다.
그리고 7.1GB의 여유 공간을 활용하여 업그레이드를 수행하는 방법을 알고 싶습니다.
(정확히 말씀드리면, "그냥 DO 드롭렛을 업그레이드하세요"라는 식의 게으른 답변은 원하지 않습니다. 이 포럼의 연간 비용을 두 배로 늘리고 싶었다면 이미 그렇게 했을 것입니다.)
감사합니다!
pfaffman
(Jay Pfaffman)
4월 16, 2022, 8:59오후
2
정말 답답하시겠네요. 아래 명령어를 시도해 볼 수 있습니다.
docker prune
Docker가 생성했지만 잊어버린 리소스가 있을 수 있습니다. 최근에 이와 관련된 주제가 있었습니다.
하지만 Docker가 원하는 위치가 아닌 다른 곳에 공간을 확보하는 것은 도움이 되지 않습니다. 런처가 잘못된 위치를 확인하고 있을 가능성은 있지만, 그럴 가능성은 낮습니다.
이번 특정 재구축에서는 스크린샷의 WARNING부터 Status 줄까지 표시된 대로 새로운 기본 이미지(base image)를 다운로드해야 했습니다. 제 시스템 기준 2.81GB로 크기가 크므로, 여러분이 보고 계신 것은 이 새로운 버전의 기본 이미지로 인해 손실된 공간입니다.
# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
discourse/base latest ab71a5d97460 4 days ago 2.81GB
./launcher cleanup을 사용하면 사용되지 않는 컨테이너와 이미지를 정리하여 충분한 공간을 확보할 수 있으며, @pfaffman이 말했듯이 Docker를 직접 사용하여 트리밍(pruning)을 하면 추가적으로 사용되지 않는 객체를 정리할 수 있습니다. 다만, 개인적으로는 컨테이너와 이미지 정리 이상의 뚜렷한 이점은 확인한 적이 없습니다.
도움이 될 수 있는 또 다른 방법은 apt 캐시를 정리하는 것입니다. 이 캐시는 상당히 커질 수 있습니다.
apt-get clean
제가 생각한 게 바로 이겁니다. 이번 업데이트에서는 새로운 Docker 이미지를 위해 5GB + 2.811GB가 필요한 것 같습니다.
이게 사실인가요? 만약 그렇다면 많은 사용자가 영향을 받을 것 같은데…
찾을 수 있는 모든 pruning/removal/cleanup/doctor 명령어를 시도해 보았지만, 결국 특정 머신에 7.811GB의 여유 공간이 확보되지 않는 한 이 문제는 해결되지 않는 것 같습니다.
만약 그렇다면, 25GB의 DO 드롭렛이 여전히 시작 조건으로 권장되는 이유가 무엇인지 이해할 수 없습니다
또한, 위와 같은 결론에 도달하게 된 과정의 예시는 다음과 같습니다:
시작 시:
6.9GB 여유, 72% 사용
./launcher rebuild app 실행 후:
3.7GB 여유, 85% 사용
이 상황에서 벗어날 다른 방법을 찾지 못했지만, 다른 누군가는 방법을 알고 있기를 바랍니다!
Falco
(Falco)
4월 17, 2022, 4:54오후
6
Discourse 컨테이너 이미지를 다운로드하기 전에 는 7.1GB의 여유 공간이 있지만, 이미지를 다운로드한 후 에 확인을 수행할 때는 5GB 미만의 여유 공간만 남습니다.
두 가지 옵션이 있습니다:
디스크 공간 확인을 우회하려면 ./launcher rebuild app --skip-prereqs를 실행하세요
디스크 용량을 늘리세요
1번을 선택하면 문제를 미루는 것이지만, 시간이 지나면서 커뮤니티와 Discourse가 성장함에 따라 결국 디스크 사용량을 처리해야 합니다.
Vultr에서 25GB 클라우드 SSD를 사용하고 있습니다.
Ubuntu 20.04 LTS x64에 클린한 Discourse만 설치되어 있고 다른 것은 없습니다.
정말 5GB 알림을 받았다고요?