InfoGrab DocsInfoGrab Docs

정리 Rake 작업

고아 LFS 파일, 프로젝트 업로드 파일, 고아 아티팩트 파일, 만료된 세션 조회 키 등을 정리하는 GitLab Rake 작업을 설명합니다.

GitLab은 GitLab 인스턴스를 정리하는 Rake 태스크를 제공합니다. 참조되지 않은 LFS 파일 제거 # Warning GitLab 업그레이드 후 12시간 이내에는 이 태스크를 실행하지 않습니다. 모든 백그라운드 마이그레이션이 완료되도록 하기 위해서이며, 그렇지 않으면 데이터가 손실될 수 있습니다. 리포지터리 히스토리에서 LFS 파일을 제거하면 해당 파일은 고아 상태가 되어 계속 디스크 공간을 차지합니다. 이 Rake 태스크로 데이터베이스에서 유효하지 않은 참조를 제거하면 LFS 파일을 가비지 컬렉션할 수 있습니다. 예를 들면 다음과 같습니다. Linux package (Omnibus) Self-compiled (source) sudo gitlab-rake gitlab:cleanup:orphan_lfs_file_references PROJECT_PATH="gitlab-org/gitlab-foss" bundle exec rake gitlab:cleanup:orphan_lfs_file_references RAILS_ENV=production PROJECT_PATH="gitlab-org/gitlab-foss" PROJECT_PATH 대신 PROJECT_ID 로 프로젝트를 지정할 수도 있습니다. 예를 들면 다음과 같습니다. $ sudo gitlab-rake gitlab:cleanup:orphan_lfs_file_references PROJECT_ID= "13083" I, [2019-12-13T16:35:31.764962 #82356] INFO -- : Looking for orphan LFS files for project GitLab Org / GitLab Foss I, [2019-12-13T16:35:31.923659 #82356] INFO -- : Removed invalid references: 12 기본적으로 이 태스크는 아무것도 삭제하지 않고 삭제할 수 있는 파일 참조 수만 표시합니다. 실제로 참조를 삭제하려면 DRY_RUN=false 와 함께 명령을 실행합니다. LIMIT={number} 매개변수로 삭제할 참조 수를 제한할 수도 있습니다. 이 Rake 태스크는 LFS 파일에 대한 참조만 제거합니다. 참조되지 않은 LFS 파일은 이후에 (하루에 한 번) 가비지 컬렉션됩니다. 즉시 가비지 컬렉션해야 한다면 아래에 설명하는 rake gitlab:cleanup:orphan_lfs_files 를 실행합니다. 참조되지 않은 LFS 파일 즉시 제거 # 참조되지 않은 LFS 파일은 매일 제거되지만, 필요하면 즉시 제거할 수도 있습니다. 참조되지 않은 LFS 파일을 즉시 제거하려면 다음 명령을 실행합니다. Linux package (Omnibus) Self-compiled (source) sudo gitlab-rake gitlab:cleanup:orphan_lfs_files bundle exec rake gitlab:cleanup:orphan_lfs_files 출력 예시는 다음과 같습니다. $ sudo gitlab-rake gitlab:cl