안녕하세요,
최근 저는 2021년(인 것 같습니다)에 서버에 설치되어 대부분 다른 사람이 업데이트하던 기본 Discourse Docker 이미지 인스턴스의 마지막 남은 관리자 및 유지보수자가 되었습니다. 어느 정도 기간 동안, 아마도 처음부터 그랬을지도 모르지만, 소프트 삭제된 게시물의 업로드 파일이 고아(orphan) 처리되고 정리되지 않는 문제가 발생하고 있었습니다. 오래된 파일들이 계속 쌓여 저장 공간을 낭비하고 있어 며칠째 이 문제를 해결하려고 노력하고 있습니다. 우리는 S3를 사용하지 않고 있으며, 실제로 유지하고자 하는 업로드 파일에 대해 충분한 저장 공간이 확보되어 있습니다.
저는 공식 Discourse Docker 설치 가이드를 따라 app.yml을 기반으로 재구축한 후, 커맨드라인에서 백업을 복원하여 전체 Discourse 백업 파일(업로드 포함)을 테스트를 위해 별도의 스테이징 서버로 이전했습니다. 두 설치 환경 모두 다른 명백한 문제 없이 동일하게 정상적으로 실행되고 있지만, 업로드 문제는 여전히 남아 있습니다.
로그에서 관련 에러를 찾지 못하고 있으며, Sidekiq는 예정대로 정리 작업을 실행하고 있습니다. 스테이징 버전에서 rake db:migrate를 실행하고 여러 번 재구축했으며, 게시물을 영구 삭제하고 설정을 확인해 보기도 했습니다. Rails 콘솔에서 일부 게시물을 영구 삭제하고 정리 작업을 수동으로 실행해 본 결과, 어느 시점에서 tombstone 디렉터리의 크기가 약간 증가한 것을 확인했습니다. 원래부터 일부 파일이 존재했으므로, 이 메커니즘은 어떤 상황에서는 작동했던 것이 맞지 않나요? 작은 크기 증가를 판단해 볼 때, 대부분의 오래된 파일은 여전히 고아 파일로 감지되지 않고 있는 것 같습니다.
현재 관련 관리자 패널 설정은 아래와 같습니다. 테스트 기간 동안 유예 기간을 효과적으로 건너뛰기 위해 마지막 두 항목을 0으로 설정해도 될까요?
clean up uploads = true
clean orphan uploads grace period hours = 1
purge deleted uploads grace period days = 1
이 문제를 효율적으로 트러블슈팅하는 방법은 무엇일까요? 저는 커맨드라인 사용에 익숙하지만 데이터베이스 기술은 초보 수준이라, 현재 무엇을 찾아야 하는지 명확하지 않은 상태에서 가능한 모든 서버 설정 세부 사항을 하나씩 확인해야 하는 상황을 피할 수 있도록 팁을 주시면 감사하겠습니다.
이 포럼에서 유사한 사례를 절박하게 검색하고 읽어 보았지만, 관련 스레드는 몇 개 없고, 그마저도 막다른 길에 도달하거나 단일 파일에 대한 수동 해결책으로 끝나는 경우가 많아 이 사용 사례에 바로 적용하기 어렵습니다.
필요하시면 더 많은 세부 정보를 요청해 주십시오. 이 문제를 근본적으로 해결하기 위해 최선을 다하고 있습니다.