25GB 드롭렛에서 디스크 공간 부족으로 Discourse 업그레이드 실패

저는 25GB 드롭레트를 사용 중인데, Discourse 측에서는 이 용량이 충분하다고 하지만 저장 공간이 부족하여 최신 버전으로 업그레이드할 수 없습니다. 제 포럼은 규모가 매우 작고 트래픽도 거의 없습니다.

./launcher cleanup를 실행하고 이전 백업 파일까지 삭제했지만 여전히 문제가 해결되지 않습니다.

어떤 조치를 취할 수 있을까요?

root@DO-Discourse:/var/discourse# ./launcher rebuild app
x86_64 아키텍처가 감지되었습니다.

경고: Discourse 기본 이미지 다운로드를 시작합니다.
네트워크 속도에 따라 이 과정은 몇 분에서 1시간까지 소요될 수 있습니다

조금만 기다려 주세요

2.0.20220224-2005: discourse/base에서 가져오는 중
5eb5b503b376: 가져오기 완료 
35b2f73fc27b: 가져오기 완료 
44526e3ec669: 가져오기 완료 
Digest: sha256:8a8bb9525882220196c0faa8ce95c62a7fb607fc203d4247b3d5985f3ca9c3d8
상태: discourse/base:2.0.20220224-2005의 더 새로운 이미지가 다운로드되었습니다
docker.io/discourse/base:2.0.20220224-2005
/var/lib/docker가 위치한 디스크의 남은 공간이 5GB 미만입니다. 계속 진행하려면 더 많은 공간이 필요합니다
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        25G   22G  3.0G  88% /

시스템의 docker 이미지와 컨테이너를 정리하여 공간을 복구하려는 시도를 원하시나요? (y/N)y
정리가 성공적으로 완료되었다면, 이제 다시 시도해 볼 수 있습니다
root@DO-Discourse:/var/discourse# 
root@DO-Discourse:/var/discourse# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            448M     0  448M   0% /dev
tmpfs            99M  1.1M   98M   2% /run
/dev/vda1        25G   18G  6.2G  75% /
tmpfs           491M     0  491M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           491M     0  491M   0% /sys/fs/cgroup
/dev/vda15      105M  9.2M   96M   9% /boot/efi
overlay          25G   18G  6.2G  75% /var/lib/docker/overlay2/d319d95263d87c2a75a4bc9a9f03a25ea7f6eb1f7bac687e7ae7d45522939dc0/merged
/dev/loop10      56M   56M     0 100% /snap/core18/2284
/dev/loop7       44M   44M     0 100% /snap/snapd/14978
/dev/loop5       62M   62M     0 100% /snap/core20/1361
/dev/loop2       68M   68M     0 100% /snap/lxd/22526
/dev/loop1       62M   62M     0 100% /snap/core20/1376
/dev/loop3       44M   44M     0 100% /snap/snapd/15177
/dev/loop4       56M   56M     0 100% /snap/core18/2344
/dev/loop6       68M   68M     0 100% /snap/lxd/22753
tmpfs            99M     0   99M   0% /run/user/0
root@DO-Discourse:/var/discourse# 

./launcher cleanup을 실행해 볼 수 있지만, 그래도 도움이 되지 않는다면 서버에 더 많은 디스크 공간을 추가해야 합니다.

(하지만 권장하지 않습니다)
./launcher rebuild app --skip-prereqs

앞서 말씀드린 것처럼, 이미 몇 번이나 해 봤습니다.
Discourse에는 이상적으로 20~30GB가 필요하다고 읽었습니다. 저는 25GB를 가지고 있으므로 더 많이 필요하다는 것이 이상합니다. 요구 사항이 변경된 건가요?

무엇을 말씀하시는 건지 잘 모르겠습니다.

테스트 인스턴스에서 단기적으로 실행하는 것을 의미합니다. 실제로 시도해 봤고(4.6GB의 여유 공간이 있을 때 괜찮게 돌아간 것 같습니다), 프로덕션 환경에서는 그렇게 하지 않을 것입니다.

sudo apt autoremove --purge 를 시도해 볼까요?

또한 백업이 많이 있는지 확인해 보세요.

저장 공간 요구 사항은 Discourse 인스턴스에 업로드되는 미디어의 양에 따라 달라집니다.

DO 샌드박스 사이트가 이렇게 빠르게 커지는 건 놀랍습니다.
지금 문제가 발생했다면, 충분히 삭제해서 Discourse 업그레이드를 시도해 볼 수 있지만, 다음에는 데이터베이스가 조금 더 커지고 미디어 파일도 더 많이 쌓일 수 있습니다.
미디어 파일이 많다면 S3 스토리지로 옮기면 공간을 확보할 수 있고, 그렇지 않으면 드롭릿 리사이즈가 유일한 선택지가 될 수 있습니다.

DO에서는 AMD 드롭릿이 훨씬 더 좋다고 하더군요… 제 벤치마크가 아니라 인터넷에서 읽은 내용입니다 :face_with_raised_eyebrow: - 여기

알겠습니다. 사용된 저장 공간의 양은 어디에서 확인하나요?

알겠습니다. 제 데이터베이스는 60MB이고 모든 백업을 삭제했습니다.

앞서 말했듯이 모든 백업을 삭제했습니다. (제 DB는 60MB에 불과해서 실제로는 큰 차이가 없었습니다)

root@DO-Discourse:/var/discourse# apt autoremove --purge
Reading package lists… Done
Building dependency tree
Reading state information… Done
0 upgraded, 0 newly installed, 0 to remove and 94 not upgraded.
root@DO-Discourse:/var/discourse#

apt 캐시를 삭제하는 것을 시도해 볼 수 있습니다.

apt clean

또는 다음 명령을 실행하여 공간이 어디에 사용되고 있는지 확인해 볼 수도 있습니다.

du -h -s /* | sort -h -r

예를 들어, 공간의 대부분이 /usr 아래에 사용되고 있다면, 다음과 같이 반복할 수 있습니다.

du -h -s /usr/* | sort -h -r

그리고 이어서 같은 방식으로 진행합니다. 운이 좋으면, 삭제할 수 있는 큰 항목을 찾을 수 있을 것입니다. 하지만 무엇을 삭제할지 정확히 이해하지 못했으면 아무것도 삭제하지 마세요. 즉, 안전하다고 확신할 수 있는 경우에만 삭제하십시오.

간단히 확인하려면 /admin 대시보드에 업로드량이 표시됩니다:

이전 명령이 해당 정보를 제공했나요?

root@DO-Discourse:/var/discourse# cd ..
root@DO-Discourse:/var# cd ..
root@DO-Discourse:/# du -h --max-depth=1 -x
13G     ./var
301M    ./boot
5.4M    ./etc
116K    ./tmp
4.0K    ./srv
4.0K    ./home
28K     ./snap
4.0K    ./media
3.3G    ./usr
4.0K    ./mnt
901M    ./root
24K     ./opt
16K     ./lost+found
19G     .
root@DO-Discourse:/#